教師工資管理規(guī)定系統(tǒng)C實(shí)現(xiàn)_第1頁
教師工資管理規(guī)定系統(tǒng)C實(shí)現(xiàn)_第2頁
教師工資管理規(guī)定系統(tǒng)C實(shí)現(xiàn)_第3頁
教師工資管理規(guī)定系統(tǒng)C實(shí)現(xiàn)_第4頁
教師工資管理規(guī)定系統(tǒng)C實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、教師工資管理系統(tǒng)一選題背景二需求分析 一、設(shè)計(jì)選題與目標(biāo)1.選題要求:教師工資管理系統(tǒng)每個(gè)教師的信息為:教師號(hào)、姓名、性別、單位名稱、家庭住址、聯(lián)系電話、基本工資、津貼、生活補(bǔ)貼、應(yīng)發(fā)工資、電話費(fèi)、水電費(fèi)、房租、所得稅、衛(wèi)生費(fèi)、公積金、合計(jì)扣款、實(shí)發(fā)工資。注:應(yīng)發(fā)工資=基本工資+津貼+生活補(bǔ)貼;合計(jì)扣款=電話費(fèi)+水電費(fèi)+房租+所得稅+衛(wèi)生費(fèi)+公積金;實(shí)發(fā)工資=應(yīng)發(fā)工資合計(jì)扣款。A、教師信息處理(1)輸入教師信息(2) 插入(修改)教師信息:(3) 刪除教師信息:(4) 瀏覽教師信息:提示:具體功能及操作參考題1。B、教師數(shù)據(jù)處理:(1) 按教師號(hào)錄入教師基本工資、津貼、生活補(bǔ)貼、電話費(fèi)、水電費(fèi)

2、、房租、所得稅、衛(wèi)生費(fèi)、公積金等基本數(shù)據(jù)。(2) 教師實(shí)發(fā)工資、應(yīng)發(fā)工資、合計(jì)扣款計(jì)算。提示:計(jì)算規(guī)則如題目。(3) 教師數(shù)據(jù)管理提示:輸入教師號(hào),讀出并顯示該教師信息,輸入新數(shù)據(jù),將改后信息寫入文件(4) 教師數(shù)據(jù)查詢:提示:輸入教師號(hào)或其他信息,即讀出所有數(shù)據(jù)信息,并顯示出來。(5) 教師綜合信息輸出提示:輸出教師信息到屏幕。2.目標(biāo) 教師數(shù)據(jù)處理:(1) 按教師號(hào)錄入教師基本工資、津貼、生活補(bǔ)貼、電話費(fèi)、水電費(fèi)、房租、所得稅、衛(wèi)生費(fèi)、公積金等基本數(shù)據(jù)。(2) 教師實(shí)發(fā)工資、應(yīng)發(fā)工資、合計(jì)扣款計(jì)算。 計(jì)算規(guī)則如題目。(3) 教師數(shù)據(jù)管理 輸入教師號(hào),讀出并顯示該教師信息,輸入新數(shù)據(jù),將改后

3、信息寫入文件(4) 教師數(shù)據(jù)查詢:輸入教師號(hào)或其他信息,即讀出所有數(shù)據(jù)信息,并顯示出來。(5) 教師綜合信息輸出輸出教師信息到屏幕三總體設(shè)計(jì)利用六個(gè)模塊分別實(shí)現(xiàn)教師信息的輸入,修改,刪除,查詢,保存以及信息文件的讀入功能。并使用不同的函數(shù)實(shí)現(xiàn)不同的功能。使用鏈表存儲(chǔ)及處理數(shù)據(jù)。程序流程圖如下:輸出界面選擇操作選擇1輸入數(shù)據(jù)Break選擇2修改數(shù)據(jù)break選擇3刪除數(shù)據(jù)Break選擇4選擇5查詢數(shù)據(jù)保存退出數(shù)據(jù)BreakBreak輸出:無效選項(xiàng)Break結(jié)束四詳細(xì)設(shè)計(jì)1.功能模塊共分為六個(gè)模塊:(1) 輸入教師信息模塊 在主菜單中運(yùn)用結(jié)構(gòu)體teacher,輸入教師信息,首先建立鏈表,將用戶信息

