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

下載本文檔

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

文檔簡介

1、教師工資管理系統(tǒng)一選題背景二需求分析 一、設(shè)計(jì)選題與目標(biāo)1.選題要求:教師工資管理系統(tǒng)每個教師的信息為:教師號、姓名、性別、單位名稱、家庭住址、聯(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) 按教師號錄入教師基本工資、津貼、生活補(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ù)管理提示:輸入教師號,讀出并顯示該教師信息,輸入新數(shù)據(jù),將改后信息寫入文件(4) 教師數(shù)據(jù)查詢:提示:輸入教師號或其他信息,即讀出所有數(shù)據(jù)信息,并顯示出來。(5) 教師綜合信息輸出提示:輸出教師信息到屏幕。2.目標(biāo) 教師數(shù)據(jù)處理:(1) 按教師號錄入教師基本工資、津貼、生活補(bǔ)貼、電話費(fèi)、水電費(fèi)、房租、所得稅、衛(wèi)生費(fèi)、公積金等基本數(shù)據(jù)。(2) 教師實(shí)發(fā)工資、應(yīng)發(fā)工資、合計(jì)扣款計(jì)算。 計(jì)算規(guī)則如題目。(3) 教師數(shù)據(jù)管理 輸入教師號,讀出并顯示該教師信息,輸入新數(shù)據(jù),將改后

3、信息寫入文件(4) 教師數(shù)據(jù)查詢:輸入教師號或其他信息,即讀出所有數(shù)據(jù)信息,并顯示出來。(5) 教師綜合信息輸出輸出教師信息到屏幕三總體設(shè)計(jì)利用六個模塊分別實(shí)現(xiàn)教師信息的輸入,修改,刪除,查詢,保存以及信息文件的讀入功能。并使用不同的函數(shù)實(shí)現(xiàn)不同的功能。使用鏈表存儲及處理數(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.功能模塊共分為六個模塊:(1) 輸入教師信息模塊 在主菜單中運(yùn)用結(jié)構(gòu)體teacher,輸入教師信息,首先建立鏈表,將用戶信息

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

5、w_all()顯示所有教師信息;調(diào)用void search_id()按編號查詢教師信息;調(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;功能 查找信息 按編號查找參數(shù) 無返回值 整個信息工作方式 調(diào)

7、用 number5)原型void search_name;功能 查找信息 按姓名查找參數(shù) 無返回值 整個信息工作方式 調(diào)用char name6)原型void delete_id功能 刪除數(shù)據(jù) 按編號刪除參數(shù) 無返回值 無工作方式 調(diào)用 id 7)原型 void change_id; 功能 改變數(shù)據(jù) 按編號改參數(shù) 無返回值 整個錄入信息工作方式 調(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; 教師編號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ù)據(jù)的處理。本系統(tǒng)中采取的是表尾插入的方法。在刪除某信息時需要判斷數(shù)據(jù)是在表頭,表中還是表尾,如果刪除的是在表中,則需要將刪除的前后鏈表連接起來。統(tǒng)大量運(yùn)用了鏈表的5種基本操作:建立鏈表、鏈表的插入、刪除、輸入和查找。5.程序清單#include#include#include #include/*教師工資管理系統(tǒng)結(jié)構(gòu)體定義*/struct teacherint number; char name10; float salary; float allowance; float life; floa

10、t 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 searchmenu(); void search_id(); void search_name(); void dele

11、te_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(t-2修改教師信息-n);printf(t-3刪除教師信息-n);printf(t-4查詢教師信息-n);printf(t-5保存并退出-n);printf(t*n);printf(t請輸入所需的服務(wù)項(xiàng)目序號: n); choi

