




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優質文檔-傾情為你奉上XXXXXXX大 學課程設計說明書 名稱 計算機語言C課程設計 職工信息管理系統設計 2011 年 6月20 日至 2011年6 月26 日 共1 周院 系 .班 級 .姓 名 .學 號 . 系 主 任 . 教研室主任 . 指導教師 .目 錄一、課程設計的目的與要求1.1目的1.掌握C語言編程的基礎知識較熟練的編寫C語言應用程序。2.能夠利用所學的基本知識和技能,解決簡單的程序設計問題,增強獨立完成工作的能力。3.通過設計主要使學生有一個獨立編寫程序的過程,對理論學習及動手能力都有一個很大的提高,進一步培養學生熱愛專業的思想,同時對本專業綜合素質的提高起一個積極的推動
2、作用。1.2 要求 1.要求利用C語言面向過程的編程思想來完成系統的設計; 2.突出C語言的函數特征,以多個函數實現每一個子功能; 3.畫出功能模塊圖; 4. 進行簡單界面設計,能夠實現友好的交互; 5. 具有清晰的程序流程圖和數據結構的詳細定義; 6. 熟練掌握C語言對文件的各種操作。二、題目說明1.職工信息管理系統設計,使之包括職工號、姓名、性別、年齡、學歷、工資、住址、電話等(職工號不重復)。2.使這個管理系統具有以下功能:可以使系統以菜單方式工作、能夠錄入、查詢、刪除、排序職工的信息。3.可以按學歷、按工號查詢職工信息。使查詢職工信息變得方便、簡單。2.1程序開發背景現在隨著社會的進步
3、和人民生活水平的逐漸提升,大學生數量越來越多,相應的所需要處理的的信息也越來越復雜,而憑借人力不可能準確及時地處理所有信息,因此,編寫此程序是極為必要的。但由于各個學校的情況不同,所以難以編寫一個通用的成績管理程序。此程序是根據本校情況和老師指導所編寫,用以解決教師對學生成績的添加、修改、刪除以及學生對其成績的查詢等工作。2.2開發工具介紹Visual C+ Visual C+是一個功能強大的可視化軟件開發工具。自1993年Microsoft公司推出Visual C+1.0后,隨著其新版本的不斷問世,Visual C+已成為專業程序員進行軟件開發的首選工具。 雖然微軟公司推出了Visual C
4、+.NET(Visual C+7.0),但它的應用的很大的局限性,只適用于Windows 2000,Windows XP和Windows NT4.0。所以實際中,更多的是以Visual C+6.0為平臺。 Visual C+6.0不僅是一個C+編譯器,而且是一個基于Windows操作系統的可視化集成開發環境。 Visual C+6.0由許多組件組成,包括編輯器、調試器以及程序向導AppWizard、類向導Class Wizard等開發工具。 這些組件通過一個名為Developer Studio的組件集成為和諧的開發環境。 Visual C+它大概可以分成三個主要的部分: 1 Developer
5、 Studio。2 MFC。3 Platform SDK。1三、總體設計3.1總體思想 本系統主要的設計思想是實現對職工信息的錄入、刪除、排序、查詢等主要功能。職工信息以文件的形式存儲。系統的人機接口采用簡單的字符界面進行交互。系統的設計方法是結構化設計方法,采用C語言進行開發。軟件開發平臺采用Visual C+6.0,主要考慮在VC中可以使用中文,用戶交互界面設計比較美觀清晰。3.2軟件模塊結構圖根據需求分析結果,職工信息管理系統可以分為顯示員工資料、錄入員工資料、員工信息查詢、刪除員工信息、員工信息排序、退出信息系統。如圖3-1所示。職工信息管理系統顯示員工資料員工信息查詢刪除員工信息員工
6、信息排序退出信息系統錄入員工資料圖3-13.3系統流程圖3.3.1主函數 開始提示輸入用戶名、密碼密碼正確重新登錄?退出系統是否否是登錄成功員工信息查詢刪除員工信息錄入員工資料員工信息排序退出信息系統顯示員工資料退出結束如圖3-2所示圖3-23.3.2顯示函數display()顯示函數打開文件順序輸出返回homepage()如圖3-3所示圖3-33.3.3錄入函數input()錄入函數創建文件輸入信息 關閉文件返回homepage()如圖3-4所示圖3-43.3.4查詢函數如圖3-5所示find()查詢函數打開文件查詢條件i = ?i = 1按工號查詢i= 2按學歷查詢關閉文件返回homepa
7、ge()是否圖3-53.3.5刪除函數del()刪除函數被刪職工工號查詢該職工刪除該職工返回homepage()如圖3-6所示圖3-63.3.6排序函數如圖3-7所示sort()排序函數打開文件排序條件i = ?i = 1i= 1按工號排序i= 2按工資排序關閉文件返回homepage()是否圖3-7四、詳細設計和系統實施 4.1數據結構設計4.1.1定義數組定義一維數組struct worker work50;用于定義員工的總人數,當員工總人數超過50后便不能再錄入員工資料。4.1.2定義結構體結構體struct worker用于存放存放員工的資料,包括員工的基本信息:工號,姓名,年齡,學歷
8、,工資,住址,電話號碼。struct worker int num; 工號 char name15; 名字 char xingbie; 性別 int age; 年齡 char exp6; 學歷 int wage; 工資 char address20; 住址 char tel12; 電話號碼;int count=0; 當前工人個數int sort_type=0; 當前排序類型4.1.3函數功能描述函數主界面:void homepage();顯示職工成績信息:void display();錄入職工信息信息:void input();刪除職工信息:void del();查詢職工信息:void fin
9、d();排序職工信息:void sort();用戶等待函數:void waiting();退出系統函數: void quit();4.2界面設計4.2.1用戶登錄界面此模塊用于歡迎界面,同時要求用戶輸入用戶名和密碼,只有當兩者都正確時,才能進入到系統,當有三次錯誤,系統就會自動退出,如圖4-1所示。圖4-1代碼實現:void main() int i=0,k=0; char username15,pwd6; for(i=0;i<3;i+) printf("n請輸入用戶名:"); gets(username); printf("n請輸入6位密碼:")
10、; gets(pwd); if(strcmp(username,"admin")=0)&&(strcmp(pwd,"")=0) printf("n您已經成功登錄"); k=1; for(i=0;i<20;i+) printf("."); Sleep(100); system("cls"); homepage(); break; else printf("n用戶名或密碼無效 請重新輸入:n"); continue; if(k=0) printf("
11、;n連續輸入錯誤3次 將退出程序n"); Sleep(2000); quit();在此模塊中,if(strcmp(username,"Admin")=0)&&(strcmp(pwd,"")=0),用于檢測用戶名和密碼是否正確。for(i=0;i<3;i+) printf("n請輸入用戶名:"); gets(username); printf("n請輸入6位密碼:"); gets(pwd);此段代碼用于獲取賬戶名和密碼并計數是否超過三次,超過三次,則有Sleep(2000);實現退出程
12、序。4.2.2 主界面此模塊主要實現進入主界面和根據用戶需要進入相應界面,包括顯示界面,錄入界面,刪除界面,排序界面并可以選擇退出,如圖4-2所示:圖4-2代碼實現void homepage() char n; while (n!='1')&&(n!='2')&&(n!='3')&&(n!='4')&&(n!='5')&&(n!='0') printf("n請選擇:"); fflush(stdin);
13、 scanf("%c",&n); switch(n) case '1': display(); break; case '2': if(count<50) input(); else printf("記錄數已滿n"); Sleep(2000); system("cls"); homepage(); break;此模塊中,switch(n),case()用于判定主界面的選項,根據選項進行設置。其中if(count<50)用于限制錄入員工的人數,超過50名員工就無法再進行錄入,并且直接通
14、過sleep(2000);homepage()回到主界面上。4.2.3顯示界面此模塊是用來顯示員工的資料信息的,包括工號,姓名,性別,年齡,學歷,工資,住址,電話等基本信息,一邊管理員能夠及時的掌握到所要員工的資料。如圖4-3所示。圖4-3代碼實現void display() int i; char c; printf("備注:學歷(1=中專,2=大專,3=本科,4=碩士,5=博士,6=其它):nnn"); switch(sort_type) case 0: printf("tt未排序:nn"); break; case 1:printf("t
15、t按工號排序:nn"); /sort();break; case 2:printf("tt按工資排序:nn");/sort();break; printf("t工號t姓名t性別t年齡t學歷t工資t住址t電話n"); 此模塊中有三種顯示方式,第一種是無序顯示,就是按照錄入時的順序顯示,還有兩種分別是是按照工號和工資來排序。后兩種顯示方式主要是有switch(sort_type)語句來實現的,它相當于一個開關,與下面的case()相對應,相括號中的數字相對應時,就會執行相應的語句。4.2.4錄入界面這個模塊主要是錄入員工資料,錄入的順序如圖所示,當
16、錄入的員工人數滿到50后,便不能再進行錄入員工資料,此時已經達到了錄入人數的最大值。如圖4-4所示。圖4-4代碼實現void input() int i,numcheck; char c; do printf("工號:n"); scanf("%d",&workcount.num); numcheck=1; if(workcount.num<0) printf("請輸入正整數:n"); for(i=0;i<count;i+) if(workcount.num=worki.num) numcheck=0; printf
17、("工號重復,重新輸入:n"); do c=getchar(); if(c='y'|c='Y') count+; 此模塊中if(workcount.num=worki.num);numcheck=0;很是重要,它判定錄入的工號是否重復,重復的話會有重新輸入的提示,避免職工信息的重復。當記錄數已滿時,通過sleep(2000),使之回到主界面,進行其他選項設置。4.2.5信息查詢界面 此模塊用于職工信息的查詢,共分為兩種查詢方式,一是按工號查詢,二是按學歷查詢。用if函數來實現,可快速查詢到職工的姓名、工號、學歷、電話等詳細信息。如圖4-5所示
18、。圖4-5代碼實現void find()int i,j; int choice=0;int find_num;char findedu6;char c;system("cls");printf("tt請選擇查詢功能:n"); printf("t1.按工號查詢n"); printf("t2.按學歷查詢n");printf("請輸入選擇:");doscanf("%d",&choice);while (choice!=1)&&(choice!=2);if (
19、choice=1)printf("nt請輸入要查詢的職工號n");scanf("%d",&find_num);printf("n正在查詢,請稍候"); for(i=0;i<20;i+) printf("."); Sleep(100); system("cls");printf("nn按任意鍵返回n"); c=getch(); system("cls"); homepage();此模塊中,通過while (choice!=1)&&
20、;(choice!=2);這個選擇來實現查詢的方式,選擇“1”為工號查詢,選擇“2”則為按學歷查詢。 if (find_num=worki.num)即為根據職工號進行查詢,strcmp(findedu,worki.exp)根據學歷進行職工信息查詢。4.2.6刪除界面此模塊用于刪除員工信息,對于已經無用的員工信息進行刪除,采用按工號刪除的模式。如圖4-6所示。圖4-6代碼實現void del() int i,j,del_num,match=0; char c; system("cls"); printf("請輸入要刪除的員工工號:n"); scanf(&q
21、uot;%d",&del_num); waiting(); for(i=0;i<count;i+) if(worki.num=del_num) match=1; for(j=i;j<count;j+) workj=workj+1;count-; 此模塊中,首先還是要先進職工信息查詢模塊,然后再根據查詢到的職工號進行刪除。printf("%d",&del_num);即為顯示要刪除的職工號,if(c='y'|c='Y')則是確定是否刪除選定的職工信息。最后通過homepage()回到主界面。 五、遇到的問題及
22、解決辦法 1.在一些字符或字符串的定義上出項錯誤,如定義職工電話號碼的時候,用成了float類型,而正確的應該是char類型。 2在進行模塊函數設計時,find()函數功能沒有設計好,導致部分函數代碼過長,可讀性降低,以至于再次重寫里面的一小部分代碼,浪費了大量的時間。3在整個程序設計編寫完成后,編譯時出現了大量的錯誤,而且里面大部分是因為大小寫問題,還有void拼錯拼成viod,還有“;”沒有寫,后來經過程序錯誤查詢,一一更改了過來。4. 在編寫代碼時沒有添加注解,降低了在調試測試時程序的可讀性,同時也降低了與其他同學的交流,雖然在測試過程中我把全部的注解加上, 但也延長了整個程序的開發時間
23、。六、課程設計總結通過此次學生成績信息管理系統,讓我熟悉了軟件開發的流程,相信在以后的工作中我能在最短的時間內投入到大的程序開發項目中。在進行課程設計的前兩天,不知道從何入手,很是不解,不知道我們究竟要做什么。后來通過上網找資料,才發現有好多做法,根本就看不完,此時才真正意識到差距所在。于是,通過借鑒網絡作品,才發現作品并不是一味的照搬照抄才實用,集眾家之所成,不斷完善,才能造出屬于自己的作品,并且實用。在整個課程設計中,我認為最重要的就是耐心和細心。細心,就是在編寫過程中注意拼寫,仔細編寫程序;耐心,就是程序編譯中出現很多錯誤的時候能夠耐心去修改,只有這樣,才能很好的完成程序。雖然在整個過程
24、中出現了不少錯誤,但最終還是圓滿完成了,此次程序設計的經歷讓我學到了太多,同時也讓我理解到參加的項目越大越能學到知識,因此以后我會積極主動的去參加一些項目,以此來提高自己的技能和編程經驗。七、參考文獻【1】.實用c語言簡明教程李金祥、顧小晶主編【2】.c+語言程序設計,劉振安,劉燕君,孫忱,機械工業出版社;【3】.C語言程序設計一體化案例教程,劉維富,清華大學出版社;【4】.C語言課程設計,黃明,梁旭,萬洪莉,電子工業出版。附錄(源程序代碼)#include<stdio.h>#include<string.h>#include<windows.h>#incl
25、ude<conio.h>void homepage(); /主界面void display(); /顯示全部信息void input(); /錄入 插入void find();void del(); /刪除記錄void sort(); /排序void waiting(); /等待界面void quit(); /退出界面struct worker int num; /工號 char name15; /名字 char xingbie; /性別 int age; /年齡char exp6; /學歷int wage; /工資char address20;/住址char tel12; /電話
26、號碼;int count=0; /當前工人個數int sort_type=0; /當前排序類型struct worker work50;void main() int i=0,k=0; char username15,pwd6; system("color 3f"); printf("nn"); printf(" tn"); printf(" t*n"); printf(" t*n"); printf(" t*n"); printf(" t* *n");
27、printf(" t* 歡迎使用職工信息管理系統 *n"); printf(" t* *n"); printf(" t* *n"); printf(" t* 郝佳麗 *n"); printf(" t* *n"); printf(" t* 2011.06.20 *n"); printf(" t* *n"); printf(" t*n"); printf(" t*n"); printf(" t*n")
28、; printf(" tn"); for(i=0;i<3;i+) printf("n請輸入用戶名:"); gets(username); printf("n請輸入6位密碼:"); gets(pwd); if(strcmp(username,"admin")=0)&&(strcmp(pwd,"")=0) printf("n您已經成功登錄"); k=1; for(i=0;i<20;i+) printf("."); Sleep(100
29、); system("cls"); homepage(); break; else printf("n用戶名或密碼無效 請重新輸入:n"); continue; if(k=0) printf("n連續輸入錯誤3次 將退出程序n"); Sleep(2000); quit();void homepage() char n; printf("nn"); printf("tn"); printf("t*n"); printf("t* * *n"); printf(
30、"t* 1.顯示員工資料 * 2.錄入員工資料 *n"); printf("t* * *n"); printf("t*n"); printf("t* * *n"); printf("t* 3.員工信息查詢 * 4.刪除員工記錄 *n"); printf("t* * *n"); printf("t*n"); printf("t* * *n"); printf("t* 5.員工信息排序 * 0.退出信息系統 *n");
31、printf("t* * *n"); printf("t*n"); printf("tn"); while (n!='1')&&(n!='2')&&(n!='3')&&(n!='4')&&(n!='5')&&(n!='0') printf("n請選擇:"); fflush(stdin); scanf("%c",&n
32、); switch(n) case '1': display(); break;case '2': if(count<50) input(); else printf("記錄數已滿n"); Sleep(2000); system("cls"); homepage(); break;case '3': find(); break; case '4': del();break;case '5':sort();break; case '0': quit();
33、break; default: printf("n選項錯誤n"); void display() int i; char c; system("cls");printf("備注:學歷(1=中專,2=大專,3=本科,4=碩士,5=博士,6=其它):nnn"); switch(sort_type) case 0: printf("tt未排序:nn"); break; case 1: printf("tt按工號排序:nn"); /sort();break; case 2: printf("t
34、t按工資排序:nn");/sort(); break; printf("t工號t姓名t性別t年齡t學歷t工資t住址t電話n");if (count=0) printf("nt無員工信息!n"); for(i=0;i<count;i+) printf("t%dt%st%ct%dt%st%dt%st%sn",worki.num,,worki.xingbie,worki.age,worki.exp,worki.wage,worki.address,worki.tel); printf("nn按任
35、意鍵返回n"); c=getch(); system("cls"); homepage();void input() int i,numcheck; char c; system ("cls"); do printf("工號:n"); scanf("%d",&workcount.num); numcheck=1; if(workcount.num<0) printf("請輸入正整數:n"); for(i=0;i<count;i+) if(workcount.num=
36、worki.num) numcheck=0; printf("工號重復,重新輸入:n"); while(!numcheck); printf("姓名:"); fflush(stdin); scanf("%s",);fflush(stdin); printf("性別(F:M):"); scanf("%c",&workcount.xingbie);printf("年齡:");scanf("%d",&workcount
37、.age);fflush(stdin);printf("學歷(1=中專,2=大專,3=本科,4=碩士,5=博士,6=其它):n");scanf("%s",workcount.exp);printf("工資:");scanf("%d",&workcount.wage);printf("住址:");scanf("%s",workcount.address);printf("電話:");scanf("%s",workcount.tel); printf("n是否繼續輸入(y/n):n"); do c=getchar(); if(c='y'|c='Y') count+
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年少兒素質教育投融資研究報告
- 色彩在環境設計中的影響-洞察闡釋
- 教育信息化在中小學遠程教育中的應用
- 數學作業設計對學生思維品質培養的影響
- 2025年中國滾針和角接觸球組合軸承市場調查研究報告
- 2025年中國消渴茶數據監測研究報告
- 拓展國際市場的網絡建設與資源整合
- 招聘與選拔策略的探討
- 食品雜貨店即時零售模式下的市場競爭格局分析-洞察闡釋
- 2025年中國柴胡油市場調查研究報告
- 城市更新中歷史文化街區非物質文化遺產保護與開發報告
- 家裝修泥水工合同協議
- 2023承壓設備產品焊接試件的力學性能檢驗
- ESG趨勢下企業財務管理新挑戰
- 2024年公安機關理論考試題庫500道(基礎題)
- 2024年11月-礦山隱蔽致災因素普查
- DBJ51T 163-2021 成都軌道交通設計防火標準
- 加熱爐安全操作規程培訓課件
- 學校紅十字會工作手冊
- 特種設備隱患排查與整治
- 2024年人教版七年級下冊生物期末檢測試卷及答案
評論
0/150
提交評論