數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告---模擬排隊(duì)買票_第1頁(yè)
已閱讀1頁(yè),還剩23頁(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、<p><b>  模擬排隊(duì)買票</b></p><p><b>  一 目的</b></p><p>  使用戶能夠通過本程序?qū)崿F(xiàn)所需功能,用戶可以通過本程序進(jìn)行模擬排隊(duì),包括入隊(duì)和出隊(duì)操作,信息包含在input.txt文件中,用戶進(jìn)行的操作結(jié)果將保存在output.txt文件中。</p><p><b

2、>  二 需求分析</b></p><p>  1、如何存放和查找所有的人員信息</p><p>  用二維數(shù)組來(lái)存放和查找數(shù)據(jù),每個(gè)數(shù)組元素就存放一個(gè)人的信息結(jié)構(gòu)體Member,包括名字name,所在朋友組group,以及編號(hào)idnum,每行的第一個(gè)元素不存放人員信息而存放該朋友組的人數(shù)便于以后的遍歷。</p><p>  2、如何操作EnQu

3、eue和DeQueue命令</p><p>  關(guān)于操作EnQueue和DeQueue命令,這可以用隊(duì)列來(lái)模擬,由于有插隊(duì)現(xiàn)象的存在,不能單純地用一個(gè)數(shù)組來(lái)表示隊(duì)列,因?yàn)檫@樣的話,插入一個(gè)朋友,則他后面的人都要往后移一個(gè)單位,刪除一個(gè)人,則他后面的人都要前移一個(gè),這樣無(wú)論插入還是刪除都要移動(dòng)大量的元素,所以,采用鏈表的形式,構(gòu)造鏈隊(duì)列,頭結(jié)點(diǎn)的指針指向隊(duì)頭元素,尾指針指向隊(duì)尾元素。</p><

4、p>  輸入Enqueue命令,如果隊(duì)伍里有朋友,則排在朋友后面;如果沒有遇到朋友,則排在隊(duì)尾。入隊(duì)時(shí),直接向鏈隊(duì)列中插入一個(gè)新節(jié)點(diǎn)即可。</p><p>  輸入Dequeue命令,則根據(jù)“先進(jìn)先出”,按照各個(gè)元素和它后繼元素的先后順序,每次刪除隊(duì)列中的第一個(gè)。程序結(jié)構(gòu)如下所示。</p><p>  for(讀測(cè)試文件)</p><p><b> 

5、 {</b></p><p><b>  Switch{</b></p><p>  case 輸入Enqueue:</p><p><b>  {讀入名字;</b></p><p><b>  插入鏈隊(duì)列;</b></p><p><

6、b>  } </b></p><p>  case 輸入 Dequeue:</p><p>  {刪除隊(duì)列的第一個(gè)名字;</p><p>  將該名字輸出到文件;}</p><p>  case 結(jié)束:break;</p><p><b>  }</b></p>

7、<p><b>  }</b></p><p><b>  窗口結(jié)構(gòu)關(guān)系圖:</b></p><p>  Queue: …. null</p><p>  QueuePtr front

8、 QueuePtr rear</p><p><b>  三 概要設(shè)計(jì)</b></p><p>  1、本程序包含兩個(gè)模塊</p><p> ?。?)主程序模塊 </p><p><b>  main()</b></p><p><b>  {<

9、/b></p><p><b>  定義及初始化;</b></p><p>  顯示開始菜單界面,讓用戶選擇操作;</p><p><b>  進(jìn)行操作;</b></p><p><b>  關(guān)閉文件,結(jié)束;</b></p><p><b&g

10、t;  }</b></p><p><b> ?。?)函數(shù)定義模塊</b></p><p>  定義初始化,入隊(duì),出隊(duì)操作等6個(gè)功能函數(shù)</p><p>  void ReadInput(FILE *fin);</p><p>  將input文件中的內(nèi)容讀入到二維數(shù)peo當(dāng)中,并附上編號(hào)。</p>

