




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、華中科技大學(xué)文華學(xué)院信息學(xué)部課程設(shè)計(jì)報(bào)告C語(yǔ)言課程設(shè)計(jì)報(bào)告題 目:職工信息管理系統(tǒng)班 級(jí):電科二班 學(xué)生姓名:錢 浩 宇 學(xué) 號(hào):100110021118指導(dǎo)老師:陳 維日 期: 2011-6-29 目 錄1、 前言.22、需求分析.33、總體設(shè)計(jì).34、詳細(xì)設(shè)計(jì).45、調(diào)試過(guò)程.56、結(jié)束語(yǔ).77、參考文獻(xiàn).78、附錄.81.前言C語(yǔ)言是近年來(lái)在國(guó)內(nèi)外都得到迅速推廣的一種現(xiàn)代通用的程序設(shè)計(jì)語(yǔ)言,它不但具有豐富的數(shù)據(jù)類型與運(yùn)算符、靈活的控制結(jié)構(gòu)、簡(jiǎn)潔而高效的表達(dá)式、清晰的程序結(jié)構(gòu)和良好的可移植性等優(yōu)點(diǎn),還具有直接支持計(jì)算機(jī)硬件編程的強(qiáng)大功能。其既具有高級(jí)語(yǔ)言的優(yōu)點(diǎn),有具有低級(jí)語(yǔ)言的優(yōu)點(diǎn),具有完
2、善的結(jié)構(gòu)化、模塊化程序結(jié)構(gòu),是世界最流行、使用最廣泛的高級(jí)程序設(shè)計(jì)語(yǔ)言之一。但由于課堂教學(xué)和實(shí)驗(yàn)的深度和廣度有限,練習(xí)的深度也受到一定的限制。所以開(kāi)設(shè)了課程設(shè)計(jì)這門課。它比教學(xué)實(shí)驗(yàn)復(fù)雜一些,涉及的深度也廣些,這樣便可培養(yǎng)我們學(xué)生實(shí)際分析問(wèn)題、編程和動(dòng)手能力,也可以讓我們更好的掌握C語(yǔ)言這門課程。2.需求分析根據(jù)要設(shè)計(jì)職工信息管理系統(tǒng)可以知道職工數(shù)據(jù)由職工編號(hào)、姓名、部門、職稱、基 本工資、加班工資、獎(jiǎng)金和總工資構(gòu)成。功能要求如下:(1)添加職工的記錄(2)查詢職工(分別按職工編號(hào)和姓名)(3)對(duì)職工數(shù)據(jù)排序(分別按總工資的降序)(4)刪除職工記錄(5)修改職工記錄(6)插入職工信息(7)輸出職
3、工信息表(8)保存職工信息3.總體設(shè)計(jì)根據(jù)上面的需求分析,可以將這個(gè)系統(tǒng)設(shè)計(jì)分為以下模塊:增加職工信息、刪除職工信息、查詢職工信息、修改職工信息、插入職工信息、排序、保存職工信息、顯示職工信息。系統(tǒng)功能模塊如下: 職 工 信 息 管 理 系 統(tǒng) 菜 單 選 擇顯 示 職 工 信 息保 存 職 工 信 息排 序插 入 職 工 信 息修 改 職 工 信 息查 詢 職 工 信 息增 加 職 工 信 息刪 除 職 工 信 息按姓名 按工號(hào) 按姓名 按工號(hào) 按姓名 按工號(hào) 4.詳細(xì)設(shè)計(jì) (1).主函數(shù):創(chuàng)建一個(gè)鏈表,并使用指針。 void main() Link list; FILE *fp; int
4、choose; char ch; int count=0; struct node *p,*r; pintf(tttt職工信息管理系統(tǒng)nttttn); list=(struct node*)malloc(sizeof(struct node); if(!list) printf(n allocate memory failure ); return ; (2).定義各部分功能函數(shù): void Add(Link l) 增加職工信息 void Del(Link l) 刪除職工信息 void Qur(Link l) 查詢職工信息 void Modify(Link l) 修改職工信息 void Ins
5、ert(Link l) 插入職工信息 void Sort(Link l) 排序(3) 菜單函數(shù): void menu() printf(t*n); printf(t* *n); printf(t* 職工信息管理系統(tǒng) *n); printf(t* *n); printf(t* 1 增加職工信息 2 刪除職工信息 *n); printf(t* 3 查詢職工信息 4 修改職工信息 *n); printf(t* 5 插入職工記錄 6 排序 *n); printf(t* 7 保存職工信息 8 顯示職工信息 *n); printf(t* 0 退出系統(tǒng) *n); printf(t* *n); printf(
6、t*n); (4) .輸出中文標(biāo)題函數(shù): void printstart(); void Wrong(); void Nofind(); void printc(); 5、調(diào)試過(guò)程1.主菜單2.增加職工信息3.刪除職工信息4.查詢職工信息5.修改職工信息6.插入職工信息7排序.6.結(jié)束語(yǔ)通過(guò)為期二周的課程設(shè)計(jì)學(xué)習(xí),我對(duì)C語(yǔ)言這門課程有了更深一步的了解。它是計(jì)算機(jī)程序設(shè)計(jì)的重要理論技術(shù)基礎(chǔ),在我們電子科學(xué)與技術(shù)專業(yè)的學(xué)習(xí)中占據(jù)著十分重要的地位。同時(shí)也使我知道,要學(xué)好這門課程,僅學(xué)習(xí)書本上的知識(shí)是不夠的,還要有較強(qiáng)的實(shí)踐能力。因?yàn)槲覀儗W(xué)習(xí)知識(shí)就是為了實(shí)踐。而只有多實(shí)踐,多編寫程序,才能更好的理解與
7、掌握書本上的東西。然而這個(gè)程序還有不足之處,比如說(shuō):界面會(huì)跟隨輸入的數(shù)據(jù)而變得整齊或不整齊等等,這些都是有待改進(jìn)的地方。7.參考文獻(xiàn):1.網(wǎng)站搜索:2.程序設(shè)計(jì)基礎(chǔ)(c語(yǔ)言) 楊有安 陳維 曹慧雅 魯麗 編著3.C程序設(shè)計(jì) 課程設(shè)計(jì) 劉振安,孫 忱 劉燕君 編著4.C語(yǔ)言程序設(shè)計(jì)-實(shí)驗(yàn)指導(dǎo).課程設(shè)計(jì).習(xí)題解答 高濤 陸麗娜 編著5.C語(yǔ)言課程設(shè)計(jì) 案例精編 姜靈芝 余健 編著8.附錄(源程序): #include #include #include int saveflag=0; struct employee char name15; char num10;char sex4; char b
8、m15; char zc20; int gz;int jbgz;int jj;int zgz; typedef struct node struct employee data; struct node *next; Node,*Link; void add(Link l); void disp(Link l); void del(Link l); Node* Locate(Link l,char findmess,char nameornum);void Qur(Link l); void Sort(Link l); void Modify(Link l); void save(Link l
9、); void printe(Node *p); void printstart(); void Wrong(); void Nofind(); void printc();void menu()printf(t*n);printf(t* *n);printf(t* 職工信息管理系統(tǒng) *n);printf(t* *n);printf(t* 1 增加職工信息 2 刪除職工信息 *n);printf(t* 3 查詢職工信息 4 修改職工信息 *n);printf(t* 5 插入職工記錄 6 排序 *n);printf(t* 7 保存職工信息 8 顯示職工信息 *n);printf(t* 0 退出系
10、統(tǒng) *n);printf(t* *n);printf(t*n); int count=0; Node *p; p=l-next; if(!p) printf(n=提示:沒(méi)有職工記錄可以顯示!n);return; printf(tttt顯示結(jié)果n); printstart(); printc(); printf(n); while(p) printe(p); p=p-next; printstart(); printf(n); void printstart() printf(-n); void Wrong() printf(n=提示:輸入錯(cuò)誤!n); void Nofind() printf(
11、n=提示:沒(méi)有找到該職工!n); void printc() printf(工號(hào)t 姓名 性別 部門 職稱 工資 加班工資 獎(jiǎng)金 總工資n); void printe(Node *p) printf(%-12s%st%st%st%st%dt%dt%dt%dn,p-data.num,,p-data.sex,p-data.bm,p-data.zc,p-data.gz,p-data.jbgz,p-data.jj,p-data.zgz); Node* Locate(Link l,char findmess,char zcornum) Node *r; if(strcmp(zcor
12、num,num)=0) r=l-next; while(r!=NULL) if(strcmp(r-data.num,findmess)=0) return r; r=r-next; else if(strcmp(zcornum,zc)=0) r=l-next; while(r!=NULL) if(strcmp(r-data.zc,findmess)=0) return r; r=r-next; return 0; void Add(Link l) Node *p,*r,*s; char num10;int flag=0;r=l; s=l-next; while(r-next!=NULL)whi
13、le(1) printf(請(qǐng)你輸入工號(hào)(以0返回上一級(jí)菜單:); scanf(%s,num); if(strcmp(num,0)=0) break; s=l-next;while(s) if(strcmp(s-data.num,num)=0) printf(=提示:工號(hào)為%d的職工已經(jīng)存在,若要修改請(qǐng)你選擇4 修改!n,num); flag=1; break;return ; s=s-next; p=(Node *)malloc(sizeof(Node); strcpy(p-data.num,num); printf(請(qǐng)你輸入姓名:); scanf(%s,); getch
14、ar(); printf(請(qǐng)你輸入性別:); scanf(%s,p-data.sex); getchar(); printf(請(qǐng)你輸入職工所在部門:); scanf(%s,&p-data.bm); getchar(); printf(請(qǐng)你輸入職工職稱:); scanf(%s,&p-data.zc); getchar(); printf(請(qǐng)你輸入職工工資:); scanf(%d,&p-data.gz); getchar();printf(請(qǐng)你輸入職工加班工資:); scanf(%d,&p-data.jbgz); getchar();printf(請(qǐng)你輸入職工獎(jiǎng)金:); scanf(%d,&p-d
15、ata.jj); getchar();p-data.zgz=p-data.gz+p-data.jbgz+p-data.jj; p-next=NULL; r-next=p; r=p; saveflag=1; void Del(Link l) int sel; Node *p,*r; char findmess20; if(!l-next) printf(n=提示:沒(méi)有記錄可以刪除!n); return; printf(n=1按工號(hào)刪除n=2按姓名刪除n); scanf(%d,&sel); if(sel=1) /按工號(hào)刪除 printf(請(qǐng)你輸入要?jiǎng)h除的工號(hào):); scanf(%s,findmes
16、s);p=Locate(l,findmess,num);if(p) r=l; while(r-next!=p) r=r-next; r-next=p-next; free(p); printf(n=提示:該職工已經(jīng)成功刪除!n); saveflag=1; else Nofind(); else if(sel=2) printf(請(qǐng)你輸入要?jiǎng)h除的姓名:); scanf(%s,findmess); p=Locate(l,findmess,name); if(p) r=l; while(r-next!=p) r=r-next; r-next=p-next; /r r-next(p) p-nextfr
17、ee(p); printf(n=提示:該職工已經(jīng)成功刪除!n); saveflag=1; else Nofind(); /if(sel=2)else Wrong(); void Qur(Link l) int sel; char findmess20; Node *p; if(!l-next) printf(n=提示:沒(méi)有資料可以查詢!n); return; printf(n=1按工號(hào)查找n=2按職稱查找n); scanf(%d,&sel); if(sel=1)/* 工號(hào) */ printf(請(qǐng)你輸入要查找的工號(hào):); scanf(%s,findmess); p=Locate(l,findme
18、ss,num); if(p) printf(tttt查找結(jié)果n); printstart(); printc(); printe(p); printstart(); else Nofind(); else if(sel=2) printf(請(qǐng)你輸入要查找的職稱:); scanf(%s,findmess); p=Locate(l,findmess,zc); if(p) printf(tttt查找結(jié)果n); printstart(); printc(); printe(p); printstart(); else Nofind(); else Wrong(); void Modify(Link l
19、) /修改功能 Node *p; char findmess20; if(!l-next) printf(n=提示:沒(méi)有資料可以修改!n); return; printf(請(qǐng)你輸入要修改的職工工號(hào):); scanf(%s,findmess); p=Locate(l,findmess,num); if(p) printf(請(qǐng)你輸入新工號(hào)(原來(lái)是%s):,p-data.num); scanf(%s,p-data.num); printf(請(qǐng)你輸入新姓名(原來(lái)是%s):,); scanf(%s,); getchar(); printf(請(qǐng)你輸入新性別(原來(lái)
20、是%s):,p-data.sex); scanf(%s,p-data.sex); getchar(); printf(請(qǐng)你輸入新的部門(原來(lái)是%s):,p-data.bm); scanf(%s,&p-data.bm); printf(請(qǐng)你輸入新的職稱(原來(lái)是%s):,p-data.zc); scanf(%s,&p-data.zc); getchar(); printf(請(qǐng)你輸入新的工資(原來(lái)是%d):,p-data.gz); scanf(%d,&p-data.gz); getchar(); printf(請(qǐng)你輸入新的加班工資(原來(lái)是%d):,p-data.jbgz); scanf(%d,&p-
21、data.jbgz); getchar(); printf(請(qǐng)你輸入新的獎(jiǎng)金(原來(lái)是%d):,p-data.jj); scanf(%d,&p-data.jj); getchar(); p-data.zgz=p-data.gz+p-data.jbgz+p-data.jj; printf(n=提示:資料修改成功!n); else Nofind(); void Insert(Link l) Node *s,*r,*p; char ch,new_num10,old_num10; int flag=0; s=l-next; system(cls); Disp(l); while(1) printf(請(qǐng)你
22、輸入已存在的工號(hào)(以0返回上一級(jí)菜單:); scanf(%s,old_num); if(strcmp(old_num,0)=0) return; s=l-next; flag=0; while(s) if(strcmp(s-data.num,old_num)=0) flag=1; break; s=s-next; if(flag=1) break; else getchar();printf(n=The number %s is not existing,try again?(y/n):,old_num); scanf(%c,&ch); if(ch=y|ch=Y) continue; else
23、 return; printf(請(qǐng)你輸入待插入的工號(hào)(以0返回上一級(jí)菜單:); scanf(%s,new_num); if(strcmp(new_num,0)=0) return; s=l-next; while(s) if(strcmp(s-data.num,new_num)=0) printf(=提示:工號(hào)為%s的職工已經(jīng)存在!n,new_num); flag=1; return ; s=s-next; p=(Node *)malloc(sizeof(Node); if(!p) printf(n allocate memory failure ); return ; strcpy(p-da
24、ta.num,new_num); printf(請(qǐng)你輸入姓名:); scanf(%s,); getchar(); printf(請(qǐng)你輸入性別:); scanf(%s,p-data.sex); getchar(); printf(請(qǐng)你輸入部門:); scanf(%s,&p-data.bm); getchar(); printf(請(qǐng)你輸入職稱:); scanf(%s,&p-data.zc); getchar(); printf(請(qǐng)你輸入工資:); scanf(%d,&p-data.gz); getchar(); printf(請(qǐng)你輸入加班工資:); scanf(%d,&p-d
25、ata.jbgz); getchar(); printf(請(qǐng)你輸入獎(jiǎng)金:); scanf(%d,&p-data.jj); getchar(); p-data.zgz=p-data.gz+p-data.jbgz+p-data.jj; p-next=NULL; saveflag=1; r=l-next; while(1) if(strcmp(r-data.num,old_num)=0) p-next=r-next; r-next=p; break; r=r-next; Disp(l); printf(nn); void Sort(Link l) Link ll; Node *p,*rr,*s; i
26、nt i=0; if(l-next=NULL) system(cls); printf(n=Not employee record!n); getchar(); return ; ll=(Node*)malloc(sizeof(Node); if(!ll) printf(n allocate memory failure ); return ; ll-next=NULL; system(cls); Disp(l); p=l-next; while(p) s=(Node*)malloc(sizeof(Node); if(!s) /*s=NULL*/ printf(n allocate memor
27、y failure ); return ; s-data=p-data; s-next=NULL; rr=ll; while(rr-next!=NULL & rr-next-data.zgz=p-data.zgz) rr=rr-next; if(rr-next=NULL) rr-next=s; else s-next=rr-next; rr-next=s; p=p-next; l-next=ll-next; Disp(l); saveflag=1; printf(n =sort complete!n); void Save(Link l) FILE* fp; Node *p; int flag
28、=1,count=0; fp=fopen(employee.txt,wb); if(fp=NULL) printf(n=提示:重新打開(kāi)文件時(shí)發(fā)生錯(cuò)誤!n); return; p=l-next; while(p) if(fwrite(p,sizeof(Node),1,fp)=1) p=p-next; count+; else flag=0; break; if(count0) printf(n=提示:文件保存成功.(有%d條記錄已經(jīng)保存.)n,count); saveflag=0; else system(cls); printf(保存文件失敗,0條記錄被保存!n); fclose(fp); void main() Link list; FILE *fp; int choose; char ch; int count=0; struct node *p,*r; printf(tttt職工信息管理系統(tǒng)nttttn); list=(struct node*)malloc(sizeof(struct node); if(!list) printf(n al
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 圖書講座系列策劃方案計(jì)劃
- 班級(jí)工作計(jì)劃順利推進(jìn)
- 2025年離合器主缸項(xiàng)目合作計(jì)劃書
- 2025年高密度聚乙烯土工膜合作協(xié)議書
- 綠色建筑項(xiàng)目2024年合作意向書
- 金融科技公司風(fēng)控系統(tǒng)設(shè)計(jì)與優(yōu)化措施研究報(bào)告
- 消防維修工程合同協(xié)議書
- 房地產(chǎn)營(yíng)銷合作項(xiàng)目協(xié)議書
- 工業(yè)機(jī)器人班級(jí)文化建設(shè)方案設(shè)計(jì)
- 季度市場(chǎng)營(yíng)銷工作計(jì)劃與執(zhí)行步驟
- 中考數(shù)學(xué)第一輪復(fù)習(xí)經(jīng)典課件
- 《安全原理》習(xí)題庫(kù)及參考答案
- 分離工程授課教案
- 《HSK標(biāo)準(zhǔn)教程3》第10課
- 中醫(yī)康復(fù)治療技術(shù)復(fù)習(xí)試題及答案
- 屈光手術(shù)分類
- 系統(tǒng)上線驗(yàn)收合格證書
- ABO血型鑒定及交叉配血
- 【重慶長(zhǎng)安汽車公司績(jī)效管理現(xiàn)狀、問(wèn)題及優(yōu)化對(duì)策(7600字論文)】
- 計(jì)算機(jī)網(wǎng)絡(luò)畢業(yè)論文3000字
- 孔軸的極限偏差表
評(píng)論
0/150
提交評(píng)論