freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)工資管理系統(tǒng)-可編輯(編輯修改稿)

2025-06-18 17:38 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 t(char *notice) numberinput()函數(shù)用于輸入數(shù)值型數(shù)據(jù), notice 用于保存 printf()中輸出的提示信息。該函數(shù)返回用戶輸入的浮點(diǎn)類(lèi)型數(shù)據(jù)值。 5) Stringinput() 函數(shù)原型 : void stringinput(char*t,int lens,char*notice) Stringinput()函數(shù)用于輸入字符串,并進(jìn)行字符串長(zhǎng)度驗(yàn)證(長(zhǎng)度lens) ,t 用于保存輸?shù)淖址?,因?yàn)槭且灾羔樞问絺鬟f的,所以 t 相當(dāng)于該函數(shù)的返回值 notice 用于保存 printf()中輸出的提示信息。 6) Locate() 函數(shù)原型 : int Locate(ZGGZ tp[],int n,charfindmess[],charnameornum[[]) Locate()函數(shù)用于定位數(shù)組重符合要求的元素,并返回該數(shù)組元素下標(biāo)值。參數(shù) findmess[]保存要查找的具體內(nèi)容, nameornum[]保存按什么字段在數(shù)組 tp 中查找。 7) Add() 函數(shù)原型: int Add(ZGGZ tp[],int n) Add()函數(shù)用于在數(shù)組 tp 中增加工資記錄元素,并返回?cái)?shù)組中的當(dāng)前記錄。并顯示出來(lái)。 8) Qur() 函數(shù)原型: void Qur(ZGGZ tp[],int n) Qur()函數(shù)用于在數(shù)組 tp 中按職工編號(hào)或姓名查找滿足條件的記錄, 15 并顯示出來(lái)。 9) Del() 函數(shù)原型: int Del(ZGGZ tp[],int n) Del()函數(shù)用于現(xiàn)在數(shù)組 tp 中找到滿足條件的記錄,然后刪除記錄。 10) Modify() 函數(shù)原型: void Modify(ZGGZ tp],int n) Modify 函數(shù)用于在數(shù)組 tp 中修改記錄元素。 11) Inser() 函數(shù)原型: Insert(ZGGZ tp[] int n) Insert 函數(shù)用于在數(shù)組 tp 中插入記錄,并返回?cái)?shù)組中的當(dāng)前記錄數(shù)。 12) Tongji() 函數(shù)原型: void Tongji(ZGGZ tp[] int n) Tongji()函數(shù)用于在數(shù)組 tp 中完成記錄的 統(tǒng)計(jì)工作,統(tǒng)計(jì)該公司職工工資的整體分布情況。 13) Sort() 函數(shù)原型: void Sort(ZGGZ tp[], int n) Sort()函數(shù)用于在數(shù)組 tp 中完成利用冒泡排序算法實(shí)現(xiàn)數(shù)組的按實(shí)發(fā)工資字段的降序排序。 14) Save() 函數(shù)原型: void Save(ZGGZ tp[] int n) Save()函數(shù)用于將保存職工工資的數(shù)組 tp 中的 n 個(gè)元素寫(xiě)入磁盤(pán)的數(shù)據(jù)文件中。 16 15) 主函數(shù) main() main()是整個(gè)工資管理系統(tǒng)控制部分。 四、 程序?qū)崿F(xiàn) 1. 程序預(yù)處理 包括加載頭文件,定義結(jié)構(gòu)體、常量變量,并對(duì)它們進(jìn)行初 始化工作。 include include include include define HEADER1 ZGGZ \n define HEADER2 | number | name | jbgz | jj | kk | yfgz | sk | sfgz | \n define HEADER3 || | | | | | || \n define FORMAT |%8s|%10s|%|%|%|%|%|%| \n define DATA pnum,pname,pjbgz,pjj,pkk,pyfgz,psk,psfgz define END \n define N 60 int saveflag=0。 /*是否需要存盤(pán)的標(biāo)志變量 */ /*定義與職工有關(guān)的數(shù)據(jù)結(jié)構(gòu) */ typedef struct employee /*標(biāo)記為 employee*/ { char num[10]。 /*職工編號(hào) */ char name[15]。 /*職工姓名 */ float jbgz。 /*基本工資 */ float jj。 /*獎(jiǎng)金 */ float kk。 /*扣款 */ float yfgz。 /*應(yīng)發(fā)工資 */ float sk。 /*稅款 */ float sfgz。 /*實(shí)發(fā)工資 */ }ZGGZ。 2. 主 函數(shù) main() Main()函數(shù)主要實(shí)現(xiàn)了對(duì)整個(gè)程序的運(yùn)行控制,以及相關(guān)功能模塊的調(diào)用。 void main() { ZGGZ gz[N]。 /*定義 ZGGZ結(jié)構(gòu)體 */ FILE *fp。 /*文件指針 */ 17 int select。 /*保存選擇結(jié)果變量 */ char ch。 /*保存( y,Y,n,N) */ int count=0。 /*保存文件中的記錄條數(shù) (或元素個(gè)數(shù) )*/ fp=fopen(c:\\ZGGZ,ab+)。/*以追加方式打開(kāi)二進(jìn)制文件 ,可讀可寫(xiě),若次文件不存在,會(huì)創(chuàng)建此文件 */ if(fp==NULL) { printf(\n=====can not open file!\n)。 exit(0)。 } while(!feof(fp)) { if(fread(amp。gz[count],sizeof(ZGGZ),1,fp)==1) /*一次從文件中讀取一條職工工資記錄 */ count++。 } fclose(fp)。 /*關(guān)閉文件 */ printf(\n==open file success,the total records number is :%d.\n,count)。 getchar()。 menu()。 while(1) { system(cls)。 menu()。 printf(\n please Enter your choice(0~9):)。 scanf(%d,amp。select)。 if(select==0) { if(saveflag==1) /*若對(duì)數(shù)組的數(shù)據(jù)有修改且未進(jìn)行存盤(pán)操 作,此標(biāo)志為1*/ { getchar()。 printf(\n==whether save the modified record to file?(y/n):)。 scanf(%c,amp。ch)。 if(ch==39。y39。||ch==39。Y39。) Save(gz,count)。 } printf(\n===thank you for useness!)。 getchar()。 break。 } switch (select) 18 { case 1:count=Add(gz,count)。break。 /*增加職工工資記錄 */ case 2:count=Del(gz,count)。break。 /*刪除職工工資記錄 */ case 3:Qur(gz,count)。break。 /*查詢(xún)職工工資記錄 */ case 4:Modify(gz,count)。break。 /*修改職工工資記錄 */ case 5:count=Insert(gz,count)。break。 /*插入職工工資記錄 */ case 6:Tongji(gz,count)。break。 /*統(tǒng)計(jì)職工工資記錄 */ case 7:Sort(gz,count)。 break。 /*排序職工工資記錄 */ case 8:Save(gz,count)。break。 /*保存職工工資記錄 */ case 9:system(cls)。Disp(gz,count)。break。 /*顯示職工工資記錄 */ default: Wrong()。getchar()。break。 /*按鍵有誤,必須數(shù)值 0~9*/ } } } 3. 主菜單界面 用戶進(jìn)入工資管理系統(tǒng)時(shí),需要顯示主菜單,提示用戶進(jìn)行選擇,完成相應(yīng)任務(wù)。此代碼 main()函數(shù)調(diào)用。 void menu() /*主菜單 */ { system(cls)。 /*調(diào)用 DOS命令清屏 */ textcolor(8)。 /*在文本模式中選擇新的字符顏色 */ gotoxy(8,5)。 cprintf( The Employee salary Management System \n)。 gotoxy(8,8)。 cprintf(******************************Menu*****************\n)。 gotoxy(8,9)。 cprintf( * 1 input record 2 delete record * \n)。 gotoxy(8,10)。 cprintf( * 3 search record 4 modify record * \n)。 gotoxy(8,11)。 cprintf( * 5 insert record 6 count record * \n)。 gotoxy(8,12)。 cprintf( * 7 sort record 8 save record * \n)。 gotoxy(8,13)。 cprintf( * 9 display record 0 quit system * \n)。 gotoxy(8,14)。 cprintf( *************************************************\n)。 /*cprintf()送格式化輸出至文本窗口屏幕中 */ } 4. 表格形式顯示記錄 19 由于記錄顯示操作經(jīng)常進(jìn)行,所以我們將這部分有獨(dú)立的函數(shù)來(lái)實(shí)現(xiàn),以減少代碼的重復(fù)。過(guò)程如下。 (1)調(diào)用 Disp(ZGGZ tp[],int n)函數(shù),它將顯示從數(shù)組 tp 第一個(gè)元素開(kāi)始的 n 條記錄。 (2)調(diào)用 printdata(ZGGZ pp)函數(shù),它將顯示數(shù)組元素 pp 中的記錄信息。 void printheader() /*格式化輸出表頭 */ { printf(HEADER1)。 printf(HEADER2)。 printf(HEADER3)。 } void printdata(ZGGZ pp) /*格式化輸出表中的數(shù)據(jù) */ { ZGGZ* p。 p=amp。pp。 printf(FORMAT,DATA)。 } void Disp(ZGGZ tp[], int n) /*顯示數(shù)組 tp[]中存儲(chǔ)的記錄,內(nèi)容為 employee結(jié)構(gòu)中定義的內(nèi)容 */ { int i。 if(n==0) /*表示沒(méi)有職工工資記錄 */ { printf(\n=====Not employee record!\n)。 getchar()。 return。 } printf(\n\n)。 printheader()。 /*輸出表頭部 */ i=0。 while (in) /*逐條輸出數(shù)組中存儲(chǔ)的職工信息 */ { printdata(tp[i])。 i++。 printf(HEADER3)。 } getchar()。 } 20 void Wrong() /*輸出按鍵錯(cuò)誤信息 */ { printf(\n\n\n\n\n**********Error:input has Wrong! press any key to continue********\n)。 getchar()。 } void Nofind() /*輸出未查找到此職工信息 */ { printf(\n=====Not find this employee record!\n)。 } 用戶進(jìn)入工資管理系統(tǒng)時(shí),在對(duì)某個(gè)記錄進(jìn)行處理前,需要按照條件找到這條記錄, Locate()函數(shù)完成了記錄定位的功能。這里可以按照職工編號(hào)或職工姓名進(jìn)行記錄查找定位。 int Locate(ZGGZ tp[],int n,char findmess[],char nameornum[]) { int i=0。 if(strcmp(nameornum,num)==0) /*按職工編號(hào)查找 */ { while(in) { if (strcmp(tp[i].num,findmess)==0) /*若找到 findmess值的職工編號(hào) */ return i。 i++。 } } else if(strcmp(nameornum,name)==0) /*按職工姓名查找 */ { while(in) { if(strcmp(tp[i].name,findmess)==0) /*若找到 findmess值的姓名 */ return i。 i++。 } } return 1。 /*未找到 */ } 21 在此工資管理系統(tǒng)中,要求用戶輸入的只有字符型和數(shù)值型數(shù)據(jù),所以我們?cè)O(shè)計(jì)了下面兩個(gè)函數(shù)來(lái)單獨(dú)處理,并對(duì)輸出的數(shù)據(jù)進(jìn)行檢驗(yàn)。 (1)調(diào)用 stringinput(char *t,int lens,char *notice)函數(shù),它將提示用戶輸入字符串,并對(duì)用戶輸入的字符串進(jìn)行長(zhǎng)度驗(yàn)證(長(zhǎng)度必須小于 lens)。 (2)調(diào)用 numberinput( char *notice)函數(shù),它將提示用戶輸入一個(gè)浮點(diǎn)型數(shù)值,對(duì)數(shù)值檢驗(yàn)后返回該值。 void string
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1