C語(yǔ)言課程設(shè)計(jì)報(bào)告-職工信息管理系統(tǒng)1.doc
《C語(yǔ)言課程設(shè)計(jì)報(bào)告-職工信息管理系統(tǒng)1.doc》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《C語(yǔ)言課程設(shè)計(jì)報(bào)告-職工信息管理系統(tǒng)1.doc(18頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、C語(yǔ)言課程設(shè)計(jì)報(bào)告題 目: 職工信息管理系統(tǒng)院系名稱(chēng): 通信與信息工程學(xué)院 專(zhuān)業(yè)名稱(chēng): 信息工程班 級(jí): 學(xué)生姓名: 學(xué)號(hào)(8位): 指導(dǎo)教師: 設(shè)計(jì)起止時(shí)間:2011年06月13日2011年06月22日一. 設(shè)計(jì)目的 加深對(duì)程序設(shè)計(jì)課程所學(xué)的理解,進(jìn)一步鞏固c語(yǔ)言知識(shí),學(xué)會(huì)獨(dú)立完成一定規(guī)模的系統(tǒng)編寫(xiě),深化知識(shí),學(xué)以致用二. 設(shè)計(jì)內(nèi)容在熟練掌握C語(yǔ)言的基本知識(shí),例如:數(shù)據(jù)類(lèi)型(包括整形、實(shí)型、字符型、指針、數(shù)組、結(jié)構(gòu)等);運(yùn)算類(lèi)型(包括算術(shù)運(yùn)算、邏輯運(yùn)算、自增自減運(yùn)算、賦值運(yùn)算等);程序結(jié)構(gòu)(包括順序結(jié)構(gòu)、判斷選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu));大程序的功能分解方法(即函數(shù)的使用)等的同時(shí)。進(jìn)一步掌握各種函
2、數(shù)的應(yīng)用,包括時(shí)間函數(shù)、繪圖函數(shù),以及文件的讀寫(xiě)操作等。三概要設(shè)計(jì)1 功能模塊圖; (1)主函數(shù)main (8)查詢(xún)信息模塊(2)密碼模塊 (9)按姓名查詢(xún)模塊 (3)進(jìn)入菜單函數(shù) (10)按職稱(chēng)查詢(xún)模塊(4)錄入信息模塊 (11)排序模塊(5)刪除信息模塊 (12)按姓氏首字母排序(6)修改信息模塊 (13)按基本工資排序(7)退出系統(tǒng)模塊 (14)添加信息模塊 (15)保存文件模塊 2各個(gè)模塊詳細(xì)的功能描述。A.錄入職工信息,首先確定錄入人數(shù),按步驟輸入職工信息(工號(hào)、姓名、職稱(chēng)、基本工資、獎(jiǎng)金、實(shí)際工資、生日、學(xué)歷、電話(huà)、地址)B.瀏覽職工信息,按照錄入信息依次顯示C.修改職工信息,輸入
3、要修改職工姓名,選擇要修改的信息D.刪除職工信息,輸入要修改職工姓名,確認(rèn)后生效E.查詢(xún)職工信息,選擇輸入姓名或職稱(chēng),顯示職工信息F.職工信息排序,選擇排序方式,一種按照姓氏首字母,另一種按基本工資G.添加職工信息,首先確定添加人數(shù),按步驟輸入職工信息H.退出系統(tǒng) 職工 信息管理系統(tǒng)密碼輸入錄 入 職 工 信 息瀏 覽 職 工 信 息修 改 職 工信 息刪 除職 工信 息查 詢(xún)職 工信 息職 工信 息排 序添 加職 工信 息退 出 職稱(chēng)查詢(xún)姓名查詢(xún)按姓名排序按基本工資排序 四詳細(xì)設(shè)計(jì)1功能函數(shù)的調(diào)用關(guān)系圖;2各功能函數(shù)的數(shù)據(jù)流程圖;3重點(diǎn)設(shè)計(jì)及編碼。頭文件#include #include #
4、include 數(shù)據(jù)類(lèi)型struct workerint num;char name100;char zhicheng50; int wages;int reward;long birth;int salary;char xueli50;char tele50;char address50; work500,work1; /*定義結(jié)構(gòu)體*/函數(shù)說(shuō)明void main(); /主函數(shù)void menu(); /聲明菜單函數(shù)void type_in(); /聲明錄入函數(shù)void baocun(int); /聲明保存函數(shù)void scan(); /聲明瀏覽函數(shù)void del(); /聲明刪除函數(shù)v
5、oid search(); /聲明查詢(xún)函數(shù)void search_zhicheng(); /聲明按職稱(chēng)查詢(xún)函數(shù)void search_name(); /聲明按姓名查找函數(shù)void change(); /聲明修改函數(shù)void order(); /聲明排序函數(shù)void order_wages(); /聲明按工資排序void order_name(); /聲明按姓名(首字母順序)排序void add(); /聲明添加函數(shù)五測(cè)試數(shù)據(jù)及運(yùn)行結(jié)果1正常測(cè)試數(shù)據(jù)(3組)及運(yùn)行結(jié)果;2非正常測(cè)試數(shù)據(jù)(2組)及運(yùn)行結(jié)果。六調(diào)試情況,設(shè)計(jì)技巧及體會(huì)1對(duì)自己的設(shè)計(jì)進(jìn)行評(píng)價(jià),指出合理和不足之處,提出改進(jìn)方案.基本完成
6、課程設(shè)計(jì)要求,設(shè)計(jì)簡(jiǎn)煉,可讀性強(qiáng),但是職工信息不夠全面,要達(dá)到用戶(hù)滿(mǎn)意還有許多需要完善之處,同時(shí)如果采用鏈表的方法,增加密碼難度,層次會(huì)高些2對(duì)設(shè)計(jì)及調(diào)試過(guò)程的心得體會(huì)。在本程序的設(shè)計(jì)過(guò)程中深刻體會(huì)到了程序是建立在數(shù)據(jù)結(jié)構(gòu)之上的。程序中的所有算法都要圍繞著自己所定義的抽象數(shù)據(jù)類(lèi)型來(lái)設(shè)計(jì)。由此可見(jiàn)在設(shè)計(jì)程序時(shí),定義一個(gè)好的數(shù)據(jù)結(jié)構(gòu)尤為重要。在此程序設(shè)計(jì)過(guò)程中也增強(qiáng)了對(duì)一些算法的了解以及運(yùn)用。但是也發(fā)現(xiàn)了自己還有很多不足的地方,要求自己在以后的學(xué)習(xí)中加以改正和提高。七參考文獻(xiàn)c語(yǔ)言程序設(shè)計(jì)(王曙燕,科學(xué)出版社 )八附錄:源代碼(電子版)#include #include #include stru
7、ct workerint num;char name100;char zhicheng50; int wages;int reward;long birth;int salary;char xueli50;char tele50;char address50; work500,work1; /*定義結(jié)構(gòu)體*/void menu(); /聲明菜單函數(shù)void type_in(); /聲明錄入函數(shù)void baocun(int); /聲明保存函數(shù)void scan(); /聲明瀏覽函數(shù)void del(); /聲明刪除函數(shù)void search(); /聲明查詢(xún)函數(shù)void search_zhic
8、heng(); /聲明按職稱(chēng)查詢(xún)函數(shù)void search_name(); /聲明按姓名查找函數(shù)void change(); /聲明修改函數(shù)void order(); /聲明排序函數(shù)void add(); /聲明添加函數(shù)void order_wages();void order_name();void menu() /*菜單函數(shù)*/ printf(n); printf( 歡迎進(jìn)入 n); printf( 職工信息管理系統(tǒng) ); printf(*n); printf( 1.錄入職工信息n); printf( 2.瀏覽職工信息n); printf( 3.查詢(xún)職工信息n); printf( 4.刪除
9、職工信息n); printf( 5.修改職工信息n); printf( 6.職工信息排序n); printf( 7.添加職工信息n); printf( 8.退出n); printf(*n); printf(n); /*/void main() int n,f,count=0; int key=1234; for(count=0;count=1&n=8) f=1; break; else f=0; printf(您輸入有誤,請(qǐng)重新選擇!); while(f=0); switch(n) case 1:printf( 錄入職工信息n);printf(n);type_in();break; case
10、2:printf( 瀏覽職工信息n);printf(n);system(cls);scan();break; case 3:printf( 查詢(xún)職工信息n);printf(n);system(cls);search();break; case 4:printf( 刪除職工信息n);printf(n);system(cls);del();break; case 5:printf( 修改職工信息n);printf(n);system(cls);change();break; case 6:printf( 職工信息排序n);printf(n);system(cls);order();break; c
11、ase 7:printf( 添加職工信息n);printf(n);system(sls);add();break; case 8:goto loop ;/*用goto語(yǔ)句跳至跳至指定的行*/ default :break ; loop:/行標(biāo) system(cls); printf(nnnnnn -謝謝使用!祝您工作順利-nnnnnn);/*/void type_in() /*錄入函數(shù)*/ int i,m,t1,t2; printf(請(qǐng)輸入需要?jiǎng)?chuàng)建信息的職工人數(shù)(1-500):n); scanf(%d,&m); for (i=0;im;i+) printf(請(qǐng)輸入職工號(hào): ); scanf(%
12、d,&worki.num); printf(n); printf(請(qǐng)輸入姓名: ); scanf(%s,worki.name); getchar(); printf(請(qǐng)輸入職稱(chēng):0.職員1.主任 2.經(jīng)理3.總監(jiān) 4.董事長(zhǎng) ); printf(請(qǐng)輸入序號(hào)(0-4):); scanf(%d,&t1); if(t1=0)strcpy(worki.zhicheng,職員); if(t1=1)strcpy(worki.zhicheng,主任); if(t1=2)strcpy(worki.zhicheng,經(jīng)理); if(t1=3) strcpy(worki.zhicheng,總監(jiān)); if(t1=4
13、) strcpy(worki.zhicheng,董事長(zhǎng)); printf(請(qǐng)輸入基本工資: ); scanf(%d,&worki.wages); printf(請(qǐng)輸入獎(jiǎng)金: ); scanf(%d,&worki.reward); printf(請(qǐng)輸入生日(格式如19900101): ); scanf(%d,&worki.birth); printf(請(qǐng)輸入學(xué)歷:1.高中2.大學(xué) 3.碩士 4.博士 ); printf(請(qǐng)輸入序號(hào)(1-4):); scanf(%d,&t2); if(t2=1)strcpy(worki.xueli,高中); if(t2=2)strcpy(worki.xueli,大
14、學(xué)); if(t2=3) strcpy(worki.xueli,碩士); if(t2=4) strcpy(worki.xueli,博士); printf(請(qǐng)輸入電話(huà):); scanf(%s,worki.tele ); printf(請(qǐng)輸入地址:); scanf(%s,worki.address); getchar();system(cls); printf(n一個(gè)職工的信息檔案創(chuàng)建完畢!請(qǐng)輸入下一個(gè)職工的信息n); worki.salary=worki.wages + worki.reward; printf(n); baocun(m);/*/void baocun(int m) /*保存文件
15、函數(shù)*/ int i; FILE *fp; if (fp=fopen(E:worker_list.txt,wb)=NULL) /*創(chuàng)建文件并判斷是否能打開(kāi)*/ printf (此文件不能打開(kāi)n); exit(0); for (i=0;im;i+) /*將內(nèi)存中職工的信息輸出到磁盤(pán)文件中去*/ if (fwrite(&worki,sizeof(struct worker),1,fp)!=1) printf(file write errorn); fclose(fp);/*/int load() /*導(dǎo)入函數(shù)*/ FILE*fp; int i=0; if(fp=fopen(E:worker_lis
16、t.txt,rb)=NULL) printf (cannot open filen); exit(0); else do fread(&worki,sizeof(struct worker),1,fp); i+; while(feof(fp)=0);fclose(fp);return(i-1); /*/void scan() /*瀏覽函數(shù)*/int i;int m=load();printf(n職工號(hào)t姓名t職稱(chēng)t基本工資t獎(jiǎng)金t實(shí)際工資t生日t學(xué)歷t電話(huà)t地址 n);for(i=0;im;i+) printf(n %dt%st%st%dt%dt%dt%ldt%st%st%sn,worki.n
17、um,worki.name, worki.zhicheng,worki.wages,worki.reward,worki.salary,worki.birth,worki.xueli,worki.tele,worki.address );printf(按任意鍵繼續(xù)n);getchar();getchar();system(cls);/*/void del() /*刪除函數(shù)*/ int m=load();int i,j,n,t,f;char name110;printf(n 原來(lái)的職工信息:n); scan(); /* 調(diào)用瀏覽函數(shù)*/ printf(n);printf(請(qǐng)輸入要?jiǎng)h除的職工的姓名
18、:n);scanf(%s,name1);for(f=1,i=0;f&im;i+) if(strcmp(worki.name,name1)=0) printf(n已找到此人,原始記錄為:n); printf(n職工號(hào)t姓名t職稱(chēng)t基本工資t獎(jiǎng)金t實(shí)際工資t生日t學(xué)歷t電話(huà)t地址 n); printf(n %dt%st%st%dt%dt%dt%ldt%st%st%s n,worki.num,worki.name, worki.zhicheng,worki.wages,worki.reward,worki.salary,worki.birth,worki.xueli,worki.tele,worki
19、.address ); printf(n確實(shí)要?jiǎng)h除此人信息請(qǐng)按1,不刪除請(qǐng)按0n); scanf(%d,&n); if(n=1) /*如果刪除,則其他的信息都向前移一行*/ for(j=i;j=1&t=3) f=1; break; else f=0; printf(您輸入有誤,請(qǐng)重新選擇!); while(f=0);system(cls); while(f=1) switch(t) case 1:printf(按姓名查詢(xún)n);search_name();break; case 2:printf(按職稱(chēng)查詢(xún)n);search_zhicheng();break; case 3:main();bre
20、ak; default:break; system(cls); /*/void search_name()/*按姓名查找函數(shù)*/ char name110; int i,t; int m=load(); printf(請(qǐng)輸入要查找的姓名:n); scanf(%s,name1); for(i=0;im;i+) if(strcmp(name1,worki.name)=0) printf(n已找到此人,其記錄為:n); printf(n職工號(hào)t姓名t職稱(chēng)t基本工資t獎(jiǎng)金t實(shí)際工資t生日t學(xué)歷t電話(huà)t 地址 n); printf(n %dt%st%st%dt%dt %dt%ldt%st%st%sn,w
21、orki.num,worki.name, worki.zhicheng,worki.wages,worki.reward,worki.salary,worki.birth,worki.xueli,worki.tele,worki.address); break; if(i=m) printf(n對(duì)不起,查無(wú)此人n); printf(n); printf(返回查詢(xún)函數(shù)請(qǐng)按1,繼續(xù)查詢(xún)職工號(hào)請(qǐng)按2n); scanf(%d,&t); switch(t) case 1:search();break; case 2: break; default:break; /*/void search_zhiche
22、ng()/*按職稱(chēng)查找函數(shù)*/ char zhicheng110; int i,t; int m=load(); printf(請(qǐng)輸入要查找的職稱(chēng):n); scanf(%s,zhicheng1); for(i=0;im;i+) if(strcmp(zhicheng1,worki.zhicheng)=0) printf(n已找到此人,其記錄為:n); printf(n職工號(hào)t姓名t職稱(chēng)t基本工資t獎(jiǎng)金t實(shí)際工資t生日 t學(xué)歷t電話(huà)t 地址 n); printf(n %dt%st%st%dt%dt%dt%ldt%st%st%sn,worki.num,worki.name, worki.zhiche
23、ng,worki.wages,worki.reward,worki.salary,worki.birth,worki.xueli,worki.tele,worki.address); break; if(i=m) printf(n對(duì)不起,查無(wú)此人n); printf(n); printf(返回查詢(xún)函數(shù)請(qǐng)按1,繼續(xù)查詢(xún)職工號(hào)請(qǐng)按2n); scanf(%d,&t); switch(t) case 1:search();break; case 2: break; default:break; /*/void change() /*修改函數(shù)*/int num;char name20;char zhic
24、heng50; int wages;int reward;int birth;int salary;char xueli50;char tele50;char address50; int b,c,i,n,t1,t2,f,T; int m=load(); /*導(dǎo)入文件內(nèi)的信息*/ printf(n 原來(lái)的職工信息:n); scan(); /* 調(diào)用瀏覽函數(shù)*/ printf(n); printf(請(qǐng)輸入要修改的職工的姓名:n);scanf(%s,name);for(f=1,i=0;f&i7|c=1&k=3) f=1; break; else f=0; printf(您輸入有誤,請(qǐng)重新選擇!);
25、 while(f=0);system(cls); while(f=1) switch(k) case 1:printf(n按姓名排序?yàn)?字母由小到大排列):n);order_name();break; case 2:printf(n按基本工資排序?yàn)?由高到低排列):n);order_wages();break; case 3:system(cls);main();break; default:break; system(cls); /*/void order_name()/*按姓名排序函數(shù)*/int i,j,k; int m=load(); for(i=0;im-1;i+) for(j=0;j
26、0) work1=workj;workj=workj+1;workj+1=work1; baocun(m);printf(n職工號(hào)t姓名t職稱(chēng)t基本工資t獎(jiǎng)金t實(shí)際工資t生日 t學(xué)歷t電話(huà)t 地址 n);for(j=0;jm;j+) printf(n %dt%st%st%dt%dt%dt%ldt%st%st%sn,workj.num,workj.name, workj.zhicheng,workj.wages,workj.reward,workj.salary,workj.birth,workj.xueli,workj.tele,workj.address );printf(返回排序函數(shù)請(qǐng)按1
27、,返回主菜單請(qǐng)按2n); scanf(%d,&k); switch(k) case 1:order();break; case 2:system(cls); main();break; default:break; system(cls);/*/void order_wages()/*按基本工資排序函數(shù)*/int i,k,j; int m=load(); for(i=0;im-1;i+) for(j=0;jm-1-i;j+) if(workj.wagesworkj+1.wages)/*用冒泡法排序*/ work1=workj;workj=workj+1;workj+1=work1; baocu
28、n(m);printf(n職工號(hào)t姓名t職稱(chēng)t基本工資t獎(jiǎng)金t實(shí)際工資t生日t學(xué)歷t電話(huà)t地址 n);for(j=0;jm;j+) printf(n %dt%st%st%dt%dt%dt%ldt%st%st%sn,workj.num,workj.name, workj.zhicheng,workj.wages,workj.reward,workj.salary,workj.birth,workj.xueli,workj.tele,workj.address );printf(返回排序函數(shù)請(qǐng)按1,返回主菜單請(qǐng)按2n); scanf(%d,&k); switch(k) case 1:order()
29、;break; case 2:system(cls); main();break; default:break; system(cls);/*/void add() /*添加函數(shù)*/ int n=load(); int i,m,t1,t2; printf(請(qǐng)輸入需要添加信息的職工人數(shù)n); scanf(%d,&m); for (i=n;im+n;i+) printf(請(qǐng)輸入職工號(hào): ); scanf(%d,&worki.num); printf(n); printf(請(qǐng)輸入姓名: ); scanf(%s,worki.name); printf(請(qǐng)輸入職稱(chēng):0.職員1.主任 2.經(jīng)理3.總監(jiān) 4
30、.董事長(zhǎng) ); printf(請(qǐng)輸入序號(hào)(0-4):); scanf(%d,&t1); if(t1=0)strcpy(worki.zhicheng,職員); if(t1=1)strcpy(worki.zhicheng,主任); if(t1=2)strcpy(worki.zhicheng,經(jīng)理); if(t1=3) strcpy(worki.zhicheng,總監(jiān)); if(t1=4) strcpy(worki.zhicheng,董事長(zhǎng)); printf(請(qǐng)輸入基本工資: ); scanf(%d,&worki.wages); printf(請(qǐng)輸入獎(jiǎng)金: ); scanf(%d,&worki.re
31、ward); printf(請(qǐng)輸入生日(格式如19900101): ); scanf(%d,&worki.birth); printf(請(qǐng)輸入學(xué)歷:1.高中2.大學(xué) 3.碩士 4.博士 ); printf(請(qǐng)輸入序號(hào)(1-4):); scanf(%d,&t2); if(t2=1)strcpy(worki.xueli,高中); if(t2=2)strcpy(worki.xueli,大學(xué)); if(t2=3) strcpy(worki.xueli,碩士); if(t2=4) strcpy(worki.xueli,博士); printf(請(qǐng)輸入電話(huà):); scanf(%s,worki.tele); printf(請(qǐng)輸入地址:); scanf(%s,worki.address); getchar();system(cls); printf(n一個(gè)職工的信息檔案添加完畢!請(qǐng)輸入下一個(gè)職工的信息n); worki.salary=worki.wages + worki.reward; printf(n); baocun(m+n);system(cls); printf(添加職工檔案完成。n這時(shí)庫(kù)存信息為:n); scan();
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代文閱讀之小說(shuō)人物形象課件
- 3第12課蘇東的艱難探索
- 《第二節(jié)--探究環(huán)境污染對(duì)生物的影響》課件-(同課異構(gòu))2022年課件
- 牛津譯林版七下英語(yǔ)7bunit1dreamhomesreading課件1
- 六年級(jí)語(yǔ)文《一個(gè)這樣的老師》教學(xué)課件
- 六年級(jí)安全教育-運(yùn)動(dòng)的自我監(jiān)控課件
- 五年級(jí)下冊(cè)數(shù)學(xué)優(yōu)秀教學(xué)課件《解決問(wèn)題》人教新課標(biāo)
- 27清澈的湖水 (2)
- 49稍復(fù)雜的分?jǐn)?shù)乘法應(yīng)用題練習(xí)
- 江蘇省高考物理二輪復(fù)習(xí)專(zhuān)題一力與物體的平衡課件
- 小松鼠找花生課件(教育精品)
- 22跨越海峽的生命橋 (2)
- 人力資源環(huán)境分析
- 《空氣》課件-(省優(yōu))2022年人教版化學(xué)課件-2
- 鐵路與城市軌道交通振動(dòng)與噪聲