c語(yǔ)言課程設(shè)計(jì)報(bào)告---職工工資管理系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  C 語(yǔ) 言 課 程 設(shè) 計(jì)</p><p><b>  (報(bào)告書)</b></p><p>  二〇一二 年 十二 月 二十七 日</p><p><b>  機(jī)房管理系統(tǒng)</b></p><p><b>  【設(shè)計(jì)目的】</b></p>&

2、lt;p>  設(shè)計(jì)“機(jī)房管理系統(tǒng)”使其具有上機(jī)、下機(jī)、查詢上機(jī)時(shí)間、機(jī)器使用情況顯示等功能。</p><p>  隨時(shí)都可以來(lái)這里上下機(jī),24小時(shí)為你服務(wù)。</p><p>  上機(jī)時(shí)間還可以來(lái)查詢你的上機(jī)時(shí)間。</p><p>  還可查詢本機(jī)房所有電腦的使用情況。</p><p><b>  【設(shè)計(jì)思路】</b>

3、;</p><p>  根據(jù)要求,把學(xué)生的信息輸入電腦,文本文件存入。還保存了記錄做以查詢,使用情況,</p><p>  另外還應(yīng)提供鍵盤式選擇菜單實(shí)現(xiàn)功能選擇。</p><p><b>  【總體設(shè)計(jì)】</b></p><p><b>  【詳細(xì)設(shè)計(jì)】</b></p><p&

