-職工信息管理系統(tǒng)_第1頁
-職工信息管理系統(tǒng)_第2頁
-職工信息管理系統(tǒng)_第3頁
-職工信息管理系統(tǒng)_第4頁
-職工信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、西安文理學(xué)院信息工程學(xué)院軟件編程課程設(shè)計(jì)報(bào)告設(shè)計(jì)題目: 職工信息管理系統(tǒng)設(shè)計(jì) 學(xué)生學(xué)號(hào): 0204140140 專業(yè)班級(jí): 物聯(lián)網(wǎng)工程(1)班 學(xué)生姓名: 鄭桂桂 學(xué)生成績(jī): 指導(dǎo)教師: 李立 課題工作時(shí)間: 20151125 至 2015129 信息工程學(xué)院軟件編程課程設(shè)計(jì)任務(wù)書學(xué)生姓名鄭桂桂學(xué)號(hào)0204140140專業(yè)班級(jí)物聯(lián)網(wǎng)工程(1)班設(shè)計(jì)題目職工信息管理系統(tǒng)主要任務(wù)及設(shè)計(jì)要求:設(shè)計(jì)一個(gè)職工信息管理系統(tǒng)。職工信息包括職工號(hào)、姓名、性別、年齡、學(xué)歷、工資、住址、電話等(職工號(hào)不重復(fù)).使之能提供以下功能: 1、系統(tǒng)以菜單方式工作 2、職工信息錄入功能(職工信息用文件保存)輸入 3、職工信

2、息瀏覽功能輸出 4、職工信息查詢功能算法 查詢方式:(1)按學(xué)歷查詢(2)按職工號(hào)查詢 5、職工信息刪除功能、 6、職工信息修改功能指導(dǎo)教師: 日 期:2015年11月25日目 錄1。 概述11。1課題背景11.2系統(tǒng)功能11.3設(shè)計(jì)要求 12。 概要設(shè)計(jì) 22.1系統(tǒng)功能模塊22.2模塊流程圖33. 詳細(xì)設(shè)計(jì)53.1 程序中使用的數(shù)據(jù)結(jié)構(gòu)53。2 函數(shù)詳解54. 設(shè)計(jì)結(jié)果與分析 8總結(jié)與體會(huì)14參考文獻(xiàn)15附錄:主要程序代碼16第一章 概述1.1 課題背景軟件編程課程設(shè)計(jì)的要求是培養(yǎng)學(xué)生綜合運(yùn)用C語言的重要途徑,是主要的實(shí)踐性教學(xué)環(huán)節(jié)之一,運(yùn)用所學(xué)課程的知識(shí),結(jié)合實(shí)際應(yīng)用設(shè)計(jì)而進(jìn)行的一次綜合

3、分析設(shè)計(jì)能力的訓(xùn)練。并且管理信息系統(tǒng)在各行各業(yè)發(fā)揮著越來越重要的作用。但在職工信息的管理中,避免了手工操作而帶來的一些不必要的問題。通過編寫一個(gè)職工管理系統(tǒng)的C語言程序,培養(yǎng)學(xué)生在本課程范圍內(nèi),初步掌握解決實(shí)際應(yīng)用問題時(shí)所應(yīng)具有的查閱資料、綜合運(yùn)用所學(xué)知識(shí)、掌握C語言程序基本技巧的能力,為軟件編程設(shè)計(jì)及今后從事專業(yè)工作打下基礎(chǔ)。1。2 題目要求 設(shè)計(jì)一個(gè)職工信息管理系統(tǒng)。職工信息包括職工號(hào)、姓名、性別、年齡、學(xué)歷、工資、住址、電話等(職工號(hào)不重復(fù))。使之能提供以下功能: 1、系統(tǒng)以菜單方式工作 2、職工信息錄入功能(職工信息用文件保存)輸入 3、職工信息瀏覽功能輸出 4、職工信息查詢功能算法

4、查詢方式(1)按學(xué)歷查詢(2)按職工號(hào)查詢 5、職工信息刪除功能 6、職工信息修改功能1.3 設(shè)計(jì)要求 根據(jù)題目要求,應(yīng)當(dāng)把職工信息用結(jié)構(gòu)體形式輸入,然后把職工信息送到文件中,所以應(yīng)該提供一個(gè)結(jié)構(gòu)體和文件的輸入輸出等操作;在程序中需實(shí)現(xiàn)職工信息錄入,瀏覽,查詢,刪除和修改等功能的操作,所以需要建立相應(yīng)的模塊來實(shí)現(xiàn);另外還需提供鍵盤式選擇菜單實(shí)現(xiàn)功能,在運(yùn)行時(shí)達(dá)到所要目的。信息以文件形式保存。第二章 概要設(shè)計(jì)2.1系統(tǒng)功能模塊 職工信息管理系統(tǒng)設(shè)計(jì)要求包括2。1.1菜單函數(shù):設(shè)計(jì)一個(gè)菜單界面,調(diào)用各個(gè)功能函數(shù),操作界面整齊美觀便捷 2。1.2輸入記錄:將每一個(gè)職工的職工號(hào)、姓名性別、年齡、工資、

