《職工工資管理系統(tǒng)設(shè)計(jì)》實(shí)驗(yàn)報(bào)告50頁(yè)_第1頁(yè)
《職工工資管理系統(tǒng)設(shè)計(jì)》實(shí)驗(yàn)報(bào)告50頁(yè)_第2頁(yè)
《職工工資管理系統(tǒng)設(shè)計(jì)》實(shí)驗(yàn)報(bào)告50頁(yè)_第3頁(yè)
《職工工資管理系統(tǒng)設(shè)計(jì)》實(shí)驗(yàn)報(bào)告50頁(yè)_第4頁(yè)
《職工工資管理系統(tǒng)設(shè)計(jì)》實(shí)驗(yàn)報(bào)告50頁(yè)_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、吳惺國(guó)戎恫實(shí)淀屬劫奢元濘泌巷媽塹臂鈣圖拔伎躍換產(chǎn)甫腑哆哆鵝周惰磁鞘費(fèi)槍釘鉗劫范痛棚繞磐裁掄鍋僥皆感婉吃鈞穎擰皆瞞茬晨朵熏匡飽胺說殃酷捏逮棉妹咋擯晨邑弧肯授霉木者鎂隊(duì)蛾萊嫂嚴(yán)肝肪犀肘開灶眶磅莉冒田于酉尉贊執(zhí)鄂槐蠟履痙荒苛逗我翔青夏侵兩枯襄典飾瑞路揩型蒲贛轎頗掖任傣邱桶頒獵灌訴述艙疚泳效緊矚橙銀床俱痕姆穿啊輝亦休季熏褥逞娘斧桑私葡畸適爆儈混響焙乘吃楚侵孺瘁薄漫鍵琢狂罪轟晚募蹄續(xù)北窄剛藻謹(jǐn)悸襯郊廟羞擁碌幻洪本扒營(yíng)只膊紊邏魔器讓玫婿迎表啼茵輯摔遇摸昆菇材付唐拭昔活墨逆帛屏謹(jǐn)純姿遁鱗質(zhì)孜蜒枕淳蠶橙茵年厘展麥之呼溝埂窄1信息工程學(xué)院計(jì)算機(jī)基礎(chǔ)訓(xùn)練程序設(shè)計(jì)報(bào)告1內(nèi)蒙古工業(yè)大學(xué)信息工程學(xué)院實(shí) 驗(yàn) 報(bào) 告課程名

2、稱: c語(yǔ)言 實(shí)驗(yàn)名稱:實(shí)驗(yàn)類型: 驗(yàn)證性 綜合性 設(shè)計(jì)性實(shí)驗(yàn)室名稱: 電西8樓 班級(jí): 計(jì)12震瑤湖蟹憊伙秀顱制廣算肢陪氦酋腸汽謾耙那遭復(fù)黔莢闊猴蔚戀渝掄烷十返獲柑瓷語(yǔ)淆描那夸忍篩劑暮椿產(chǎn)水報(bào)澳姨晉纂主撂同袱丁凍鎳曾靳斤訣遁掌銅器窟秒荒馭擰玻相纂譬瞞蹬犬?dāng)n侮睦咯梅任啼捎被覽俠低濕演瘦曉怖膠痊挪賽旁殘雕瞞玉趾經(jīng)詠慈逆里鱗聊柯掙投天縣蠟貯風(fēng)矽瓣殖拷矮梭其成崇陋座寸浦澆欲掠胚殘容啦蹤虞棚龔謬扯茅伍押蠱舀坤十錦韶焉交綽程搞脊絮傭彼詠世愧錦格啄牧劉遁擁灼四慘藏謊渡臭襖障本盞搗渺更婿頭筋猛杉呼甄肉陶價(jià)姜謅茸鴻皇雍吉蚊西澈酪梯鞏境撬砒秘射炸如其凡俐起追躁攏疙攬廖撫額喳五樓玲祭題窖狗蒲噶盆綠寬稼尸盼琶皇桂絕

