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

正文內(nèi)容

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

2023-05-24 17:38:56 本頁面
 

【正文】 執(zhí)行將記錄記錄存入磁盤中的數(shù)據(jù)文件的操作;若選擇 9,則調(diào)用Disp()函數(shù),執(zhí)行將記錄以表格形式打 印輸出至屏幕的操作;若輸入0~9 之外的值,則調(diào)用 Wrong()函數(shù),給出按鍵錯誤的提示。當(dāng)打開文件操作成功后,則從文件中一次讀出一條記錄,添加到新建的數(shù)組中,然后執(zhí)行顯示主菜單和進(jìn)入主循環(huán)操作,進(jìn)行按鍵判斷。第一,它實現(xiàn)對記錄的存盤操作,即將數(shù)組中各元素中存儲的記錄信息寫入數(shù)據(jù)文件中。 ( 4) 統(tǒng)計記錄模塊。 ( 3) 更新記錄模塊。 ( 2) 查詢記錄模塊。輸入記錄模塊主要完成將數(shù)據(jù)存入數(shù)組中的工作。通過本程序的訓(xùn)練,使我對 C語言的文件操作有了一個更深刻的了解,掌握利用數(shù)組存儲結(jié)構(gòu)實現(xiàn)工資管理的原理,為進(jìn)一步開發(fā)出高質(zhì)量的信息管理管理系統(tǒng)打下堅實的基礎(chǔ)。 38 六. 心得體會 36 7. 插入記錄 29 23 3 21 18 15 main() 15 8 3. 查詢記錄模塊 4 三、 總體設(shè)計 6 功能模塊設(shè)計 8 4. 更新記錄模塊 12 數(shù)據(jù)結(jié)構(gòu)設(shè)計 25 31 1. 主界面 31 2. 輸入記錄 33 4. 刪除記錄 35 6. 修改記錄 37 10. 保存記錄 39 七. 參考文獻(xiàn) 二、 功能描述 如后圖所示,與利用單鏈表實現(xiàn)的學(xué)生管理系統(tǒng)不同的是,此工資管理系統(tǒng)主要利用數(shù)組來實現(xiàn),其數(shù)組元素是結(jié)構(gòu)體類型。在此工資管理系統(tǒng)中,記錄可以從以二進(jìn)制形式存儲的數(shù)據(jù)文件中讀入,也可以從鍵盤逐個輸入記錄。查詢記錄主要完成在數(shù)組中查詢滿足相關(guān)條件的記錄。更新記錄模塊主要完成對記錄的維護(hù)。統(tǒng)計記錄模塊主要完成對公司員工的工資在各等級的人數(shù)統(tǒng)計。第二,它實現(xiàn)將數(shù)組中存儲的記錄信息以表格的形式在屏幕上打印出來。 在判斷鍵值時,有效的輸入為 0~9 之間的任意數(shù)值,其他輸入都被視為錯誤按鍵。 開 始 以可讀寫的方式打 開一個數(shù)據(jù)文件 將此文件的內(nèi)容讀出,并存入一個新的結(jié)構(gòu)體類型的數(shù)組中 調(diào)用 menu()菜單函數(shù) 進(jìn)入 while( 1)主循環(huán) 8 是 否 . 主控函數(shù)流程圖 輸入記錄模塊主要實現(xiàn)將數(shù)據(jù)存入數(shù)組中。 輸入 0~9 中的一個數(shù)值,選擇相應(yīng)操作 輸入是否為 0 是否已對修改進(jìn)行了存盤 判斷鍵值,調(diào)用相應(yīng)函數(shù),完成相應(yīng)功能 調(diào)用 Save()函數(shù),進(jìn)行寫數(shù)據(jù)文件操作 結(jié)束 9 查詢記錄模塊主要實現(xiàn)在數(shù)組中按職工編號或姓名查找滿足相關(guān)條件的記錄。下面分別介紹這 4 個功能模塊。第一步,輸入要修改的職工編號,輸入后調(diào)用定位函數(shù) Locate()在數(shù)組中逐個對職工編號或姓名字段的值進(jìn)行比較,直到找到該職工的編號或姓名的記錄,并返回指向該記錄的數(shù)組元素小標(biāo);第二步, 10 若找到記錄,則從該記錄所在元素的后續(xù)元素起,依次向前移動一個元素位置,有值的數(shù)組元素個數(shù)減 1. 3) 插入記錄 插入記錄操作完成在指定職工編號的隨后位置插入新的記錄。 4) 排序記錄 冒泡排序法屬于內(nèi)部排序法中的一種,這是運用數(shù)值比較后,依據(jù)判斷規(guī)則對數(shù)據(jù)位置進(jìn)行交換,以達(dá)到排序 的目的。用偽代碼描述如下: If(左邊的值 右邊的值 ) then 11 此兩個元素的位置互換; Else/*左邊的值 =右邊的值 */ 此兩個元素的位置不變;右邊的元素繼續(xù)和下一個元素比較; 插入 B1 插入 B1 前 插入 B1 后 如下圖所示,假設(shè)共有 n 個 ZGGZ 結(jié)構(gòu)數(shù)組元素 gz[0]至 gz[n1],其具體比較過程如下。 gz[n] 數(shù)組中對記錄排序示意圖 A0 A1 A2 A3 A4 A0 A1 A2 B1 A3 A4 gz[0] gz[1] gz[2] ........ gz[3] gz[n2] gz[n1] gz[n1] 12 因為是按實發(fā)工資的降序排序,所以每進(jìn)行一輪比較都會以交換位置的方式將該輪的最小者移向數(shù)組的尾端。 該模塊的實現(xiàn)比較簡單,它主要通過依次讀取數(shù)組中元素的數(shù)據(jù)域中的實發(fā)工資的值進(jìn)行比較判斷的形式,完成工資在各個等級的人數(shù)統(tǒng)計。 Typedef struct emplyee { char num[10]。 float kk。 } ZGGZ。 ? Jbgz:保存職工獎金。 2) Printdata() 函數(shù)原型 : void printdata(ZGGZ pp) Printdata()函數(shù)用于以表格顯示的方式,打印輸出單個數(shù)組元素 pp 中的記錄信息。 5) Stringinput() 函數(shù)原型 : void stringinput(char*t,int lens,char*notice) Stringinput()函數(shù)用于輸入字符串,并進(jìn)行字符串長度驗證(長度lens) ,t 用于保存輸?shù)淖址?,因為是以指針形式傳遞的,所以 t 相當(dāng)于該函數(shù)的返回值 notice 用于保存 printf()中輸出的提示信息。并顯示出來。 11) Inser() 函數(shù)原型: Insert(ZGGZ tp[] int n) Insert 函數(shù)用于在數(shù)組 tp 中插入記錄,并返回數(shù)組中的當(dāng)前記錄數(shù)。 16 15) 主函數(shù) main() main()是整個工資管理系統(tǒng)控制部分。 /*職工編號 */ char name[15]。 /*扣款 */ float yfgz。 2. 主 函數(shù) main() Main()函數(shù)主要實現(xiàn)了對整個程序的運行控制,以及相關(guān)功能模塊的調(diào)用。 /*保存選擇結(jié)果變量 */ char ch。 exit(0)。 /*關(guān)閉文件 */ printf(\n==open file success,the total records number is :%d.\n,count)。 menu()。 if(select==0) { if(saveflag==1) /*若對數(shù)組的數(shù)據(jù)有修改且未進(jìn)行存盤操 作,此標(biāo)志為1*/ { getchar()。 if(ch==39。) Save(gz,count)。 } switch (select) 18 { case 1:count=Add(gz,count)。 /*刪除職工工資記錄 */ case 3:Qur(gz,count)。 /*修改職工工資記錄 */ case 5:count=Insert(gz,count)。 /*統(tǒng)計職工工資記錄 */ case 7:Sort(gz,count)。 /*保存職工工資記錄 */ case 9:system(cls)。getchar()。 void menu() /*主菜單 */ { system(cls)。 gotoxy(8,8)。 gotoxy(8,10)。 gotoxy(8,12)。 gotoxy(8,14)。 (1)調(diào)用 Disp(ZGGZ tp[],int n)函數(shù),它將顯示從數(shù)組 tp 第一個元素開始的 n 條記錄。 printf(HEADER3)。 printf(FORMAT,DATA)。 return。 while (in) /*逐條輸出數(shù)組中存儲的職工信息 */ { printdata(tp[i])。 } 20 void Wrong() /*輸出按鍵錯誤信息 */ { printf(\n\n\n\n\n**********Error:input has Wrong! press any key to continue********\n)。這里可以按照職工編號或職工姓名進(jìn)行記錄查找定位。 } } else if(strcmp(nameornum,name)==0) /*按職工姓名查找 */ { while(in) { if(strcmp(tp[i].name,findmess)==0) /*若找到 findmess值的姓名 */ return i。 (1)調(diào)用 stringinput(char *t,int lens,char *notice)函數(shù),它將提示用戶輸入字符串,并對用戶輸入的字符串進(jìn)行長度驗證(長度必須小于 lens)。 /*顯示提示信息 */ scanf(%s,n)。 /*將輸入的字符串拷貝到字符串 t中 */ } float numberinput(char *notice) { float t=。 if(t0) printf(\n score must =0!\n)。若在剛進(jìn)行工資管理系統(tǒng)時數(shù)據(jù)文件為空,則將從數(shù)組的頭部開始增加記錄;否則,將此記錄添加在數(shù)組尾部。 Disp(tp,n)。 flag=0。 break。 scanf(%c,amp。||ch==39。 } else {break。 tp[n].jj=numberinput(jiangjin:)。 tp[n].sfgz=tp[n].yfgztp[n].sk。 } 調(diào)用 Qur(ZGGZ tp[],int n)函數(shù),完成在數(shù)組 tp 中查詢職工工資記錄的功能。 /*1:按編號查找, 2:按姓名查找,其他:返回主界面(菜單)*/ char searchinput[20]。 getchar()。 printf( please choice[1,2]: )。 p=Locate(tp,n,searchinput, num)。 printf(press any key to return)。
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1