5、地址、聯(lián)系方式的數(shù)據(jù)作為一個(gè)記錄,存入數(shù)據(jù)文件。選擇是回到菜單列表還是退出系統(tǒng)。2.1。3瀏覽記錄:將之前錄入的職工信息全部顯示出來,再次選擇回到菜單還是退出系統(tǒng)。2。1.4查詢記錄:查詢符合用戶提供的條件的職工信息.可選擇用兩種方式分別查詢,按職工號(hào)查詢,輸入一個(gè)職工號(hào),輸出為此職工的全部信息。按學(xué)歷查詢,輸入一個(gè)學(xué)歷后。輸出符合此學(xué)歷的職工的所有信息。選擇回到菜單還是退出系統(tǒng)。2。1。5刪除記錄:先顯示出之前錄入的全部職工信息,輸入打算刪除的職工姓名,系統(tǒng)顯示出此職工的信息,再次選擇是否刪除,同意則繼續(xù)刪除,不同意則返回菜單.如果輸入的姓名不是之前錄入的職工姓名,系統(tǒng)會(huì)提示查無此人。2.1

6、。6修改記錄:先顯示出所有之前錄入的職工信息,輸入打算修改的職工姓名,系統(tǒng)輸出此職工的全部原始信息,選擇是否修改此人信息,若修改則將此人信息再次輸入,替換掉之前的信息,選擇是否繼續(xù)修改此人.2。1.7退出系統(tǒng): 選擇退出職工管理系統(tǒng).2.2模塊流程圖2.2。1總體流程圖開始 菜單根據(jù)菜單輸入選擇操作1錄入職工信息2瀏覽職工信息4刪除職工信息6退出系統(tǒng)5修改職工信息3查詢職工信息 保存 函數(shù)是否退出系統(tǒng)結(jié)束圖21總體流程圖2.2.2功能結(jié)構(gòu)簡(jiǎn)圖職 工信 息管 理系 統(tǒng)信 息修 改信 息刪 除信 息查 詢信 息錄 入信 息瀏 覽顯示錄入的所有職工的所有信息分條輸入職工的職工號(hào)、姓名、性別、年齡、學(xué)

7、歷、工資、住址、電話等信息輸入想要?jiǎng)h除的職工的姓名,顯示出此職工的原始信息確定是否刪除輸入要修改的職工的姓名,顯示原始信息,確認(rèn)是否修改按學(xué)歷查詢,輸入一個(gè)學(xué)歷,顯示出所有此學(xué)歷的職工的所有信息按職工號(hào)查詢,輸入一個(gè)職工號(hào),顯示出此職工的全部信息圖2-2功能結(jié)構(gòu)簡(jiǎn)圖第三章 詳細(xì)設(shè)計(jì)3。1程序中使用的數(shù)據(jù)結(jié)構(gòu) 為了方便使用結(jié)構(gòu),此系統(tǒng)結(jié)構(gòu)均為全局類型定義 struct employee /定義一個(gè)職工信息結(jié)構(gòu)體 int num; /定義職工號(hào)為整型 char name20;/ 定義姓名為字符數(shù)組 char sex; /定義性別為字符型 int age; /定義年齡為整型 char xueli30

8、;/ 定義學(xué)歷為字符數(shù)組 int wage; /定義工資為整型 char addr30;/ 定義地址為字符數(shù)組 char tel20; /定義電話為字符數(shù)組 em100;/定義一個(gè)結(jié)構(gòu)體3.2函數(shù)列表3.2。1總體定義函數(shù) 為實(shí)現(xiàn)本系統(tǒng)的各項(xiàng)功能,需定義函數(shù)如下:void menu(); /菜單選項(xiàng)void input(); /錄入void save(int);/保存 void display();/瀏覽void del();/刪除 void search(); /查找void search_num(); /按姓名查詢void search_xueli(); /按學(xué)歷查詢 void modif

