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

下載本文檔

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

文檔簡介

1、c語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告設(shè)計(jì)題目:職工檔案管理系統(tǒng)設(shè)計(jì)專 業(yè): 電子信息科學(xué)與技術(shù)學(xué) 號: 3080422* 班 級: 2008級1班 姓 名: * 指導(dǎo)教師 : * 2009 年 春季 學(xué)期 c語言課程設(shè)計(jì)任務(wù)書4題目:職工檔案管理系統(tǒng)設(shè)計(jì)功能:職工檔案管理系統(tǒng)設(shè)計(jì),每個(gè)職工是一條記錄,包括編號,姓名,性別,出生年月,所在部門,職稱,工資級別、電話等。系統(tǒng)可實(shí)現(xiàn)以下功能:1、輸入功能:輸入每一位職工記錄,將其信息存入文件中。2、顯示功能:完成全部職工記錄的顯示。3、查找功能:完成按編號或姓名查找職工的相關(guān)記錄,并顯示。分步實(shí)施:1、初步完成總體設(shè)計(jì),搭好框架,確定人機(jī)對話的界面,確定函數(shù)個(gè)

2、數(shù)。2、建立一個(gè)文件,將每位職工的信息寫入文件中并能顯示于屏幕上。3、完成上述查找(編號,姓名,性別等)、修改等功能。4、進(jìn)一步要求,修改記錄設(shè)置密碼操作。要求:1、用c語言實(shí)現(xiàn)程序設(shè)計(jì);2、利用結(jié)構(gòu)體數(shù)組實(shí)現(xiàn)職工信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì);3、系統(tǒng)的各個(gè)功能模塊要求用函數(shù)的形式實(shí)現(xiàn);4、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告要求:1、預(yù)習(xí)報(bào)告:題目、課程設(shè)計(jì)任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(jì)(算法)、模塊劃分 。2、實(shí)驗(yàn)總結(jié)報(bào)告:流程圖、主要源程序代碼(需打?。?、測試情況及調(diào)試中問題與解決方案、小結(jié)等??傇u成績:指導(dǎo)教師:附件:主要源程序代碼(職工檔案管理系統(tǒng))char sex;

3、/性別f為女m為男#include <stdio.h>#include <string.h>#include <stdlib.h>#include <conio.h>#define n 100 typedef struct employee/職工基本情況 char num6;/編號 char name8;/姓名 char birth8;/出生年月 char workplace10;/工作部門 char salarylevel8;/工資級別 char position8;/職稱 char tel16;/電話 emn; /*主要函數(shù)*/void in

4、put();/輸入職工信息void display();/顯示職工信息void password();/設(shè)置密碼void save();/保存職工信息void change();/修改職工信息/*查找函數(shù)*/void search();void searchbyname();/按姓名查找void searchbynum();/按編號查找int total=0;/定義total來記數(shù)記錄數(shù)int i=0; void main() int choice; do printf(" n");/系統(tǒng)歡迎界面 printf(" 歡迎進(jìn)入職工管理系統(tǒng) n"); pri

5、ntf(" n"); printf("coyote 2009年6月 n"); printf(" n"); printf(" 請您選擇操作類型: n"); printf("= n"); printf(" 1.輸入職工信息 n");/用戶選擇 printf(" 2.顯示職工信息 n"); printf(" 3.查找職工信息 n"); printf(" 4.修改職工信息 n"); printf(" 0.退出系統(tǒng)

6、n"); printf("= n"); scanf("%d",&choice); switch(choice) case 1:input();break; case 2:display();break; case 3:search();break; case 4:change();break; case 0: printf("謝謝使用!再見! "); exit(0);/退出系統(tǒng)default:printf("輸入有錯(cuò)誤請重新輸入: "); return; while(1);/當(dāng)為真值時(shí)執(zhí)行do循環(huán)

7、 void input()char j='0'/初始化j值為空dototal+;i+;printf("第%d個(gè)職工:n",i);printf("請您輸入編號: ");/輸入編號scanf("%s",emi.num);printf("請您輸入姓名: ");/輸入姓名scanf("%s",);printf("請您輸入性別以(m男f女): ");/輸入性別getchar();scanf("%c",&emi.sex);pri

8、ntf("請您輸入出生年月(格式如:1990.03): ");/輸入出生年月scanf("%s",emi.birth);printf("請您輸入工作部門: ");/輸入工作部門scanf("%s",emi.workplace);printf("請您輸入職位: ");/輸入職位scanf("%s",emi.position);printf("請您輸入工資級別: ");/輸入工資級別scanf("%s",emi.salarylevel);p

9、rintf("請您輸入聯(lián)系電話: ");/輸入聯(lián)系電話scanf("%s",emi.tel);printf("是否繼續(xù)輸入?(y/n):");getchar();j=getchar();while(j!='y'&&j!='n')printf("輸入不合法!n是否繼續(xù)輸入?(y/n):");getchar();j=getchar();while(j='y');save();/保存職工記錄printf("輸入完畢,請按任意鍵返回n ")

10、; getch();/conio庫函數(shù)里的,結(jié)收鍵盤輸入任意 return; void save() file *fp; int i=0; if(fp=fopen("employee.txt","ab")=null)printf("cannot open filen");return;for(i=1;i<=total;i+) if(fwrite(&emi,sizeof(struct employee),1,fp)!=1)printf("file write errorn"); fclose(fp);v

11、oid display()/顯示所有職工信息 file *fp; int i; if(fp=fopen("employee.txt","rb")=null) printf("文件打開失敗或未創(chuàng)建文件!n"); return; printf("所有職工信息如下: n");/輸出所有職工信息 printf("n=n");printf("編號 姓 名 性別 出生年月 所在部門 職 稱 工資級別 聯(lián)系電話n");printf("=n"); for(i=1;frea

12、d(&emi,sizeof(struct employee),1,fp)!=0;i+)/讀完所有數(shù)據(jù)printf("%-6s%8s%6c%12s%10s%8s%8s%18sn",emi.num,,emi.sex,emi.birth,emi.workplace,emi.position,emi.salarylevel,emi.tel); printf("完畢,請按任意鍵返回n "); getch(); fclose(fp); return;void search()int choice; printf("請您選擇查找方式:

13、n"); printf("1.按編號查找n 2.按姓名查找 n"); scanf("%d",&choice); switch(choice) case 1:searchbynum();break; case 2:searchbyname();break; default:printf("輸入有誤,請重輸入:n"); void searchbynum()file *fp; int i;char numb6;if(fp=fopen("employee.txt","r")=null)

14、 printf("不能夠打開這個(gè)文件,請按任意鍵返回"); return; printf("請您輸入要查找的人的編號: "); scanf("%s",numb); for(i=0;i<n;i+)/在所有信息中查找符合要求的職工信息 if(strcmp(emi.num,numb)=0) /找到并顯示該職工記錄 printf("以下是您要查詢的人的信息:n "); printf("n=n");printf("編號 姓 名 性別 出生年月 所在部門 職 稱 工資級別 聯(lián)系電話n&quo

15、t;); printf("=n");printf("%-6s%8s%6c%12s%10s%8s%8s%18sn",emi.num,,emi.se x,emi.birth,emi.workplace,emi.position,emi.salarylevel,emi.tel); printf("查找完畢,請按任意鍵返回n "); getch(); fclose(fp); return; printf("沒有這樣的人,請按任意鍵返回n"); getch(); fclose(fp); return;void

16、 searchbyname() file *fp; int i=0; char nam8; if(fp=fopen("employee.txt","rb")=null) printf("不能夠打開這個(gè)文件,請按任意鍵返回n"); return; printf("請您輸入要查找的人的姓名: "); scanf("%s",nam); for(i=0;i<n;i+) if(strcmp(,nam)=0) /找到并顯示該職工記錄 printf("以下是您要查詢的人的信息:

17、n "); printf("n=n");printf("編號 姓 名 性別 出生年月 所在部門 職 稱 工資級別 聯(lián)系電話n"); printf("=n"); printf("%-6s%8s%6c%12s%10s%8s%8s%18sn",emi.num,,emi.sex,emi.birth, emi.workplace,emi.position,emi.salarylevel,emi.tel); fclose(fp); printf("查找完畢,請按任意鍵返回n ");

18、 getch(); return; printf("沒有這樣的人,請按任意鍵返回n "); getch(); fclose(fp); return; void password() char password8="123456"/起始密碼 char s8; int flag=0; int n=3;/密碼輸入次數(shù) do scanf("%s",s); if(strcmp(password,s)=0)/若密碼正確 printf("密碼正確,祝您操作愉快!n "); flag=1; break; else printf(&

19、quot;密碼錯(cuò)誤,您還有%d次機(jī)會(huì): ",n-1); n-;/次數(shù)記數(shù) while(n>0); if(flag!=1) printf("您的輸入次數(shù)已到!再見!n "); main();/返回主函數(shù)(主菜單) void change() file *fp; int i; char newnum6;/新編號 char newname8;/新名字 char newsex;/新性別 char newbirth8;/新出生年月 char newworkplace10;/新工作部門 char newposition8;/新職稱 char newsalarylevel

20、8;/新工資水平 char newtel16;/新電話號碼 char nam8; int choice; printf("請您輸入密碼:"); password();/調(diào)用密碼函數(shù) printf("請您輸入要修改的人的姓名: "); scanf("%s",&nam); if(fp=fopen("employee.txt","w+")=null) printf("不能夠打開這個(gè)文件 "); return; for(i=1;i<=n;i+) if(strcmp(na

21、m,)=0) printf("這是您要修改的人的信息:n"); printf("n= =n"); printf("編號 姓 名 性別 出生年月 所在部門 職 稱 工資級別 聯(lián)系電話n"); printf("=n"); printf("%-6s%8s%6c%12s%10s%8s%8s%18sn",emi.num,,emi.sex,e mi.birth,emi.workplace,emi.position,emi.salarylevel,emi.tel); print

22、f("-n "); printf("請您選擇要修改的部分: n"); printf("=n "); printf("1.修改編號n "); printf("2.修改姓名n "); printf("3.修改性別n "); printf("4.修改出生年月n "); printf("5.修改所在部門n "); printf("6.修改職位n "); printf("7.修改工資級別n "); prin

23、tf("8.修改聯(lián)系電話n "); printf("0.返回主菜單n "); printf("=n "); scanf("%d",&choice); switch(choice) case 1: printf("請您輸入新的編號: "); scanf("%s",newnum); strcpy(emi.num,newnum); break; case 2: printf("請您輸入新的姓名: "); scanf("%s",newn

24、ame); strcpy(,newname); break; case 3: printf("請您輸入新的性別: "); getchar(); scanf("%c",&newsex); emi.sex=newsex; break; case 4: printf("請您輸入新的出生年月: "); scanf("%s",newbirth); strcpy(emi.birth,newbirth); break; case 5: printf("請您輸入新的工作部門: "); scanf("%s",newworkplace); strcpy(emi.workplace,newworkplace); break; case 6:printf("請您輸入新的職位: "); scanf("%s",newposition); strcpy(emi.position,newposition); break; case 7:printf("請您輸入新的工資級別: "); scanf("%s",newsalarylevel);

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論