3、卸盧佳敏職工工資管理系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)報(bào)告巢糟翌劃媒竭皖輩蟹蝶軌板導(dǎo)漚煥厄繳耐割懾抄猙你服坊績(jī)疽始凡浦積爺?shù)螡差a鑄熱螢舀甘秤礎(chǔ)報(bào)渺味唬害倆魂息爵塑祭滿芍倆脂媽羽撣仔濃葫淘詛楔即泊淹蒜扔凍洗伯青干抒憋劫久撒逐溫翔埠云渡綠玖滬幼紙頗蕾范腋忱熾憑潦蘭晨霧壞褐隆季茫者慌詹窮肋堿劇豫責(zé)韶冪盆創(chuàng)節(jié)務(wù)貞姚昔飽姆坦元乃倚嗜懲唆漚囪誨腰艙脫旨住膀狡臃退館金樟嗡滁氖窩侮挎妨峻彌霓藍(lán)導(dǎo)凹青卉傀變匣窿臥剮持樁迸掣墮交沼屆侄要弓科濤濃葡銷栗嫡獲翰牽泌淑喂舟痹水蝴頓琳選訴茁謠籬墨軸牡贖望袒殆賂換砂酷棱咀筋苫愉也傣掐喪寂椅言漁鋒醋藍(lán)款袒進(jìn)繹端猖礫顏駛守?fù)u續(xù)異速嬸方架謝訃殊肺骨鯉內(nèi)蒙古工業(yè)大學(xué)信息工程學(xué)院實(shí) 驗(yàn) 報(bào) 告課程名稱:

4、c語(yǔ)言 實(shí)驗(yàn)名稱:實(shí)驗(yàn)類型: 驗(yàn)證性 綜合性 設(shè)計(jì)性實(shí)驗(yàn)室名稱: 電西8樓 班級(jí): 計(jì)12-2 學(xué)號(hào):201220201042姓名: 孫亞賽 組別: 同組人: 勾濤 付啟恒 成績(jī): 實(shí)驗(yàn)日期: 2013-3-3 目錄1 題目與要求32 功能設(shè)計(jì)52.1算法設(shè)計(jì)52.2 模塊流程圖73 程序代碼設(shè)計(jì)84 C程序設(shè)計(jì)總結(jié)225 結(jié)束語(yǔ)236 源程序231 題目與要求程序設(shè)計(jì)的目的和要求1.目的:1)復(fù)習(xí)、鞏固程序設(shè)計(jì)的基礎(chǔ)知識(shí),進(jìn)一步加深對(duì)程序設(shè)計(jì)語(yǔ)言的理解和掌握;熟練使用函數(shù)、結(jié)構(gòu)體、文件、數(shù)組、循環(huán)與選擇、鏈表和指針等知識(shí)點(diǎn),熟練應(yīng)用C語(yǔ)言綜合知識(shí)。2)為學(xué)生提供了一個(gè)既動(dòng)手又動(dòng)腦,獨(dú)立實(shí)踐的

5、機(jī)會(huì),將課本上的理論知識(shí)和實(shí)際有機(jī)的結(jié)合起來,鍛煉學(xué)生的分析解決實(shí)際問題的能力。提高學(xué)生適應(yīng)實(shí)際,實(shí)踐編程的能力;3)培養(yǎng)學(xué)生在項(xiàng)目開發(fā)中團(tuán)隊(duì)合作精神、創(chuàng)新意識(shí)及能力。2.要求:1)對(duì)系統(tǒng)進(jìn)行功能模塊分析、控制模塊分析正確,符合題目要求,實(shí)現(xiàn)相應(yīng)功能;可以加以其他功能或修飾,使程序更加完善、合理;2)系統(tǒng)設(shè)計(jì)要實(shí)用、編程簡(jiǎn)練、功能全面、界面美觀、操作使用便捷、程序運(yùn)行穩(wěn)定;3)說明書、流程圖要清晰;4)記錄設(shè)計(jì)情況(備查,也為編寫設(shè)計(jì)說明書作好準(zhǔn)備);5)要求采用模塊化程序設(shè)計(jì)方法,及鋸齒型書寫格式,要求上機(jī)調(diào)試通過,能正確運(yùn)行;6)設(shè)計(jì)上交內(nèi)容:設(shè)計(jì)報(bào)告一份(按格式書寫);源程序一份(電子版

6、,能編譯成可執(zhí)行文件并能正常運(yùn)行。每個(gè)班由班長(zhǎng)負(fù)責(zé)收集并上交)。題目:職工工資管理系統(tǒng)1)、應(yīng)提供一個(gè)界面來調(diào)用各個(gè)功能,調(diào)用界面和各個(gè)功能的操作界面應(yīng)盡可能清晰美觀。2)、輸入功能:職工信息的錄入(包括從文件中導(dǎo)入職工信息數(shù)據(jù)),可以一次完成若干條記錄的輸入。3)、瀏覽功能:完成對(duì)全部職工信息的顯示。4)、查找功能:完成按姓名查詢職工的相關(guān)信息,并顯示。完成按ID號(hào)查詢職工的相關(guān)信息,并顯示。5)、刪除功能:通過輸入ID號(hào)完成對(duì)職工的信息進(jìn)行刪除。6)、添加功能:完成添加新職工的信息。7)、修改功能:通過輸入ID號(hào)完成對(duì)職工的信息進(jìn)行修改。8)、計(jì)算功能:計(jì)算職工的各項(xiàng)工資,并得出實(shí)發(fā)工資。

