版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、C語言課程設(shè)計題目:職工信息管理系統(tǒng)系另U 計算機信息與技術(shù)系專 業(yè)信息管理與信息系統(tǒng)班級B120605姓名魚鵬鵬學號B12060517導師劉彩虹2015年12月15日一、題目 :職工信息管理系統(tǒng)二、目的和要求目的:要求熟練掌握 C 語言的基本知識和編輯技能; 基本掌握結(jié)構(gòu)化程序設(shè)計的基本思路和方法。要求:設(shè)計一個職工信息管理系統(tǒng),使之能提供以下功能:1、應(yīng)提供一個界面來調(diào)用各個功能 , 調(diào)用界面和各個功能的操作界面 應(yīng)盡可能清晰美觀 !2、輸入功能:職工信息錄入(職工信息用文件保存),可以一次完成 若干條記錄的輸入。3、瀏覽功能:完成對全部職工信息的顯示。4、查找功能:完成按職工的職工號查詢
2、職工的相關(guān)信息,并顯示。 完成按職工的學歷查詢職工的相關(guān)信息,并顯示。 完成按職工的電話號碼查詢職工的相關(guān)信息,并顯 示。5、刪除功能: 通過輸入職工的姓名完成對該名職工的信息進行刪除。6、添加功能:完成添加新職工的信息的任務(wù)。7、修改功能: 通過輸入職工的姓名完成對該名職工的信息進行修改。8、退出職工信息管理系統(tǒng)。三、信息描述 職工信息包括職工號、姓名、性別、年齡、學歷、工資、住址、電話等。四、解決方案1、首先進行需求分析,搞清楚系統(tǒng)功能和任務(wù);2、然后在總體設(shè)計中確定模塊結(jié)構(gòu)、劃分功能模塊,將軟件功能需求分配 給所劃分的最單元模塊。確定模塊間的聯(lián)系,確定數(shù)據(jù)結(jié)構(gòu)、文件結(jié)構(gòu)、數(shù)據(jù)庫 模式,確
3、定測試方法與策略;3、在詳細設(shè)計中,為每個模塊確定采用的算法,選擇適當?shù)墓ぞ弑磉_算法 的過程(流程圖) 來描述模塊的詳細過程。 確定每一模塊采用的數(shù)據(jù)結(jié)構(gòu)和模塊 接口的細節(jié),包括對系統(tǒng)外部的接口和用戶界面,對系統(tǒng)內(nèi)部其他模塊的接口;4、根據(jù)分析編寫C語言代碼。五、進度安排課程設(shè)計時間為兩周,分為五個階段完成:1、分析設(shè)計階段。在老師的指導下自主學習和鉆研問題,明確設(shè)計要求, 找出現(xiàn)實方法。按照需求分析、總體設(shè)計、詳細設(shè)計幾個步驟進行。這一 階段前 1-2 天完成;2、編碼調(diào)試階段。根據(jù)設(shè)計分析方案編寫 C 語言代碼,然后調(diào)試該代碼, 實現(xiàn)課題要求的功能。這一階段在 3-7 天完成;3、總結(jié)報告
4、階段??偨Y(jié)設(shè)計工作,寫出課程設(shè)計說明書,包括需求分析、 總體設(shè)計、詳細設(shè)計、 編碼、測試的步驟和內(nèi)容。 這一階段在 8-9 天完成;4、考核階段。六、寫課程設(shè)計總結(jié) 課程設(shè)計報告要求 總結(jié)報告包括需求分析、 總體設(shè)計、詳細設(shè)計、 編碼(詳細寫出編程步驟) 測試的步驟和內(nèi)容、課程設(shè)計總結(jié)和參考資料等。七、參考資料C程序設(shè)計(第三版) 譚浩強 著 清華大學出版社C程序設(shè)計題解與上機指導(第三版 )譚浩強 編著 清華大學出版社目錄1 .總體設(shè)計方案 32 使用說明及運行實例 53. 項目源程序代碼104. 課程設(shè)計心得23系統(tǒng)的總體流程圖總體設(shè)計方案圖1.系統(tǒng)的總體流程圖二 . 為了方便使用結(jié)構(gòu)此系
5、統(tǒng)結(jié)構(gòu)均為全局類型定義 struct employee/ 定義一個職工信息的結(jié)構(gòu)體int num;char name10;char sex;int age;char xueli30;int wage;char addr30;char tel20; em100;三. 各模塊的功能和實現(xiàn)1. 菜單模塊:顯示職工管理系統(tǒng)的主菜單, 供用戶選擇所需的功能, 通過自己定 義的 void menu() 函數(shù)來實現(xiàn)。2. 輸入模塊:輸入職工的工號、 姓名以及其它的一些職工的相關(guān)信息, 通過自己 定義的 void input() 函數(shù)來實現(xiàn)。3. 保存模塊:將內(nèi)存中職工的信息輸出到磁盤文件中, 可以通過自己定
6、義的 void save(int) 函數(shù)來實現(xiàn)。4. 瀏覽模塊:瀏覽所有職工的相關(guān)信息,通過自己定義的void display ()函數(shù)來實現(xiàn)。5. 刪除模塊:刪除需要刪除的職工的所有信息,通過自己定義的 void del() 函 數(shù)來實現(xiàn)。6. 添加模塊:添加需要添加的職工的相關(guān)信息,通過自己定義的 void add() 函 數(shù)來實現(xiàn)。7. 按職工號查詢模塊:可以按職工號來查詢職工的相關(guān)信息,通過自己定義的 void search_num() 函數(shù)來實現(xiàn)。8. 按職工的的學歷查詢模塊: 可以按職工的學歷來查詢職工的相關(guān)信息, 通過自 己定義的 void search_xuelil 函數(shù)來實現(xiàn)
7、。9. 按職工的電話號碼查詢模塊: 可以按職工的電話來查詢職工的相關(guān)信息, 通過 自己定義的 void search_tel 函數(shù)來實現(xiàn)。10. 修改模塊:可以修改需要修改的職工的相關(guān)信息,通過自己定義的voidmodify ()函數(shù) 來實現(xiàn)。11. 退出系統(tǒng)模塊:退出職工信息管理系統(tǒng), 通過頭文件 windows.h 中的 exit (0) 函數(shù)來實現(xiàn)。使用說明及運行實例1. 運行程序,進入職工信息管理系統(tǒng)的主菜單:*人耳 RT信息管理系統(tǒng) *丄錄入職工信息a.瀏覽職I信息3 -直詢職工信息4 .刪除職I信息5 -諉加職工信息&修改職工信息孔進出、隱再次選擇你需要操作旳步驟“一力:圖1:進入
8、主菜單界面2. 輸入數(shù)字“1”進行錄入職工信息:* jRjffiifi 入KE信息輕1-雖入職工荷貳2 -瀏覽職工信恿3 -查詢職工信息4.除壬言息;曆密職工信息&-修改旺信息NJCMEHJtJCHHMSaOtJCXNNJiENKlif 乂射射4戸超算其艮算珂疋蕈梵梵就覽弭XKiMIKK請選擇你需要操作的步 :1 輸入耳RT信息* 請輸入裾要創(chuàng)建信思的耳RT人數(shù)一陽:1清輸入強工號:1譴輸入姓呂:xiedongxlna請輸入?yún)^(qū)腱-女1-男卅 E 請勒入岳齡=1請輸入學歷:daxuebenke11輔人工資:200請輸入住址m jiangxishen?請輸入電話:1S200871008創(chuàng)建完畢甲是
9、否鄉(xiāng)瞪真進行3葉小圖2:錄入職工信息3. 輸入“ y”返回主菜單(界面同圖1)4. 輸入“ 2”瀏覽職工信息:薔選擇(爪需耍操作的步釀 門:J. 瀏覽職T信息 聰工號年齡1xxedansfxingrm18學歷工資住址電話dacue be n ke20Hj 五 mn 印 xzLm hen :圖3:瀏覽職工信息5. 輸入“y ”后繼續(xù),輸入“ 3 ”進行查詢職工信息:請選擇你需要操作的步驟 : 按職工號直詢職工倍息 按職工寫查詢請按1 ;按學歷查詢請按2 ;按電話號話直詢請按M ;進入主固數(shù)請按4 簷厭童詈垠的職工號已找到此人,其記錄為:職工號年齡1xiedonxingfm18學歷工資住址電話da
10、xue benke2001S2QUS71009腿回查i旬參數(shù)請按1,纟毘續(xù)查詢職工號請按2按職工號查詢謂按空 按學歷查詢謂按罷 按電話號查詢1WJS3 ;進入主剛數(shù)謂按嗎 3按學歷查詢請輸入要查找的學歷:jdaxuebenke已找其記錄為;職工號性年齡1xiedongxingrm18學歷工資住址電話daxuebenke200j lan grxis he n g152008710US圖4:按職工號及學歷查詢職工信息返回查詢團數(shù)請按繼續(xù)查詢學歷j青按21夢職工號査詢請按按學歷苣詢請按器按電話號碼資詢請按矢進入主國數(shù)請按她 按電話昌碼査詢請輸入要査找的電話號碼:152008718M8已找到此人其記錄
11、為:職工號年齡1xiedongxingrFI18學歷工資住址電話daxuebenkc2A0j ianxis hen回疊詢囲數(shù)請按匚繼續(xù)查詢電話皂碼謂按?圖5:按電話號碼查詢職工信息6. 進入主菜單,輸入“ 4”進行刪除職工信息:刪除職工倍患.原來的耳RT信息:年豔1xiedongfxin19學歷工資Sit電話daxuebenke200JiangKisheng152008710&8;青輸入要刪除的職工的姓名=xiedongxing已找到此人J原始記錄為:職工號年齡1xledongx ingA19學歷工資住址電話daxuebenke200jiangxisheng確實要刪除
12、此人信息請按一不刪除請按01測覽刪除后的所有耳信息:職工號年齡學歷工資住址電話*轡刪除請按一不再刪除請按0圖6:刪除職工信息7. 進入主菜單輸入“ 5”進行添加職工信息:“添加職工僧息“原來的耳RI信息: 職工尋xiEdonrxinar字歷工資dAxu#benk200E住址jiangxisheng年齡18電話152Q0B7100e替射斷際資讓is: 髓年逹 輸輸輸輸輸輸輸請輸入想増加的職工數(shù)請輸入新增加職工的信思: 請輸入職工昜;2wenxiao jun一女 mi里):n19daxuebenke200hunanshen增加的人數(shù);瀏覽增加后的所有KL信息:職工號xie
13、dongxinsi-jenxiao jun學歷工資daxuebenke2Q&daxuebenke230nn住址 icingxisheiigliunanshengf年齡1R19電話152008710QS圖7:添加職工信息8. 進入主菜單輸入“ 6”進行修改職工信息:年齡xiedongxing學歷電話住址daxuebenkejiangxishengr1520087138b青輸人要修改的冃RTffi姓名pciedonigxingffiSJ年齡xiedongxins學歷住址電話daxuebenkejiangxishen15200B?ld08備實要修改肚人信息i青按不修改請按0瀏覽修改后的所有職工信息年
14、齡職工號wenxiaojun學歷電話住址daxuebenkejiaigxiheiis找到此人 職工號原來的職工信息 耳RT號鷲魯每障宗鬻蘿改謂按g需要進行修改的選頃-職工號2姓名3.性 4.年齡5學歷6工資7住址筑電話 請輸人0W修 端那一耐導2姓名改為:wftrtxiaojun圖8:修改職工信息9. 進入主菜單輸入 ”退出職工信息管理系統(tǒng)職工信息管理系統(tǒng)源程序代碼#include #include #include #define N 100 struct employeeint num;char name20; char sex;int age; char xue
15、li30;int wage;char addr30;char tel20;em100; /* 定義一個結(jié)構(gòu)體 void menu();void input();void save(int);void display();void del();void add();void search();void search_num();void search_xueli();void search_tel();void modify(); /* 定義各函數(shù) */void main() menu(); int n,flag; char a; do printf( 請選擇你需要操作的步驟 scanf(%d,
16、&n);if(n=1&n=7) flag=1;break;*/(1-7):n);elseflag=0;printf( 您輸入有誤,請重新選擇 !);while(flag=0);while(flag=1)switch(n)case1:printf(n);printf(n);input();break;case2:printf(n);printf(n);display();break;case 3:printf( n);printf(n);search();break;case 4:printf( n);printf(n);del();break;case5:printf(n);printf(n)
17、;add();break;case6:printf(n);printf(n);modify();break;case 7:exit(0);break;default :break;getchar();printf(n);printf( 是否繼續(xù)進行 (y or n):n); scanf(%c,&a);if(a=y)flag=1;system(cls); /* 清屏 */menu(); /* 調(diào)用菜單函數(shù) */printf( 請再次選擇你需要操作的步驟 scanf(%d,&n);printf(n); 輸入職工信息 瀏 覽職 工信息 按職工號查詢職工信息 刪 除職工信息 添 加職 工信息 修 改
18、職 工 信 息 (1-7):n);else exit(0); void menu() /* 菜單函數(shù) */printf( * 歡迎進入職工信息管理系統(tǒng) *n)printf(1.錄入職工信息printf(2.瀏覽職工信息printf(3.查詢職工信息printf(4.刪除職工信息printf(5.添加職工信息printf(6.修改職工信息printf(7.退出 n);printf(*);n););n););n);謝謝使用 *n);printf(n); printf(n);void input() /* 錄入函數(shù) */int i,m;printf( 請輸入需要創(chuàng)建信息的職工人數(shù) (1-100):n
19、); scanf(%d,&m);for (i=0;im;i+)printf( 請輸入職工號: ); scanf(%d,&emi.num); 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( 請輸入住址 :
20、 ); scanf(%s,emi.addr);printf( 請輸入電話 : ); scanf(%s,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)printf (cannot open filen);exit(0);for (i=0;im;i+) /* 將內(nèi)存中職工的信息輸出到磁盤文件中去 */if (fwrite(&emi,sizeof(struct employee),1,fp)!=1)
21、printf(file write errorn);fclose(fp);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);瀏覽函數(shù) */void display() /* int i;int m=load();printf( 職工號 t 姓名 t
22、t 性別 tt 年齡 n); for(i=0;im;i+) /*m為輸入部分的職工人數(shù) */ printf(n %dtt%st%ctt%dtn,emi.num,,emi.sex,emi.age);printf(n 學歷 tt 工資 tt 住址 tt 電話 n);for(i=0;im;i+) /*m 為輸入部分的職工人數(shù) */printf(n %st%dtt%st%sn,emi.xueli,emi.wage,emi.addr,emi.tel);void del() /* 刪除函數(shù) */int m=load();int i,j,n,t,flag;char name20;printf
23、(n 原來的職工信息 :n);display();printf(n);printf( 請輸入要刪除的職工的姓名 :n);scanf(%s,name);for(flag=1,i=0;flag&im;i+)if(strcmp(,name)=0)printf(n 已找到此人,原始記錄為: n);printf( 職工號 t 姓名 tt 性別 tt 年齡 n);printf(n %dtt%st%ctt%dtn,emi.num,,emi.sex,emi.age);printf(n 學歷 tt 工資 tt 住址 tt 電話 n);printf(n %st%dtt%st%sn,
24、emi.xueli,emi.wage,emi.addr,emi.tel);printf(n 確實要刪除此人信息請按 1, 不刪除請按 0n); scanf(%d,&n);if(n=1)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);strcpy(emj.tel,emj+1.tel);flag=0
25、; if(!flag)m=m-1;elseprintf(n對不起,查無此人 !n);printf(n瀏覽刪除后的所有職工信息 :n);save(m); /*調(diào)用保存函數(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);displ
26、ay();printf(n);fp=fopen(emploee_list,a);printf( 請輸入想增加的職工數(shù) :n);scanf(%d,&n);for (i=m;i=1&t=4)flag=1;break;elseflag=0;printf( 您輸入有誤,請重新選擇 !); while(flag=0); while(flag=1)switch(t)case 1:printf(case 2:printf(case 3:printf(按職工號查詢 n);search_num();break; 按學歷查詢 n);search_xueli();break; 按電話號碼查詢 n);search_t
27、el();break;case 4:main();break;default:break;void search_num()int num;int i,t;int m=load();printf( 請輸入要查找的職工號 :n);scanf(%d,&num);for(i=0;im;i+)if(num=emi.num) printf(n 已找到此人,其記錄為: n);printf( 職工號 t 姓名 tt 性別 tt 年齡 n);printf(n %dtt%st%ctt%dtn,emi.num,,emi.sex,emi.age); printf(n學歷 tt 工資 tt 住址 tt
28、 電話 n);printf(n %st%dtt%st%sn,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
29、(%s,xueli);for(i=0;im;i+)if(strcmp(emi.xueli,xueli)=0)printf(n 已找到,其記錄為: n);printf( 職工號 t 姓名 tt 性別 tt 年齡 n);printf(n %dtt%st%ctt%dtn,emi.num,,emi.sex,emi.age); printf(n學歷 tt 工資 tt 住址 tt 電話 n);printf(n %st%dtt%st%sn,emi.xueli,emi.wage,emi.addr,emi.tel);if(i=m)printf(n 對不起,查無此人 n);printf(n);pr
30、intf( 返回查詢函數(shù)請按 1, 繼續(xù)查詢學歷請按 2n); scanf(%d,&t);switch(t)case 1:search();break;case 2:break;default :break;void search_tel()char tel20;int i, t;int m=load();printf( 請輸入要查找的電話號碼 :n); scanf(%s,tel);for(i=0;im;i+)if(strcmp(tel,emi.tel)=0)printf(n 已找到此人,其記錄為: n);printf( 職工號 t 姓名 tt 性別 tt 年齡 n);printf(n %dt
31、t%st%ctt%dtn,emi.num,,emi.sex,emi.age); printf(n學歷 tt 工資 tt 住址 tt 電話 n);printf(n %st%dtt%st%sn,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 mo
32、dify() /* 修改函數(shù) */int num;char name20;char sex;int age;char xueli30;int wage;char addr30;char tel20;int b,c,i,n,t,flag;int m=load();printf(n 原來的職工信息 :n);display();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)
33、;doswitch(c) /* 因為當找到第 i 個職工時 ,for 語句后 i 自加了 1, 所以下面的應(yīng)該把改 后的信息賦值給第 i-1 個人 */case 1:printf( 職工號改為 : );scanf(%d,&num);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( 年齡改為 : );sc
34、anf(%d,&age);emi-1.age=age;break;case 5:printf( 學歷改為 : );scanf(%s,xueli);strcpy(emi-1.xueli,xueli);break;case 6:printf( 工資改為 : );scanf(%d,wage);break;case 7:printf( 住址改為 : );scanf(%s,addr);strcpy(emi-1.addr,addr);break;case 8:printf( 電話改為 : );scanf(%s,tel);strcpy(emi-1.tel,tel);break;printf(n);printf(n 是否確定所修改的信息 ?n 是 請按 1 ; 不 , 重新修改 請按 2: n); scanf(%d,&b);while(b=2);printf(n 瀏覽修改后的所有職工信息 :n);printf(n);save(m);display()
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 加工課課件教學課件
- 幼師課件用電教學課件
- 2024年國際旅游開發(fā)與合作合同
- 2024年廣州市二手房交易合同(標準版)
- 2024年度智能制造設(shè)備采購合同
- 2024年度物業(yè)公司居民關(guān)系協(xié)調(diào)服務(wù)合同
- 2024年大數(shù)據(jù)中心合作運營合同
- 2024年工程質(zhì)量檢驗與確認合同
- 魚罐頭課件教學課件
- 2024年庫房租賃與健身器材存放合同
- 香菇種植示范基地項目可行性策劃實施方案
- 混凝土硫酸鹽侵蝕基本機理研究
- 《機械設(shè)計基礎(chǔ)A》機械電子 教學大綱
- 水工巖石分級及圍巖分類
- 基因擴增實驗室常用儀器使用課件
- 斜井敷設(shè)電纜措施
- 施工機械設(shè)備租賃實施方案
- 牙膏產(chǎn)品知識課件
- 液化氣站人員勞動合同范本
- 第一章 教育政策學概述
- 常見土源性寄生蟲演示文稿
評論
0/150
提交評論