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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

教師工資管理系統(tǒng)C實現(xiàn)教師工資管理系統(tǒng)C實現(xiàn)教師工資管理系統(tǒng)C實現(xiàn)教師工資管理系統(tǒng)C實現(xiàn)編制僅供參考審核批準生效日期地址:電話:傳真:郵編:教師工資管理系統(tǒng)一.選題背景二.需求分析一、設計選題與目標1.選題要求:教師工資管理系統(tǒng)每個教師的信息為:教師號、姓名、性別、單位名稱、家庭住址、聯(lián)系電話、基本工資、津貼、生活補貼、應發(fā)工資、電話費、水電費、房租、所得稅、衛(wèi)生費、公積金、合計扣款、實發(fā)工資。注:應發(fā)工資=基本工資+津貼+生活補貼;合計扣款=電話費+水電費+房租+所得稅+衛(wèi)生費+公積金;實發(fā)工資=應發(fā)工資-合計扣款。A、教師信息處理(1)輸入教師信息 (2)插入(修改)教師信息:(3)刪除教師信息:(4)瀏覽教師信息:提示:具體功能及操作參考題1。B、教師數(shù)據(jù)處理:(1)按教師號錄入教師基本工資、津貼、生活補貼、電話費、水電費、房租、所得稅、衛(wèi)生費、公積金等基本數(shù)據(jù)。(2)教師實發(fā)工資、應發(fā)工資、合計扣款計算。提示:計算規(guī)則如題目。(3)教師數(shù)據(jù)管理提示:輸入教師號,讀出并顯示該教師信息,輸入新數(shù)據(jù),將改后信息寫入文件(4)教師數(shù)據(jù)查詢:提示:輸入教師號或其他信息,即讀出所有數(shù)據(jù)信息,并顯示出來。(5)教師綜合信息輸出提示:輸出教師信息到屏幕。2.目標教師數(shù)據(jù)處理:(1)按教師號錄入教師基本工資、津貼、生活補貼、電話費、水電費、房租、所得稅、衛(wèi)生費、公積金等基本數(shù)據(jù)。(2)教師實發(fā)工資、應發(fā)工資、合計扣款計算。計算規(guī)則如題目。(3)教師數(shù)據(jù)管理 輸入教師號,讀出并顯示該教師信息,輸入新數(shù)據(jù),將改后信息寫入文件(4)教師數(shù)據(jù)查詢: 輸入教師號或其他信息,即讀出所有數(shù)據(jù)信息,并顯示出來。(5)教師綜合信息輸出輸出教師信息到屏幕三.總體設計利用六個模塊分別實現(xiàn)教師信息的輸入,修改,刪除,查詢,保存以及信息文件的讀入功能。并使用不同的函數(shù)實現(xiàn)不同的功能。使用鏈表存儲及處理數(shù)據(jù)。程序流程圖如下:輸出界面輸出界面選擇操作選擇1輸入數(shù)據(jù)Break選擇2修改數(shù)據(jù)break選擇3刪除數(shù)據(jù)B選擇3刪除數(shù)據(jù)Break選擇4選擇5查詢數(shù)據(jù)保存退出數(shù)據(jù)BreakBreak輸出:無效選項Break結束四.詳細設計1.功能模塊共分為六個模塊:輸入教師信息模塊在主菜單中運用結構體teacher,輸入教師信息,首先建立鏈表,將用戶信息儲存到鏈表中,輸入完成后提示用戶是否繼續(xù)輸入,如果用戶輸入“Y”,則再次調用,實現(xiàn)繼續(xù)輸入教師信息的操作。如果用戶輸入”NO“,則返回主菜單界面。修改教師信息模塊在主函數(shù)中調用voidchange_id(),修改記錄操作需要對數(shù)組中目標元素的數(shù)據(jù)域中的值進行操作。首先請用戶輸入要修改的教師編號,然后若找到該記錄就提示用戶輸入各個信息。刪除教師信息模塊在主函數(shù)中調用voiddelete_id(),以刪除教師信息,首先按學號查詢教師信息,如果沒有找到教師信息,給出提示。如果找到教師信息,將教師信息顯示出來,提示用戶刪除。查詢教師信息查詢分三種,調用voidshow_all()顯示所有教師信息;調用voidsearch_id()按編號查詢教師信息;調用voidsearch_name()按姓名查詢教師信息。讀入教師信息文件模塊調用voidreadfromfile()函數(shù)從文件導入教師信息保存并退出模塊調用voidwritetofile()寫入文件。2.函數(shù)的設計與調用(1)主函數(shù)的設計編寫主函數(shù)的主要任務就是確定調用函數(shù)以及控制屏幕顯示。(2)其他函數(shù)1)原型voidshow_all;功能展出所有錄入文件參數(shù)無返回值無工作方式調用charname[10];floatsalary;floatallowance;floatlife;floattel;floatutilities;floatrent;floatdue;floathealth;floatfund;floattotal;floatshould;floatactual;2)原型voidtea_new功能創(chuàng)建新的信息錄入?yún)?shù)無返回值無工作方式創(chuàng)建file3)原型voidsearchmenu;功能查找菜單參數(shù)無返回值無工作方式調用voidsearch_id;voidsearch_name;4)原型voidsearch_id;功能查找信息按編號查找參數(shù)無返回值整個信息工作方式調用number5)原型voidsearch_name;功能查找信息按姓名查找參數(shù)無返回值整個信息工作方式調用charname6)原型voiddelete_id功能刪除數(shù)據(jù)按編號刪除參數(shù)無返回值無工作方式調用id7)原型voidchange_id;功能改變數(shù)據(jù)按編號改參數(shù)無返回值整個錄入信息工作方式調用idshow_allreadfromfileshow_allreadfromfilesearchmenusearchmenuMainmenuMainmenusearch_idsearch_idsearch_namewritetofilesearch_namewritetofiletea_newtea_newdelete_id(delete_id(change_idchange_id3.數(shù)據(jù)結構的設計定義結構體teacher,用于存放教師的信息。structteacher{ intnumber;教師編號 charname[10];教師姓名floatsalary;教師基本工資floatallowance;教師津貼floatlife;教師生活補貼floattel;教師電話費floatutilities;教師水電費floatrent;教師房租floatdue;教師所得稅floathealth;教室衛(wèi)生費floatfund;教師公積金 floattotal;教師合計扣款 floatshould;教師應發(fā)工資 floatactual;教師實發(fā)工資}tea[500];4.算法實現(xiàn)鏈表是算法的關鍵。在添加新的數(shù)據(jù)時,可以表頭插入也可以表尾插入,這兩種插入方法決定了其他成員函數(shù)數(shù)據(jù)的處理。本系統(tǒng)中采取的是表尾插入的方法。在刪除某信息時需要判斷數(shù)據(jù)是在表頭,表中還是表尾,如果刪除的是在表中,則需要將刪除的前后鏈表連接起來。統(tǒng)大量運用了鏈表的5種基本操作:建立鏈表、鏈表的插入、刪除、輸入和查找。5.程序清單#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>/*教師工資管理系統(tǒng)結構體定義*/structteacher{ intnumber; charname[10];floatsalary;floatallowance;floatlife;floattel;floatutilities;floatrent;floatdue;floathealth;floatfund; floattotal; floatshould; floatactual;}tea[500];intnum=0;FILE*fp;voidmainmenu(); voidreadfromfile(); voidwritetofile(); voidshow_all(); voidtea_new(); voidsearchmenu(); voidsearch_id(); voidsearch_name(); voiddelete_id(); voidchange_id(); voidmain(){ readfromfile(); while(1) { mainmenu(); }}//主菜單voidmainmenu(){ charchoic;system("cls");printf("\t----------------歡迎使用\(^o^)/~-------------------\n");printf("\t****************教師工資管理系統(tǒng)******************\n\n");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請輸入所需的服務項目序號:\n"); choic=getch();switch(choic) { case'1':tea_new();break; case'2':change_id();break;case'3':delete_id();break; case'4':searchmenu();break;case'5':writetofile();break;default:mainmenu(); }}//從文件導入voidreadfromfile(){ if((fp=fopen("teacher.bin","rb"))==NULL) { printf("\n\t教師工資信息文件不存在喲(*/ω╲*)"); if((fp=fopen("teacher.bin","wb"))==NULL) { printf("\n\t建立失敗"); exit(0); } else { printf("\n\t教師工資信息文件已建立(~o ̄3 ̄)~"); printf("\n\t按回車鍵進入主菜單"); getch(); return; } exit(0); } fseek(fp,0,2); if(ftell(fp)>0) { rewind(fp); for(num=0;!feof(fp)&&fread(&tea[num],sizeof(structteacher),1,fp);num++); printf("\n\t教師工資信息文件導入成功(* ̄3 ̄)╭"); printf("\n\t文件中無任何記錄(=@__@=)"); printf("\n\t按回車鍵進入主菜單"); getch(); return; }}//寫入文件voidwritetofile(){ inti;if((fp=fopen("teacher.bin","wb"))==NULL) { printf("\n\t打開文件失敗(*/ω╲*)"); } for(i=0;i<num;i++) { if(fwrite(&tea[i],sizeof(structteacher),1,fp)!=1) { printf("\n\t文件寫入錯誤!(>﹏<)\n"); } } fclose(fp); printf("\n\t教師工資信息文件已保存"); printf("\n\t按任意鍵退出程序(* ̄ω ̄)\n\t"); exit(0);}//添加記錄voidtea_new(){ printf("請輸入教師號:"); scanf("%d",&tea[num].number); printf("請輸入教師姓名:"); scanf("%s",tea[num].name); printf("請輸入教師基本工資:"); scanf("%f",&tea[num].salary); printf("請輸入教師的津貼:"); scanf("%f",&tea[num].allowance); printf("請輸入教師的生活補貼:"); scanf("%f",&tea[num].life); printf("請輸入教師的電話費:"); scanf("%f",&tea[num].tel); printf("請輸入教師的水電費:"); scanf("%f",&tea[num].utilities); printf("請輸入教師的房租:"); scanf("%f",&tea[num].rent); printf("請輸入教師的所得稅:"); scanf("%f",&tea[num].due); printf("請輸入教師的衛(wèi)生費:"); scanf("%f",&tea[num].health); printf("請輸入教師的公積金:"); scanf("%f",&tea[num].fund); tea[num].should=tea[num].salary+tea[num].allowance+tea[num].life; tea[num].total=tea[num].tel+tea[num].utilities+tea[num].rent+tea[num].due+tea[num].health+tea[num].fund; tea[num].actual=tea[num].should-tea[num].total; num++; printf("是否繼續(xù)添加(Y/N)");

if(getch()=='y')tea_new();return;}//查詢菜單voidsearchmenu(){charchoic;system("cls");printf("\n\t------------查詢-------------------");printf("\n\t--------[1]顯示所有----------------");printf("\n\t--------[2]按編號查詢--------------");printf("\n\t--------[3]按姓名查詢--------------");printf("\n\t--------[4]返回主菜單--------------");printf("\n\t請選擇:\n");choic=getch();switch(choic) {case'1':show_all();break; case'2':search_id();break; case'3':search_name();break;case'4':mainmenu();break; }}//顯示所有voidshow_all(){inti;system("cls");if(num!=0) {for(i=0;i<num;i++) {printf("\n\t編號:%d",tea[i].number);printf("\n\t姓名:%s",tea[i].name);printf("\n\t基本工資:%.5f",tea[i].salary);printf("\n\t津貼:%.5f",tea[i].allowance);printf("\n\t生活補貼:%.5f",tea[i].life);printf("\n\t電話費:%.5f",tea[i].tel);printf("\n\t水電費:%.5f",tea[i].utilities);printf("\n\t房租:%.5f",tea[i].rent);printf("\n\t所得稅:%.5f",tea[i].due);printf("\n\t衛(wèi)生費:%.5f",tea[i].health);printf("\n\t公積金:%.5f",tea[i].fund);printf("\n\t應發(fā)工資:%.5f",tea[i].should);printf("\n\t合計扣款:%.5f",tea[i].total);printf("\n\t實發(fā)工資:%.5f",tea[i].actual);if(i+1<num) {printf("\n\t_____________________");system("pause"); } }printf("\n\t*************************************"); }elseprintf("\n\t文件中無記錄┭┮﹏┭┮");printf("\n\t按回車鍵回到主菜單");getch();return;}//按編號查詢voidsearch_id(){intmark=0;inti,a=0;intid;printf("\n\t請輸入編號:");scanf("%d",&id);for(i=0;i<num;i++) {if(id==tea[i].number) {printf("\n\t******以下是你要查找的教師工資信息******\n");printf("\n\t編號:%d",tea[i].number);printf("\n\t姓名:%s",tea[i].name);printf("\n\t基本工資:%.5f",tea[i].salary);printf("\n\t津貼:%.5f",tea[i].allowance);printf("\n\t生活補貼:%.5f",tea[i].life);printf("\n\t電話費:%.5f",tea[i].tel);printf("\n\t水電費:%.5f",tea[i].utilities);printf("\n\t房租:%.5f",tea[i].rent);printf("\n\t所得稅:%.5f",tea[i].due);printf("\n\t衛(wèi)生費:%.5f",tea[i].health);printf("\n\t公積金:%.5f",tea[i].fund);printf("\n\t應發(fā)工資:%.5f",tea[i].should);printf("\n\t合計扣款:%.5f",tea[i].total);printf("\n\t實發(fā)工資:%.5f",tea[i].actual);printf("\n\t*************************************");printf("\n\t按回車鍵回到主菜單");mark++;getch();return; } }if(mark==0) {printf("\n\t沒有該編號的信息");printf("\n\t按回車鍵返回主菜單");getch();return; }}//按姓名查詢voidsearch_name(){intmark=0;inti,a=0;charname[10];printf("請輸入姓名:");scanf("%s",name);for(i=a;i<num;i++) {if(strcmp(tea[i].name,name)==0) {printf("\n\t******以下是你要查找的教師工資信息******\n");printf("\n\t編號:%d",tea[i].number);printf("\n\t姓名:%s",tea[i].name);printf("\n\t基本工資:%.5f",tea[i].salary);printf("\n\t津貼:%.5f",tea[i].allowance);printf("\n\t生活補貼:%.5f",tea[i].life);printf("\n\t電話費:%.5f",tea[i].tel);printf("\n\t水電費:%.5f",tea[i].utilities);printf("\n\t房租:%.5f",tea[i].rent);printf("\n\t所得稅:%.5f",tea[i].due);printf("\n\t衛(wèi)生費:%.5f",tea[i].health);printf("\n\t公積金:%.5f",tea[i].fund);printf("\n\t應發(fā)工資:%.5f",tea[i].should);printf("\n\t合計扣款:%.5f",tea[i].total);printf("\n\t實發(fā)工資:%.5f",tea[i].actual);printf("\n\t*************************************");mark++;if((i+1)<num) {printf("\t\n是否繼續(xù)查找相同名字的教師信息:(y/n)");if(getch()=='y') {a=i;continue; }elsereturn; }else {printf("\n\t按回車鍵返回主菜單");getch();return; } } }if(mark!=0) {printf("\n\t沒有相同姓名的教師信息記錄");printf("\n\t按回車鍵回到主菜單");getch();return; }else {printf("\n\t沒有相同姓名的教師信息記錄");printf("\n\t按回車鍵回到主菜單");getch();return; }}//刪除菜單voiddelete_id(){inti,j;intdeletemark=0;intid;printf("\n\t情輸入要刪除的編號:");scanf("%d",&id);if(num==0) {printf("\n\t對不起,文件中無任何教師工資信息記錄");printf("\n\t按回車鍵回到主菜單");getch();return; }for(i=0;i<num;i++) {if(id==tea[i].number) {printf("\n\t******以下是你要刪除的教師工資信息******\n");printf("\n\t編號:%d",tea[i].number);printf("\n\t姓名:%s",tea[i].name);printf("\n\t基本工資:%.5f",tea[i].salary);printf("\n\t津貼:%.5f",tea[i].allowance);printf("\n\t生活補貼:%.5f",tea[i].life);printf("\n\t電話費:%.5f",tea[i].tel);printf("\n\t水電費:%.5f",tea[i].utilities);printf("\n\t房租:%.5f",tea[i].rent);printf("\n\t所得稅:%.5f",tea[i].due);printf("\n\t衛(wèi)生費:%.5f",tea[i].health);printf("\n\t公積金:%.5f",tea[i].fund);printf("\n\t應發(fā)工資:%.5f",tea[i].should);printf("\n\t合計扣款:%.5f",tea[i].total);printf("\n\t實發(fā)工資:%.5f",tea[i].actual);printf("\n\t是否刪除(y/n)");

if(getch()=='y') {for(j=i;j<num-1;j++)tea[j]=tea[j+1];num--;deletemark++;printf("\n\t刪除成功");printf("\n\t是否繼續(xù)刪除(y/n)");

if(getch()=='y')delete_id();return; }elsereturn; }continue; }if(deletemark==0) {printf("\n\t沒有該教師的記錄");printf("\n\t是否繼續(xù)刪除(y/n)");

if(getch()=='y')delete_id(); }}//修改菜單voidchange_id(){inta=0,findmark=0;inti;intid;printf("\n\t請輸入要修改教師的編號:");scanf("%d",&id);for(i=a;i<num;i++) {if(id==tea[i].number) {printf("\n\t******以下是你要修改的教師工資信息******\n");findmark++;printf("\n\t編號:%d",tea[i].number);printf("\n\t姓名:%s",tea[i].name);printf("\n\t基本工資:%.5f",tea[i].salary);printf("\n\t津貼:%.5f",tea[i].allowance);printf("\n\t生活補貼:%.5f",tea[i].life);printf("\n\t電話費:%.5f",tea[i].tel);printf("\n\t水電費:%.5f",tea[i].utilities);printf("\n\t房租:%.5f",tea[i].rent);printf("\n\t所得稅:%.5f",tea[i].due);printf("\n\t衛(wèi)生費:%.5f",tea[i].health);printf("\n\t公積金:%.5f",tea[i].fund);printf("\n\t應發(fā)工資:%.5f",tea[i].should);printf("\n\t合計扣款:%.5f",tea[i].total);printf("\n\t實發(fā)工資:%.5f",tea[i].actual);i=i; break; }elsecontinue; }printf("\n\t請重新輸入以下信息:\n");printf("請輸入教師號:"); scanf("%d",&tea[num].number); printf("請輸入教師姓名:"); scanf("%s",tea[num].name); printf("請輸入教師基本工資:"); scanf("%f",&tea[num].salary); printf("請輸入教師的津貼:"); scanf("%f",&tea[num].allowance); printf("請輸入教師的生活補貼:"); scanf("%f",&tea[num].life); printf("請輸入教師的電話費:"); scanf("%f",&tea[num].tel); printf("請輸入教師的水電費:"); scanf("%f",&tea[num].utilities); printf("請輸入教師的房租:"); scanf("%f",&tea[num].rent); printf("請輸入教師的所得稅:"); scanf("%f",&tea[num].due); printf("請輸入教師的衛(wèi)生費:"); sc

溫馨提示

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

評論

0/150

提交評論