11、;<p>  Status InitQueue(Queue Que[4]);</p><p>  將input文件讀入到peo數(shù)組里面去,并進(jìn)行窗口初始化,隨機(jī)選一部分人進(jìn)行入隊(duì),每一個(gè)都將按照最佳位置排入隊(duì)伍。</p><p>  Status InitEn(Queue Que[4],Member a);</p><p>  將選出來(lái)的人進(jìn)行按最佳位

12、置入隊(duì)。</p><p>  Status EnQueue(Queue Que[4],FILE *fout);</p><p>  由用戶輸入人名,再進(jìn)行最佳入隊(duì)操作;</p><p>  Status DeQueue(Queue Que[4],int &num,FILE *fout);</p><p>  由用戶選擇窗口號(hào),刪除該窗

13、口的第一個(gè)人,進(jìn)行出隊(duì)操作;</p><p>  int Check(Queue Que[4], char name[]);</p><p>  判斷用戶輸入的人名是是否存在或已排入隊(duì)伍,若存在且未入隊(duì)則返回他所在的朋友組號(hào)及二維數(shù)組peo的行序。</p><p><b>  函數(shù)調(diào)用關(guān)系圖:</b></p><p>&

14、lt;b>  四 詳細(xì)設(shè)計(jì)</b></p><p><b>  1、名稱</b></p><p>  #include<stdio.h></p><p>  #include<stdlib.h></p><p>  #include<cstdlib></p&g

15、t;<p>  #include<string.h></p><p>  #include<malloc.h></p><p>  #include<iostream></p><p>  #include<time.h></p><p>  #define Max 100<

16、/p><p>  #define OK 1</p><p>  #define ERROR 0</p><p>  #define INFEASIBLE -1</p><p>  #define OVERFLOW -2</p><p>  typedef int Status;</p&g

17、t;<p>  typedef struct{</p><p>  char name[8];</p><p>  int group; //成員所在朋友組編號(hào)</p><p>  int idnum; //成員編號(hào)</p><p>  }Member;

18、 //成員結(jié)構(gòu)體,保存?zhèn)€人信息 </p><p>  typedef struct QNode{</p><p>  Member data;</p><p>  struct QNode *next;</p><p>  }QNode,*QueuePtr; // 排隊(duì)時(shí)每個(gè)人信息結(jié)點(diǎn)</p>&l

19、t;p>  typedef struct{</p><p>  QueuePtr front;</p><p>  QueuePtr rear;</p><p><b>  }Queue;</b></p><p>  Member peo[Max][Max]; //全局變量,保存input.txt文件的

20、內(nèi)容</p><p>  int N; //全局變量,保存朋友組數(shù)目</p><p>  int tot; //全局變量,窗口總數(shù),隨機(jī)產(chǎn)生</p><p>  int id; //定義編號(hào)</p><p>  void ReadInput(FILE

21、*fin);</p><p>  Status EnQueue(Queue Que[4],FILE *fout);</p><p>  Status DeQueue(Queue Que[4],int &num,FILE *fout);</p><p>  Status InitQueue(Queue Que[4]);</p><p>

22、  Status InitEn(Queue Que[4],Member a);</p><p>  int Check(Queue Que[4], char name[]);</p><p>  void menu()</p><p><b>  {</b></p><p>  printf("\n"

23、);</p><p>  printf(" \3 \3 \1歡迎使用模擬排隊(duì)買票\1 \3 \3\n");</p><p>  printf(" |-----------------1.X入隊(duì)-------------------| \n");</p><

24、;p>  printf(" |-----------------2.隊(duì)頭買完票出隊(duì)----------| \n");</p><p>  printf(" |-----------------3.一個(gè)測(cè)試用例結(jié)束--------| \n");</p><p><b>  }</b&