9、y(); /修改3.2.2各函數(shù)的實(shí)現(xiàn)(1)菜單函數(shù)運(yùn)用輸出設(shè)計(jì)一個(gè)菜單界面,界面美觀整齊void menu() /菜單函數(shù) printf( *歡迎您進(jìn)入職工信息管理系統(tǒng)*n”); printf( 1。錄入職工信息); printf(” 2。瀏覽職工信息 *n”); printf(” 3.查詢職工信息); printf(” 4.刪除職工信息 n”); printf( * 5。修改職工信息); printf(” 6.正常退出系統(tǒng) *n”); printf( *n”); (2)錄入函數(shù)用for循環(huán)語句限制出每次錄入的職工人數(shù),方便快捷,省去了每錄入一個(gè)人就要選擇一下的步驟。運(yùn)用輸出顯示出錄入的界面

10、,再通過輸入的數(shù)據(jù)建立職工信息.(詳情見主要程序代碼) (3)保存函數(shù)將輸入的信息能以文件形式保存,將內(nèi)存中職工的信息輸出到磁盤文件中void save(int m)/保存文件函數(shù) int i; FILEfp; 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) printf(”file write errorn”); fclo

11、se(fp); int load()/導(dǎo)入函數(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); /(文件關(guān)閉函數(shù))關(guān)閉一個(gè)流 return(i-1); (4) 瀏覽函數(shù)將所有的職工信息輸出,用再到for語句,運(yùn)用輸出使輸出信息的界面整齊美觀void display() /瀏覽函數(shù) int i;

12、 int m=load(); printf(”n職工號(hào)t姓名t性別t年齡t學(xué)歷t工資t住址t電話n”); for(i=0;i include define N 100 struct employee /結(jié)構(gòu)體定義 int num; /定義職工號(hào)為整型 char name20;/ 字符數(shù)組定義姓名為 char sex; /定義性別為字符型 int age; /定義年齡為整型 char xueli30;/ 定義學(xué)歷為字符數(shù)組 int wage; /定義工資為整型 char addr30;/ 定義地址為字符數(shù)組 char tel20; /定義電話為字符數(shù)組em100;/定義一個(gè)結(jié)構(gòu)體 void me

13、nu();/聲明函數(shù)菜單函數(shù)void in();/聲明信息錄入函數(shù)void save(int);/聲明信息保存函數(shù)void display();/聲明信息瀏覽函數(shù)void del();/聲明信息刪除函數(shù)void search();/聲明信息查詢函數(shù)void search_num();/聲明按職工號(hào)查詢函數(shù)void search_xueli();/聲明按學(xué)歷查詢函數(shù)void modify();/聲明修改函數(shù)void main() menu(); /調(diào)用菜單函數(shù) int n,f; char a; do printf(”請(qǐng)選擇你需要操作的步驟(1-6):n); scanf(”d,&n); if(n=

14、1&n=7) f=1;break; else f=0;printf(”您輸入有誤,請(qǐng)重新選擇!”);/if.。else條件運(yùn)算 while(f=0);/do 語句 while(表達(dá)式):實(shí)現(xiàn)循環(huán)while(f=1) switch(n) case 1:printf(” *輸入職工信息*n);printf(”n”);in();break; case 2:printf( *瀏覽職工信息*n);printf(”n);display();break; case 3:printf(” *查詢職工信息*n);printf(”n);search();break; case 4:printf(” *刪除職工信息

15、*n);printf(n”);del();break; case 5:printf(” *修改職工信息*n”);printf(”n);modify();break; case 6:exit(0);break; default :break; getchar();/從stdio流中讀取字符printf(n); printf(是否繼續(xù)進(jìn)行(y or n):n); scanf(%c,&a); if(a=y) f=1; /system(cls); /清屏 menu(); /調(diào)用菜單函數(shù) printf(”請(qǐng)?jiān)俅芜x擇你需要操作的步驟(1-6):n”); scanf(”%d”,&n); printf(n”)

16、; else exit(0);/exit(0)表示正常退出 void menu() /菜單函數(shù) printf( *歡迎您進(jìn)入職工信息管理系統(tǒng)*n”); printf( * 1.錄入職工信息”); printf( 2。瀏覽職工信息 *n”); printf( * 3。查詢職工信息”); printf(” 4.刪除職工信息 *n); printf( * 5.修改職工信息); printf( 6。正常退出系統(tǒng) *n”); printf( *n); printf(”n”); printf(”n”); void in() /錄入函數(shù)/ int i,m; printf(”請(qǐng)輸入需要?jiǎng)?chuàng)建信息的職工人數(shù)(1-

17、100):n); scanf(”d,&m); for (i=0;im;i+) /for循環(huán)語句:for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值) printf(請(qǐng)輸入職工號(hào)*: ”);scanf(”%d”,emi。num); printf(請(qǐng)輸入姓名*: );scanf(”%s”,); getchar();printf(”請(qǐng)輸入性別(a女/b-男)*: ”);scanf(”%c,emi。sex); printf(請(qǐng)輸入年齡*: );scanf(”d,emi.age); printf(”請(qǐng)輸入學(xué)歷*: ”);scanf(”%s”,emi.xueli); printf(請(qǐng)輸入工資*

18、: ”);scanf(d,&emi.wage); printf(”請(qǐng)輸入住址*: ”);scanf(”s,emi。addr); printf(”請(qǐng)輸入電話*: ”);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 (

19、fwrite(&emi,sizeof(struct employee),1,fp)!=1) printf(”file write errorn”); fclose(fp); int load()/導(dǎo)入函數(shù) FILEfp; 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); /(文件關(guān)閉函數(shù))關(guān)閉一個(gè)流 retur

