版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、課程設計報課程名稱_C 語言程序設計_課題名稱_職工信息管理系統(tǒng)專業(yè)_通信工程_班級_1402班_學 號_姓名_熊舒煉_指導教師_羅雅博_20152015 年 7 7 月 3 3 日一、 總體設計方案 . 2二、.課程設計目的與要求32.1 設計目的.32.2 設計要求.3三、.使用說明及運用實例 .3四、.項目源程序代碼8五、.設計心得與總結(jié)23六、.參考文獻24總體設計方案(一)、系統(tǒng)總體流程圖(二)、為了方便使用,此系統(tǒng)結(jié)構(gòu)均為全局類型定義 struct employee/ 定義一個職工信息的結(jié)構(gòu)體char num20;char name20;char sex;char age20;ch
2、ar xueli30;int wage;char addr30;char post20;long int tel;em100;(三)、各模塊的功能與實現(xiàn)1.菜單模塊: 顯示職工管理系統(tǒng)的主菜單, 供用戶選擇所需功能, 通過自己定義的 voidmenu()函數(shù)實現(xiàn)。2. 輸入模塊:輸入職工的工號、姓名及其他的一些職工信息,通過自己定義的 void input() 函數(shù)實現(xiàn)。3. 保存模塊:將內(nèi)存中職工信息輸出到磁盤文件中,通過自己定義的void save(int)函數(shù)實現(xiàn)。4. 瀏覽模塊:瀏覽所有職工的信息,通過自己定義的 void display() 函數(shù)實現(xiàn)。5. 刪除模塊:刪除需要刪除的職
3、工所有信息,通過自己定義的void del() 函數(shù)實現(xiàn)。6. 查詢模塊: a. 按職工號查詢職工相關信息,通過自己定義的 void search-num() 函數(shù) 實現(xiàn)。b.按職工學歷查詢相關職工信息,通過自己定義的 void search-xueli() 函數(shù)實 現(xiàn)。c. 按職工電話號碼查詢相關職工信息,通過自己定義的 void search-tel() 函數(shù)實現(xiàn)。7. 修改模塊:可以修改需要修改的職工信息,通過自己定義的 void modify() 函數(shù)實現(xiàn)。8. 退出系統(tǒng)模塊:推出職工信息管理系統(tǒng),通過頭文件中的 windows.h 中的 exit(0) 函 數(shù)實現(xiàn)。課程設計的目的與要
4、求一、 課程設計目的C 語言程序設計是通信工程專業(yè)重要的基礎課,通過本課程設計使學生進一步鞏 固課堂所學知識,全面熟悉、掌握 C 語言程序設計的基本方法和技巧,進一步提高編寫 程序、閱讀分析程序及上機操作、調(diào)試程序的能力 。二、課程設計要求 職工信息包括職工號、姓名、性別、出生年月、學歷、職務、工資、住址、電話等 (職工號不重復)。系統(tǒng)以菜單方式工作; 能錄入職工信息并保存; 顯示所有職工信息 (以一定的格式);查詢職工信息(以一種或多種方式) ;修改職工信息并保存;刪除職工信息。 所有信息保存在文件中(每次使用,上次保存的信息能從文件中讀?。?。使用說明及運用實例1. 運行程序,進入職工管理
5、系統(tǒng)的主菜單:圖 12. 輸入數(shù)字“ 1”進行錄入職工信息:圖 23. 輸入“ y”返回住主菜單(界面同圖 1)4. 輸入“ 2”瀏覽職工信息:5. 輸入“ y ”后繼續(xù),輸入“ 3”查詢職工信息:圖 46. 進入主菜單,輸入“ 4”進行刪除職工信息:圖 57. 進入主菜單輸入“ 5”進行修改職工信息圖 68. 進入主菜單輸入“ 6”退出職工信息管理系統(tǒng)四、項目程序源代碼#include #include #include #define N 100struct employeechar num20;char name20;char sex;char age20;char xueli30;in
6、t wage; char addr30;char post20;long int tel;em100; /* 定義一個結(jié)構(gòu)體 */ void menu();void input();void save(int);void sav(int);void display();void del();void search();void search_num();void search_xueli();void search_tel();void modify(); /* 定義各函數(shù) */void menu() /* 菜單函數(shù) */printf(n);printf(n);printf(printf(pr
7、intf(printf(printf(printf(printf(printf(*職工信息管理 *n);1.錄入職工信息 );2.瀏覽職工信息 n);3.查詢職工信息 );4.刪除職工信息 n);5.修改職工信息 );6.退出 n);* 謝謝使用 *n);printf(n);printf(n);void main()int n,flag;char a;menu(); /* 調(diào)用菜單函數(shù) */doprintf( 請選擇你需要操作的步驟 (1-6):n); scanf(%d,&n);if(n=1&n=6)flag=1; break;elseflag=0;printf( 您輸入有誤,請重新選擇 !)
8、;while(flag=0); while(flag=1)switch(n)case 1:printf( *n);printf(n);input();break;case2:printf(*n);printf(n);display();break;case3:printf(*n);printf(n);search();break;case4:printf(*n);printf(n);del();break;case5:printf(*n);printf(n);modify();break;case 6:exit(0);break; default :break;getchar(); print
9、f(n); printf( 是否繼續(xù)進行 (y orn):n);scanf(%c,&a);if(a=y)flag=1;system(cls); /*清屏 */menu(); /* 調(diào)用菜單函數(shù) */ printf( 請再次選擇你需要操作的步驟 (1-6):n);scanf(%d,&n);printf(n);elseexit(0);void sav(int m) /*保存文件函數(shù) */* 輸 入 職 工 信 息* 瀏 覽 職 工 信 息 按職工號查詢職工信息* 刪 除 職 工 信 息* 修 改 職 工 信 息int i;FILE*fp;if (fp=fopen(employee_list,wb)
10、=NULL) /* 創(chuàng)建文件并判斷是否能打開 */printf (cannot open filen);exit(0);for (i=0;im;i+) /* 將內(nèi)存中職工的信息輸出到磁盤文件中去 */if (fwrite(&emi,sizeof(struct employee),1,fp)!=1) printf(file write errorn);fclose(fp);void save(int m) /* 保存文件函數(shù) */int i;FILE*fp;if (fp=fopen(employee_list.txt,w)=NULL) /* 創(chuàng)建文本文件要用的模式 */printf (canno
11、t open filen);exit(0);for (i=0;im;i+) /* 內(nèi)存職工信息輸磁盤文件 */fprintf(fp,n %s %s %c %s %s %d %s%ldn,emi.num,emi .name,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel);/ 每 員工信息寫行間用空格隔fclose(fp);void input() /*錄入函數(shù) */int i,m;printf( 請輸入需要創(chuàng)建信息的職工人數(shù) (1-100):n); scanf(%d,&m);for (i=0;im;i+)printf( 職工號: );sc
12、anf(%s,emi.num);printf(n);printf( 請輸入姓名 : );scanf(%s,);getchar();printf(請輸入性別 (f- 女 m- 男 ): );scanf(%c,&emi.sex);printf( 請輸入出生年月 : );scanf(%s,emi.age);printf(請輸入學歷 : );scanf(%s,emi.xueli);printf(請輸入工資 : );scanf(%d,&emi.wage);printf(請輸入住址 : );scanf(%s,emi.addr);printf(請輸入電話 : );scanf(%d,&emi.
13、tel); printf( 請輸入職務 : ); scanf(%s,&emi.post);printf(n);printf(n 創(chuàng)建完畢 !n);save(m);sav(m);int load() /* 導入函數(shù) */FILE*fp;int i=0; if(fp=fopen(employee_list,rb)=NULL)printf (cannot open filen);exit(0);elsedofread(&emi,sizeof(struct employee),1,fp); i+;while(feof(fp)=0);fclose(fp); return(i-1);void displa
14、y() /*瀏覽函數(shù) */int i;int m=load();printf(n 職工號 姓名 性別 出生年月 學歷 住址 電話 n);工資for(i=0;im;i+) /*m為輸入部分的職工人數(shù) */printf(n %s %s %c %s %s %d %s %ldn,emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel);void del() /* 刪除函數(shù) */int m=load();int i,j,n,t,flag;char name20;printf(n 原來的職工信息 :n);display();
15、 /* 調(diào)用瀏覽函數(shù) */printf(n);printf( 請輸入要刪除的職工的姓名 :n);scanf(%s,name);for(flag=1,i=0;flag&im;i+)if(strcmp(,name)=0)printf(n 已找到此人,原始記錄為: n);printf(n職工號t 姓名t 性別t 出生年月t 學歷t 工資t 住址t 電話 n);printf(n%st%st%ct%st%st%dt%st%ldn,emi.num,,emi.sex ,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel);printf(n確
16、實要刪除此人信息請按 1, 不刪除請按 0n);scanf(%d,&n);if(n=1) /* 如果刪除,則其他的信息都往上移一行 */for(j=i;j=1&t=4)flag=1;break;elseflag=0;printf( 您輸入有誤,請重新選擇 !);while(flag=0);while(flag=1)按電話號碼查詢請按switch(t)case 1:printf( 按職工號查詢 n);search_num();break; case 2:printf(按學歷查詢 n);search_xueli();break;case 3:printf(按電話號碼查詢 n);search_tel
17、();break;case 4:main();break;default:break;void search_num()char num20;int i,t;int m=load();printf( 請輸入要查找的職工號 :n); scanf(%s,num);for(i=0;im;i+)if (strcpy(emi-1.num,num)=0)printf(n 已找到此人,其記錄為: n);printf(n職工號t 姓名t 性別t 出生年月t 學歷t 工資t 住址t 電話n); printf(n%st%st%ct%st%st%dt%st%ldn,emi.num,,emi.sex,
18、emi.age,emi.xueli,emi.wage,emi.addr,emi.tel); break;if(i=m)printf(n 對不起,查無此人 n);printf(n);printf( 返回查詢函數(shù)請按 1, 繼續(xù)查詢職工號請按 2n);scanf(%d,&t);switch(t)case 1:search();break;case 2: break;default:break;void search_xueli()char xueli30;int i,t;int m=load();printf( 請輸入要查找的學歷 :n);scanf(%s,xueli);for(i=0;im;i+
19、)if(strcmp(emi.xueli,xueli)=0)printf(n 已找到,其記錄為: n);printf(n職工號t 姓名t 性別t 出生年月t 學歷t 工資t 住址t 電話n);printf(n%st%st%ct%st%st%dt%st%ldn,emi.num,,emi.sex ,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel);if(i=m)printf(n 對不起,查無此人 n); printf(n);printf( 返回查詢函數(shù)請按 1, 繼續(xù)查詢學歷請按 2n);scanf(%d,&t);switch(t)case
20、1:search();break;case 2:break;default :break;void search_tel()long int tel;int i, t;int m=load();printf( 請輸入要查找的電話號碼 :n);scanf(%ld,&tel);for(i=0;im;i+)if(tel=emi.tel)printf(n 已找到此人,其記錄為: n);printf(n職工號t 姓名t 性別t 出生年月t 學歷t 工資t 住址t 電話n);printf(n%st%st%ct%st%st%dt%st%ldn,emi.num,,emi.sex ,emi.ag
21、e,emi.xueli,emi.wage,emi.addr,emi.tel);break;if(i=m)printf(n 對不起,查無此人 n);printf(n);printf( 返回查詢函數(shù)請按 1, 繼續(xù)查詢電話號碼請按 2n); scanf(%d,&t);switch(t)case 1:search();break;case 2:break;default :break;void modify() /* 修改函數(shù) */char num20;char name10;char sex;char age20;char xueli30;int wage;char addr30;long int
22、 tel;int b,c,i,n,t,flag;int m=load(); /*導入文件內(nèi)的信息 */printf(n 原來的職工信息 :n); display();/*調(diào)用瀏覽函數(shù) */printf(n);printf( 請輸入要修改的職工的姓名 :n);scanf(%s,name); for(flag=1,i=0;flag&i8|c1)printf(n 選擇錯誤,請重新選擇 !n);flag=0;if(flag=1)printf(n 對不起,查無此人 !n);doswitch(c) /* 因為當找到第 i 個職工時 ,for 語句后 i 自加了 1, 所以下面 的應該把改后的信息賦值給第
23、i-1 個人 */case 1:printf( 職工號改為 : ); scanf(%s,num);strcpy(emi-1.num,num);break;case 2:printf( 姓名改為 : ); scanf(%s,name);strcpy(,name);break;case 3:printf( 性別改為 : );getchar();scanf(%c,&sex); emi-1.sex=sex;break;case 4:printf(出生年月改為 : );scanf(%s,age);strcpy(emi-1.age,age);break;case 5:printf( 學
24、歷改為 : ); scanf(%s,xueli);strcpy(emi-1.xueli,xueli);break;case 6:printf( 工資改為 : ); scanf(%d,&wage);emi-1.wage=wage;break;case 7:printf( 住址改為 : ); scanf(%s,addr);strcpy(emi-1.addr,addr);break;case 8:printf( 電話改為 : ); scanf(%ld,&tel);emi-1.tel=tel;break;printf(n);printf(n 是否確定所修改的信息 ?n 是 請按 1 ; 不 , 重新修
25、改 請按 2: n);scanf(%d,&b);while(b=2);printf(n 瀏覽修改后的所有職工信息 :n);printf(n);save(m);sav(m);display();printf(n 繼續(xù)修改請按 1 ,不再修改請按 0n);sea nf(%d, &t);switch(t)case 1:modify();break;case 0:break;default :break;五、設計計心得與總設結(jié)通過這次 C 語言的課程設計,我明白了很多也知道了很多,更收獲了很多。 在課程設 計的過程中出現(xiàn)過困難,也想過放棄,最終我們還是堅持了下來,認 真對待,掃破一切困難,勇往直前。一周的課程設計已經(jīng)結(jié)束了?;叵?學習 C 語言的過程中,既有快樂又有煩 惱,回顧這次課程設計,至今我仍感慨頗多,的確,自從 拿到題目到完成整個 編程,從理論到實踐,在整整一個星期的日子里,可以學到很多很多的東西, 同時
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度健康養(yǎng)生類產(chǎn)品包裝設計合同3篇
- 二零二五版租賃房屋租賃合同網(wǎng)絡安全保障協(xié)議4篇
- 2025年度集裝箱裝卸運輸操作規(guī)范合同
- 二零二五年度民間個人借款合同金融創(chuàng)新服務細則
- 二零二五版農(nóng)業(yè)保險代理服務合同范本8篇
- 2025年度房產(chǎn)抵押經(jīng)營性貸款合同樣本
- 2025年南京住建部房屋租賃合同規(guī)范版
- 課題申報參考:面向微生物組中介效應的群落水平關聯(lián)檢驗方法研究
- 課題申報參考:美式“小多邊主義”沖擊下中國伙伴關系的升級與轉(zhuǎn)型研究
- 2025年木材銷售企業(yè)庫存管理服務合同
- 人教版小學數(shù)學一年級上冊小學生口算天天練
- 九年級上冊-備戰(zhàn)2024年中考歷史總復習核心考點與重難點練習(統(tǒng)部編版)
- 三年級數(shù)學添括號去括號加減簡便計算練習400道及答案
- 蘇教版五年級上冊數(shù)學簡便計算300題及答案
- 澳洲牛肉行業(yè)分析
- 老客戶的開發(fā)與技巧課件
- 計算機江蘇對口單招文化綜合理論試卷
- 成人學士學位英語單詞(史上全面)
- KAPPA-實施方法課件
- GB/T 13813-2023煤礦用金屬材料摩擦火花安全性試驗方法和判定規(guī)則
- GB/T 33084-2016大型合金結(jié)構(gòu)鋼鍛件技術條件
評論
0/150
提交評論