25、gt;</p><p>  int main()</p><p><b>  {</b></p><p>  int choice; //用戶選擇功能</p><p>  int s=0; //測(cè)試用例序號(hào)</p><p>  

26、int num; //窗口號(hào)</p><p>  srand(time(NULL)); //初始化隨機(jī)函數(shù)</p><p>  tot=rand()%4+1; //隨機(jī)產(chǎn)生窗口數(shù)</p><p>  Queue Que[4]; //定義窗口的一維數(shù)組</p><p>  FI

27、LE *fin,*fout;</p><p>  if(!(fin=fopen("E:\\input.txt","r"))){</p><p>  printf("文件打開錯(cuò)誤!");</p><p><b>  exit(0);</b></p><p><

28、;b>  } </b></p><p>  if(!(fout=fopen("E:\\output.txt","w"))){</p><p>  printf("文件打開錯(cuò)誤!");</p><p><b>  exit(0);</b></p>&

29、lt;p><b>  }</b></p><p><b>  menu();</b></p><p>  for(fscanf(fin,"%d",&N);!feof(fin);fscanf(fin,"%d",&N)) </p><p

30、><b>  {</b></p><p><b>  s++;</b></p><p>  ReadInput(fin);</p><p>  InitQueue(Que); //初始化窗口</p><p>  //打印input文件中的內(nèi)容</p>

31、<p>  printf("\n");</p><p>  for(int i=0;i<N;i++)</p><p><b>  { </b></p><p>  for(int j=1;j<=peo[i][0].idnum;j++)</p><p>  printf("

32、;%s ",peo[i][j].name);</p><p>  printf("\n");</p><p><b>  }</b></p><p>  printf("\n");</p><p><b>  if(s!=1)</b></p&g

33、t;<p>  fprintf(fout,"\n"); //兩個(gè)測(cè)試用例間輸入空行</p><p>  fprintf(fout,"Scenario # %d\n",s);</p><p>  printf("一共有%d個(gè)窗口\n",tot);</p><p>

34、;<b>  for(;;)</b></p><p><b>  { </b></p><p>  printf("請(qǐng)輸入選擇:");</p><p>  scanf("%d",&choice);</p><p>  if(choice<0||

35、choice>3)</p><p>  {printf("輸入有誤!\n");</p><p>  continue;}</p><p>  int flag=0;</p><p>  switch(choice)</p><p><b>  {</b></p>

36、;<p>  case 1:{EnQueue(Que,fout);flag=1;}</p><p><b>  break;</b></p><p>  case 2:{DeQueue(Que,num,fout);flag=1;}</p><p><b>  break;</b></p><

37、;p>  case 3:break;</p><p><b>  }</b></p><p>  if(flag==0)</p><p><b>  break;</b></p><p><b>  }</b></p><p><b> 

38、 }</b></p><p>  fclose(fin);</p><p>  fclose(fout);</p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  void ReadInput(FILE

39、*fin){ //讀入input文件,并用id返回總?cè)藬?shù),附上編號(hào)</p><p>  int i,j,num;</p><p>  char c[10]; </p><p>  for(id=0,i=0;i<N;i++){</p><p>  fscanf(fin,"%d",&num)

40、; //讀入每個(gè)朋友組人數(shù)存入每行第一個(gè)元素</p><p>  peo[i][0].idnum=num; </p><p>  for(j=1;j<=num;j++,id++){ </p><p>  peo[i][j].group=i;</p><p>  fscanf(fin,"%s",c);&l

41、t;/p><p>  strcpy(peo[i][j].name,c);</p><p>  peo[i][j].idnum=id; //賦予數(shù)組元素編號(hào)</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }

42、</b></p><p>  Status InitQueue(Queue Que[4]){ //初始化窗口隊(duì)列</p><p>  int i,j,s;</p><p>  int R[Max];</p><p><b>  Member a;</b></p><p>

43、  for(i=0;i<tot;i++)</p><p><b>  {</b></p><p>  Que[i].front=Que[i].rear=(QueuePtr)malloc(sizeof(QNode));</p><p>  if(!Que[i].front)exit(OVERFLOW);</p><p&g

44、t;  Que[i].front->next=NULL; </p><p><b>  }</b></p><p>  for(i=0;i<id;i++)</p><p>  R[i]=rand()%2;</p><p>  for(i=0;i<N;i++)</p><p>

45、  for(j=1;j<=peo[i][0].idnum;j++)</p><p><b>  {</b></p><p>  a=peo[i][j];</p><p>  s=peo[i][j].idnum;</p><p>  if(R[s]==1)</p><p>  InitEn(Q

46、ue,a);</p><p><b>  }</b></p><p>  return OK;</p><p><b>  }</b></p><p>  int Check(Queue Que[4],char name[])</p><p>  // 尋找該人排隊(duì)情況,返回

47、-1則該人不存在!返回-2, 該人已經(jīng)在排隊(duì)中,返回一個(gè)正整數(shù)值,表示他在哪一行。 </p><p><b>  {</b></p><p><b>  int i, j;</b></p><p>  //先判斷該人是否在</p><p>  for(i=0;i<N;i++)</p&g

48、t;<p><b>  {</b></p><p>  for (j=1;j<=peo[i][0].idnum ;j++)</p><p><b>  {</b></p><p>  if (strcmp(peo[i][j].name,name)==0)</p><p><

49、b>  {</b></p><p>  //再判斷 該人是否在排隊(duì)</p><p>  QueuePtr p; </p><p>  for(j=0;j<tot;j++) //遍歷每個(gè)窗口 </p><p><b>  {</b></p><p>  p = Que[

50、j].front->next; //指針p指向隊(duì)頭</p><p>  while(p) </p><p><b>  {</b></p><p>  if (strcmp(p->data.name, name)==0) //該人已在隊(duì)列中 </p>&

51、lt;p>  return -2; </p><p>  p=p->next;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  return i;</b></p><p><b

52、>  }</b></p><p><b>  }</b></p><p>  } </p><p>  return -1; </p><p><b>  } </b></p><p>  Status DeQueue(

53、Queue Que[4],int &num,FILE *fout){ //根據(jù)用戶選擇進(jìn)行出隊(duì)操作</p><p>  char c[8];</p><p>  printf("請(qǐng)輸入你要出隊(duì)的窗口編號(hào):");</p><p>  scanf("%d",&num);</p><

54、p>  if(num<0||num>(tot-1))</p><p>  {printf("輸入有誤!\n");</p><p>  return ERROR;}</p><p>  if(!Que[num].front->next)</p><p><b>  {</b>&l

55、t;/p><p>  printf("該窗口為空!\n");</p><p>  fprintf(fout,"Empty Queue! \n");</p><p>  return ERROR;</p><p><b>  }</b></p><p><b

56、>  else</b></p><p><b>  {</b></p><p>  //刪除隊(duì)列的隊(duì)頭元素,并用char c[]返回出隊(duì)的人名</p><p>  QueuePtr p;</p><p>  p=Que[num].front->next;</p><p> 

57、 strcpy(c,p->data.name);</p><p>  Que[num].front->next=p->next;</p><p>  if(Que[num].rear==p) </p><p>  Que[num].rear=Que[num].front;</p><p><b>  free(p)

58、;</b></p><p>  printf("DeQueue:%s\n",c);</p><p>  fprintf(fout,"DeQueue: %s \n",c);</p><p>  return OK;</p><p><b>  }</b></p>

59、;<p><b>  }</b></p><p>  Status EnQueue(Queue Que[4],FILE *fout){ //入隊(duì)函數(shù), 用戶輸入排隊(duì)人,窗口數(shù)為tot個(gè)</p><p>  int ch; //存放用戶輸入X所在行數(shù)</p><p>  int i,j

60、,besti,best,loc,sum;</p><p>  char name[8];</p><p>  QNode *p, *q;</p><p>  printf("請(qǐng)輸入要入隊(duì)的人名:");</p><p>  scanf("%s",name);</p><p>  c

61、h=Check(Que,name);</p><p>  if(ch==-1) {printf("該人不存在!\n");</p><p>  return ERROR;}</p><p>  if(ch==-2) {printf("該人已經(jīng)排入隊(duì)伍中!\n");</p><p>  return

62、ERROR;}</p><p>  for(i=0,best=Max;i<tot;i++) //遍歷所有窗口 ,尋找最佳位置。 </p><p><b>  {</b></p><p>  p=Que[i].front; </p><p>  if(!p->next)

63、 //該隊(duì)伍無(wú)人,則排在第一個(gè)最佳 </p><p><b>  {</b></p><p><b>  besti= i;</b></p><p><b>  best= 1;</b></p><p><b>  break; </b><

64、;/p><p><b>  } </b></p><p>  else // 否則,在第ch行尋找朋友</p><p><b>  { </b></p><p>  p=Que[i].front->next;</p><p>  loc =0; /

65、/記錄當(dāng)前最佳位置</p><p>  sum =0; //記錄隊(duì)伍人數(shù)</p><p>  while (p) </p><p><b>  { </b></p><p><b>  sum++;</b></p><p>  for(j=1;j<=peo[ch]

66、[0].idnum;j++)</p><p>  if(strcmp(peo[ch][j].name,p->data.name)==0)</p><p>  loc=sum+1;</p><p>  p=p->next;</p><p>  } //while為遍歷一個(gè)窗口</p>

67、<p>  if(loc==0) //該隊(duì)伍中無(wú)朋友</p><p>  loc=sum+1; //排在末尾</p><p>  if (best>loc) // 每遍歷一個(gè)窗口后, 判斷是否位置更佳 </p><p><b>  {</b></p><p><b>  best=lo

68、c;</b></p><p><b>  besti= i;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  // b

69、est位置已找到,插入到隊(duì)伍中。</p><p>  p=Que[besti].front; </p><p>  for(i=0;i<best-1;i++) </p><p>  p=p->next;</p><p>  q=(QueuePtr)malloc(siz

70、eof(QNode)); </p><p>  strcpy(q->data.name,name);</p><p>  q->next = p->next;</p><p>  p->next = q;</p><p><b>  //打印鏈隊(duì)列<

71、;/b></p><p>  printf("\n");</p><p>  fprintf(fout,"EnQueue: %s\n",name);</p><p>  for(i=0;i<tot;i++)</p><p><b>  {</b></p>

72、<p>  p=Que[i].front->next;</p><p>  printf("Queue %d:",i);</p><p>  fprintf(fout,"Queue %d:",i);</p><p><b>  while(p)</b></p><p&g

73、t;<b>  {</b></p><p>  printf("%s ",p->data.name);</p><p>  fprintf(fout,"%s ",p->data.name);</p><p>  p=p->next;</p><p><b&g

74、t;  }</b></p><p>  printf("\n");</p><p>  fprintf(fout,"\n");</p><p><b>  }</b></p><p>  printf("\n");</p><p&

75、gt;  return OK;</p><p><b>  }</b></p><p>  //初始化窗口,對(duì)隨機(jī)產(chǎn)生的成員依次進(jìn)行最佳排隊(duì)</p><p>  Status InitEn(Queue Que[4],Member a){</p><p>  int ch; //存放用戶輸入X所在行數(shù)