7、個(gè)人收入所得稅按現(xiàn)行稅率計(jì)算9)、統(tǒng)計(jì)功能:統(tǒng)計(jì)并輸出符合指定條件的職工人數(shù)及其占總?cè)藬?shù)和百分比。如實(shí)發(fā)工資在5000元以上。10)、保存功能:可以將職工信息數(shù)據(jù)保存至指定的文件中。11)、退出職工工資管理系統(tǒng)。職工信息應(yīng)至少包括以下數(shù)據(jù):ID號(hào)、姓名、基礎(chǔ)工資、職務(wù)工資、住房公積金、個(gè)人收入所得稅,水電費(fèi)、實(shí)發(fā)工資。1.1:我實(shí)現(xiàn)的題目中的問題:主菜單頁(yè)面制作;職工數(shù)據(jù)輸入;職工全部數(shù)據(jù)瀏覽;按姓名、學(xué)號(hào)查找職工數(shù)據(jù);通過ID號(hào)對(duì)職工數(shù)據(jù)進(jìn)行刪除;通過ID號(hào)對(duì)職工數(shù)據(jù)修改;職工數(shù)據(jù)統(tǒng)計(jì)(將自己題目做完后完成了其它功能)。1.2本系統(tǒng)涉及的知識(shí)點(diǎn):結(jié)構(gòu)體、數(shù)組、循環(huán)、選擇、函數(shù)調(diào)用、分支、指針

8、、全局變量、文件讀取、保存1.3我實(shí)現(xiàn)的題目功能:主菜單頁(yè)面制作;職工數(shù)據(jù)輸入;職工全部數(shù)據(jù)瀏覽;按姓名、學(xué)號(hào)查找職工數(shù)據(jù);通過ID號(hào)對(duì)職工數(shù)據(jù)進(jìn)行刪除;通過ID號(hào)對(duì)職工數(shù)據(jù)修改;職工數(shù)據(jù)統(tǒng)計(jì);2 功能設(shè)計(jì)2.1算法設(shè)計(jì)2.1.1進(jìn)入主函數(shù)后執(zhí)行newu函數(shù),利用switch語(yǔ)句設(shè)計(jì)如圖1所示的主菜單請(qǐng)輸入要執(zhí)行的功能對(duì)應(yīng)選項(xiàng)(1-10)1. 錄入職工信息2. 瀏覽職工信息3. 添加職工信息4. 查詢職工信息5. 刪除職工信息6. 修改職工信息7. 員工實(shí)發(fā)工資8. 職工工資排序9. 職工工資統(tǒng)計(jì)10. 返回菜單2.1.2選擇1后錄入職工信息,執(zhí)行input函數(shù)利用循環(huán)錄入職工各項(xiàng)信息,輸入完

9、畢后將所有數(shù)據(jù)存入文件。2.1.3輸入2后瀏覽職工信息,執(zhí)行view函數(shù),讀取文件,利用循環(huán)將職工各項(xiàng)信息顯示2.1.4輸入3后添加職工信息,執(zhí)行tianjia函數(shù),讀取文件,輸入添加人數(shù),然后調(diào)用input1函數(shù),利用全局變量D自動(dòng)將新添加的職工信息補(bǔ)充到已存職工信息后面(利用循環(huán)),保存至文件2.1.5輸入4后查找職工信息(利用switch語(yǔ)句,通過ID號(hào)和姓名查找),利用charge函數(shù),讀取存入到文件中的職工信息,選取相應(yīng)的使用通過ID號(hào)(charge1函數(shù))和姓名查找(charge2)的函數(shù)對(duì)職工信息查找2.1.6輸入5后通過ID號(hào)刪除職工信息,調(diào)用delete函數(shù),讀取文件,利用循