12、c=getch(); switch(choic) case1:tea_new ();break; case2:change_id ();break; case3:delete_id ();break; case4:searchmenu();break; case5: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(n

13、t建立失敗);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(nt文件中無任何記錄(=_=);printf(nt按回車鍵進(jìn)入主菜單);getch(); return; /寫入文件void wri

14、tetofile()int i; if(fp=fopen(teacher.bin,wb)=NULL)printf(nt打開文件失敗(*/*);for(i=0;inum;i+)if(fwrite(&teai,sizeof(struct teacher),1,fp)!=1)printf(nt文件寫入錯誤!()n);fclose(fp);printf(nt教師工資信息文件已保存);printf(nt按任意鍵退出程序(*)nt); exit(0);/添加記錄void tea_new()printf(請輸入教師號:);scanf(%d,&teanum.number);printf(請輸入教師姓名:);s

15、canf(%s,);printf(請輸入教師基本工資:);scanf(%f,&teanum.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);printf(請輸入教師的房租:);scanf(%f,&teanum.rent);printf(請輸入教師的所得稅:

16、);scanf(%f,&teanum.due);printf(請輸入教師的衛(wèi)生費(fèi):);scanf(%f,&teanum.health);printf(請輸入教師的公積金:);scanf(%f,&teanum.fund);teanum.should =teanum.salary +teanum.allowance +teanum.life;teanum.total=teanum.tel+teanum.utilities +teanum.rent+teanum.due+teanum.health+teanum.fund;teanum.actual=teanum.should-teanum.tota

17、l; num+;printf(是否繼續(xù)添加?(Y/N); if(getch()=y) tea_new (); return;/查詢菜單void searchmenu() char choic; system(cls); printf(nt-查詢-); printf(nt-1顯示所有-); printf(nt-2按編號查詢-); printf(nt-3按姓名查詢-); printf(nt-4返回主菜單-); printf(nt請選擇:n); choic=getch(); switch(choic) case1:show_all();break; case2:search_id();break;

18、case3:search_name();break; case4:mainmenu();break; /顯示所有void show_all() int i; system(cls); if(num!=0) for(i=0;inum;i+) printf(nt編號: %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,te

19、ai.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(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+1num) printf(nt_); system

20、(pause); printf(nt*); else printf(nt文件中無記錄); printf(nt按回車鍵回到主菜單); getch(); return;/按編號查詢void search_id() int mark=0; int i,a=0; int id; printf(nt請輸入編號:); scanf(%d,&id); for(i=0;inum;i+) if(id=teai.number) printf(nt*以下是你要查找的教師工資信息*n); printf(nt編號: %d,teai.number); printf(nt姓名: %s,); printf(n

21、t基本工資: %.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(nt所得稅: %.5f,teai.due); printf(nt衛(wèi)生費(fèi): %.5f,teai.health); printf(nt公積金: %.5f,teai.fund); printf(nt應(yīng)發(fā)工資: %.

22、5f,teai.should); printf(nt合計(jì)扣款: %.5f,teai.total); printf(nt實(shí)發(fā)工資: %.5f,teai.actual); printf(nt*); printf(nt按回車鍵回到主菜單); mark+; getch(); return; if(mark=0) printf(nt沒有該編號的信息); printf(nt按回車鍵返回主菜單); getch(); return;/按姓名查詢void search_name() int mark=0; int i,a=0; char name10; printf(請輸入姓名:); scanf(%s,name

23、); for(i=a;inum;i+) if(strcmp(,name)=0) printf(nt*以下是你要查找的教師工資信息*n); printf(nt編號: %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); printf(nt水電費(fèi): %.5f,teai.utilities

24、); 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,teai.total); printf(nt實(shí)發(fā)工資: %.5f,teai.actual); printf(nt*); mark+; if(i+1)num) printf(tn是否繼續(xù)查找相同名字的教師信息:(y/n); if(getch

25、()=y) a=i;continue; else return; else printf(nt按回車鍵返回主菜單); getch(); return; if(mark!=0) printf(nt沒有相同姓名的教師信息記錄); printf(nt按回車鍵回到主菜單); getch(); return; else printf(nt沒有相同姓名的教師信息記錄); printf(nt按回車鍵回到主菜單); getch(); return; /刪除菜單void delete_id() int i,j; int deletemark=0; int id; printf(nt情輸入要刪除的編號:); sc

26、anf(%d,&id); if(num=0) printf(nt對不起,文件中無任何教師工資信息記錄); printf(nt按回車鍵回到主菜單); getch(); return; for(i=0;inum;i+) if(id=teai.number) printf(nt*以下是你要刪除的教師工資信息*n); printf(nt編號: %d,teai.number); printf(nt姓名: %s,); printf(nt基本工資: %.5f,teai.salary); printf(nt津貼: %.5f,teai.allowance); printf(nt生活補(bǔ)貼: %.

27、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(nt公積金: %.5f,teai.fund); printf(nt應(yīng)發(fā)工資: %.5f,teai.should); printf(nt合計(jì)扣款: %.5f,teai.total); printf(nt實(shí)發(fā)工資: %.5f,teai.act

28、ual); printf(nt是否刪除?(y/n); if(getch()=y) for(j=i;jnum-1;j+) teaj=teaj+1; num-; deletemark+; printf(nt刪除成功); 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() in

29、t a=0,findmark=0; int i; int id; printf(nt請輸入要修改教師的編號:); scanf(%d,&id); for(i=a;inum;i+) if(id=teai.number) printf(nt*以下是你要修改的教師工資信息*n); findmark+; printf(nt編號: %d,teai.number); printf(nt姓名: %s,); printf(nt基本工資: %.5f,teai.salary); printf(nt津貼: %.5f,teai.allowance); printf(nt生活補(bǔ)貼: %.5f,teai.

30、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(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=

31、i; break; else continue; printf(nt請重新輸入以下信息:n); printf(請輸入教師號:);scanf(%d,&teanum.number);printf(請輸入教師姓名:);scanf(%s,);printf(請輸入教師基本工資:);scanf(%f,&teanum.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);printf(請輸入教師的房租:);scanf(%f,&teanum.rent);printf(請輸入教師的所得稅:);scanf(%f,&teanum.due);printf(請輸入教師的衛(wèi)生費(fèi):);scanf(%f,&teanum.health);printf(請輸入教師的公積金:);scanf(%f,&teanum.fund);

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論