版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、中國地質(zhì)大學(xué)(武漢)課程設(shè)計(jì)報(bào)告題 目 c語言程序設(shè)計(jì) 姓 名 學(xué) 號 專 業(yè) 統(tǒng)計(jì)學(xué) 所在院系 經(jīng)濟(jì)管理學(xué)院 指導(dǎo)老師 江俊君 日 期 2016/6/11 目 錄目 錄31課程論文題目42程序設(shè)計(jì)思路53功能模塊圖64數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)75算法設(shè)計(jì)86程序代碼97程序運(yùn)行結(jié)果108編程中遇到的困難及解決方法119總結(jié)心得及良好建議1210致謝131課程論文題目職工信息管理系統(tǒng)內(nèi)容:要求職工信息包括職工號、姓名、性別、年齡、學(xué)歷、工資、住址、電話等(職工號不重復(fù))。 功能:實(shí)現(xiàn)簡單的職工工資信息管理,職工工資的基本信息包括編號、姓名、基本工資、獎金、工資總額等 1. 系統(tǒng)以菜單方式工作。2. 職工信
2、息錄入功能(職工信息用文件保存)。3. 職工信息瀏覽功能 。4.職工信息查詢功能。查詢方式。(1)按學(xué)歷查詢。(2)按工號查詢。2程序設(shè)計(jì)思路(1)需求分析系統(tǒng)要以菜單方式工作,因而根據(jù)題目要求,提供鍵盤式選擇菜單實(shí)現(xiàn)功能選擇,職工信息采用文件保存,所以應(yīng)提供文件的輸入、輸出等操作;在程序中需要瀏覽職工的信息,應(yīng)提供顯示、查找、等操作;要實(shí)現(xiàn)職工信息的查詢,則要提供查找功能(包括按學(xué)歷查詢和按工號查詢兩種查詢方式);要實(shí)現(xiàn)職工信息的刪除、修改,則要提供文件記錄的刪除 、修改功能。(2)總體設(shè)計(jì)根據(jù)上面的需求分析,可以將這個(gè)系統(tǒng)設(shè)計(jì)分為以下模塊:職工信息輸入模塊、職工信息瀏覽模塊、職工信息查詢模
3、塊、職工信息刪除與修改模塊(3)數(shù)據(jù)信息建立職工信息結(jié)構(gòu)體,結(jié)構(gòu)體成員包括工號、姓名、性別、年齡、學(xué)歷、工資、住址和電話。Struct employeechar num20;char name8;char sex10;char age10;char xueli30;char wanges10;char tel15;char addr50;emN3功能模塊圖錄入模塊菜單瀏覽模塊學(xué)歷查詢工號查詢查詢模塊4. 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)建立職工信息結(jié)構(gòu)體,結(jié)構(gòu)體成員包括工號、姓名、性別、年齡、學(xué)歷、工資、住址和電話。Struct employeechar num20;/工號char name30;/姓名char
4、sex10;/性別char age10;/年齡char xueli30;/學(xué)歷char wanges10;/工資char tel15;/電話char addr50;住址emN5算法設(shè)計(jì)1.輸入模塊:輸入職工的工號、姓名以及其它的一些職工的相關(guān)信息,通過自己定義的void append()函數(shù)來實(shí)現(xiàn)。2.瀏覽模塊:瀏覽所有職工的相關(guān)信息,通過自己定義的void display()函數(shù)來實(shí)現(xiàn)。 3. 按職工號查詢模塊:可以按職工號來查詢職工的相關(guān)信息,通過自己定義的void search_num()函數(shù)來實(shí)現(xiàn)。 8.按職工的的學(xué)歷查詢模塊:可以按職工的學(xué)歷來查詢職工的相關(guān)信息,通過自己定義的voi
5、d search_xuelil函數(shù)來實(shí)現(xiàn)。4.退出模塊:退出職工信息管理系統(tǒng),通過頭文件windows.h中的exit(0)函數(shù)來實(shí)現(xiàn)。 1. 錄入模塊void append()int i,n;FILE*fp;fp=fopen(employee_list,wb);/倆一起定義fpprintf(請輸入職工個(gè)數(shù) n);scanf(%d,&n);for (i=0;in;i+) printf(請輸入職工號: );scanf(%d,&emi.num);printf(請輸入姓名: );scanf(%s,);getchar(); printf(請輸入性別(f-女 m-男): );scanf(
6、%s,&emi.sex);printf(請輸入年齡: );scanf(%s,&emi.age);printf(請輸入學(xué)歷: );scanf(%s,emi.xueli);printf(請輸入工資: );scanf(%s,&emi.wanges);printf(請輸入住址: );scanf(%s,emi.addr);printf(請輸入電話: );scanf(%s,emi.tel);printf(n); save(n);2.瀏覽模塊void display() int i;int m=load(); printf( 職工號t姓名tt性別tt年齡n);printf( 學(xué)歷tt工資tt住址tt電話n)
7、;for(i=0;im;i+)printf(%dt,emi.num);printf(%st,);printf(%st,emi.sex);printf(%st,emi.age);printf(%st,emi.xueli);printf(%st,emi.wanges);printf(%st,emi.addr);printf(%st,emi.tel);printf(n);2. 查詢模塊void search()int a;printf(n按職工號查詢請按1n按學(xué)歷查詢請按2n返回主菜單請按3n);scanf(%d,&a); switch(a) case 1:printf(按職工號查詢
8、n);search_num();break; case 2:printf(按學(xué)歷查詢n);search_xueli();break; case 3:main();break; default: printf(您輸入有誤,請重新選擇!n); break; (1)按工號查詢void search_num()int num,i,t; int m=load(); /使m=文件輸入的個(gè)數(shù)printf(請輸入要查找的職工號:n); scanf(%d,&num); for(i=0;im;i+) if(num=emi.num) printf(n已找到此人,其記錄為:n); printf( 職工號t姓名tt性別
9、tt年齡n);printf( 學(xué)歷tt工資tt住址tt電話n); printf(%dt,emi.num);printf(%st,);printf(%st,emi.sex);printf(%st,emi.age);printf(%st,emi.xueli);printf(%st,emi.wanges);printf(%st,emi.addr);printf(%st,emi.tel);printf(n);break; if(i=m) /因?yàn)閕=0,i=m就超了printf(n對不起,查無此人n); printf(n); printf(返回查詢函數(shù)請按1,繼續(xù)查詢職工號請按2n);
10、scanf(%d,&t); switch(t) case 1:search();break; case 2:search_num(); break; default:break; (2)按學(xué)歷查找void search_xueli() char xueli30;int i,t; int m=load(); printf(請輸入要查找的學(xué)歷:n); scanf(%s,xueli);for(i=0;im;i+) if(strcmp(emi.xueli,xueli)=0) printf(n已找到,其記錄為:n); printf( 職工號t姓名tt性別tt年齡n);printf( 學(xué)歷tt工資tt住址
11、tt電話n);printf(%dt,emi.num);printf(%st,);printf(%st,emi.sex);printf(%st,emi.age);printf(%st,emi.xueli);printf(%st,emi.wanges);printf(%st,emi.addr);printf(%st,emi.tel);printf(n);if(i=m) printf(n對不起,查無此人n); printf(n); printf(返回查詢函數(shù)請按1,繼續(xù)查詢學(xué)歷請按2n); scanf(%d,&t); switch(t) case 1:search();break;
12、case 2:search_xueli();break; default :break; 6程序代碼#include #include /包括exit(0),無需定義#include #include #define N 100/可以隨便改人數(shù)void append(); /錄入void display(); /瀏覽void search(); /查詢void search_num(); /工號void search_xueli();/學(xué)歷void save(int); /聲明一個(gè)形參 struct employee/定義結(jié)構(gòu)體數(shù)組 全局變量int num;/在search_num for的i
13、f中不行char name30;/省事char sex10;char age10;char xueli30;char wanges10;char tel15;char addr50;emN;void main() int n;n=1;while(n)/用一個(gè)循環(huán)使之能夠返回printf(*職工信息管理系統(tǒng)*n);printf(1.錄入職工信息n);printf(2.瀏覽職工信息n);printf(3.查詢職工信息n);printf(4.退出n);printf(請按功能序號:n);scanf(%d,&n);switch(n)case 1:append();break;case 2:display
14、();break;case 3:search();break;case 4:exit(0);n=0;break ;default:printf(輸入錯誤指令n);printf(n按任意鍵繼續(xù)n);getch();void append()int i,n;FILE*fp;fp=fopen(employee_list,wb);/倆一起定義fpprintf(請輸入職工個(gè)數(shù) n);scanf(%d,&n);for (i=0;in;i+) printf(請輸入職工號: );scanf(%d,&emi.num);printf(請輸入姓名: );scanf(%s,);getchar(); p
15、rintf(請輸入性別(f-女 m-男): );scanf(%s,&emi.sex);printf(請輸入年齡: );scanf(%s,&emi.age);printf(請輸入學(xué)歷: );scanf(%s,emi.xueli);printf(請輸入工資: );scanf(%s,&emi.wanges);printf(請輸入住址: );scanf(%s,emi.addr);printf(請輸入電話: );scanf(%s,emi.tel);printf(n); save(n);void save(int n)/save函數(shù)save了多少個(gè)FILE*fp;int i;if(fp=fopen(emp
16、loyee_list,wb)=NULL) /能否以寫的形式打開,wb2進(jìn)制 printf (cannot open filen);exit(0); for(i=0;in;i+)if(fwrite(&emi,sizeof(struct employee),1,fp)!=1)/printf(file write errorn);fclose(fp); int load()/數(shù)出錄入的個(gè)數(shù) FILE*fp; int i; if(fp=fopen(employee_list,rb)=NULL) printf (cannot open filen); exit(0); for(i=0;!feof(fp)
17、;i+)/feof檢查文件是否結(jié)束,結(jié)束時(shí)返回非零值 fread(&emi,sizeof(struct employee),1,fp);/以二進(jìn)制向文件讀寫數(shù)據(jù),地址,字節(jié),讀多少個(gè)數(shù)據(jù),文件指針fclose(fp);return(i); void display() int i;int m=load(); printf( 職工號t姓名tt性別tt年齡n);printf( 學(xué)歷tt工資tt住址tt電話n);for(i=0;im;i+)printf(%dt,emi.num);printf(%st,);printf(%st,emi.sex);printf(%st,emi.age);
18、printf(%st,emi.xueli);printf(%st,emi.wanges);printf(%st,emi.addr);printf(%st,emi.tel);printf(n);void search()int a;printf(n按職工號查詢請按1n按學(xué)歷查詢請按2n返回主菜單請按3n);scanf(%d,&a); switch(a) case 1:printf(按職工號查詢n);search_num();break; case 2:printf(按學(xué)歷查詢n);search_xueli();break; case 3:main();break; default: printf
19、(您輸入有誤,請重新選擇!n); break; void search_num()int num,i,t; int m=load(); /使m=文件輸入的個(gè)數(shù)printf(請輸入要查找的職工號:n); scanf(%d,&num); for(i=0;im;i+) if(num=emi.num) printf(n已找到此人,其記錄為:n); printf( 職工號t姓名tt性別tt年齡n);printf( 學(xué)歷tt工資tt住址tt電話n); printf(%dt,emi.num);printf(%st,);printf(%st,emi.sex);printf(%st,emi.ag
20、e);printf(%st,emi.xueli);printf(%st,emi.wanges);printf(%st,emi.addr);printf(%st,emi.tel);printf(n);break; if(i=m) /因?yàn)閕=0,i=m就超了printf(n對不起,查無此人n); printf(n); printf(返回查詢函數(shù)請按1,繼續(xù)查詢職工號請按2n); scanf(%d,&t); switch(t) case 1:search();break; case 2:search_num(); break; default:break; void search_xueli() c
21、har xueli30;int i,t; int m=load(); printf(請輸入要查找的學(xué)歷:n); scanf(%s,xueli);for(i=0;im;i+) if(strcmp(emi.xueli,xueli)=0) printf(n已找到,其記錄為:n); printf( 職工號t姓名tt性別tt年齡n);printf( 學(xué)歷tt工資tt住址tt電話n);printf(%dt,emi.num);printf(%st,);printf(%st,emi.sex);printf(%st,emi.age);printf(%st,emi.xueli);printf(%s
22、t,emi.wanges);printf(%st,emi.addr);printf(%st,emi.tel);printf(n);if(i=m) printf(n對不起,查無此人n); printf(n); printf(返回查詢函數(shù)請按1,繼續(xù)查詢學(xué)歷請按2n); scanf(%d,&t); switch(t) case 1:search();break; case 2:search_xueli();break; default :break; 7程序運(yùn)行結(jié)果1.運(yùn)行程序菜單模塊初始化,如圖1. 按1進(jìn)入職工信息錄入模塊,輸入職工信息工號007,姓名007,性別M,年齡30,學(xué)歷zhongguodizhidaxue,工資9999,住址beiqu21d電話如圖2. 在輸入完N個(gè)數(shù)據(jù)后,按2進(jìn)入職工信息瀏覽模塊,看到信息3. 按3進(jìn)入職工查詢模塊,如圖按1進(jìn)入按職工號查詢模塊,輸入007查詢,如圖按2進(jìn)入學(xué)歷查詢模塊,輸入zhongguodizhidaxue,如圖按1返回查詢函數(shù),按4退出,如圖8編程中遇到的困難及解決方法這一次老師讓我們從第8題和第21題中選,瞄了兩眼,決定選職工信息管理第8題,沒想到這么難弄,足足用了兩周時(shí)間才搞定。上機(jī)好幾次之后,遇到一些小問題
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年車輛年檢服務(wù)協(xié)議
- 二零二五年度墳?zāi)惯w移與墓園環(huán)境整治合作協(xié)議
- 二零二五年度互聯(lián)網(wǎng)企業(yè)股權(quán)激勵與員工股權(quán)收益權(quán)合同3篇
- 2024年貨車租賃搬運(yùn)合同樣本
- 2024年生物醫(yī)藥技術(shù)研發(fā)合作合同
- 2025年度小型船舶買賣及船舶交易信用保證合同3篇
- 2024沈陽房屋買賣合同附帶相鄰權(quán)及土地使用協(xié)議2篇
- 2024年綠色環(huán)保墻紙進(jìn)出口貿(mào)易合同3篇
- 2024版離婚協(xié)議書起草與婚姻咨詢服務(wù)協(xié)議
- 2024年船用空調(diào)設(shè)備維修與保養(yǎng)合同
- 湖南2025年湖南省生態(tài)環(huán)境廳直屬事業(yè)單位招聘44人筆試歷年參考題庫附帶答案詳解
- 福建省部分地市2023-2024學(xué)年高三上學(xué)期第一次質(zhì)量檢測(期末)生物 含解析
- (新版):中國卒中學(xué)會急性缺血性卒中再灌注治療指南
- 人工智能在體育訓(xùn)練中的應(yīng)用
- 2024-2030年中國液態(tài)金屬行業(yè)市場分析報(bào)告
- 高二上學(xué)期數(shù)學(xué)北師大版(2019)期末模擬測試卷A卷(含解析)
- 中考語文真題專題復(fù)習(xí) 小說閱讀(第01期)(解析版)
- GB 45067-2024特種設(shè)備重大事故隱患判定準(zhǔn)則
- 《陸上風(fēng)電場工程概算定額》NBT 31010-2019
- 生物醫(yī)學(xué)電子學(xué)智慧樹知到期末考試答案章節(jié)答案2024年天津大學(xué)
- 幸福創(chuàng)業(yè)智慧樹知到期末考試答案章節(jié)答案2024年山東大學(xué)
評論
0/150
提交評論