版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、程序設計課程設計報告職工信息管理系統(tǒng)設計專業(yè)計算機科學與技術(軟件工程(NIIT)學生姓名班級學號指導教師完成日期2011年7月目 錄1 課程設計目的12 課程設計內(nèi)容13設計流程圖14源程序清單15 小結7職工信息管理系統(tǒng)的設計1 課程設計目的 1.加深對C語言程序設計課程知識的理解,掌握C語言應用程序的開發(fā)方法和步驟;2.進一步掌握和利用C語言進行程序設計的能力;3.進一步理解和運用結構化程序設計的思想和方法;4.初步掌握開發(fā)一個小型實用系統(tǒng)的基本方法;5.學會跳是一個較長程序的基本方法;6.學會利用流程圖火N-S圖表示算法;7.掌握書寫長須設計開發(fā)文檔的能力(書寫課程設計報告)2 課程設
2、計內(nèi)容設計職工信息管理系統(tǒng),要求職工心想包括職工號、姓名、性別、年齡、學歷、工資、住址、電話等(職工號不重復)。設計一職工信息管理系統(tǒng),使之能提供以下功能:(6)系統(tǒng)以菜單方式工作(7)職工信息錄入功能(職工信息用文件保存)-輸入(8)職工信息瀏覽功能-輸出(9)查詢和排序功能(至少一種查詢方式)-算法(10)按工資查詢(11)按學歷查詢等(12)職工信息刪除、修改功能(任選項) 3設計流程圖 開始菜單根據(jù)菜單輸入的n選擇程序錄入職工信息瀏覽職工信息查詢職工信息刪除職工信息添加職工信息修改職工信息退出保存是否繼續(xù)進行結束(1) 菜單函數(shù)void menu() /*菜單函數(shù)*/ printf(
3、計算機科學與技術 軟件技術n);printf(n); printf( 1010704422 楊婷婷n); printf(n); printf( *職工信息管理*n); printf( 1.錄入職工信息); printf( 2.瀏覽職工信息n); printf( 3.查詢職工信息); printf( 4.刪除職工信息n); printf( 5.添加職工信息); printf( 6.修改職工信息n); printf( 7.退出n); printf( *謝謝使用*n); printf(n); printf(n);(2)錄入職工信息void append() if(fp=fopen(worker.xl
4、s,a)=NULL) printf(n不能打開該文件!);exit();printf(n請輸入添加職工信息(姓名、職工號、性別、年齡、學歷、職位、工資、電話、地址)n);scanf(%s%s%s%s%s%s%s%s%s,,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);fprintf(fp,%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn,,one.num,one.sex,one.age,one.record,one.pos
5、ition,one.wanges,one.tel,one.addr);fclose(fp); (3)查詢職工信息 數(shù)據(jù)查找共分為職工號、姓名等方式查找void search() int l;printf(tttt姓名查找按:1n);printf(tttt學歷查找按:2n);printf(tttt職工號查按:3n);scanf(%d,&l);if(l0&l4)switch(l)case 1:nameway();break;case 2:xueliway();break;case 3:numway();break; printf(nn操作完畢!);else printf(tttt輸入有誤!);vo
6、id nameway()int k=0;char nam8;printf(n請輸入您要查找的職工姓名:);scanf(%s,nam);if(fp=fopen(worker.xls,rb)=NULL) printf(n不能打開文件!);exit();while(!feof(fp)fscanf(fp,%s%s%s%s%s%s%s%s%sn,,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);if(strcmp(nam,)=0)printf(nn已查到,記錄為:);
7、printf(n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn,,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);k=1;if(k=0)printf(nn對不起,查無此人!。);fclose(fp);void xueliway()int j=0;char xueli10;printf(tttt輸入你要查詢的學歷n);scanf(%s,xueli);if(fp=fopen(worker.xls,rb)=NULL) printf(n不能打開文
8、件!);exit();while(!feof(fp)fscanf(fp,%s%s%s%s%s%s%s%s%sn,,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);if(strcmp(xueli,one.record)=0)printf(nn已查到,記錄為:);printf(n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn,,one.num,one.sex,one.age,one.record,one.position,on
9、e.wanges,one.tel,one.addr);j=1;if(j=0)printf(nn對不起,查無此人!。);fclose(fp);void numway() int i=0; char numb10;printf(tttt輸入你要查詢的職工號n);scanf(%s,numb);if(fp=fopen(worker.xls,rb)=NULL) printf(n不能打開文件!);exit();while(!feof(fp)fscanf(fp,%s%s%s%s%s%s%s%s%sn,,one.num,one.sex,one.age,one.record,one.positi
10、on,one.wanges,one.tel,one.addr);if(!strcmp(numb,one.num)printf(nn已查到,記錄為:);printf(n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn,,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);i=1;if(!i)printf(nn對不起,查無此人!。);fclose(fp);(4)修改職工信息void modify() int m,k=0;long a;char na
11、mekey8;printf(n請輸入您要修改的職工的姓名:);scanf(%s,namekey);if(fp=fopen(worker.xls,r+)=NULL) printf(n不能打開該文件!);exit();while(!feof(fp)a=ftell(fp); fscanf(fp,%s%s%s%s%s%s%s%s%sn,,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);if(!strcmp(namekey,)k=1;break;if(k)printf
12、(n已查到,記錄為:);printf(n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn,,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);printf(n請輸入信息(按照姓名、工號、性別、年齡、學歷、職位、工資、電話、地址的順序輸入):);scanf(%s%s%s%s%s%s%s%s%s,,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,
13、one.addr);fseek(fp,a,0);fprintf(fp,%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn,,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);elseprintf(n對不起,查無此人,無法進行修改。);fclose(fp); (5)刪除職工信息void delete()int m,k=0;long a,b;char namekey8, valid4;printf(n請輸入您要刪除的職工姓名:);scanf(%s,
14、namekey);if(fp=fopen(worker.xls,r+)=NULL) printf(n不能打開該文件!);exit();while(!feof(fp)a=ftell(fp); fscanf(fp,%s%s%s%s%s%s%s%s%sn,,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);if(strcmp(namekey,)=0)k=1;break;if(k=1)printf(n已查到,記錄為);printf(n%-10s%-8s%-5s%-5s
15、%-10s%-8s%-8s%-10s%-15sn,,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);printf(n確實要刪除,按1;不刪除,按0:);scanf(%d,&m);if(m=1)fseek(fp,a,0);fprintf(fp,%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn ,);elseprintf(n對不起,查無此人。);fclose(fp); (6)數(shù)據(jù)輸出void output() if(fp=fopen(worke
16、r.xls,r)=NULL) printf(n不能打開該文件!);exit();printf(nn%20sn,職工信息管理系統(tǒng));while(!feof(fp)fscanf(fp,%s%s%s%s%s%s%s%s%sn,,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);printf(%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn,,one.num,one.sex,one.age,one.record,one.positio
17、n,one.wanges,one.tel,one.addr);fclose(fp);4源程序清單#include #include #include #include #define N 100struct employee int num; char name10; char sex; int age; char xueli30; int wage; char addr30; long int tel;em100; /*定義一個結構體*/void menu();void input();void save(int);void display();void del();void add();v
18、oid search();void search_num();void search_xueli();void search_tel();void modify(); /*定義各函數(shù)*/void menu() /*菜單函數(shù)*/ printf( 計算機科學與技術 軟件技術n); printf(n); printf( 1010704422 楊婷婷n); printf(n); printf( *職工信息管理*n); printf( 1.錄入職工信息); printf( 2.瀏覽職工信息n); printf( 3.查詢職工信息); printf( 4.刪除職工信息n); printf( 5.添加職工信
19、息); printf( 6.修改職工信息n); printf( 7.退出n); printf( *謝謝使用*n); printf(n); printf(n);void main() menu(); /*調(diào)用菜單函數(shù)*/ int n,flag; char a; do printf(請選擇你需要操作的步驟(1-7):n); scanf(%d,&n); if(n=1&n=7) flag=1; break; else flag=0; printf(您輸入有誤,請重新選擇!); while(flag=0); while(flag=1) switch(n) case 1:printf( 輸入職工信息n);
20、printf(n);input();break; case 2:printf( 瀏覽職工信息n);printf(n);display();break; case 3:printf( 按職工號查詢職工信息n);printf(n);search();break; case 4:printf( 刪除職工信息n);printf(n);del();break; case 5:printf( 添加職工信息n);printf(n);add();break; case 6:printf( 修改職工信息n);printf(n);modify();break; case 7:exit(0);break; defa
21、ult :break; getchar(); printf(n); printf(是否繼續(xù)進行(y or n):n); scanf(%c,&a); if(a=y) flag=1; menu(); /*調(diào)用菜單函數(shù)*/ printf(請再次選擇你需要操作的步驟(1-6):n); scanf(%d,&n); printf(n); else exit(0); void input() /*錄入函數(shù)*/ int i,m; printf(請輸入需要創(chuàng)建信息的職工人數(shù)(1-100):n); scanf(%d,&m); for (i=0;im;i+) printf(職工號: ); if(emi.num!=e
22、mi-1.num) printf(%8d ,emi.num); printf(n); printf(請輸入姓名: ); scanf(%s,); getchar(); printf(請輸入性別(f-女 m-男): ); scanf(%c,&emi.sex); printf(請輸入年齡: ); scanf(%d,&emi.age); printf(請輸入學歷: ); scanf(%s,emi.xueli); printf(請輸入工資: ); scanf(%d,&emi.wage); printf(請輸入住址: ); scanf(%s,emi.addr); printf(請輸入電話:
23、 ); scanf(%d,&emi.tel); printf(n); printf(n創(chuàng)建完畢!n); save(m);void save(int m) /*保存文件函數(shù)*/ int i; FILE*fp; if (fp=fopen(employee_list,wb)=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 writ
24、e errorn); fclose(fp);int load() /*導入函數(shù)*/ FILE*fp; int i=0; if(fp=fopen(employee_list,rb)=NULL) printf (cannot open filen); exit(0); else do fread(&emi,sizeof(struct employee),1,fp); i+; while(feof(fp)=0); fclose(fp); return(i-1);void display() /*瀏覽函數(shù)*/ int i; int m=load(); printf(n 職工號t姓名t性別t年齡t學歷t
25、工資t住址t電話 n); for(i=0;im;i+) /*m為輸入部分的職工人數(shù)*/ printf(n %dt%st%ct%dt%st%dt%st%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(); /* 調(diào)用瀏覽函數(shù)*/ printf(n); printf(請輸入要刪除的職工的姓名:n); scanf(%
26、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%dt%st%ct%dt%st%dt%st%ldn,emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel); printf(n確實要刪除此人信息請按1,不刪除請按0n); scanf(%d,&n); if(n=1) /*如果刪除,則其他的信息都往上移
27、一行*/ for(j=i;jm-1;j+) strcpy(,emj+1.name); emj.num=emj+1.num; emj.sex=emj+1.sex; emj.age=emj+1.age; strcpy(emj.xueli,emj+1.xueli); emj.wage=emj+1.wage; strcpy(emj.addr,emj+1.addr); emj.tel=emj+1.tel; flag=0; if(!flag) m=m-1; else printf(n對不起,查無此人!n); printf(n 瀏覽刪除后的所有職工信息:n); save(m); /*調(diào)用保存
28、函數(shù)*/ display(); /*調(diào)用瀏覽函數(shù)*/ printf(n繼續(xù)刪除請按1,不再刪除請按0n); scanf(%d,&t); switch(t) case 1:del();break; case 0:break; default :break; void add()/*添加函數(shù)*/ FILE*fp; int n; int count=0; int i; int m=load(); printf(n 原來的職工信息:n); display(); /* 調(diào)用瀏覽函數(shù)*/ printf(n); fp=fopen(emploee_list,a); printf(請輸入想增加的職工數(shù):n);
29、scanf(%d,&n); for (i=m;i=1&t=4) flag=1; break; else flag=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();break; case 4:main();break; default:break; void search_
30、num() int num; int i,t; int m=load(); printf(請輸入要查找的職工號(20001111-20009999):n); scanf(%d,&num); for(i=0;im;i+) if(num=emi.num) printf(n已找到此人,其記錄為:n); printf(n職工號t姓名t性別t年齡t學歷t工資t住址t電話 n); printf(n%dt%st%ct%dt%st%dt%st%ldn,emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel); break; if
31、(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+) if(strcmp(emi.xueli,xueli)=0) printf(n已找到,其記錄
32、為:n); printf(n職工號t姓名t性別t年齡t學歷t工資t住址t電話 n); printf(n%dt%st%ct%dt%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 1:search();break; case 2:break; default :break; void s
33、earch_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%dt%st%ct%dt%st%dt%st%ldn,emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel); break; if(i=m)
34、 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ù)*/ int num; char name10; char sex; int age; char xueli30; int wage; char addr30; long int 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); do switch(c) /*因為當找到第i個職工時,for語句后i自加了1,所以下面的應該把改后的信息賦值給第
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年IT科技公司營銷經(jīng)理職業(yè)技能筆試內(nèi)容
- 2025年企業(yè)質(zhì)量保證手冊
- 物流倉儲信息化建設與運營手冊
- 醫(yī)療器械使用與維護培訓手冊(標準版)
- 顧客服務禮儀與規(guī)范指南(標準版)
- 船舶運輸安全操作指南(標準版)
- 金融支付業(yè)務操作流程手冊(標準版)
- 2025年能源項目審批與驗收指南
- 2025年企業(yè)員工培訓項目執(zhí)行手冊
- 2025年企業(yè)環(huán)保管理與評估手冊
- 《認識時鐘》大班數(shù)學教案
- 攜程推廣模式方案
- THHPA 001-2024 盆底康復管理質(zhì)量評價指標體系
- JGT138-2010 建筑玻璃點支承裝置
- 垃圾清運服務投標方案(技術方案)
- 顱鼻眶溝通惡性腫瘤的治療及護理
- 光速測量實驗講義
- 斷橋鋁合金門窗施工組織設計
- 新蘇教版六年級科學上冊第一單元《物質(zhì)的變化》全部教案
- 四川山體滑坡地質(zhì)勘察報告
- 工程結算書(設備及安裝類)
評論
0/150
提交評論