Linux課程設(shè)計(jì)工資管理系統(tǒng)報(bào)告_第1頁
Linux課程設(shè)計(jì)工資管理系統(tǒng)報(bào)告_第2頁
Linux課程設(shè)計(jì)工資管理系統(tǒng)報(bào)告_第3頁
Linux課程設(shè)計(jì)工資管理系統(tǒng)報(bào)告_第4頁
Linux課程設(shè)計(jì)工資管理系統(tǒng)報(bào)告_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

/目錄職工工資管理系統(tǒng)\n">;printf<"***************************菜單***************************\n">;printf<"**1錄入工資記錄2刪除工資記錄**\n">;printf<"**3查詢工資記錄4修改工資記錄**\n">;printf<"**5統(tǒng)計(jì)工資信息0安全退出系統(tǒng)**\n">;printf<"**********************************************************\n">;}voidWrite_to_File<st_em_sal*L>/*將信息寫入文件*/{FILE*fp;st_em_sal*p;fp=fopen<"salary.sys","wb">;if<fp==NULL>{printf<"打開文件失敗!\n">;getchar<>; getchar<>;exit<0>;}p=L->next;while<p>{fprintf<fp,"%s%s%s%s%s%s%ld%ld%ld%ld%ld%ld%ld\n",p->name,p->stu_num,p->card_id, p->department,p->position,p->bir_pla,p->bas_sal,p->fund,p->tax,p->bonus,p->pos_sal,p->der_sal,p->act_sal>;p=p->next;}fclose<fp>;}voidRead_from_File<st_em_sal*h>/*讀出文件信息*/{FILE*fp;st_em_sal*p,*q;inti;fp=fopen<"salary.sys","rb">;if<fp==NULL>{printf<"打開文件失敗!\n">;exit<0>;}q=h;while<!feof<fp>>{p=<st_em_sal*>malloc<sizeof<st_em_sal>>;i=fscanf<fp,"%s%s%s%s%s%s%ld%ld%ld%ld%ld%ld%ld\n",p->name,p->stu_num,p->card_id, p->department,p->position,p->bir_pla,&p->bas_sal,&p->fund,&p->tax,&p->bonus,&p->pos_sal,&p->der_sal,&p->act_sal>; if<i==EOF> break;q->next=p;q=p;} q->next=NULL;fclose<fp>;}intprint_inf<>/*顯示文件信息*/{st_em_sal*head=NULL;st_em_sal*p;InitSt_em_sal<&head>;Read_from_File<head>;p=head->next;system<"clear">;if<!p>{printf<"文件中無內(nèi)容!">;printf<"\n按任意鍵鍵返回\n">;getchar<>; getchar<>;return0;}printf<"工號姓名部門職位籍貫基本工資應(yīng)發(fā)工資實(shí)發(fā)工資\n\n">;while<p>{printf<"%-6s%-8s%-17s%-12s%-12s%-9ld%-9ld%-9ld\n",p->stu_num,p->name,p->department, p->position,p->bir_pla,p->bas_sal,p->der_sal,p->act_sal>;p=p->next;}printf<"\n按任意鍵返回\n">;getchar<>; getchar<>;return1;}voidInitSt_em_sal<st_em_sal**h>/*創(chuàng)建頭結(jié)點(diǎn)*/{<*h>=<st_em_sal*>malloc<sizeof<st_em_sal>>;if<h==NULL>{printf<"創(chuàng)建文件失敗!\n">;getchar<>; getchar<>;exit<0>;} <*h>->next=NULL;}voidcreate_list<>/*創(chuàng)建鏈表函數(shù)*/{ FILE*fp;charch; st_em_sal*head;st_em_sal*p,*p1,*q; InitSt_em_sal<&head>; p1=head;intsize=sizeof<st_em_sal>;while<1>/*循環(huán)條件*/{ system<"clear">;printf<"*錄入職工工資信息*\n">; p=<st_em_sal*>malloc<size>;printf<"輸入職工工號:">;scanf<"%s",p->stu_num>;printf<"輸入職工身份證號:">;scanf<"%s",p->card_id>;printf<"輸入職工姓名:">;scanf<"%s",p->name>;printf<"輸入職工部門:">;scanf<"%s",p->department>;while<strcmp<p->department,"shebeichu">!=0&&strcmp<p->department,"renshichu">!=0&&strcmp<p->department,"xuegongchu">!=0&&strcmp<p->department,"ruanjianxueyuan">!=0>{/*部門合法性校驗(yàn)*/printf<"無此部門!請重新輸入!\n">;printf<"輸入職工部門:">;scanf<"%s",p->department>;}printf<"輸入職工職務(wù):">;scanf<"%s",p->position>;while<strcmp<p->position,"guyuan">!=0&&strcmp<p->position,"jingli">!=0&&strcmp<p->position,"jinglizhuli">!=0>/*職務(wù)合法性校驗(yàn)*/{printf<"無此職務(wù)!請重新輸入!\n">;printf<"輸入職工職務(wù):">;scanf<"%s",p->position>;}printf<"輸入職工籍貫:">;scanf<"%s",p->bir_pla>;printf<"輸入職工基本工資:">;scanf<"%ld",&<p->bas_sal>>;printf<"輸入職工基金:">;scanf<"%ld",&<p->fund>>;printf<"輸入職工稅金:">;scanf<"%ld",&<p->tax>>;while<p->tax>=p->bas_sal*0.05>{printf<"輸入有誤!請重新輸入!\n">;printf<"輸入職工稅金:">;scanf<"%ld",&<p->tax>>;}printf<"輸入職工獎(jiǎng)金:">;scanf<"%ld",&<p->bonus>>;printf<"輸入職工崗位工資:">;scanf<"%ld",&<p->pos_sal>>;p->der_sal=p->bas_sal+p->pos_sal+p->bonus;p->act_sal=p->der_sal-p->fund-p->tax;p->next=p1->next; p1->next=p; p1=p;printf<"按任意鍵繼續(xù)錄入,按N<n>結(jié)束錄入:">;getchar<>; ch=getchar<>; if<ch=='N'||ch=='n'> break;}fp=fopen<"salary.sys","ab">;if<fp==NULL>{printf<"打開文件失敗!\n">;getchar<>; getchar<>;exit<0>;}q=head->next;while<q>{fprintf<fp,"%s%s%s%s%s%s%ld%ld%ld%ld%ld%ld%ld\n",q->name,q->stu_num,q->card_id, q->department,q->position,q->bir_pla,q->bas_sal,q->fund,q->tax,q->bonus,q->pos_sal,q->der_sal,q->act_sal>;q=q->next;}fclose<fp>;}voidsearch_by<st_em_sal*head> /*按條件查詢記錄*/{ charstu_xinxi[20]; st_em_sal*p; charch; p=head->next; do{ system<"clear">; printf<"\n請輸入需要查詢的職工工號或姓名:">;scanf<"%s",stu_xinxi>; while<p!=NULL> { if<strcmp<p->stu_num,stu_xinxi>==0||strcmp<p->name,stu_xinxi>==0> { printf<"工號:%s\n",p->stu_num>; printf<"姓名:%s\n",p->name>; printf<"身份證號:%s\n",p->card_id>; printf<"部門:%s\n",p->department>; printf<"職務(wù):%s\n",p->position>; printf<"籍貫:%s\n",p->bir_pla>; printf<"基本工資:%ld\n",p->bas_sal>; printf<"基金:%ld\n",p->fund>; printf<"稅金:%ld\n",p->tax>; printf<"獎(jiǎng)金:%ld\n",p->bonus>; printf<"崗位工資:%ld\n",p->pos_sal>; printf<"應(yīng)發(fā)工資:%ld\n",p->der_sal>; printf<"實(shí)發(fā)工資:%ld\n",p->act_sal>; break; } p=p->next; }if<p==NULL> printf<"\n沒有記錄!\n">;printf<"\n繼續(xù)查找?Y/N\n">;scanf<"%s",&ch>;}while<ch=='Y'||ch=='y'>;}voidsearch<>/*查詢函數(shù)*/{ intchoose;st_em_sal*head; InitSt_em_sal<&head>;Read_from_File<head>;system<"clear">;printf<"\n1.顯示所有職工信息.\n">;printf<"2.根據(jù)職工工號或姓名詳細(xì)查詢.\n">;printf<"3.退出.\n\n">;printf<"請選擇查找方式:">;scanf<"%d",&choose>;switch<choose>{ case1:print_inf<>; break; case2:search_by<head>; break; case3: break;}}voidmodify<>/*修改記錄函數(shù)*/{ inti;st_em_sal*p,*head;charch,h; charstu_num[20]; InitSt_em_sal<&head>; Read_from_File<head>; system<"clear">; printf<"\n\n請輸入修改的職工工號:">; scanf<"%s",stu_num>; p=head->next; do { while<p!=NULL> { if<strcmp<p->stu_num,stu_num>==0> { while<1> { system<"clear">; printf<"您想修改哪一項(xiàng)信息:\n">; printf<"*1姓名\n">; printf<"*2身份證號\n">; printf<"*3工號\n">; printf<"*4部門\n">; printf<"*5職位\n">; printf<"*6籍貫\n">; printf<"*7基本工資\n">; printf<"*8基金\n">; printf<"*9稅金\n">; printf<"*10獎(jiǎng)金\n">; printf<"*11崗位工資\n">; scanf<"%d",&i>; switch<i> { case1:scanf<"%s",p->name>;break; case2:scanf<"%s",p->card_id>;break; case3:scanf<"%s",p->stu_num>;break; case4:scanf<"%s",p->department>; while<strcmp<p->department,"shebeichu">!=0&& strcmp<p->department,"renshichu">!=0&& strcmp<p->department,"xuegongchu">!=0&& strcmp<p->department,"ruanjianxueyuan">!=0> {/*部門合法性校驗(yàn)*/ printf<"無此部門!請重新輸入!\n">; printf<"修改后的信息是:">; scanf<"%s",p->department>; } break; case5:scanf<"%s",p->position>; while<strcmp<p->position,"guyuan">!=0&& strcmp<p->position,"jingli">!=0&& strcmp<p->position,"jinglizhuli">!=0> {/*職務(wù)合法性校驗(yàn)*/ printf<"無此職務(wù)!請重新輸入!\n">; printf<"修改后的信息是:">; scanf<"%s",p->position>; } break; case6:scanf<"%s",p->bir_pla>; break; case7:scanf<"%ld",&p->bas_sal>; p->der_sal=p->bas_sal+p->pos_sal+p->bonus; p->act_sal=p->der_sal-p->fund-p->tax; break; case8:scanf<"%ld",&p->fund>; p->act_sal=p->der_sal-p->fund-p->tax; break; case9:scanf<"%ld",&p->tax>; while<p->tax>=p->bas_sal*0.05> { printf<"輸入有誤!請重新輸入!\n">; printf<"輸入職工稅金:">; scanf<"%ld",&p->tax>; } p->act_sal=p->der_sal-p->fund-p->tax; break; case10:scanf<"%ld",&p->bonus>; p->der_sal=p->bas_sal+p->pos_sal+p->bonus; p->act_sal=p->der_sal-p->fund-p->tax; break; case11:scanf<"%ld",&p->pos_sal>; p->der_sal=p->bas_sal+p->pos_sal+p->bonus; p->act_sal=p->der_sal-p->fund-p->tax; break; } printf<"修改成功\n">; printf<"按任意鍵繼續(xù)修改信息或者按'n'返回!\n">; getchar<>;ch=getchar<>; if<ch=='N'||ch=='n'> break; } } p=p->next; }printf<"\n繼續(xù)修改?Y/N\n">; scanf<"%c",&h>; }while<h=='y'||h=='Y'>; Write_to_File<head>;}voiddelete<>/*刪除記錄函數(shù)*/{ st_em_sal*head; st_em_sal*p,*q; charch,h; charstu_num[20],name[20]; InitSt_em_sal<&head>; Read_from_File<head>; q=head; p=head->next; do{ system<"clear">; printf<"\n請輸入職工工號:">; scanf<"%s",stu_num>; while<p> { if<strcmp<p->stu_num,stu_num>==0> { q->next=p->next; printf<"刪除成功!\n">; break; } q=p; p=p->next; } if<p==NULL> { printf<"沒有記錄!\n">; break; }else { free<p>; } printf<"是否繼續(xù):Y/N?">; scanf<"%c",&h>; }while<h=='Y'||h=='y'>; Write_to_File<head>;}voidcount_sal<>/*統(tǒng)計(jì)函數(shù)*/{longinthighest_gz,lowest_gz,pjgz;longintallgz=0;st_em_sal*head,*p,*op;intj,k;floatpfc=0,gzfc;intcount=0; chardepartment[20]; InitSt_em_sal<&head>; Read_from_File<head>; system<"clear">; p=head->next; if<p==NULL> { printf<"文件為空!\n">; exit<0>; } count=1; op=p->next; printf<"****************\n">; printf<"*1設(shè)備處*\n">; printf<"*2人事處*\n">; printf<"*3學(xué)工處*\n">; printf<"*4軟件學(xué)院*\n">; printf<"*5全公司*\n">; printf<"****************\n">; printf<"請輸入您的選擇:">;/*提示信息*/ scanf<"%d",&j>; switch<j> { case1:strcpy<department,"shebeichu">; count_choose<head,department>;break; case2:strcpy<department,"renshichu">; count_choose<head,department>;break; case3:strcpy<department,"xuegongchu">; count_choose<head,department>;break; case4:strcpy<department,"ruanjianxueyuan">; count_choose<head,department>;break; case5:system<"clear">; printf<"統(tǒng)計(jì)部門:全公司\n">; printf<"****************\n">; printf<"*1最低工資*\n">; printf<"*2最高工資*\n">; printf<"*3平均工資*\n">; printf<"*4工資方差*\n">; printf<"****************\n">; printf<"請輸入您的選擇:">;/*提示信息*/ scanf<"%d",&k>; switch<k> { case1:lowest_gz=p->act_sal; while<op!=NULL>/*遍歷查找*/ { if<op->act_sal<lowest_gz> lowest_gz=op->act_sal; p=op; op=p->next; } printf<"\n全公司的最低工資是%ld\n",lowest_gz>; break; case2:highest_gz=p->act_sal; while<op!=NULL>/*遍歷查找*/ { if<op->act_sal>highest_gz> highest_gz=op->act_sal; p=op; op=p->next; } printf<"\n全公司的最高工資是%ld\n",highest_gz>; break; case3:allgz=p->act_sal; while<op!=NULL>/*遍歷查找*/ { count++; allgz=allgz+op->act_sal; p=op; op=p->next; } pjgz=allgz/count; printf<"\n全公司的職工數(shù)為%d\n",count>; printf<"\n全公司的職工工資之和是%ld\n",allgz>; printf<"\n全公司的平均工資是%ld\n",pjgz>; break; case4:allgz=p->act_sal;; while<op!=NULL>/*遍歷查找*/ { count++; allgz=allgz+op->act_sal; p=op; op=p->next; } pjgz=allgz/count; pfc=<pjgz-p->act_sal>*<pjgz-p->act_sal>; while<op!=NULL> { pfc=pfc+<pjgz-op->act_sal>*<pjgz-op->act_sal>; p=op; op=p->next; } gzfc=pfc/count; printf<"\n全公司的職工數(shù)為%d\n",count>; printf<"\n全公司的平均工資是%ld\n",pjgz>; printf<"\n全公司的工資方差是%.2f\n",gzfc>; break; default:printf<"\n輸入有誤!\n">; break; } default:printf<"\n輸入有誤!\n">; break; }}voidcount_choose<st_em_sal*head,chardepartment[]>/*統(tǒng)計(jì)項(xiàng)目選擇函數(shù)*/{intk; system<"clear">;printf<"統(tǒng)計(jì)部門:%s",department>;printf<"****************\n">;printf<"*1最低工資*\n">;printf<"*2最高工資*\n">;printf<"*3平均工資*\n">;printf<"*4工資方差*\n">;printf<"****************\n">;printf<"您想統(tǒng)計(jì)哪一項(xiàng):">;scanf<"%d",&k>;switch<k>{case1:count_min_s<head,department>;break;case2:count_max_s<head,department>;break;case3:count_avr_s<head,department>;break;case4:count_var_s<head,department>;break;default:printf<"\n輸入有誤!\n">;break;}}voidcount_min_s<st_em_sal*head,chardepartment[]>/*計(jì)算部門最低工資函數(shù)*/{longintlowest_gz; intflag=0;st_em_sal*op1=NULL,*op2=NULL;op1=head->next;while<op

溫馨提示

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

最新文檔

評論

0/150

提交評論