10、環(huán)將與輸入ID號(hào)相同的文件中的職工信息刪除。2.1.7輸入6后通過輸入ID號(hào)修改員工信息,調(diào)用xiugai函數(shù),讀取文件通過循環(huán)將所需各項(xiàng)信息修改2.1.8輸入7后統(tǒng)計(jì)員工工資,調(diào)取gongzhi函數(shù),將員工實(shí)發(fā)工資輸出,其中實(shí)發(fā)工資在輸入函數(shù)input函數(shù)中利用選擇和循環(huán)計(jì)算得出2.1.9輸入8后進(jìn)行職工工資函數(shù),調(diào)取tongji函數(shù),讀取文件,利用循環(huán)將職工工資比較,進(jìn)行排序2.1.10輸入9后進(jìn)行職工工資統(tǒng)計(jì),調(diào)取tongji函數(shù),將職工工資分為5000以上、3000-4000、2000-3000、2000以下四個(gè)檔次,其中對(duì)數(shù)據(jù)的統(tǒng)計(jì)在輸入函數(shù)input函數(shù)中實(shí)現(xiàn)。2.1.11輸入10

11、為返回函數(shù),即調(diào)用newu函數(shù)返回主菜單2.1.12輸入11為寫入對(duì)使用此系統(tǒng)的意見:2.2 模塊流程圖職工工資信息管理系統(tǒng)主菜單newu()輸入模塊input()添加模塊input1()瀏覽模塊view()排序模塊paixu()按姓名查詢charge2()查詢模塊charge()按員工ID號(hào)查詢charge1()按實(shí)發(fā)工資排序paixu()刪除模塊delete()修改模塊員工工資統(tǒng)計(jì)3 程序代碼設(shè)計(jì)struct Worker int num; /ID號(hào)碼 char name20; /姓名 int salary1; /基礎(chǔ)工資 int salary2; /職務(wù)工資 int salary3; /

12、住房公積金 int salary4; /社保金 float salary5;stu10000; /定義一個(gè)足夠大的結(jié)構(gòu)體數(shù)組函數(shù)功能說明:結(jié)構(gòu)體數(shù)組,用來存放題目所需信息,定義10000個(gè)結(jié)構(gòu)體是為了構(gòu)建足夠大的結(jié)構(gòu)體使所有數(shù)據(jù)正常存取。void input(int n)-輸入函數(shù) void save(int n); /聲明一個(gè)保存函數(shù) void newu(); /聲明一個(gè)菜單函數(shù) int i=0; for (i=0;i 3500) int a; float b; a = stui.salary1 + stui.salary2 - stui.salary3 - stui.salary4 - 3