4、gt;<b>  主函數(shù)</b></p><p>  主函數(shù)設(shè)計(jì)要求簡(jiǎn)潔,只提供部分提示語(yǔ)和函數(shù)的調(diào)用</p><p>  int main()/*主函數(shù)*/</p><p><b>  {</b></p><p><b>  int n=0;</b></p>

5、<p>  for(k=0;k<30;k++)/*全部機(jī)器標(biāo)記為未使用*/</p><p>  com[k].f=0;</p><p><b>  for(;;)</b></p><p><b>  {</b></p><p>  switch(main_menu())<

6、/p><p><b>  {</b></p><p><b>  case 1:</b></p><p>  printf("\t\t\t輸入學(xué)生信息:\n");</p><p>  n=input(stu,n);</p><p><b>  bre

7、ak;</b></p><p><b>  case 2:</b></p><p>  printf("\t\t\t學(xué)生上機(jī)\n");</p><p>  online(stu,n);</p><p>  printf("\t\t");</p><p

8、>  system("pause");</p><p><b>  break;</b></p><p><b>  case 3:</b></p><p>  printf("\t\t\t學(xué)生下機(jī)\n");</p><p>  offline(stu,

9、n);</p><p>  printf("\t\t");</p><p>  system("pause");</p><p><b>  break;</b></p><p><b>  case 4:</b></p><p>  

10、printf("\t\t\t上機(jī)時(shí)間查詢\n");</p><p>  search(stu,n);</p><p>  printf("\t\t");</p><p>  system("pause");</p><p><b>  break;</b><

11、;/p><p><b>  case 5:</b></p><p>  printf("\t\t\t機(jī)器使用情況顯示\n\n");</p><p>  display();</p><p><b>  break;</b></p><p><b> 

12、 case 0:</b></p><p>  printf("\n\n\t\t感謝使用機(jī)房收費(fèi)管理系統(tǒng),歡迎下次使用,再見(jiàn)!\n\n");</p><p>  printf("\t\t");</p><p>  system("pause");</p><p><b

13、>  exit(0);</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  return 0;</b></p><p><b>  }</b></p><

14、p><b>  流程圖</b></p><p>  圖2. 主函數(shù)流程圖</p><p><b>  程序運(yùn)行截圖</b></p><p><b>  圖3. 主界面截圖</b></p><p><b>  說(shuō)明:</b></p>&

15、lt;p>  選擇數(shù)字0——5,完成相應(yīng)功能。 </p><p>  圖4. 查詢上級(jí)時(shí)間截圖</p><p>  圖5. 機(jī)器使用情況顯示截圖</p><p><b>  【附錄】</b></p><p>  #include <stdio.h></p><p>  #incl

16、ude <stdlib.h></p><p>  #include <ctype.h></p><p>  #include <string.h></p><p>  struct time/*時(shí)間*/</p><p><b>  {</b></p><p&

17、gt;<b>  int hour;</b></p><p>  int minute;</p><p>  int second;</p><p><b>  };</b></p><p>  typedef struct/*學(xué)生信息*/</p><p><b&g

18、t;  {</b></p><p>  char num[20];/*學(xué)號(hào)*/</p><p>  int banji;/*班級(jí)*/</p><p>  int flag;/*用來(lái)標(biāo)記學(xué)生是否上機(jī)*/</p><p>  char name[20];/*姓名*/</p><p>  stru

19、ct time start,finish;/*上機(jī)起止時(shí)間*/</p><p><b>  }student;</b></p><p>  student stu[50];/*信息庫(kù)*/</p><p>  struct computer/*機(jī)器信息*/</p><p><b>  {</b

20、></p><p>  int f;/*用來(lái)標(biāo)記機(jī)器是否使用*/</p><p>  student stut;/*使用這臺(tái)機(jī)器的學(xué)生*/</p><p>  }com[30];/*30臺(tái)機(jī)器*/</p><p><b>  int k;</b></p><p>  int ma

21、in_menu()/*主菜單*/</p><p><b>  {</b></p><p><b>  char c;</b></p><p><b>  do</b></p><p><b>  {</b></p><p>  

22、system("cls");/*清屏*/</p><p>  printf("\t\t\t\t****機(jī)房收費(fèi)管理系統(tǒng)****\n");</p><p>  printf("\t\t\t********1.輸 入 學(xué) 生 信 息********\n");</p><p>  printf("\

23、t\t\t********2.上 機(jī)********\n");</p><p>  printf("\t\t\t********3.下 機(jī)********\n");</p><p>  printf("\t\t\t********4.查 詢 上 機(jī) 時(shí) 間********\n");</p

24、><p>  printf("\t\t\t********5.機(jī)器使用 情況顯示********\n");</p><p>  printf("\t\t\t********0.退 出 系 統(tǒng)********\n");</p><p>  printf("\t\t\t**********************

25、*************\n");</p><p>  printf("\t\t\t\t請(qǐng)選擇菜單(0-5):");</p><p>  c=getchar();</p><p>  }while(c<'0'||c>'5');/*判斷輸入是否合法*/</p><p&g

26、t;  return(c-'0');</p><p><b>  }</b></p><p>  int input(student stu[],int n)/*輸入學(xué)生信息*/</p><p><b>  {</b></p><p><b>  int i=0;<

27、;/b></p><p>  char sign='0';</p><p>  while(sign!='n'&&sign!='N')/*判斷是否繼續(xù)輸入學(xué)生信息*/</p><p><b>  {</b></p><p>  getchar();

28、/*吃掉回車*/</p><p>  printf("\t\t學(xué)號(hào):");</p><p>  gets(stu[n+i].num);</p><p>  printf("\t\t班級(jí):");</p><p>  scanf("%d",&stu[n+i].banji);&

29、lt;/p><p>  getchar();</p><p>  printf("\t\t姓名:");</p><p>  gets(stu[n+i].name);</p><p>  printf("\t\t繼續(xù)輸入?是請(qǐng)按Y,否請(qǐng)按N:");</p><p>  scanf(&q

30、uot;%c",&sign);</p><p>  stu[n+i].flag=0;/*初始化為未上機(jī)*/</p><p><b>  i++;</b></p><p><b>  }</b></p><p>  return(n+i);</p><p>

31、;<b>  }</b></p><p>  void online(student stu[],int n)/*上機(jī)*/</p><p><b>  {</b></p><p>  char num_t[20],name_t[20];</p><p><b>  int i,s;&l

32、t;/b></p><p><b>  do</b></p><p><b>  {</b></p><p>  printf("\t\t使用姓名按1,使用學(xué)號(hào)按2:");</p><p>  scanf("%d",&s);</p>

33、<p>  }while(s!=1&&s!=2);</p><p>  getchar();</p><p><b>  if(s==1)</b></p><p><b>  {</b></p><p>  printf("\t\t請(qǐng)輸入姓名:");&

34、lt;/p><p>  gets(name_t);</p><p>  for(i=0;i<n;i++)/*查找信息庫(kù)中是否有該學(xué)生*/</p><p>  if(strcmp(stu[i].name,name_t)==0)</p><p><b>  break;</b></p><p>

35、<b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("\t\t請(qǐng)輸入學(xué)號(hào):");</p><p>  gets(num_t);</p><p>

36、;  for(i=0;i<n;i++)</p><p><b>  {</b></p><p>  if(strcmp(stu[i].num,num_t)==0)</p><p><b>  break;</b></p><p><b>  }</b></p>

37、<p><b>  }</b></p><p><b>  if(i==n)</b></p><p><b>  {</b></p><p>  printf("\t\t信息庫(kù)中暫無(wú)該生,請(qǐng)輸入該生信息再上機(jī)!\n");</p><p><

38、;b>  return;</b></p><p><b>  }</b></p><p>  else if(stu[i].flag==1)</p><p><b>  {</b></p><p>  printf("\t\t該生正在上機(jī)!\n");</p

39、><p><b>  return;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  for(k=0;k<30;k++)&l

40、t;/p><p>  if(com[k].f==0)</p><p><b>  {</b></p><p>  com[k].f=1;/*該臺(tái)機(jī)器標(biāo)記為使用*/</p><p>  printf("\t\t請(qǐng)輸入上機(jī)時(shí)間(當(dāng)前時(shí)間):");</p><p>  scanf(&

41、quot;%d:%d:%d",&stu[i].start.hour,&stu[i].start.minute,&stu[i].start.second);</p><p>  stu[i].flag=1;/*該生標(biāo)記為上機(jī)*/</p><p>  com[k].stut=stu[i];/*記錄使用該臺(tái)機(jī)器的學(xué)生信息*/</p><

42、;p><b>  break;</b></p><p><b>  }</b></p><p><b>  if(k==30)</b></p><p>  printf("\t\t機(jī)器全部使用中,請(qǐng)稍后再上機(jī)!\n");</p><p><b&g

43、t;  }</b></p><p><b>  }</b></p><p>  void calculate(student stu)/*上機(jī)時(shí)間及費(fèi)用計(jì)算*/</p><p><b>  {</b></p><p><b>  int t;</b></p

44、><p>  struct time timet;</p><p>  if(stu.finish.second<stu.start.second)</p><p><b>  {</b></p><p>  if(stu.finish.minute==0)</p><p><b> 

45、 {</b></p><p>  stu.finish.hour-=1;</p><p>  stu.finish.minute=59;</p><p><b>  }</b></p><p><b>  else</b></p><p>  stu.finish

46、.minute-=1;</p><p>  timet.second=stu.finish.second+60-stu.start.second;</p><p><b>  }</b></p><p><b>  else</b></p><p>  timet.second=stu.finish

47、.second-stu.start.second;</p><p>  if(stu.finish.minute<stu.start.minute)</p><p><b>  {</b></p><p>  stu.finish.hour-=1;</p><p>  timet.minute=stu.finish

48、.minute+60-stu.start.minute;</p><p><b>  }</b></p><p><b>  else</b></p><p>  timet.minute=stu.finish.minute-stu.start.minute;</p><p>  timet.hou

49、r=stu.finish.hour-stu.start.hour;</p><p>  if(timet.second==0&&timet.minute==0)</p><p>  t=timet.hour;</p><p><b>  else</b></p><p>  t=timet.hour+1;

50、/*不滿一小時(shí)按一小時(shí)記*/</p><p>  printf("\t\t該生上機(jī)用時(shí)%d小時(shí),費(fèi)用為%d元\n",t,t);</p><p><b>  }</b></p><p>  void offline(student stu[],int n)/*下機(jī)*/</p><p><b

51、>  {</b></p><p>  char num_t[20],name_t[20];</p><p><b>  int i,s;</b></p><p><b>  do</b></p><p><b>  {</b></p><p

52、>  printf("\t\t使用姓名按1,使用學(xué)號(hào)按2:");</p><p>  scanf("%d",&s);</p><p>  }while(s!=1&&s!=2);</p><p>  getchar();</p><p><b>  if(s==1)

53、</b></p><p><b>  {</b></p><p>  printf("\t\t請(qǐng)輸入姓名:");</p><p>  gets(name_t);</p><p>  for(i=0;i<n;i++)</p><p><b>  {&l

54、t;/b></p><p>  if(strcmp(stu[i].name,name_t)==0)</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>&

55、lt;b>  else</b></p><p><b>  {</b></p><p>  printf("\t\t請(qǐng)輸入學(xué)號(hào):");</p><p>  gets(num_t);</p><p>  for(i=0;i<n;i++)</p><p>&

56、lt;b>  {</b></p><p>  if(strcmp(stu[i].num,num_t)==0)</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p>

57、<p><b>  if(i==n)</b></p><p><b>  {</b></p><p>  printf("\t\t沒(méi)有這個(gè)學(xué)生!\n");</p><p><b>  return;</b></p><p><b>  

58、}</b></p><p>  else if(stu[i].flag==0)</p><p><b>  {</b></p><p>  printf("\t\t該生未上機(jī)或已下機(jī)!\n");</p><p><b>  return;</b></p>

59、<p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("\t\t請(qǐng)輸入下機(jī)時(shí)間(當(dāng)前時(shí)間):");</p><p>  scanf("%d

60、:%d:%d",&stu[i].finish.hour,&stu[i].finish.minute,&stu[i].finish.second);</p><p>  calculate(stu[i]);/*計(jì)算并輸出上機(jī)費(fèi)用*/</p><p>  stu[i].flag=0;/*該生標(biāo)記為未上機(jī)*/</p><p>  

61、for(k=0;k<3;k++)/*將剛下機(jī)學(xué)生使用的機(jī)器標(biāo)記為未使用*/</p><p>  if(strcmp(com[k].stut.num,stu[i].num)==0)</p><p><b>  {</b></p><p>  com[k].f=0;/*該臺(tái)機(jī)器標(biāo)記為未使用*/</p><p>

62、<b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void search(student stu[],int n)/*上機(jī)時(shí)間查

63、詢*/</p><p><b>  {</b></p><p>  char num_t[20],name_t[20];</p><p><b>  int i,s;</b></p><p><b>  do</b></p><p><b> 

64、 {</b></p><p>  printf("\t\t使用姓名按1,使用學(xué)號(hào)按2:");</p><p>  scanf("%d",&s);</p><p>  }while(s!=1&&s!=2);</p><p>  getchar();</p>

65、<p><b>  if(s==1)</b></p><p><b>  {</b></p><p>  printf("\t\t請(qǐng)輸入姓名:");</p><p>  gets(name_t);</p><p>  for(i=0;i<n;i++)</p

66、><p><b>  {</b></p><p>  if(strcmp(stu[i].name,name_t)==0)</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }<

67、;/b></p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("\t\t請(qǐng)輸入學(xué)號(hào):");</p><p>  gets(num_t);</p><p>  for(i=0;i<

68、;n;i++)</p><p><b>  {</b></p><p>  if(strcmp(stu[i].num,num_t)==0)</p><p><b>  break;</b></p><p><b>  }</b></p><p><

69、b>  }</b></p><p><b>  if(i==n)</b></p><p><b>  {</b></p><p>  printf("\t\t查無(wú)此生!\n");</p><p><b>  return;</b></

70、p><p><b>  }</b></p><p>  else if(stu[i].flag==1)</p><p>  printf("\t\t該生正在上機(jī),上機(jī)起始時(shí)間為%d:%d:%d\n",stu[i].start.hour,stu[i].start.minute,</p><p>  stu[

71、i].start.second);</p><p><b>  else</b></p><p>  printf("\t\t該生未上機(jī)或已下機(jī)!\n");</p><p><b>  }</b></p><p>  void display()/*全部機(jī)器使用情況顯示*/&

72、lt;/p><p><b>  {</b></p><p>  printf("\t機(jī)器號(hào) 是否使用 使用者 學(xué)號(hào) 班級(jí) 上機(jī)時(shí)間\n");/*顯示格式,表頭*/</p><p>  printf("\t----------------------------------------

73、------------------\n");</p><p>  for(k=0;k<30;k++)</p><p><b>  {</b></p><p>  if(com[k].f==0)</p><p>  printf("\t%02d 否 --

74、 -- -- --:--:--\n",k+1);</p><p><b>  else</b></p><p>  printf("\t%02d 是 %-10s %-10s %2d %02d:%02d:%02d\n",k+1,</p><p>  c

75、om[k].stut.name,com[k].stut.num,com[k].stut.banji,com[k].stut.start.hour,</p><p>  com[k].stut.start.minute,com[k].stut.start.second);</p><p><b>  }</b></p><p>  printf(

76、"\t");</p><p>  system("pause");/*使剛顯示的內(nèi)容在屏幕上停留一段時(shí)間,直到繼續(xù)操作為止*/</p><p><b>  }</b></p><p>  int main()/*主函數(shù)*/</p><p><b>  {</

77、b></p><p><b>  int n=0;</b></p><p>  for(k=0;k<30;k++)/*全部機(jī)器標(biāo)記為未使用*/</p><p>  com[k].f=0;</p><p><b>  for(;;)</b></p><p>&l

78、t;b>  {</b></p><p>  switch(main_menu())</p><p><b>  {</b></p><p><b>  case 1:</b></p><p>  printf("\t\t\t輸入學(xué)生信息:\n");</p&

79、gt;<p>  n=input(stu,n);</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  printf("\t\t\t學(xué)生上機(jī)\n");</p><p>  online(stu,n)

80、;</p><p>  printf("\t\t");</p><p>  system("pause");</p><p><b>  break;</b></p><p><b>  case 3:</b></p><p>  pr

81、intf("\t\t\t學(xué)生下機(jī)\n");</p><p>  offline(stu,n);</p><p>  printf("\t\t");</p><p>  system("pause");</p><p><b>  break;</b></p

82、><p><b>  case 4:</b></p><p>  printf("\t\t\t上機(jī)時(shí)間查詢\n");</p><p>  search(stu,n);</p><p>  printf("\t\t");</p><p>  system(&quo

83、t;pause");</p><p><b>  break;</b></p><p><b>  case 5:</b></p><p>  printf("\t\t\t機(jī)器使用情況顯示\n\n");</p><p>  display();</p>&

84、lt;p><b>  break;</b></p><p><b>  case 0:</b></p><p>  printf("\n\n\t\t感謝使用機(jī)房收費(fèi)管理系統(tǒng),歡迎下次使用,再見(jiàn)!\n\n");</p><p>  printf("\t\t");</p>

85、;<p>  system("pause");</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  return 0;<

86、;/b></p><p><b>  }</b></p><p><b>  【設(shè)計(jì)體會(huì)】</b></p><p>  通過(guò)為期一周的課程設(shè)計(jì),我們對(duì)《C語(yǔ)言》這門課程有了更深一步的了解。它是計(jì)算機(jī)程序設(shè)計(jì)的重要理論技術(shù)基礎(chǔ),在我們信息與計(jì)算科學(xué)專業(yè)的學(xué)習(xí)中占據(jù)著十分重要的地位。同時(shí)也使我們知道,要學(xué)好這門課程,僅學(xué)

87、習(xí)書本上的知識(shí)是不夠的,還要有較強(qiáng)的實(shí)踐能力。因?yàn)槲覀儗W(xué)習(xí)知識(shí)就是為了實(shí)踐。而只有多實(shí)踐,多編寫程序,才能更好的理解與掌握書本上的東西。運(yùn)用《C語(yǔ)言》中的算法思想作數(shù)據(jù)結(jié)構(gòu),結(jié)合C語(yǔ)言基本知識(shí),編寫一個(gè)機(jī)房管理系統(tǒng)。通過(guò)完成本課題,進(jìn)一步熟悉C語(yǔ)言的基本知識(shí),并掌握數(shù)據(jù)結(jié)構(gòu)的一些基本算法思想,掌握C語(yǔ)言的文件操作(包括從磁盤讀入和向磁盤寫入內(nèi)容),進(jìn)一步熟悉指針的用法,數(shù)組的建立運(yùn)用和函數(shù)的調(diào)用等。</p><p&

88、gt;<b>  【參考文獻(xiàn)】</b></p><p>  譚浩強(qiáng).C程序設(shè)計(jì)(第三版).清華大學(xué)出版社。</p><p>  朱若愚.數(shù)據(jù)結(jié)構(gòu)[M]. 北京: 電子工業(yè)出版社,</p><p>  晉良潁.數(shù)據(jù)結(jié)構(gòu)[M]. 北京:人民郵電出版社, </p><p>  劉大有.數(shù)據(jù)結(jié)構(gòu)[M]. 北京: 高等教育出版社,

89、 </p><p>  趙文靜. 數(shù)據(jù)結(jié)構(gòu)與算法[M]. 北京: 科學(xué)出版社, </p><p>  徐孝凱.數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)明教程.[M]. 北京: 清華大學(xué)出版社, </p><p>  嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)[M]. 北京:清華大學(xué)出版社, </p><p>  傅清祥,王曉東. 數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)[M]. 北京: 電子工業(yè)出版

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論