76、</p><p>  int i,j,besti,best,loc,sum;</p><p>  QNode *p, *q;</p><p>  ch=Check(Que,a.name);</p><p>  for(i=0,best=Max;i<tot;i++) //遍歷所有窗口 ,尋找最佳位置。 </p><

77、p><b>  {</b></p><p>  p=Que[i].front; </p><p>  if(!p->next) //該隊(duì)伍無(wú)人,則排在第一個(gè)最佳 </p><p><b>  {</b></p><p><b>

78、  besti= i;</b></p><p><b>  best= 1;</b></p><p><b>  break; </b></p><p><b>  } </b></p><p>  else // 否則,在第ch行尋找朋友</p

79、><p><b>  { </b></p><p>  p=Que[i].front->next;</p><p>  loc =0; //記錄當(dāng)前最佳位置</p><p>  sum =0; //記錄隊(duì)伍人數(shù)</p><p>  while (p) </p>&l

80、t;p><b>  { </b></p><p><b>  sum++;</b></p><p>  for(j=1;j<=peo[ch][0].idnum;j++)</p><p>  if(strcmp(peo[ch][j].name,p->data.name)==0)</p>&l

81、t;p>  loc=sum+1;</p><p>  p=p->next;</p><p>  } //while為遍歷一個(gè)窗口</p><p>  if(loc==0) //該隊(duì)伍中無(wú)朋友</p><p>  loc=sum+1; //排在末尾</p><p> 

82、 if (best>loc) // 每遍歷一個(gè)窗口后, 判斷是否位置更佳 </p><p><b>  {</b></p><p><b>  best=loc;</b></p><p><b>  besti= i;</b></p><p><b>  }&

83、lt;/b></p><p><b>  }</b></p><p><b>  }</b></p><p>  // best位置已找到,插入到隊(duì)伍中。</p><p>  p=Que[besti].front; </p>