4、儲(chǔ)存到鏈表中,輸入完成后提示用戶是否繼續(xù)輸入,如果用戶輸入“Y”,則再次調(diào)用,實(shí)現(xiàn)繼續(xù)輸入教師信息的操作。如果用戶輸入”NO“,則返回主菜單界面。(2) 修改教師信息模塊 在主函數(shù)中調(diào)用void change_id(),修改記錄操作需要對數(shù)組中目標(biāo)元素的數(shù)據(jù)域中的值進(jìn)行操作。首先請用戶輸入要修改的教師編號(hào),然后若找到該記錄就提示用戶輸入各個(gè)信息。(3) 刪除教師信息模塊 在主函數(shù)中調(diào)用void delete_id(),以刪除教師信息,首先按學(xué)號(hào)查詢教師信息,如果沒有找到教師信息,給出提示。如果找到教師信息,將教師信息顯示出來,提示用戶刪除。(4) 查詢教師信息 查詢分三種,調(diào)用void sho

5、w_all()顯示所有教師信息;調(diào)用void search_id()按編號(hào)查詢教師信息;調(diào)用void search_name()按姓名查詢教師信息。(5) 讀入教師信息文件模塊 調(diào)用void readfromfile()函數(shù)從文件導(dǎo)入教師信息(6) 保存并退出模塊調(diào)用void writetofile()寫入文件。2函數(shù)的設(shè)計(jì)與調(diào)用(1)主函數(shù)的設(shè)計(jì)編寫主函數(shù)的主要任務(wù)就是確定調(diào)用函數(shù)以及控制屏幕顯示。(2)其他函數(shù)1)原型void show_all;功能 展出所有錄入文件參數(shù) 無 返回值 無 工作方式 調(diào)用 char name10; float salary;float allowance;

6、float life; float tel;float utilities;float rent;float due; float health; float fund; float total; float should; float actual; 2)原型void tea_new功能 創(chuàng)建新的信息錄入?yún)?shù) 無返回值 無工作方式 創(chuàng)建file 3)原型void searchmenu;功能 查找菜單參數(shù) 無返回值 無工作方式 調(diào)用void search_id;void search_name;4)原型void search_id;功能 查找信息 按編號(hào)查找參數(shù) 無返回值 整個(gè)信息工作方式 調(diào)

7、用 number5)原型void search_name;功能 查找信息 按姓名查找參數(shù) 無返回值 整個(gè)信息工作方式 調(diào)用char name6)原型void delete_id功能 刪除數(shù)據(jù) 按編號(hào)刪除參數(shù) 無返回值 無工作方式 調(diào)用 id 7)原型 void change_id; 功能 改變數(shù)據(jù) 按編號(hào)改參數(shù) 無返回值 整個(gè)錄入信息工作方式 調(diào)用 idshow_allreadfromfilesearchmenuMainmenusearch_idsearch_namewritetofiletea_newdelete_id(change_id3.數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)定義結(jié)構(gòu)體teacher,用于存放教

8、師的信息。struct teacherint number; 教師編號(hào)char name10; 教師姓名 float salary; 教師基本工資 float allowance; 教師津貼 float life; 教師生活補(bǔ)貼 float tel; 教師電話費(fèi) float utilities; 教師水電費(fèi) float rent; 教師房租 float due; 教師所得稅 float health; 教室衛(wèi)生費(fèi) float fund; 教師公積金float total; 教師合計(jì)扣款 float should; 教師應(yīng)發(fā)工資 float actual; 教師實(shí)發(fā)工資 tea500;4.算法實(shí)

9、現(xiàn)鏈表是算法的關(guān)鍵。在添加新的數(shù)據(jù)時(shí),可以表頭插入也可以表尾插入,這兩種插入方法決定了其他成員函數(shù)數(shù)據(jù)的處理。本系統(tǒng)中采取的是表尾插入的方法。在刪除某信息時(shí)需要判斷數(shù)據(jù)是在表頭,表中還是表尾,如果刪除的是在表中,則需要將刪除的前后鏈表連接起來。統(tǒng)大量運(yùn)用了鏈表的5種基本操作:建立鏈表、鏈表的插入、刪除、輸入和查找。5.程序清單#include<stdio.h>#include<string.h>#include <stdlib.h>#include<conio.h>/*教師工資管理系統(tǒng)結(jié)構(gòu)體定義*/struct teacherint number