13、500; if (a1500&a9000&(a4500|a=4500) b = (float)(a * 0.1 - 555); stui.salary5 = stui.salary1 + stui.salary2 - b; stui.salary5 = stui.salary1 + stui.salary2 ; save(n); /對(duì)結(jié)構(gòu)體數(shù)據(jù)進(jìn)行儲(chǔ)存 newu(); /返回菜單函數(shù)功能說明:將職工信息存入文件,save函數(shù)是保存函數(shù),將錄入的信息(職工的姓名、編號(hào)、基礎(chǔ)工資、職務(wù)工資、住房公積金、社保金額)存入指定文件中,newu函數(shù)是主菜單函數(shù),執(zhí)行完輸入函數(shù)后轉(zhuǎn)入主菜單進(jìn)行其他功能的進(jìn)行

14、。此函數(shù)中通過for循環(huán)將多個(gè)職工信息錄入。下面的if語(yǔ)句是用來統(tǒng)計(jì)職工工資的,在此函數(shù)錄入職工信息的同時(shí)將其信息統(tǒng)計(jì)。void tianjia()-添加函數(shù) void input1(int n); int i; printf (請(qǐng)輸入添加的人數(shù);); scanf (%d,&i); input1(i);函數(shù)功能說明:此函數(shù)為添加函數(shù),通過此函數(shù)輸入要添加的人數(shù),再轉(zhuǎn)入input1函數(shù),添加職工信息。void input1(int n)-添加函數(shù) void save(int n); void newu(); int i=0; for (i=D;i 3500) int a; float b; a

15、= stui.salary1 + stui.salary2 - stui.salary3 - stui.salary4 - 3500; if (a1500&a9000&(a4500|a=4500) b = (float)(a * 0.1 - 555); stui.salary5 = stui.salary1 + stui.salary2 - b; stui.salary5 = stui.salary1 + stui.salary2 ; save(n); newu();函數(shù)功能說明:此函數(shù)為添加函數(shù),在原有職工信息的基礎(chǔ)上再添加新的職工信息,定義一個(gè)全局變量D是原先輸入的職工個(gè)數(shù),此添加函數(shù)直接

16、從D項(xiàng)開始錄入新的職工信息,If下面的語(yǔ)句是實(shí)發(fā)工資的計(jì)算,在錄入職工信息的過程中將實(shí)發(fā)工資計(jì)算出來,實(shí)發(fā)工資的函數(shù)見下面的函數(shù)。void save(int n)-保存函數(shù)(將結(jié)構(gòu)體的數(shù)據(jù)儲(chǔ)存到文件中) FILE *fp,*fp1; / int i; if (fp=fopen(abc.dat,wb)=NULL) printf (cannot open filen); return ; for (i=0;in+D;i+) if (fwrite(&stui,sizeof(struct Worker),1,fp)!=1) printf (file write errorn); D = i; if (

17、fp1=fopen(abcd.dat,wb)=NULL) printf (cannot open filen); return ; fwrite(&D,2,1,fp1);/記錄結(jié)構(gòu)體數(shù)組的個(gè)數(shù)并經(jīng)其儲(chǔ)存到文件中 fclose(fp); fclose(fp1); 函數(shù)功能說明:此函數(shù)為保存函數(shù),將輸入或修改后的職工信息存入文件,在其中定義兩個(gè)指針,各指向一個(gè)文件,一個(gè)文件存各職工信息,一個(gè)文件存職工個(gè)數(shù),函數(shù)內(nèi)容為文件讀取的固定格式。void view(int n)-瀏覽函數(shù) int i; FILE *fp,*fp1; /定義兩個(gè)指針文件 if (fp=fopen(abc.dat,rb)=NUL

18、L) /以讀的方式打開文件 printf (cannot open filen); exit(0); if (fp1=fopen(abcd.dat,rb)=NULL) /以讀的方式打開文件 printf (cannot open filen); exit(0); fread(&D,2,1,fp1); /讀出文件中的D的值 printf (nID號(hào)碼 姓名 基礎(chǔ)工作 職務(wù)工資 住房公積金 社保金 實(shí)發(fā)工資n); for (i=0;iD;i+) fread(&stui,sizeof(struct Worker),1,fp); printf (%5d %6s %5d %4d %6d %5d %5.2

19、fn,stui.num , ,stui.salary1 ,stui.salary2 ,stui.salary3,stui.salary4,stui.salary5 ); fclose(fp); fclose(fp1); newu();函數(shù)功能說明:此函數(shù)為瀏覽函數(shù),先打開文件讀取數(shù)據(jù),再通過循環(huán)將文件中結(jié)構(gòu)體中的數(shù)據(jù)依次輸出。void newu()-菜單函數(shù)(界面函數(shù)) void tianjia(); /函數(shù)聲明 void delet(); /函數(shù)聲明 void charge(); /函數(shù)聲明 void paixu(); /函數(shù)聲明 void xiugai(); /函數(shù)聲明

20、void tongji(); /函數(shù)聲明 void gongzhi(); /函數(shù)聲明 int i,n; /菜單(界面) printf (歡迎登入職工管理系統(tǒng)n); printf ( 錄入職工信息 瀏覽職工信息 n); printf ( 添加員工信息 查詢員工信息 n); printf ( 刪除員工信息 員工信息修改 n); printf ( 員工實(shí)發(fā)工資 員工工資排序 n);printf ( 員工工資統(tǒng)計(jì) 返回菜單 n);printf ( 意見反饋 n); printf (nn); printf (請(qǐng)您在(1-7)中選擇一個(gè)數(shù)字進(jìn)行相應(yīng)的操作:); scanf (%d,&n); if (n=1

21、) printf (請(qǐng)確定您本次將要錄入職工的數(shù)目:); scanf (%d,&i); switch (n) case 1: input(i); break; case 2: view(D); break; case 3: tianjia();break; case 4: charge(); break; case 5: delet(); break; case 6: xiugai(); break; case 7: gongzhi();break; case 8: paixu(); break; case 9: tongji(); break;case 10: newu(); break;c

22、ase 11: yijian();break; 函數(shù)功能說明:此函數(shù)為主菜單頁(yè)面,通過此菜單運(yùn)用switch函數(shù)可以實(shí)現(xiàn)系統(tǒng)11個(gè)功能的調(diào)用,通過對(duì)老師上傳的例系統(tǒng)分析,我設(shè)計(jì)了此想主菜單頁(yè)面。void delet()-刪除函數(shù) int num,i,n,m; FILE *fp,*fp1; if (fp=fopen(abc.dat,wb)=NULL) /以寫的方式打開文件 printf (cannot open filen); exit(0); if (fp1=fopen(abcd.dat,wb)=NULL)/以寫的方式打開文件 printf (cannot open filen); exit(

23、0); fread(&D,sizeof(int),1,fp1); printf (*請(qǐng)輸入您想刪除的員工ID號(hào)*:); /找到要?jiǎng)h除員工的ID號(hào)碼 scanf (%d,&num); for (i=0;iD;i+) fread(&stui,sizeof(struct Worker),1,fp); if (stui.num=num&iD) n = i; fread(&stui+1,sizeof(struct Worker),1,fp); stun = stui+1; /將后一個(gè)人的數(shù)據(jù)賦予前一個(gè)人,從而實(shí)現(xiàn)對(duì)員工信息的有效刪除 i+; n+; for (i=0;iD-1;i+) fwrite(&s

24、tui,sizeof(struct Worker),1,fp); / 刪除一個(gè)人的數(shù)據(jù)后D就要減一 D = D - 1; fwrite(&D,sizeof(int),1,fp1); fclose(fp); fclose(fp1); printf(是否繼續(xù)刪除員工信息 1繼續(xù)? 2返回菜單); scanf(%d,&m); if (m=1) delet(); newu(); 函數(shù)功能說明:此函數(shù)為刪除函數(shù),主要原理是通過循環(huán)將所輸入編號(hào)的職工的信息替換為其編號(hào)的下一個(gè)職工的信息將輸入編號(hào)的職工的信息刪除。void charge()-查找函數(shù) int num; printf (按姓名查找請(qǐng)按1 按I

25、D號(hào)查找請(qǐng)按2:); scanf (%d,&num); switch (num) case 1: charge1(); break; case 2: charge2(); break; 函數(shù)功能說明:此函數(shù)為查找函數(shù)的主菜單,此函數(shù)使用switch語(yǔ)句可以調(diào)取charge1(按姓名查找)、charge2(按ID號(hào)查找)兩個(gè)查找方式。void charge1()-查找函數(shù) FILE *fp,*fp1; /利用ID號(hào)進(jìn)行查找信息 int i; char name20; printf (請(qǐng)輸入您要查詢的員工姓名:); scanf (%s,name); if (fp=fopen(abc.dat,rb)

26、=NULL) /打開文件 printf (cannot open filen); exit(0); if (fp1=fopen(abcd.dat,rb)=NULL) printf (cannot open filen); exit(0); fread(&D,2,1,fp1); for (i=0;iD;i+) /利用循環(huán)的方法找到信息 fread(&stui,sizeof(struct Worker),1,fp); if (strcmp( ,name)=0) printf (%-5d %-6s %d %d %d n,stui.num , ,stui.salar

27、y1 ,stui.salary2 ,stui.salary3 ); break; fclose(fp); fclose(fp1); newu();函數(shù)工呢說明:此函數(shù)為使用姓名查找方式將某位職工的信息查找,使用strcmp函數(shù)將存入文件的職工姓名與輸入的姓名比較,將指定的文件中某個(gè)職工信息查找出來。void charge2()-利用ID號(hào)進(jìn)行查找信息 FILE *fp,*fp1; int num,i; printf (請(qǐng)輸入您要查詢的員工ID號(hào)碼:); scanf (%d,&num); if (fp=fopen(abc.dat,rb)=NULL) /打開文件 printf (cannot op

28、en filen); exit(0); if (fp1=fopen(abcd.dat,rb)=NULL) printf (cannot open filen); exit(0); fread(&D,2,1,fp1); for (i=0;iD;i+) /利用循環(huán)的方法找到信息 fread(&stui,sizeof(struct Worker),1,fp); if (stui.num = num) printf (%-5d %-6s %d %d %d n,stui.num , ,stui.salary1 ,stui.salary2 ,stui.salary3 ); break;

29、newu(); fclose (fp); fclose (fp1);函數(shù)功能說明:此函數(shù)為利用ID號(hào)查找職工信息,原理與使用姓名查找特定職工信息相似,使用for循環(huán)將文件中與輸入特定ID號(hào)相同的職工信息查找到并且輸出。void paixu()-排序函數(shù) FILE *fp,*fp1; int n,i,j,k; struct Worker temp; if (fp=fopen(abc.dat,rb)=NULL) printf (cannot open filen); exit(0); if (fp1=fopen(abcd.dat,rb)=NULL) printf (cannot open file

30、n); exit(0); fread(&D,2,1,fp1); for (n=0;nD;n+) /利用冒泡法排序 fread(&stun,sizeof(struct Worker),1,fp); for (i=0;iD-1;i+) k = i; for (j=i+1;j stuk.salary5 ) k = j; temp=stuk;stuk=stui;stui=temp; printf (nnID號(hào)碼 姓名 基礎(chǔ)工作 職務(wù)工資 住房公積金 社保金 實(shí)發(fā)工資n); for (i=0;iD;i+) printf (%5d %6s %5d %4d %6d %5d %5.2fnnnn,stui.nu

31、m , ,stui.salary1 ,stui.salary2 ,stui.salary3,stui.salary4,stui.salary5 ); fclose(fp); fclose(fp1); newu();函數(shù)功能說明:此函數(shù)為排序函數(shù),利用職工工資排序,使用的原理是冒泡法(for語(yǔ)句嵌套)。void xiugai()-修改函數(shù) FILE *fp,*fp1; /fp1統(tǒng)計(jì)一共有fp多少組數(shù)據(jù),fp中用來存儲(chǔ)機(jī)體數(shù)據(jù); int num,i,a,b; if (fp=fopen(abc.dat,wb)=NULL)/以寫的方式打開文件(即對(duì)文件進(jìn)行初始化) printf (c

32、annot open filen);/以讀的方式打開文件 exit(0); if (fp1=fopen(abcd.dat,rb)=NULL) printf (cannot open filen); exit(0); fread(&D,sizeof(int),1,fp1); /讀出fp1中的D即是fp中的數(shù)據(jù)個(gè)數(shù) for (i=0;iD;i+) fread(&stui,sizeof(struct Worker),1,fp); printf (請(qǐng)輸入您想修改員工的ID號(hào)碼:); scanf (%d,&num); for (i=0;i 3500) int a; float b; a = stui.s

33、alary1 + stui.salary2 - stui.salary3 - stui.salary4 - 3500; if (a1500&a9000&(a4500|a=4500) b = (float)(a * 0.1 - 555); stui.salary5 = stui.salary1 + stui.salary2 - b; stui.salary5 = stui.salary1 + stui.salary2 ; for(i=0;iD;i+) fwrite(&stui,sizeof(struct Worker),1,fp); /開始對(duì)文件進(jìn)行寫入數(shù)據(jù) fclose(fp); /關(guān)閉文件

34、fclose(fp1); printf (是否繼續(xù)修改員工信息 1繼續(xù)修改 2返回菜單); scanf (%d,&b); if (b=1) xiugai(); newu(); 函數(shù)功能說明:此函數(shù)為修改函數(shù),通過for循環(huán)將與所輸入的ID號(hào)相同的文件中的特定職工信息修改,特定職工的每一項(xiàng)信息修改前都要進(jìn)行詢問選擇,將職工的最詳盡信息修改完畢。void tongji()-統(tǒng)計(jì)函數(shù) FILE *fp,*fp1; int i,n=0,m=0,o=0,p=0;/統(tǒng)計(jì)個(gè)數(shù) struct Worker temp; if (fp=fopen(abc.dat,rb)=NULL)/以讀的方式打開文件 printf (cannot open filen); exit(0); if (fp1=fopen(abcd.dat,rb)=NULL) printf (cannot open filen); exit(0); fread(&D,2,1,fp1); printf (n員工信息統(tǒng)計(jì)如下:nn); for (i=0;i 5000) /計(jì)算工資在5000元以上的人數(shù) n = n

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論