版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 高級語言程序設(shè)計課程設(shè)計報告</p><p> 題 目:職工工資管理系統(tǒng) </p><p><b> 目 錄</b></p><p> 設(shè)計目的 ………………………………………..3</p><p> 設(shè)計要求 ……………………………………..3</p><p&
2、gt; 模塊設(shè)計……………………………………….3</p><p> 主要數(shù)據(jù)結(jié)構(gòu)…………………………………4</p><p> 流程圖 ………………………………………….4</p><p> 源代碼 ………………………………................5</p><p> 測試結(jié)果及分析 ………………………………8<
3、/p><p> 小 結(jié)…………………………………………….10</p><p> 參考文獻……………………………………….10</p><p><b> 設(shè)計目的</b></p><p> 1.設(shè)計“職工工資管理系統(tǒng)”,使其實現(xiàn)對職工信息的修改、添加、刪除、查找和遍歷操作。</p><p>
4、 2.數(shù)據(jù)包括:工號、姓名、部門、基本工資、職務(wù)工資、崗位津貼、加班費、獎金、總工資。</p><p> 3.能夠?qū)ζ渲械穆毠ば畔⑦M行修改和刪除。</p><p> 4.能夠?qū)崿F(xiàn)對所有職工信息的遍歷。</p><p> 5.程序中加入了密碼,增加了使用者的信息安全性。</p><p> 6.插入了一段音樂,增加了使用者的樂趣。<
5、/p><p><b> 設(shè)計要求</b></p><p> 1.用結(jié)構(gòu)體指針數(shù)組來實現(xiàn)。</p><p> 2.輸入時輸入職工基本工資、職務(wù)工資、崗位津貼、加班費、獎金,總工資自動求和。</p><p> 3.實現(xiàn)職工信息的添加,修改,顯示,刪除。</p><p> 4.將操作后的職工信息存
6、放到一個文件中,并取名為:aa.txt</p><p><b> 模塊設(shè)計</b></p><p><b> 系統(tǒng)功能模塊結(jié)構(gòu)圖</b></p><p> 總工資=基本工資+職務(wù)工資+崗位津貼+加班費+獎金</p><p><b> 主要數(shù)據(jù)結(jié)構(gòu)</b></p&g
7、t;<p> /*定義存儲單元基本信息的結(jié)構(gòu)*/</p><p> struct stud_node{</p><p> char n; /*職工工號*/</p><p> char m[10]; /*職工姓名*/</p><p> char apartment /*職務(wù)*/</p>
8、<p> int jsalary; /*職工基本工資*/</p><p> int zsalary; /*職工職務(wù)工資*/</p><p> int gsalary; /*崗位津貼*/</p><p> int jiban; /*加班費*/</p><p> int jiang
9、jin; /*獎金*/</p><p> int sum; /*總工資*/</p><p> struct stud_node *next; /* 指向下一個學(xué)生信息的鏈*/</p><p><b> };</b></p><p><b> 流程圖</b><
10、;/p><p><b> 源代碼</b></p><p> /*功能:公司員工信息管理系統(tǒng)</p><p> 成員:岳少陽 余超 陳鐵鋒 郭琳</p><p><b> 院系:信息工程學(xué)院</b></p><p> 班級:網(wǎng)絡(luò)工程1301*/</p>&l
11、t;p> 注釋:本程序運行安裝EasyX_庫文件 </p><p> #include <graphics.h>//這個頭文件是Tc的圖形的頭文件</p><p> #include <time.h></p><p> #include <conio.h></p><p> #inclu
12、de<stdio.h></p><p> #include<string.h></p><p> #include<windows.h></p><p> #include<dos.h></p><p> #define mixsize 10000</p><p>
13、; #define MAXSTAR 200// 星星總數(shù)</p><p> #define size 5</p><p> const unsigned PER=225;</p><p> enum{Do=262,Re=294,Mi=330,Fa=349,So=392,La=440,Xi=494};///定義音樂的所有調(diào)。</p><p
14、> struct STAR//定義星星出現(xiàn)所需要的變量</p><p><b> {</b></p><p><b> doublex;</b></p><p><b> inty;</b></p><p> doublestep;</p>
15、<p> intcolor;//定義顏色</p><p><b> };</b></p><p> STAR star[MAXSTAR];//定義的最大的星星熟練提高</p><p> struct Staff{</p><p> char name[20];//定義職工的姓名</p>
16、;<p> char num[10];//定義職工的編號</p><p> char apartment[20];//定義職工的部門</p><p> int jsalary,zsalary,gsalary,jiban,jiangjin;//定義本工資 職務(wù) 職務(wù)工資 崗位津貼 加班費 </p><p> char duty[20];
17、定義獎金 </p><p> long sum;定義總工資</p><p> }person[mixsize];定義人數(shù)的最大值</p><p><b> int s=0;</b></p><p><b> int i=0;</b></p><p> void A
18、dd()//增加一個職工的個人信息</p><p><b> {</b></p><p><b> char t;</b></p><p><b> do</b></p><p><b> {</b></p><p> p
19、rintf("【增加職工信息】\n");</p><p> printf("請輸入職工姓名:");</p><p> scanf("%s",&person[i].name);</p><p> printf("請輸入職工號:");</p><p>
20、 scanf("%s",&person[i].num);</p><p> printf("請輸入職工部門:");</p><p> scanf("%s",&person[i].apartment);</p><p> printf("請輸入職工基本工資:");&l
21、t;/p><p> scanf("%d",&person[i].jsalary);</p><p> printf("請輸入職工職務(wù):");</p><p> scanf("%s",&person[i].duty);</p><p> printf("請
22、輸入職工職務(wù)工資:");</p><p> scanf("%d",&person[i].zsalary);</p><p> printf("請輸入職工崗位津貼:");</p><p> scanf("%d",&person[i].gsalary);</p>&
23、lt;p> printf("請輸入職工加班費:");</p><p> scanf("%d",&person[i].jiban);</p><p> printf("請輸入職工獎金:");</p><p> scanf("%d",&person[i].jia
24、ngjin);</p><p> printf("職工添加成功?。?!");</p><p> person[i].sum=person[i].jsalary+person[i].zsalary+person[i].gsalary+person[i].jiban+person[i].jiangjin;//總工資等于各項獎金的總和。</p><p&g
25、t;<b> i++;</b></p><p><b> s++;</b></p><p> printf("是否還要添加?\n【要添請輸入Y,不添請輸入N】");</p><p><b> getch();</b></p><p> scanf(
26、"%c",&t);//判斷是佛繼續(xù)執(zhí)行</p><p> }while(t=='Y');//執(zhí)行條件</p><p><b> }</b></p><p> void Seek()//尋找某個職員的信息</p><p><b> { </b>&
27、lt;/p><p> char m[10];</p><p> printf("查找某個職員信息時:");</p><p> printf("請輸入你要查找的職工工號:");</p><p> scanf("%s",m);</p><p> for(i=
28、0;i<s;i++)</p><p><b> {</b></p><p> if(strcmp(m,person[i].num)==0)//判斷是否是所需要找的員工。</p><p><b> {</b></p><p> printf("職工信息找到!?。⌒畔⑷缦拢篭n&
29、quot;);</p><p> printf("姓名\t工號\t部門\t基本工資 職務(wù) 職務(wù)工資 崗位津貼 加班費 獎金 總工資\n");</p><p> printf("%s\t%s\t%s\t%6d\t %s\t%5d\t%7d\t%7d\t%6d\t %ld\n",person[i].name,person[i].num,p
30、erson[i].apartment,person[i].jsalary,person[i].duty,person[i].zsalary,</p><p> person[i].gsalary,person[i].jiban,person[i].jiangjin,person[i].sum);</p><p><b> break;</b></p>
31、<p><b> }</b></p><p><b> }</b></p><p><b> if(i==s)</b></p><p> printf("職工信息找不到?。?!\n");</p><p><b> }</b
32、></p><p> void Show()///展示所有職工的各種信息</p><p><b> {</b></p><p> printf("所有職工信息如下:\n");</p><p> printf("姓名\t工號\t部門\t基本工資 職務(wù) 職務(wù)工資 崗位津貼 加
33、班費 獎金 總工資\n");</p><p> for(i=0;i<s;i++)</p><p> printf("%s\t%s\t%s\t%6d\t %s\t%5d\t%7d\t%7d\t%6d\t %ld\n",person[i].name,person[i].num,person[i].apartment,person[i].jsalar
34、y,person[i].duty,person[i].zsalary,</p><p> person[i].gsalary,person[i].jiban,person[i].jiangjin,person[i].sum);</p><p><b> }</b></p><p> void Delete()//刪除操作,刪除需要刪除的信
35、息。</p><p><b> {</b></p><p><b> char n;</b></p><p> char m[10];</p><p> printf("刪除某個職員信息時:\n");</p><p> printf("
36、請輸入你要刪除的職員號:");</p><p> scanf("%s",&m);</p><p> for(i=0;i<s;i++)</p><p><b> {</b></p><p> if(strcmp(m,person[i].num)==0)//判斷是否找到所要
37、刪除的信息</p><p><b> {</b></p><p> printf("職工信息找到?。。⌒畔⑷缦拢篭n");</p><p> printf("姓名\t工號\t部門\t基本工資 職務(wù) 職務(wù)工資 崗位津貼 加班費 獎金 總工資\n");</p><p>
38、 printf("%s\t%s\t%s\t%6d\t %s\t%5d\t%7d\t%7d\t%6d\t %ld\n",person[i].name,person[i].num,person[i].apartment,person[i].jsalary,person[i].duty,person[i].zsalary,</p><p> person[i].gsalary,person[i
39、].jiban,person[i].jiangjin,person[i].sum);</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> printf("確定刪除嗎?確定
40、刪除請輸入Y,不刪除請輸入N:\n");</p><p> scanf("%c",&n);//判斷是否刪除</p><p> if(n=='Y')///將這個員工的各項信息都置為零</p><p><b> {</b></p><p> strcpy(pers
41、on[i].name,"0");</p><p> strcpy(person[i].num,"0");</p><p> strcpy(person[i].apartment,"0"); </p><p> person[i].jsalary=0;</p><p>
42、 person[i].zsalary=0;</p><p> person[i].gsalary=0;</p><p> person[i].jiban=0;</p><p> person[i].jiangjin=0;</p><p> person[i].sum=person[i].jsalary+person[i].zsalar
43、y+person[i].gsalary+person[i].jiban+person[i].jiangjin;</p><p><b> }</b></p><p> printf("刪除成功!");</p><p> printf("刪除成功后的職工信息如下:\n");</p>&l
44、t;p> printf("姓名\t工號\t部門\t基本工資 職務(wù) 職務(wù)工資 崗位津貼 加班費 獎金 總工資\n");</p><p> for(i=0;i<s;i++)//輸入刪除后的信息</p><p> printf("%s\t%s\t%s\t%6d\t %s\t%5d\t%7d\t%7d\t%6d\t %ld\n"
45、,person[i].name,person[i].num,person[i].apartment,person[i].jsalary,person[i].duty,person[i].zsalary,</p><p> person[i].gsalary,person[i].jiban,person[i].jiangjin,person[i].sum);</p><p><b&g
46、t; }</b></p><p> void update_person()///修改職工的某項信息</p><p><b> {</b></p><p> int i,c,score,a=1;</p><p> char m[10];</p><p> //輸入待修改員工
47、的信息</p><p> printf("請輸入你要修改的職工工號:");</p><p> scanf("%s",m);</p><p> for(i=0;i<s;i++)</p><p><b> {</b></p><p> if(st
48、rcmp(m,person[i].num)==0)</p><p><b> {</b></p><p> printf("職工信息找到?。?!信息如下:\n");</p><p> printf("姓名\t工號\t部門\t基本工資 職務(wù) 職務(wù)工資 崗位津貼 加班費 獎金 總工資\n");&
49、lt;/p><p> printf("%s\t%s\t%s\t%6d\t %s\t%5d\t%7d\t%7d\t%6d\t %ld\n",person[i].name,person[i].num,person[i].apartment,person[i].jsalary,person[i].duty,person[i].zsalary,</p><p> person
50、[i].gsalary,person[i].jiban,person[i].jiangjin,person[i].sum);</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> p
51、rintf("請選擇要修改的信息:【1】基本工資\n【2】職務(wù)工資\n【3】崗位津貼\n【4】加班費\n【5】獎金\n【0】退出修改\n請輸入你的選擇:");</p><p> scanf("%d",&c);//輸入要修改的選項</p><p> printf("請輸入修改后的金額:");</p><
52、;p> scanf("%d",&score);</p><p> for(i=0;i<s;i++)</p><p> if(strcmp(m,person[i].num)==0)</p><p><b> break;</b></p><p> if(i<s)//判
53、斷i的值是否合理</p><p><b> {</b></p><p><b> do{</b></p><p> switch(c){</p><p> case 1:person[i].jsalary=score;break;</p><p> case 2:p
54、erson[i].zsalary=score;break;</p><p> case 3:person[i].gsalary=score;break;</p><p> case 4:person[i].jiban=score;break;</p><p> case 5:person[i].jiangjin=score;break;</p>
55、<p> case 0:a=0;break;</p><p> default:printf("輸入錯誤!\n");break;</p><p><b> };</b></p><p><b> if(a==0) </b></p><p><b>
56、break;</b></p><p> printf("請選擇要修改的信息:【1】基本工資\n【2】職務(wù)工資\n【3】崗位津貼\n【4】加班費\n【5】獎金\n 【0】退出修改\n請輸入你的選擇:");</p><p> scanf("%d",&c);</p><p>
57、if(c==0) break;</p><p> printf("請輸入修改后的金額:");</p><p> scanf("%d",&score);</p><p> }while(1);</p><p><b> }</b></p><p&g
58、t;<b> else</b></p><p> printf("職工信息找不到!?。n");</p><p> printf("修改以后\n");</p><p> person[i].sum=person[i].jsalary+person[i].zsalary+person[i].gsal
59、ary+person[i].jiban+person[i].jiangjin;</p><p> printf("姓名\t工號\t部門\t基本工資 職務(wù) 職務(wù)工資 崗位津貼 加班費 獎金 總工資\n");</p><p> printf("%s\t%s\t%s\t%6d\t %s\t%5d\t%7d\t%7d\t%6d\t %ld\n"
60、;,person[i].name,person[i].num,person[i].apartment,person[i].jsalary,person[i].duty,person[i].zsalary,</p><p> person[i].gsalary,person[i].jiban,person[i].jiangjin,person[i].sum);</p><p><b&
61、gt; }</b></p><p><b> // 初始化星星</b></p><p> void InitStar(int i)</p><p><b> {</b></p><p> star[i].x = 0;</p><p> star[i].
62、y = rand() % 480;</p><p> star[i].step = (rand() % 5000) / 1000.0 + 1;</p><p> star[i].color = (int)(star[i].step * 255 / 6.0 + 0.5);// 速度越快,顏色越亮</p><p> star[i].color = RGB(sta
63、r[i].color, star[i].color, star[i].color);</p><p><b> }</b></p><p><b> // 移動星星</b></p><p> void MoveStar(int i)</p><p><b> {</b>
64、</p><p> // 擦掉原來的星星</p><p> putpixel((int)star[i].x, star[i].y, 0);</p><p><b> // 計算新位置</b></p><p> star[i].x += star[i].step;</p><p> if
65、(star[i].x > 640)InitStar(i);</p><p><b> // 畫新星星</b></p><p> putpixel((int)star[i].x, star[i].y, star[i].color);</p><p><b> }</b></p><p>
66、<b> // 主函數(shù)</b></p><p> void welcome()</p><p><b> {</b></p><p> srand((unsigned)time(NULL));// 隨機種子</p><p> initgraph(640, 480);// 創(chuàng)建繪圖窗口&l
67、t;/p><p> // 初始化所有星星</p><p> for(int i = 0; i < MAXSTAR; i++)</p><p><b> {</b></p><p> InitStar(i);</p><p> star[i].x = rand() % 640;</
68、p><p><b> }</b></p><p> outtextxy(320,130,"大家好");</p><p> outtextxy(190,150,"**************************************************");</p><p&g
69、t; outtextxy(190,175,"******* *******");</p><p> outtextxy(190,200,"*******歡迎進入公司職工工資管理程序******");</p><p> outtextxy(1
70、90,225,"******* *******");</p><p> outtextxy(190,250,"**************************************************");</p><p> //
71、繪制星空,按任意鍵退出</p><p> while(!kbhit())</p><p><b> {</b></p><p> for(int i = 0; i < MAXSTAR; i++)</p><p> MoveStar(i);</p><p> Sleep(20);&l
72、t;/p><p><b> }</b></p><p> closegraph();// 關(guān)閉繪圖窗口</p><p><b> }</b></p><p> void tuichu()</p><p><b> {</b></p>
73、<p> system("cls");</p><p> char s[10]="color 0",str;</p><p> int n = 20;</p><p> srand((unsigned int) time(NULL));</p><p> printf("\
74、n\n\n\n\n");</p><p> printf(" ***************************************** \n");</p><p> printf(" *****
75、 ***** \n");</p><p> printf(" *******謝謝使用公司職工工資管理程序****** \n");</p><p> printf("
76、 ***** ***** \n");</p><p> printf(" *****************************************\n"); </p><p> while(n
77、--)</p><p><b> {</b></p><p> Sleep(100);</p><p> int num=rand()%9+1;</p><p> str=num+'0';</p><p><b> s[7]=str;</b><
78、;/p><p> s[8] = '\0';</p><p> system(s);</p><p><b> }</b></p><p> system("color 09");//屏幕的顏色</p><p><b> }</b>&l
79、t;/p><p><b> //音樂</b></p><p> void Play(int f,int a,int t)</p><p><b> {int i=0;</b></p><p> Beep((unsigned)(f*a),t*PER);</p><p>&l
80、t;b> }</b></p><p> void Stop(int t)</p><p><b> {</b></p><p> Sleep(t*PER);</p><p><b> }</b></p><p> void yinyue()<
81、;/p><p><b> {</b></p><p> Play(Mi,2,2); Play(Mi,2,2);</p><p> Play(Fa,2,2); Play(So,2,2);</p><p> Play(So,2,2); Play(Fa,2,2);</p><p> Play(Mi
82、,2,2); Play(Re,2,2);</p><p> Play(Do,2,2); Play(Do,2,2);</p><p> Play(Re,2,2); Play(Mi,2,2);</p><p> Play(Mi,2,2); Play(Re,2,2);</p><p> Play(Re,2,4);</p>&l
83、t;p> Play(Mi,2,2); Play(Mi,2,2);</p><p> Play(Fa,2,2); Play(So,2,2);</p><p> Play(So,2,2); Play(Fa,2,2);</p><p> Play(Mi,2,2); Play(Re,2,2);</p><p> Play(Do,2,2
84、); Play(Do,2,2);</p><p> Play(Re,2,2); Play(Mi,2,2);</p><p> Play(Re,2,2); Play(Do,2,2);</p><p> Play(Do,2,4);</p><p> Play(Mi,2,2); Play(Mi,2,2);</p><p&
85、gt; Play(Fa,2,2); Play(So,2,2);</p><p> Play(So,2,2); Play(Fa,2,2);</p><p> Play(Mi,2,2); Play(Re,2,2);</p><p> Play(Do,2,2); Play(Do,2,2);</p><p> Play(Re,2,2); P
86、lay(Mi,2,2);</p><p> Play(Mi,2,2); Play(Re,2,2);</p><p> Play(Re,2,4);</p><p> Play(Mi,2,2); Play(Mi,2,2);</p><p> Play(Fa,2,2); Play(So,2,2);</p><p>
87、 Play(So,2,2); Play(Fa,2,2);</p><p> Play(Mi,2,2); Play(Re,2,2);</p><p> Play(Do,2,2); Play(Do,2,2);</p><p> Play(Re,2,2); Play(Mi,2,2);</p><p> Play(Re,2,2); Play(
88、Do,2,2);</p><p> Play(Do,2,4);</p><p><b> Stop(0);</b></p><p><b> }//音樂結(jié)束</b></p><p> void output();</p><p> void changepasswo
89、rd();</p><p> void manage()//主函數(shù)</p><p><b> {</b></p><p><b> int k;</b></p><p> system("color B1"); </p><p> time_t
90、rawtime; </p><p> struct tm * timeinfo; </p><p> time ( &rawtime ); </p><p> timeinfo = localtime ( &rawtime ); </p><p> printf ( "現(xiàn)在時間是%d-%d-%d %d:%d
91、:%d\n",1900+timeinfo->tm_year, 1+timeinfo->tm_mon, timeinfo->tm_mday,timeinfo->tm_hour,timeinfo->tm_min,timeinfo->tm_sec); </p><p><b> do{</b></p><p> print
92、f("請選擇您的操作:\n");</p><p> printf(" 1.增加職工工資信息;\n"); </p><p> printf(" 2.查
93、找職工工資信息;\n"); </p><p> printf(" 3.修改職工工資信息;\n"); </p><p> printf("
94、 4.顯示所有職工工資信息;\n");</p><p> printf(" 5.刪除職工工資信息;\n"); </p><p> printf(" 6.修改登陸密碼;\n&qu
95、ot;);</p><p> printf(" 7.輸出職工工資信息單;\n"); </p><p> printf(" 8.小音樂《歡樂頌》;\n"); </p><p> printf("
96、 0.退出。\n") ; </p><p> printf("請選擇按鍵(0-8):");</p><p> scanf("%d",&k);</p><p> switch(k)//選擇需要的各項功能</p><p>&
97、lt;b> {</b></p><p> case 1:Add();break;</p><p> case 2:Seek();break;</p><p> case 3:update_person();break;</p><p> case 4:Show();break;</p><p&g
98、t; case 5:Delete();break;</p><p> case 6:changepassword();break;</p><p> case 7:output();break;</p><p> case 8:yinyue();break;</p><p> default:printf("輸入錯誤,請重
99、新輸入!");break;</p><p><b> }</b></p><p> }while(k);</p><p><b> }</b></p><p> void login()//輸入密碼,第一次進入設(shè)置密碼,以后進入直接輸入密碼即可</p><p&g
100、t;<b> {</b></p><p> char password1[15];</p><p> char password2[15];</p><p><b> FILE *fp;</b></p><p> char password[15],fpassword[15];//分別表示
101、輸入的密碼和文件中讀取的密碼。</p><p> if((fp = fopen("user.bat","r")) == NULL)//以只讀方式打開保存密碼的文件,若不存在,說明是初次登陸。</p><p><b> {</b></p><p> printf("您是初次使用此系統(tǒng),&qu
102、ot;);</p><p> if((fp=fopen("user.bat","w")) == NULL){</p><p> printf("文件創(chuàng)建失敗!");</p><p><b> exit(0);}</b></p><p> loop:pri
103、ntf("請設(shè)置登陸密碼:");</p><p> scanf("%s",&password1);</p><p> printf("請再次輸入設(shè)置的登陸密碼:");</p><p> scanf("%s",&password2);</p><p
104、> if(strlen(password1)<6){</p><p> printf("密碼不得少于6位!請重新輸入!\n");</p><p> goto loop;}</p><p> if((strcmp(password1,password2)) == 0)</p><p> printf(&
105、quot;密碼設(shè)置成功!\n");</p><p><b> else {</b></p><p> printf("兩次密碼不相同!請重新輸入!\n");</p><p> goto loop;}</p><p> fputs(password1,fp);</p>&
106、lt;p> if(fclose(fp)){</p><p> printf("文件關(guān)閉失敗!");</p><p> exit(0);}//關(guān)閉文件</p><p> system("cls");</p><p><b> return;</b></p>
107、<p><b> }</b></p><p> int n = 3;//表示允許輸入的次數(shù)。</p><p> fgets(fpassword,15,fp);</p><p> while(n--)//允許多次輸入</p><p><b> {</b></p>
108、<p><b> getch();</b></p><p> printf("請輸入登陸密碼:");</p><p> scanf("%s",&password);//輸入密碼</p><p> if((strcmp(fpassword,password)) == 0)//比較密
109、碼是否一致</p><p><b> {</b></p><p> printf("密碼正確,登陸成功!\n\n");</p><p> fclose(fp);//關(guān)閉文件</p><p> goto loop1;</p><p><b> }</b&
110、gt;</p><p><b> else</b></p><p> printf("密碼錯誤,請重新輸入\n\n");</p><p><b> }</b></p><p> printf("操作次數(shù)超限,程序終止!!!\n\n");</p&g
111、t;<p> exit(0);//中斷程序。</p><p> loop1:system("cls");</p><p> printf(" 歡迎回來!\n"); </p><p><b> }</b></p>
112、;<p><b> //修改密碼</b></p><p> void changepassword()//修改密碼</p><p><b> {</b></p><p><b> FILE *fp;</b></p><p> char password
113、1[15];</p><p> char password2[15],password[15],fpassword[15];</p><p> if((fp = fopen("user.bat","r+")) == NULL){</p><p> printf("文件打開失敗!");</p&g
114、t;<p><b> exit(0);}</b></p><p><b> int n=3;</b></p><p> fgets(fpassword,15,fp);</p><p> while(n--)//允許多次輸入</p><p><b> {</b&
115、gt;</p><p> printf("請輸入原登陸密碼:");</p><p> scanf("%s",&password);//輸入密碼</p><p> if((strcmp(fpassword,password)) == 0)//比較密碼是否一致</p><p><b>
116、; {</b></p><p> printf("密碼正確,可以修改!\n\n");</p><p> if(fclose(fp)){</p><p> printf("文件關(guān)閉失敗!");</p><p> exit(0);}//關(guān)閉文件</p><p>
117、 break;//表示成功登陸</p><p><b> }</b></p><p><b> else</b></p><p> printf("密碼錯誤,請重新輸入\n\n");</p><p><b> }</b></p>&l
118、t;p><b> if(n=0)</b></p><p> goto loop2;</p><p> loop:printf("請輸入新登陸密碼:");</p><p> scanf("%s",&password1);</p><p> printf(&qu
119、ot;請再次輸入新登陸密碼:");</p><p> scanf("%s",&password2);</p><p> if(strlen(password1)<6){</p><p> printf("密碼不得少于6位!請重新輸入!\n");</p><p> goto
120、 loop;}</p><p> if((strcmp(password1,password2)) == 0)</p><p> {printf("密碼設(shè)置成功!\n");}</p><p><b> else {</b></p><p> printf("兩次密碼不相同!請重新輸入
121、!\n");</p><p> goto loop;}</p><p> if((fp=fopen("user.bat","w")) == NULL){</p><p> printf("文件創(chuàng)建失敗!");</p><p><b> exit(0);}&
122、lt;/b></p><p> fputs(password1,fp);</p><p> if(fclose(fp)){</p><p> printf("文件關(guān)閉失敗!");</p><p> exit(0);}//關(guān)閉文件</p><p><b> return;&
123、lt;/b></p><p> loop2:printf("操作次數(shù)超限,不能修改密碼!");</p><p><b> }</b></p><p><b> //登錄提示</b></p><p> void login_check()</p><
124、;p><b> {</b></p><p> char t[25];</p><p><b> FILE *fp;</b></p><p> time_t rawtime; </p><p> struct tm * timeinfo; </p><p>
125、time ( &rawtime ); </p><p> if((fp = fopen("time.bat","r")) == NULL){</p><p> if((fp = fopen("time.bat","w")) == NULL){</p><p> printf
126、("文件打開失敗!");</p><p><b> exit(0);}</b></p><p> goto loop4;}</p><p><b> else{</b></p><p> fgets(t,25,fp);</p><p> prin
127、tf("你上一次的登錄時間為:%s",t);}</p><p> printf(" 如果不是本人操作,請盡快修改密碼!\n");</p><p> if(fclose(fp)){</p><p> printf("文件關(guān)閉失敗!");</p><p> exit
128、(0);}//關(guān)閉文件</p><p> timeinfo = localtime ( &rawtime ); </p><p> if((fp = fopen("time.bat","w")) == NULL){</p><p> printf("文件打開失敗!");</p>
129、<p><b> exit(0);}</b></p><p> loop4:fprintf(fp,"%d-%d-%d\t%d:%d:%d\n",1900+timeinfo->tm_year, 1+timeinfo->tm_mon, timeinfo->tm_mday,timeinfo->tm_hour,timeinfo->tm
130、_min,timeinfo->tm_sec); </p><p> if(fclose(fp)){</p><p> printf("文件關(guān)閉失敗!");</p><p> exit(0);}//關(guān)閉文件</p><p><b> }</b></p><p>
131、 void output()//輸出職工工資信息單</p><p><b> {</b></p><p> FILE *fp2;</p><p> if((fp2=fopen("職工工資信息單.txt","w"))==NULL)</p><p><b> {&l
132、t;/b></p><p> printf("職工工資信息單失敗!\n");</p><p><b> exit(0);}</b></p><p> //rewind(fp2);(可以清空文檔)</p><p> fprintf(fp2,"姓名 工號 部門 基本工資 職務(wù)
133、 職務(wù)工資 崗位津貼 加班費 獎金 總工資\n");</p><p> for(i=0;i<s;i++)</p><p><b> {</b></p><p> fprintf(fp2,"%s ",person[i].name);</p><p> fprintf(fp2,&
134、quot;%s ",person[i].num);</p><p> fprintf(fp2,"%s ",person[i].apartment);</p><p> fprintf(fp2,"%d ",person[i].jsalary);</p><p> fprintf(fp2,"%s
135、",person[i].duty);</p><p> fprintf(fp2,"%d ",person[i].zsalary);</p><p> fprintf(fp2,"%d ",person[i].gsalary);</p><p> fprintf(fp2,"%d ",per
136、son[i].jiban);</p><p> fprintf(fp2,"%d ",person[i].jiangjin);</p><p> fprintf(fp2,"%ld\n",person[i].sum);}</p><p> if(fclose(fp2))</p><p><b&
137、gt; {</b></p><p> printf("文件關(guān)閉失敗!\n");</p><p><b> exit(0);}</b></p><p> printf(" 職工工資信息單輸出成功!\n");</p><
138、p><b> }</b></p><p> void main()</p><p><b> { </b></p><p> welcome();</p><p> login();//登陸界面</p><p> login_check();</p&g
139、t;<p> getchar();</p><p><b> manage();</b></p><p> tuichu();</p><p><b> }</b></p><p><b> 測試結(jié)果及分析</b></p><p&
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計---職工工資管理系統(tǒng)
- 課程設(shè)計---職工工資管理系統(tǒng)
- 職工工資管理系統(tǒng)設(shè)計課程設(shè)計
- 課程設(shè)計報告--職工工資管理系統(tǒng)設(shè)計
- 職工工資管理系統(tǒng)設(shè)計的課程設(shè)計
- c++課程設(shè)計---職工工資管理系統(tǒng)
- c語言職工工資管理系統(tǒng)課程設(shè)計
- c++課程設(shè)計---職工工資管理系統(tǒng)
- c語言課程設(shè)計——職工工資管理
- c語言課程設(shè)計——職工工資管理
- c++課程設(shè)計-職工工資管理系統(tǒng)設(shè)計
- 課程設(shè)計c++之職工工資管理系統(tǒng)
- c++課程設(shè)計--高校職工工資管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計---職工工資管理系統(tǒng)
- c語言課程設(shè)計報告---職工工資管理系統(tǒng)
- c語言課程設(shè)計報告--職工工資管理系統(tǒng)
- c語言課程設(shè)計報告---職工工資管理系統(tǒng)
- c語言課程設(shè)計報告職工工資管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計--職工工資管理
- eclipse職工工資管理系統(tǒng)
評論
0/150
提交評論