10、; char name10; float salary; float allowance; float life; float tel; float utilities; float rent; float due; float health; float fund; float total; float should; float actual; tea500;int num=0; FILE *fp; void mainmenu(); void readfromfile(); void writetofile(); void show_all(); void tea_new (); void

11、 searchmenu(); void search_id(); void search_name(); void delete_id(); void change_id(); void main()readfromfile();while(1) mainmenu();/主菜單void mainmenu()char choic; system("cls");printf("t-歡迎使用(o)/-n");printf("t*教師工資管理系統(tǒng)*nn");printf("t-1輸入教師信息-n");printf(&quo

12、t;t-2修改教師信息-n");printf("t-3刪除教師信息-n");printf("t-4查詢教師信息-n");printf("t-5保存并退出-n");printf("t*n");printf("t請輸入所需的服務(wù)項(xiàng)目序號(hào): n"); choic=getch(); switch(choic) case'1':tea_new ();break; case'2':change_id ();break; case'3':delete_

13、id ();break; case'4':searchmenu();break; case'5':writetofile();break; default:mainmenu(); /從文件導(dǎo)入void readfromfile()if(fp=fopen("teacher.bin","rb")=NULL)printf("nt教師工資信息文件不存在喲(*/*)");if(fp=fopen("teacher.bin","wb")=NULL)printf("nt

14、建立失敗");exit(0);elseprintf("nt教師工資信息文件已建立(o3)");printf("nt按回車鍵進(jìn)入主菜單");getch();return;exit(0);fseek(fp,0,2); if(ftell(fp)>0) rewind(fp); for(num=0;!feof(fp) && fread(&teanum,sizeof(struct teacher),1,fp);num+); printf("nt教師工資信息文件導(dǎo)入成功(*3)");printf("

15、nt文件中無任何記錄(=_=)");printf("nt按回車鍵進(jìn)入主菜單");getch(); return; /寫入文件void writetofile()int i; if(fp=fopen("teacher.bin","wb")=NULL)printf("nt打開文件失敗(*/*)");for(i=0;i<num;i+)if(fwrite(&teai,sizeof(struct teacher),1,fp)!=1)printf("nt文件寫入錯(cuò)誤!()n");fc

16、lose(fp);printf("nt教師工資信息文件已保存");printf("nt按任意鍵退出程序(*)nt"); exit(0);/添加記錄void tea_new()printf("請輸入教師號(hào):");scanf("%d",&teanum.number);printf("請輸入教師姓名:");scanf("%s",);printf("請輸入教師基本工資:");scanf("%f",&tean

17、um.salary);printf("請輸入教師的津貼:");scanf("%f",&teanum.allowance);printf("請輸入教師的生活補(bǔ)貼:");scanf("%f",&teanum.life);printf("請輸入教師的電話費(fèi):");scanf("%f",&teanum.tel);printf("請輸入教師的水電費(fèi):");scanf("%f",&teanum.utilities);

18、printf("請輸入教師的房租:");scanf("%f",&teanum.rent);printf("請輸入教師的所得稅:");scanf("%f",&teanum.due);printf("請輸入教師的衛(wèi)生費(fèi):");scanf("%f",&teanum.health);printf("請輸入教師的公積金:");scanf("%f",&teanum.fund);teanum.should =teanu

19、m.salary +teanum.allowance +teanum.life;teanum.total=teanum.tel+teanum.utilities +teanum.rent+teanum.due+teanum.health+teanum.fund;teanum.actual=teanum.should-teanum.total; num+;printf("是否繼續(xù)添加(Y/N)"); if(getch()='y') tea_new (); return;/查詢菜單void searchmenu() char choic; system(&quo

20、t;cls"); printf("nt-查詢-"); printf("nt-1顯示所有-"); printf("nt-2按編號(hào)查詢-"); printf("nt-3按姓名查詢-"); printf("nt-4返回主菜單-"); printf("nt請選擇:n"); choic=getch(); switch(choic) case'1':show_all();break; case'2':search_id();break; case

21、'3':search_name();break; case'4':mainmenu();break; /顯示所有void show_all() int i; system("cls"); if(num!=0) for(i=0;i<num;i+) printf("nt編號(hào): %d",teai.number); printf("nt姓名: %s",); printf("nt基本工資: %.5f",teai.salary); printf("nt津貼: %

22、.5f",teai.allowance); printf("nt生活補(bǔ)貼: %.5f",teai.life); printf("nt電話費(fèi): %.5f",teai.tel); printf("nt水電費(fèi): %.5f",teai.utilities); printf("nt房租: %.5f",teai.rent); printf("nt所得稅: %.5f",teai.due); printf("nt衛(wèi)生費(fèi): %.5f",teai.health); printf(&qu

23、ot;nt公積金: %.5f",teai.fund); printf("nt應(yīng)發(fā)工資: %.5f",teai.should); printf("nt合計(jì)扣款: %.5f",teai.total); printf("nt實(shí)發(fā)工資: %.5f",teai.actual); if(i+1<num) printf("nt_"); system("pause"); printf("nt*"); else printf("nt文件中無記錄"); pri

24、ntf("nt按回車鍵回到主菜單"); getch(); return;/按編號(hào)查詢void search_id() int mark=0; int i,a=0; int id; printf("nt請輸入編號(hào):"); scanf("%d",&id); for(i=0;i<num;i+) if(id=teai.number) printf("nt*以下是你要查找的教師工資信息*n"); printf("nt編號(hào): %d",teai.number); printf("nt姓

25、名: %s",); printf("nt基本工資: %.5f",teai.salary); printf("nt津貼: %.5f",teai.allowance); printf("nt生活補(bǔ)貼: %.5f",teai.life); printf("nt電話費(fèi): %.5f",teai.tel); printf("nt水電費(fèi): %.5f",teai.utilities); printf("nt房租: %.5f",teai.rent); printf(

26、"nt所得稅: %.5f",teai.due); printf("nt衛(wèi)生費(fèi): %.5f",teai.health); printf("nt公積金: %.5f",teai.fund); printf("nt應(yīng)發(fā)工資: %.5f",teai.should); printf("nt合計(jì)扣款: %.5f",teai.total); printf("nt實(shí)發(fā)工資: %.5f",teai.actual); printf("nt*"); printf("nt

27、按回車鍵回到主菜單"); mark+; getch(); return; if(mark=0) printf("nt沒有該編號(hào)的信息"); printf("nt按回車鍵返回主菜單"); getch(); return;/按姓名查詢void search_name() int mark=0; int i,a=0; char name10; printf("請輸入姓名:"); scanf("%s",name); for(i=a;i<num;i+) if(strcmp(,name)=0)

28、 printf("nt*以下是你要查找的教師工資信息*n"); printf("nt編號(hào): %d",teai.number); printf("nt姓名: %s",); printf("nt基本工資: %.5f",teai.salary); printf("nt津貼: %.5f",teai.allowance); printf("nt生活補(bǔ)貼: %.5f",teai.life); printf("nt電話費(fèi): %.5f",teai.tel

29、); printf("nt水電費(fèi): %.5f",teai.utilities); printf("nt房租: %.5f",teai.rent); printf("nt所得稅: %.5f",teai.due); printf("nt衛(wèi)生費(fèi): %.5f",teai.health); printf("nt公積金: %.5f",teai.fund); printf("nt應(yīng)發(fā)工資: %.5f",teai.should); printf("nt合計(jì)扣款: %.5f"

30、,teai.total); printf("nt實(shí)發(fā)工資: %.5f",teai.actual); printf("nt*"); mark+; if(i+1)<num) printf("tn是否繼續(xù)查找相同名字的教師信息:(y/n)"); if(getch()='y') a=i;continue; else return; else printf("nt按回車鍵返回主菜單"); getch(); return; if(mark!=0) printf("nt沒有相同姓名的教師信息記錄&

31、quot;); printf("nt按回車鍵回到主菜單"); getch(); return; else printf("nt沒有相同姓名的教師信息記錄"); printf("nt按回車鍵回到主菜單"); getch(); return; /刪除菜單void delete_id() int i,j; int deletemark=0; int id; printf("nt情輸入要?jiǎng)h除的編號(hào):"); scanf("%d",&id); if(num=0) printf("nt對不起

32、,文件中無任何教師工資信息記錄"); printf("nt按回車鍵回到主菜單"); getch(); return; for(i=0;i<num;i+) if(id=teai.number) printf("nt*以下是你要?jiǎng)h除的教師工資信息*n"); printf("nt編號(hào): %d",teai.number); printf("nt姓名: %s",); printf("nt基本工資: %.5f",teai.salary); printf("nt津貼

33、: %.5f",teai.allowance); printf("nt生活補(bǔ)貼: %.5f",teai.life); printf("nt電話費(fèi): %.5f",teai.tel); printf("nt水電費(fèi): %.5f",teai.utilities); printf("nt房租: %.5f",teai.rent); printf("nt所得稅: %.5f",teai.due); printf("nt衛(wèi)生費(fèi): %.5f",teai.health); printf(

34、"nt公積金: %.5f",teai.fund); printf("nt應(yīng)發(fā)工資: %.5f",teai.should); printf("nt合計(jì)扣款: %.5f",teai.total); printf("nt實(shí)發(fā)工資: %.5f",teai.actual); printf("nt是否刪除(y/n)"); if(getch()='y') for(j=i;j<num-1;j+) teaj=teaj+1; num-; deletemark+; printf("nt

35、刪除成功"); printf("nt是否繼續(xù)刪除(y/n)"); if(getch()='y') delete_id(); return; else return; continue; if(deletemark=0) printf("nt沒有該教師的記錄"); printf("nt是否繼續(xù)刪除(y/n)"); if(getch()='y') delete_id(); /修改菜單void change_id() int a=0,findmark=0; int i; int id; printf

36、("nt請輸入要修改教師的編號(hào):"); scanf("%d",&id); for(i=a;i<num;i+) if(id=teai.number) printf("nt*以下是你要修改的教師工資信息*n"); findmark+; printf("nt編號(hào): %d",teai.number); printf("nt姓名: %s",); printf("nt基本工資: %.5f",teai.salary); printf("nt津貼:

37、%.5f",teai.allowance); printf("nt生活補(bǔ)貼: %.5f",teai.life); printf("nt電話費(fèi): %.5f",teai.tel); printf("nt水電費(fèi): %.5f",teai.utilities); printf("nt房租: %.5f",teai.rent); printf("nt所得稅: %.5f",teai.due); printf("nt衛(wèi)生費(fèi): %.5f",teai.health); printf(&q

38、uot;nt公積金: %.5f",teai.fund); printf("nt應(yīng)發(fā)工資: %.5f",teai.should); printf("nt合計(jì)扣款: %.5f",teai.total); printf("nt實(shí)發(fā)工資: %.5f",teai.actual); i=i; break; else continue; printf("nt請重新輸入以下信息:n"); printf("請輸入教師號(hào):");scanf("%d",&teanum.number

39、);printf("請輸入教師姓名:");scanf("%s",);printf("請輸入教師基本工資:");scanf("%f",&teanum.salary);printf("請輸入教師的津貼:");scanf("%f",&teanum.allowance);printf("請輸入教師的生活補(bǔ)貼:");scanf("%f",&teanum.life);printf("請輸入教師

40、的電話費(fèi):");scanf("%f",&teanum.tel);printf("請輸入教師的水電費(fèi):");scanf("%f",&teanum.utilities);printf("請輸入教師的房租:");scanf("%f",&teanum.rent);printf("請輸入教師的所得稅:");scanf("%f",&teanum.due);printf("請輸入教師的衛(wèi)生費(fèi):");scanf("%f",&teanum.health);printf(

溫馨提示

  • 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)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論