84、;<p>  for(i=0;i<best-1;i++) </p><p>  p=p->next;</p><p>  q=(QueuePtr)malloc(sizeof(QNode)); </p><p>  strcpy(q->data.name,a.name);&l

85、t;/p><p>  q->next = p->next;</p><p>  p->next = q;</p><p>  return OK;</p><p><b>  }</b></p><p>  EnQueue

86、 DeQueue</p><p><b>  break </b></p><p><b>  F</b></p><p><b>  T</b></p><p><b>  五 調(diào)試分析</b></p><p>  按

87、照要求輸入正常的測(cè)試數(shù)據(jù),測(cè)試程序能否正確解決問題,得到正確輸出</p><p>  應(yīng)注意邊界測(cè)試,例如tot,choice的范圍是否在設(shè)定的范圍內(nèi),若不在能給出提示。</p><p>  對(duì)輸入的異常能進(jìn)行處理,例如該隊(duì)沒有人卻進(jìn)行了出隊(duì)操作。</p><p><b>  六 測(cè)試結(jié)果</b></p><p>  

88、顯示開始菜單,用戶從鍵盤輸入所需的功能,并進(jìn)行相應(yīng)的操作,直到讀完全部的測(cè)試用例則關(guān)閉文件,程序執(zhí)行結(jié)束,如下圖所示:</p><p>  開始菜單界面,屏幕會(huì)打印出當(dāng)前測(cè)試用例的人員名字,提示窗口總數(shù),并輸入選擇:</p><p>  對(duì)當(dāng)前測(cè)試用例進(jìn)行操作,并將結(jié)果打印到屏幕上,寫入文件:</p><p>  用戶選擇當(dāng)前測(cè)試用例結(jié)束,自動(dòng)跳到下一個(gè)測(cè)試用例循環(huán)

