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

正文內(nèi)容

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

2025-07-16 17:38本頁面
  

【正文】 nt Locate(ZGGZ tp[],char findmess[],char nameornum[]),參數(shù) findmess[]保存要查找的具體內(nèi)容, nameornum[]保存要查找的字段,若找到該記錄,則返 回指向該記錄的數(shù)組元素的下標(biāo),否則:返回一個(gè) 1 的值。因?yàn)橛涗浭且詳?shù)組的結(jié)構(gòu)形式存儲(chǔ)的,所以這些操作都在數(shù)組中完成。 1) 修改記錄操作 修改記錄操作需要對(duì)數(shù)組中目標(biāo)元素的數(shù)據(jù)域中的值進(jìn)行修改,它分兩步完成。 2) 刪除記錄 刪除記錄操作完成刪除指定職工編號(hào)或姓名的記錄,它也分兩步完成。首先,它要求用戶輸入某個(gè)員工 的職工編號(hào),新的紀(jì)錄將插入在該記錄之后;然后,提示用戶輸入一條新的紀(jì)錄的信息,這些信息保存在新結(jié)構(gòu)體類型的數(shù)組元素的各字段中;最后,將該元素插入在已經(jīng)確認(rèn)位置的職工編號(hào)之后。具體過程為:現(xiàn)調(diào)用 Locate()函數(shù)找到 A2 在數(shù)組中的下標(biāo),從 A4 開始,往后移動(dòng),至 A2 停止移動(dòng),然后再遠(yuǎn) A3 的位置插入元素 B1。針對(duì)數(shù)組結(jié)構(gòu)的特點(diǎn),這里采用這種排序法來實(shí)現(xiàn)按實(shí)發(fā)工資字段的值從高到低對(duì)記錄進(jìn)行排序。右邊的值繼續(xù)和下一個(gè)值做比較,重復(fù)此動(dòng)作,直到比較到最后一個(gè)值。 第一輪:從 gz[0]比到 gz[n1],實(shí)發(fā)工資字段值最小的元素存放在gz[n1]中。 ...... 第 n 輪:從 gz[0]比到 gz[1],實(shí)發(fā)工資字段值最小的元素存放在 gz[1]中。冒泡排序法的優(yōu)點(diǎn)是,若數(shù)組元素已有部分排好序,則使用冒泡排序法可以快速排序。它屬于穩(wěn)定的快速排序法。 當(dāng)把記錄輸出至文件時(shí),調(diào)用 fwrite(amp。 二、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) 本程序定義了結(jié)構(gòu)體 emplyee ,用于存放職工的基本信息和工資信息。 char name[15]。 float jj。 13 float yfgz。 float sfgz。 其各字段的值的含義如下。 ? Name[15]:保存職工姓名。 ? kk:保存職工扣款。 三、 函數(shù)功能描述 1) Printheader() 函數(shù)原型: void printheader() Printheader()函數(shù)用于在以表格形式顯示記錄時(shí),打印輸出表頭信息。 3) Disp() 函數(shù)原型: void Disp(ZGGZ tp[],int n) Disp()函數(shù)用于顯示 tp 數(shù)組中存儲(chǔ)的 n 條記錄,內(nèi)容為 emplyee 結(jié)構(gòu) 14 中定義的內(nèi)容。該函數(shù)返回用戶輸入的浮點(diǎn)類型數(shù)據(jù)值。 6) Locate() 函數(shù)原型 : int Locate(ZGGZ tp[],int n,charfindmess[],charnameornum[[]) Locate()函數(shù)用于定位數(shù)組重符合要求的元素,并返回該數(shù)組元素下標(biāo)值。 7) Add() 函數(shù)原型: int Add(ZGGZ tp[],int n) Add()函數(shù)用于在數(shù)組 tp 中增加工資記錄元素,并返回?cái)?shù)組中的當(dāng)前記錄。 8) Qur() 函數(shù)原型: void Qur(ZGGZ tp[],int n) Qur()函數(shù)用于在數(shù)組 tp 中按職工編號(hào)或姓名查找滿足條件的記錄, 15 并顯示出來。 10) Modify() 函數(shù)原型: void Modify(ZGGZ tp],int n) Modify 函數(shù)用于在數(shù)組 tp 中修改記錄元素。 12) Tongji() 函數(shù)原型: void Tongji(ZGGZ tp[] int n) Tongji()函數(shù)用于在數(shù)組 tp 中完成記錄的 統(tǒng)計(jì)工作,統(tǒng)計(jì)該公司職工工資的整體分布情況。 14) Save() 函數(shù)原型: void Save(ZGGZ tp[] int n) Save()函數(shù)用于將保存職工工資的數(shù)組 tp 中的 n 個(gè)元素寫入磁盤的數(shù)據(jù)文件中。 四、 程序?qū)崿F(xiàn) 1. 程序預(yù)處理 包括加載頭文件,定義結(jié)構(gòu)體、常量變量,并對(duì)它們進(jìn)行初 始化工作。 /*是否需要存盤的標(biāo)志變量 */ /*定義與職工有關(guān)的數(shù)據(jù)結(jié)構(gòu) */ typedef struct employee /*標(biāo)記為 employee*/ { char num[10]。 /*職工姓名 */ float jbgz。 /*獎(jiǎng)金 */ float kk。 /*應(yīng)發(fā)工資 */ float sk。 /*實(shí)發(fā)工資 */ }ZGGZ。 void main() { ZGGZ gz[N]。 /*文件指針 */ 17 int select。 /*保存( y,Y,n,N) */ int count=0。/*以追加方式打開二進(jìn)制文件 ,可讀可寫,若次文件不存在,會(huì)創(chuàng)建此文件 */ if(fp==NULL) { printf(\n=====can not open file!\n)。 } while(!feof(fp)) { if(fread(amp。 } fclose(fp)。 getchar()。 while(1) { system(cls)。 printf(\n please Enter your choice(0~9):)。select)。 printf(\n==whether save the modified record to file?(y/n):)。ch)。y39。Y39。 } printf(\n===thank you for useness!)。 break。break。break。break。break。break。break。 break。break。Disp(gz,count)。 /*顯示職工工資記錄 */ default: Wrong()。break。此代碼 main()函數(shù)調(diào)用。 /*調(diào)用 DOS命令清屏 */ textcolor(8)。 cprintf( The Employee salary Management System \n)。 cprintf(******************************Menu*****************\n)。 cprintf( * 1 input record 2 delete record * \n)。 cprintf( * 3 search record 4 modify record * \n)。 cprintf( * 5 insert record 6 count record * \n)。 cprintf( * 7 sort record 8 save record * \n)。 cprintf( * 9 display record 0 quit system * \n)。 cprintf( *************************************************\n)。過程如下。 (2)調(diào)用 printdata(ZGGZ pp)函數(shù),它將顯示數(shù)組元素 pp 中的記錄信息。 printf(HEADER2)。 } void printdata(ZGGZ pp) /*格式化輸出表中的數(shù)據(jù) */ { ZGGZ* p。pp。 } void Disp(ZGGZ tp[], int n) /*顯示數(shù)組 tp[]中存儲(chǔ)的記錄,內(nèi)容為 employee結(jié)構(gòu)中定義的內(nèi)容 */ { int i。 getchar()。 } printf(\n\n)。 /*輸出表頭部 */ i=0。 i++。 } getchar()。 getchar()。 } 用戶進(jìn)入工資管理系統(tǒng)時(shí),在對(duì)某個(gè)記錄進(jìn)行處理前,需要按照條件找到這條記錄, Locate()函數(shù)完成了記錄定位的功能。 int Locate(ZGGZ tp[],int n,char findmess[],char nameornum[]) { int i=0。 i++。 i++。 /*未找到 */ } 21 在此工資管理系統(tǒng)中,要求用戶輸入的只有字符型和數(shù)值型數(shù)據(jù),所以我們設(shè)計(jì)了下面兩個(gè)函數(shù)來單獨(dú)處理,并對(duì)輸出的數(shù)據(jù)進(jìn)行檢驗(yàn)。 (2)調(diào)用 numberinput( char *notice)函數(shù),它將提示用戶輸入一個(gè)浮點(diǎn)型數(shù)值,對(duì)數(shù)值檢驗(yàn)后返回該值。 do{ printf(notice)。 /*輸入字符串 */ if(strlen(n)lens) printf(\n exceed the required length! \n)。 strcpy(t,n)。 do{ printf(notice)。t)。 }while(t0)。 } 調(diào)用 Add(ZGGZ tp[],int n)函數(shù),完成在數(shù)組 tp 中添加職工工資記錄的功能。 int Add(ZGGZ tp[],int n) {char ch,num[10]。 system(cls)。 while(1) { while(1) { stringinput(num,10,input number (press 39。return menu):)。 if(strcmp(num,0)==0) /*輸入為 0,則退出添加操作,返回主界面 */ 22 {return n。 while (in) /*查詢該編號(hào)是否已近存在,若存在則要求 重新輸入一個(gè)未被占用的編號(hào) */ { if(strcmp(tp[i].num,num)==0) {flag=1。 } i++。 printf(==the number %s is existing, try again?(y/n):,num)。ch) 。y39。Y39。 else return n。} } strcpy(tp[n].num,num)。 tp[n].jbgz=numberinput(jbgz:)。 tp[n].kk=numberinput(koukuan:)。 tp[n].sk=tp[n].yfgz*。 saveflag=1。 } return n。當(dāng)用戶執(zhí)行此查詢?nèi)蝿?wù)時(shí),系統(tǒng)會(huì)提示用戶進(jìn)行查詢字段的選擇,即按職工編號(hào)或姓名進(jìn)行查詢。 void Qur(ZGGZ tp[],int n) { int select。 23 int p=0。 printf(\n=====No employee record!\n)。 return。 printf(\n ======1 search by number =====2 search by name\n)。 scanf(%d,amp。 if(select==1) { stringinput(searchinput,10,input th
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1