2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論