89、操作:</p><p>  當(dāng)讀到文件尾即所有測(cè)試用例結(jié)束時(shí),會(huì)退出執(zhí)行,關(guān)閉文件:</p><p><b>  七 用戶使用說明</b></p><p>  本程序在VC環(huán)境下運(yùn)行。</p><p>  用戶根據(jù)菜單輸入選擇,若選擇入隊(duì),則會(huì)提示輸入人名,若人名符合入隊(duì)要求,則將該人入隊(duì),并打印出當(dāng)前所有的窗口排隊(duì)信

90、息。若選擇出隊(duì),則提示出入窗口號(hào),刪除該窗口的第一個(gè)人并打印在屏幕上,選擇測(cè)試用例結(jié)束則跳到下一個(gè)測(cè)試用例繼續(xù)操作。</p><p>  讀完所有測(cè)試用例會(huì)退出程序執(zhí)行。</p><p><b>  八 課程設(shè)計(jì)總結(jié)</b></p><p>  通過這次課程設(shè)計(jì),充分體會(huì)到靈活運(yùn)用數(shù)據(jù)結(jié)構(gòu)語(yǔ)的重要性,知識(shí)都是緊密聯(lián)系在一起的,如果對(duì)知識(shí)掌握不

91、熟練,打起程序框架來(lái)也比較模糊。調(diào)試時(shí)遇到了很多障礙,出了很多錯(cuò),例如一些很小的錯(cuò)誤但就會(huì)導(dǎo)致程序無(wú)法執(zhí)行,例如掉了個(gè)分號(hào),main的單詞寫錯(cuò),或是大括號(hào)沒有大全,程序漏洞百出,經(jīng)過不斷調(diào)試,體會(huì)到養(yǎng)成良好的習(xí)慣是很重要的,基本的大括號(hào)要提前寫好,再往里面寫內(nèi)容。用循環(huán)結(jié)構(gòu)的時(shí)候也要特別注意,要明白自己需要什么循環(huán)結(jié)構(gòu)for還是while還是do-while,還有在哪里循環(huán),循環(huán)條件是什么,這里是比較容易出錯(cuò)的地方。在定義函數(shù)時(shí),要注意