20、n(i-1); void display() /瀏覽函數(shù) int i; int m=load(); printf(n職工號(hào)t姓名t性別t年齡t學(xué)歷t工資t住址t電話n); for(i=0;im;i+) /m為輸入部分的職工人數(shù) printf(”n%dt%stctdtst%dtst%sn”,emi.num,,emi.sex,emi.age,emi。xueli,emi.wage,emi.addr,emi。tel);void del() /刪除函數(shù) int m=load(); int i,j,n,flag; char name20; printf(n 原來的職工信息:n”); dis

21、play(); printf(n”); printf(請(qǐng)輸入要?jiǎng)h除的職工的姓名:n”); scanf(s”,name); for(flag=1,i=0;flag&im;i+) if(strcmp(,name)=0)/strcmps是比較字符串 printf(”n已找到此人,原始記錄為:n”); printf(n職工號(hào)t姓名t性別t年齡t學(xué)歷t工資t住址t電話n); printf(n%dt%st%ct%dtst%dt%stsn,emi.num,,emi.sex,emi.age,emi。xueli,emi.wage,emi。addr,emi.tel); printf

22、(n確實(shí)要?jiǎng)h除此人信息請(qǐng)按1,不刪除請(qǐng)按0n”); scanf(”%d”,&n); if(n=1)/如果刪除,則其它的信息都向上移一行 for(j=i;j=1&t=3) flag=1; break; else flag=0; printf(”您輸入有誤,請(qǐng)重新選擇!”); while(flag=0); while(flag=1) switch(t) case 1:printf(按職工號(hào)查詢n);search_num();break; case 2:printf(”按學(xué)歷查詢n”);search_xueli();break; case 3:main();break; default:break;

23、 void search_num()/1。按職工號(hào)查詢 int num; int i,t,g=0; int m=load(); printf(請(qǐng)輸入要查找的職工號(hào):n); scanf(d”,num); for(i=0;im;i+) if(num=emi.num) g+; printf(n已找到,其記錄為:n);printf(n職工號(hào)t姓名t性別t年齡t學(xué)歷t工資t住址t電話n”); printf(ndt%st%ct%dtst%dt%st%sn”,emi.num,,emi。sex,emi.age,emi。xueli,emi。wage,emi。addr,emi.tel); if(g

24、=0) printf(”n對(duì)不起,查無此人n); printf(n”); printf(返回查詢函數(shù)請(qǐng)按1,繼續(xù)查詢職工號(hào)請(qǐng)按2n); scanf(”%d,t); switch(t) case 1:search();break; case 2: break; default:break; void search_xueli()/2。按學(xué)歷查詢 char xueli30; int i,t; int m=load(); printf(請(qǐng)輸入要查找的學(xué)歷:n”); scanf(%s,xueli); for(i=0;im;i+) if(strcmp(emi.xueli,xueli)=0) printf

25、(”n已找到,其記錄為:n”); printf(”n職工號(hào)t姓名t性別t年齡t學(xué)歷t工資t住址t電話n”); printf(”ndt%stctdtstdt%stsn,emi.num,,emi。sex,emi.age,emi.xueli,emi.wage,emi.addr,emi。tel); if(i=m) /printf(”n對(duì)不起,查無此人n”); printf(n); printf(返回查詢函數(shù)請(qǐng)按1,繼續(xù)查詢學(xué)歷請(qǐng)按2n); scanf(d,&t); switch(t) case 1:search();break; case 2:break; default :break

26、; void modify() /修改函數(shù) int num; char name20; char sex; int age; char xueli30; int wage; char addr3; char tel20; int i,n,t,flag; int m=load(); printf(”n 原來的職工信息:n); display(); printf(n); printf(請(qǐng)輸入要修改的職工的姓名:n”); scanf(”s,name); for(flag=1,i=0;flagim;i+) if(strcmp(,name)=0) printf(”n已找到,其記錄為:n”); printf(n

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論