92、函數(shù)的參數(shù),尤其是對(duì)于數(shù)組參數(shù)特別容易出錯(cuò)。本程序用到了很多指針的操作,這也是錯(cuò)誤的一大根源,如果對(duì)結(jié)構(gòu)不夠熟悉,指針指錯(cuò)是常有的事。還有變量的定義也要注意位置,否則可能導(dǎo)致編譯出錯(cuò),變量名或函數(shù)名也要盡量容易識(shí)別,如choice,group表示選擇和組號(hào)。另外對(duì)于模塊化的掌握更加的得心應(yīng)手。</p><p>  在這次設(shè)計(jì)中,我回顧了很多以前的東西,也發(fā)現(xiàn)了很多的問題,以前都沒遇見過的,收獲很大,在對(duì)不同的功能

93、代碼是不一定可以完整的執(zhí)行的,不過大概都是一樣的,只有一些小的細(xì)節(jié)??粗约鹤龅某绦?,自己就會(huì)又欣慰又難過,欣慰的是自己終于把它做出來(lái)了,而且,做的還好,難過的是自己知道還有很多的不足,但是,由于認(rèn)識(shí)的有限,無(wú)法去做到最好,才知道“書到用時(shí)方恨少”! 我覺得課程設(shè)計(jì)是讓我們對(duì)原有的知識(shí)從了解表面到深入本質(zhì),從個(gè)體學(xué)習(xí)到整體把握的跳躍,對(duì)新知識(shí)的汲取,更是讓我們把課本的知識(shí)應(yīng)用到實(shí)際中,讓我們了解了我們的學(xué)習(xí)有什么用,能夠解決什么樣的問題

94、,增加我們的自信和學(xué)習(xí)的動(dòng)力。</p><p>  此次模擬排隊(duì)買票的設(shè)計(jì)讓我對(duì)隊(duì)列和鏈表了解更深入,可以把它同實(shí)際相結(jié)合。在整個(gè)設(shè)計(jì)過程中,通過怎樣對(duì)把各個(gè)信息連接起來(lái)的分析,鍛煉了對(duì)事情的分析能力,通過怎樣解決過程中出現(xiàn)的問題,提高了查找文獻(xiàn)的能力、對(duì)網(wǎng)絡(luò)資源的利用能力和和其他同學(xué)的交流溝通能力??傊ㄟ^這次的課程設(shè)計(jì),我收獲匪淺。俗話說孰能生巧,經(jīng)過上一次程序設(shè)計(jì)積累下來(lái)的經(jīng)驗(yàn)感覺這次順利的多,希望在C語(yǔ)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)僅提供信息存儲(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)論