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

下載本文檔

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

文檔簡介

1、<p>  c語言及數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計</p><p>  題  目 : 學(xué)生信息管理系統(tǒng) </p><p>  專 業(yè): 物聯(lián)網(wǎng)工程1401班 </p><p>  姓 名:

2、 </p><p>  學(xué) 號: </p><p>  同組其他學(xué)生(學(xué)號): </p><p>  2015年  6月 24  日</p><p><b>

3、;  目 錄</b></p><p><b>  一、需求分析3</b></p><p><b>  二、總體設(shè)計3</b></p><p><b>  三、詳細設(shè)計3</b></p><p><b>  四、調(diào)試與測試3</b><

4、;/p><p><b>  五、測試結(jié)果3</b></p><p><b>  六、用戶手冊3</b></p><p><b>  七、附錄3</b></p><p><b>  一、需求分析</b></p><p><b&

5、gt;  問題描述</b></p><p>  學(xué)生信息包括:學(xué)號,姓名,年齡,性別,出生年月,地址,電話,E-mail等。試設(shè)計一學(xué)生信息管理系統(tǒng),使之能提供以下功能:</p><p><b>  系統(tǒng)以菜單方式工作</b></p><p>  學(xué)生信息錄入功能---輸入</p><p>  學(xué)生信息瀏覽功

6、能---輸出</p><p>  查詢、排序功能---算法</p><p>  按學(xué)號查詢、按姓名查詢、學(xué)生信息的刪除與修改(可選項)</p><p><b> ?。?)功能要求</b></p><p>  界面比較美觀;有一定的容錯能力,比如輸入的成績不在0~100之間,就提示不合法,要求重新輸入;最好用鏈表的方式實現(xiàn)

7、。</p><p><b>  二、總體設(shè)計</b></p><p>  錄入信息 </p><p><b>  Y</b></p><p><b>  N</b></p><p><b>  瀏覽學(xué)生信息</b>&

8、lt;/p><p><b>  查詢學(xué)生信息</b></p><p><b>  N</b></p><p><b>  Y </b></p><p><b>  刪除學(xué)生信息</b></p><p><b>  Y</

9、b></p><p><b>  N</b></p><p><b>  修改學(xué)生信息</b></p><p><b>  N</b></p><p><b>  Y</b></p><p><b>  三、詳細設(shè)計

10、</b></p><p>  各調(diào)用函數(shù)的設(shè)計與運行情況:</p><p><b> ?。?/錄入學(xué)生信息</b></p><p>  void record ()</p><p><b>  { </b></p><p>  struct student *p

11、0; </p><p>  p0 = (struct student *)malloc(LEN);</p><p>  printf ("請輸入學(xué)生的姓名:");</p><p>  scanf ("%s",p0->name); </p><p>  printf ("請輸入學(xué)

12、生的學(xué)號:");</p><p>  scanf ("%ld",&p0->num);</p><p>  printf ("請輸入學(xué)生的性別:");</p><p>  scanf ("%s",p0->sex);</p><p>  printf (&q

13、uot;請輸入學(xué)生的年齡:");</p><p>  scanf ("%d",&p0->age);</p><p>  printf ("請輸入學(xué)生的地址:");</p><p>  scanf ("%s",p0->address);</p><p> 

14、 printf ("請輸入學(xué)生的電話:");</p><p>  scanf ("%lf",&p0->tele_num);</p><p>  printf ("請輸入學(xué)生的E-mail:");</p><p>  scanf ("%s",p0->E_mail);&l

15、t;/p><p>  insert (p0);</p><p>  printf ("該學(xué)生的信息為:\n");</p><p>  printf ("-------------------------------------------------------------------------------\n");</p

16、><p>  printf ("姓名\t學(xué)號\t年齡\t性別\t地址\t\t電話\t\tE-mail\n");</p><p>  display (p0);</p><p><b>  }</b></p><p>  void insert (struct student *stu)</p>

17、<p><b>  {</b></p><p>  struct student *p0, *p1, *p2;</p><p>  p1 = head;</p><p><b>  p0 = stu;</b></p><p>  if (head == NULL)</p>

18、<p><b>  {</b></p><p>  head = p0;</p><p>  p0->next = NULL;</p><p><b>  }</b></p><p><b>  else</b></p><p><

19、;b>  {</b></p><p>  while ((p0->num > p1->num)&&(p1->next != NULL))</p><p><b>  {</b></p><p><b>  p2 = p1;</b></p><p&

20、gt;  p1 = p1->next;</p><p><b>  }</b></p><p>  if (p0->num <= p1->num)</p><p><b>  {</b></p><p>  if (head == p1)</p><p&g

21、t;  head = p0;</p><p><b>  else</b></p><p>  p2->next = p0;</p><p>  p0->next = p1;</p><p><b>  }</b></p><p><b>  else&

22、lt;/b></p><p><b>  {</b></p><p>  p1->next = p0;</p><p>  p0->next = NULL;</p><p><b>  } </b></p><p><b>  } </b&

23、gt;</p><p>  TOTAL_NUM++;</p><p><b>  }</b></p><p>  void display (struct student *p)</p><p><b>  {</b></p><p>  printf ("%s\t

24、%ld\t%d\t%s\t%s\t%.0f\t%s\n", p->name, p->num, p->age, p->sex, p->address, p->tele_num, p->E_mail);</p><p><b>  }</b></p><p><b>  //瀏覽學(xué)生信息</b>&l

25、t;/p><p>  void displayAll()</p><p><b>  {</b></p><p>  struct student *p;</p><p>  printf("學(xué)生總數(shù):%d\n", TOTAL_NUM);</p><p>  p = head; &

26、lt;/p><p>  if (head != NULL)</p><p><b>  { </b></p><p>  printf("\n姓名\t學(xué)號\t年齡\t性別\t地址\t\t電話\t\tE-mail\n");</p><p>  printf("-------------------

27、------------------------------------------------------------\n");</p><p><b>  do</b></p><p><b>  {</b></p><p>  display(p);</p><p>  p = p-

28、>next;</p><p><b>  }</b></p><p>  while(p != NULL);</p><p><b>  } </b></p><p>  printf ("\n");</p><p><b>  }<

29、/b></p><p>  //按學(xué)號查詢學(xué)生信息</p><p>  void query_by_num ()</p><p><b>  {</b></p><p><b>  int num;</b></p><p>  struct student *p1;&l

30、t;/p><p>  printf("請輸入學(xué)生的學(xué)號:");</p><p>  scanf("%ld", &num);</p><p>  if(head==NULL)</p><p><b>  {</b></p><p>  printf(&qu

31、ot;無學(xué)生記錄!\n");</p><p><b>  return;</b></p><p><b>  } </b></p><p>  p1 = head;</p><p>  while (num!=p1->num && p1->next!=NULL)

32、</p><p>  p1 = p1->next; </p><p>  if (num == p1->num)</p><p><b>  { </b></p><p>  printf ("姓名\t學(xué)號\t年齡\t性別\t地址\t\t電話\t\tE-mail\n");</p>

33、;<p>  printf ("-------------------------------------------------------------------------------\n");</p><p>  display (p1);</p><p><b>  } </b></p><p>&l

34、t;b>  else</b></p><p>  printf ("沒有該學(xué)生記錄,請核對!");</p><p><b>  }</b></p><p><b>  //刪除學(xué)生信息</b></p><p>  void del ()</p>&

35、lt;p><b>  {</b></p><p>  struct student *p1, *p2;</p><p>  long int num;</p><p>  if (head == NULL)</p><p><b>  {</b></p><p>  p

36、rintf("無學(xué)生記錄!\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  printf("請輸入您要刪除的學(xué)生的學(xué)號:");</p><p>  scanf("%ld&quo

37、t;, &num);</p><p>  p1 = head;</p><p>  while (num != p1->num && p1->next != NULL)</p><p><b>  {</b></p><p><b>  p2 = p1;</b>&

38、lt;/p><p>  p1 = p1->next; </p><p><b>  }</b></p><p>  if(num == p1->num)</p><p><b>  {</b></p><p>  if(p1 == head)</p>

39、<p>  head = p1->next;</p><p>  else p2->next = p1->next;</p><p><b>  free(p1);</b></p><p>  TOTAL_NUM--;</p><p><b>  }</b></p&

40、gt;<p><b>  else</b></p><p>  printf("沒有該學(xué)生記錄,請核對!\n");</p><p><b>  }</b></p><p><b>  //修改學(xué)生信息</b></p><p>  void ch

41、ange ()</p><p><b>  {</b></p><p>  struct student *p1, *p2;</p><p>  long int num;</p><p>  if (head == NULL)</p><p><b>  {</b><

42、/p><p>  printf ("無學(xué)生記錄!\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  printf ("請輸入您要修改的學(xué)生的學(xué)號:");</p><p>

43、;  scanf ("%ld", &num);</p><p>  p1 = head; </p><p>  while (num != p1->num && p1->next != NULL)</p><p><b>  {</b></p><p><b&

44、gt;  p2 = p1;</b></p><p>  p1 = p1->next; </p><p><b>  }</b></p><p>  if(num == p1->num)</p><p>  devise (p1); </p><p><b>  

45、else</b></p><p>  printf("沒有該學(xué)生記錄,請核對!\n");</p><p><b>  }</b></p><p>  void devise (struct student *p)</p><p><b>  {</b></p&g

46、t;<p>  int choice;</p><p>  choice = -1;</p><p><b>  do</b></p><p><b>  {</b></p><p>  printf("請選擇您要修改的學(xué)生的信息內(nèi)容:\n");</p>

47、<p>  printf("+----------------------+\n"); </p><p>  printf("| 姓名 請按 1 |\n");</p><p>  printf("| 學(xué)號 請按 2 |\n");</p><p>

48、;  printf("| 性別 請按 3 |\n");</p><p>  printf("| 年齡 請按 4 |\n");</p><p>  printf("| 地址 請按 5 |\n");</p><p>  printf("| 電話

49、 請按 6 |\n");</p><p>  printf("| E-mail 請按 7 |\n");</p><p>  printf("| 取消 請按 0 |\n");</p><p>  printf("+----------------------+\n

50、");</p><p>  printf("請輸入您的選擇:");</p><p>  scanf("%d", &choice);</p><p>  switch (choice)</p><p><b>  {</b></p><p>

51、<b>  case 0:</b></p><p><b>  return;</b></p><p><b>  case 1:</b></p><p>  printf("請輸入新姓名:");</p><p>  scanf("%s"

52、, p->name);</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  printf("請輸入新學(xué)號:");</p><p>  scanf("%d", &p->nu

53、m);</p><p><b>  break; </b></p><p><b>  case 3:</b></p><p>  printf("請輸入新性別:");</p><p>  scanf("%s", p->sex);</p>

54、<p><b>  break;</b></p><p><b>  case 4:</b></p><p>  printf("請輸入新年齡:");</p><p>  scanf("%s", &p->age);</p><p>&l

55、t;b>  break; </b></p><p><b>  case 5:</b></p><p>  printf("請輸入新地址:");</p><p>  scanf("%s", p->address);</p><p><b>  br

56、eak; </b></p><p><b>  case 6:</b></p><p>  printf("請輸入新電話:");</p><p>  scanf("%lf", &p->tele_num);</p><p><b>  break;

57、 </b></p><p><b>  case 7:</b></p><p>  printf("請輸入新E-mail:");</p><p>  scanf("%s", p->E_mail);</p><p><b>  break; </b&

58、gt;</p><p><b>  default:</b></p><p>  printf("\n無效選項!");</p><p><b>  break;</b></p><p><b>  }</b></p><p><

59、b>  }</b></p><p>  while(choice != 0);</p><p><b>  }</b></p><p>  模塊功能說明(如函數(shù)功能、入口及出口參數(shù)說明,函數(shù)調(diào)用關(guān)系描述等))</p><p><b>  四、調(diào)試與測試</b></p>

60、<p>  設(shè)計一個程序,錯誤是難免不了的。但我們可以根據(jù)編輯系統(tǒng)給出的一些提示去查看程序錯誤。對不敢肯定正確的,翻翻書,看一下這一知識。對難度大的就和同學(xué)們一起討論,問一問老師。</p><p>  開發(fā)一個系統(tǒng),耐心是必要的,認真也很重要,構(gòu)思要明確。</p><p>  認為是哪里錯誤的,有時用“/* */”注釋起來進行,看看是否還有錯誤。</p><

61、;p>  常錯有以下幾種情況:  </p><p>  1.使用變量,但未有定義,則先定義。</p><p>  2.不該用分號的,用到了,把它去掉。</p><p>  3.行最后若有分號則刪除,中間若有分號則改成逗號  </p><p>  4.若錯誤行中有if、while、for則要特別注意條件表達式的錯誤。  </p&g

62、t;<p>  5.若條件表達式中只有一個等于號,則改成兩個等于號。</p><p>  6.for中要用分號分隔表達式,而不是用逗號  </p><p>  7.缺少分號,若錯誤行中有語句沒有用分號結(jié)束,則加上分號?!?</p><p>  8.大小寫不對,若錯誤行中有大寫字母則一般都改成小寫字母?! ?         </p>&l

63、t;p>  9.若有return語句則函數(shù)的類型必須與return后變量的類型一致。調(diào)試方法,測試結(jié)果的分析與討論,測試過程中遇到的主要問題及采取的解決措施</p><p><b>  五、測試結(jié)果</b></p><p>  測試數(shù)據(jù)運行結(jié)果詳見“三·具體設(shè)計”(程序運行的截圖)</p><p><b>  六、用戶

64、手冊</b></p><p><b>  按提示輸入數(shù)據(jù)。</b></p><p><b>  七、附錄</b></p><p><b>  源程序代碼</b></p><p>  #include <stdio.h></p><p&

65、gt;  #include <malloc.h></p><p>  #include <string.h></p><p>  #include <stdlib.h></p><p>  #define NULL 0</p><p>  #define LEN sizeof(struct student)

66、</p><p>  struct student </p><p><b>  {</b></p><p>  char name[20];</p><p>  long int num;</p><p>  char sex[4];</p><p><b>

67、;  int age;</b></p><p>  char address[30];</p><p>  double tele_num;</p><p>  char E_mail[20];</p><p>  struct student *next;</p><p>  };//定義一個結(jié)構(gòu)題<

68、;/p><p>  int TOTAL_NUM = 0;//學(xué)生總數(shù)</p><p>  struct student *head = NULL;</p><p>  void welcome (); //歡迎界面</p><p>  void mainmenu (); //主界面</p><p>  void recor

69、d (); //記錄數(shù)據(jù)</p><p>  void insert(struct student *stu); //插入數(shù)據(jù)</p><p>  void display(struct student *stu); //顯示一個學(xué)生的信息</p><p>  void displayAll (); //顯示所有學(xué)生的信息</p><p> 

70、 void query_by_num (); //按學(xué)號查詢學(xué)生信息</p><p>  void readData (); //讀取文件里學(xué)生的信息</p><p>  void writeData (); //向文件寫入學(xué)生信息</p><p>  void freeAll (); //清空鏈表內(nèi)容</p><p>  void del

71、(); //刪除學(xué)生信息</p><p>  void change (); //更改學(xué)生信息</p><p>  void devise (struct student *p); //選擇更改內(nèi)容</p><p>  int main (void)</p><p><b>  {</b></p><

72、p>  welcome ();</p><p><b>  //顯示主菜單</b></p><p>  mainmenu ();</p><p><b>  return 0;</b></p><p><b>  }</b></p><p><

73、;b>  //顯示歡迎信息</b></p><p>  void welcome ()</p><p><b>  {</b></p><p>  printf ("\t————————————————————————\n");</p><p>  printf ("\t

74、 \n");</p><p>  printf ("\t 歡迎使用福建工軟物聯(lián)網(wǎng)1401班學(xué)生信息管理系統(tǒng) \n");</p><p>  printf ("\t \n&q

75、uot;);</p><p>  printf ("\t————————————————————————\n");</p><p><b>  }</b></p><p><b>  //系統(tǒng)主菜單</b></p><p>  void mainmenu ()</p>

76、<p><b>  {</b></p><p>  int choice;</p><p>  choice = -1;</p><p>  readData ();</p><p>  printf("\n\t\t請先創(chuàng)建database.txt文件以便于保存學(xué)生數(shù)據(jù)");</p

77、><p><b>  do</b></p><p><b>  {</b></p><p>  printf ("\n\n\n");</p><p>  printf ("\t\t--------------------------------------------\n&

78、quot;);</p><p>  printf ("\t\t| 工軟物聯(lián)網(wǎng)1401班學(xué)生信息管理系統(tǒng) |\n"); </p><p>  printf ("\t\t--------------------------------------------\n"); </p><p&g

79、t;  printf ("\t\t| [1]----錄入學(xué)生信息 |\n");</p><p>  printf ("\t\t| [2]----瀏覽學(xué)生信息 |\n");</p><p>  printf ("\t\t| [3]----查詢

80、學(xué)生信息 |\n");</p><p>  printf ("\t\t| [4]----刪除學(xué)生信息 |\n");</p><p>  printf ("\t\t| [5]----修改學(xué)生信息 |\n");</p>

81、;<p>  printf ("\t\t| [0]----退出系統(tǒng) |\n");</p><p>  printf ("\t\t|*·*·*·*·*·*·*·*·*·*·*·*·*·*

82、83;*|\n");</p><p>  printf ("\t\t---------------------------------------------\n");</p><p>  printf ("請根據(jù)您的需要輸入對應(yīng)的編號:");</p><p>  scanf ("%d", &am

83、p;choice);</p><p>  switch (choice)</p><p><b>  {</b></p><p><b>  case 0:</b></p><p>  writeData ();</p><p>  freeAll ();</p>

84、<p><b>  exit (0);</b></p><p><b>  case 1:</b></p><p>  record ();</p><p><b>  break;</b></p><p><b>  case 2:</b>

85、</p><p>  displayAll ();</p><p><b>  break;</b></p><p><b>  case 3:</b></p><p>  query_by_num ();</p><p><b>  break; </b&

86、gt;</p><p><b>  case 4:</b></p><p><b>  del ();</b></p><p><b>  break; </b></p><p><b>  case 5:</b></p><p>

87、  change ();</p><p><b>  break; </b></p><p><b>  default:</b></p><p>  printf ("\n無效選項!");</p><p><b>  break;</b></p>

88、;<p><b>  }</b></p><p><b>  }</b></p><p>  while (choice != 0);</p><p><b>  }</b></p><p><b>  //錄入學(xué)生信息</b></p&

89、gt;<p>  void record ()</p><p><b>  { </b></p><p>  struct student *p0; </p><p>  p0 = (struct student *)malloc(LEN);</p><p>  printf ("請輸入學(xué)生的

90、姓名:");</p><p>  scanf ("%s",p0->name); </p><p>  printf ("請輸入學(xué)生的學(xué)號:");</p><p>  scanf ("%ld",&p0->num);</p><p>  printf

91、("請輸入學(xué)生的性別:");</p><p>  scanf ("%s",p0->sex);</p><p>  printf ("請輸入學(xué)生的年齡:");</p><p>  scanf ("%d",&p0->age);</p><p>  

92、printf ("請輸入學(xué)生的地址:");</p><p>  scanf ("%s",p0->address);</p><p>  printf ("請輸入學(xué)生的電話:");</p><p>  scanf ("%lf",&p0->tele_num);</p

93、><p>  printf ("請輸入學(xué)生的E-mail:");</p><p>  scanf ("%s",p0->E_mail);</p><p>  insert (p0);</p><p>  printf ("該學(xué)生的信息為:\n");</p><p&

94、gt;  printf ("-------------------------------------------------------------------------------\n");</p><p>  printf ("姓名\t學(xué)號\t年齡\t性別\t地址\t\t電話\t\tE-mail\n");</p><p>  display

95、(p0);</p><p><b>  }</b></p><p>  void insert (struct student *stu)</p><p><b>  {</b></p><p>  struct student *p0, *p1, *p2;</p><p>

96、  p1 = head;</p><p><b>  p0 = stu;</b></p><p>  if (head == NULL)</p><p><b>  {</b></p><p>  head = p0;</p><p>  p0->next = NULL

97、;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  while ((p0->num > p1->num)&&(p1->next != NUL

98、L))</p><p><b>  {</b></p><p><b>  p2 = p1;</b></p><p>  p1 = p1->next;</p><p><b>  }</b></p><p>  if (p0->num <

99、;= p1->num)</p><p><b>  {</b></p><p>  if (head == p1)</p><p>  head = p0;</p><p><b>  else</b></p><p>  p2->next = p0;</p

100、><p>  p0->next = p1;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  p1->next = p0;</p>&l

101、t;p>  p0->next = NULL;</p><p><b>  } </b></p><p><b>  } </b></p><p>  TOTAL_NUM++;</p><p><b>  }</b></p><p>  vo

102、id display (struct student *p)</p><p><b>  {</b></p><p>  printf ("%s\t%ld\t%d\t%s\t%s\t%.0f\t%s\n", p->name, p->num, p->age, p->sex, p->address, p->tele_

103、num, p->E_mail);</p><p><b>  }</b></p><p><b>  //瀏覽學(xué)生信息</b></p><p>  void displayAll()</p><p><b>  {</b></p><p>  st

104、ruct student *p;</p><p>  printf("學(xué)生總數(shù):%d\n", TOTAL_NUM);</p><p>  p = head; </p><p>  if (head != NULL)</p><p><b>  { </b></p><p>  

105、printf("\n姓名\t學(xué)號\t年齡\t性別\t地址\t\t電話\t\tE-mail\n");</p><p>  printf("-------------------------------------------------------------------------------\n");</p><p><b>  do&l

106、t;/b></p><p><b>  {</b></p><p>  display(p);</p><p>  p = p->next;</p><p><b>  }</b></p><p>  while(p != NULL);</p>&l

107、t;p><b>  } </b></p><p>  printf ("\n");</p><p><b>  }</b></p><p>  //按學(xué)號查詢學(xué)生信息</p><p>  void query_by_num ()</p><p>&l

108、t;b>  {</b></p><p><b>  int num;</b></p><p>  struct student *p1;</p><p>  printf("請輸入學(xué)生的學(xué)號:");</p><p>  scanf("%ld", &num)

109、;</p><p>  if(head==NULL)</p><p><b>  {</b></p><p>  printf("無學(xué)生記錄!\n");</p><p><b>  return;</b></p><p><b>  } <

110、/b></p><p>  p1 = head;</p><p>  while (num!=p1->num && p1->next!=NULL)</p><p>  p1 = p1->next; </p><p>  if (num == p1->num)</p><p>

111、;<b>  { </b></p><p>  printf ("姓名\t學(xué)號\t年齡\t性別\t地址\t\t電話\t\tE-mail\n");</p><p>  printf ("------------------------------------------------------------------------------

112、-\n");</p><p>  display (p1);</p><p><b>  } </b></p><p><b>  else</b></p><p>  printf ("沒有該學(xué)生記錄,請核對!");</p><p><b

113、>  }</b></p><p><b>  //寫入文件</b></p><p>  void writeData ()</p><p><b>  {</b></p><p>  FILE* fp;//文件指針 </p><p>  struct st

114、udent *p;</p><p>  fp = fopen("database.txt", "w");</p><p><b>  if (!fp)</b></p><p><b>  {</b></p><p>  printf("文件打開錯誤!

115、");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  fprintf(fp,"%d\n", TOTAL_NUM);</p><p>  for(p = head; p!= NULL; p= p->n

116、ext)</p><p><b>  {</b></p><p>  fprintf(fp,"%s\t%ld\t%s\t%d\t%s\t%.0f\t%s\n", p->name, p->num, p->sex, p->age, p->address, p->tele_num, p->E_mail);<

117、/p><p><b>  }</b></p><p>  fclose (fp); </p><p><b>  }</b></p><p>  void freeAll ()</p><p><b>  {</b></p><p>

118、  struct student *p1, *p2;</p><p>  p1 = p2=head; </p><p><b>  while(p1)</b></p><p><b>  {</b></p><p>  p2=p1->next;</p><p>  fr

119、ee (p1);</p><p><b>  p1 = p2;</b></p><p><b>  } </b></p><p><b>  }</b></p><p><b>  //讀取文件</b></p><p>  void

120、 readData ()</p><p><b>  {</b></p><p>  FILE* fp;//文件指針 </p><p>  struct student *p1, *p2; </p><p>  fp = fopen("database.txt", "r");&l

121、t;/p><p><b>  if (!fp)</b></p><p><b>  {</b></p><p>  printf("文件打開錯誤!");</p><p><b>  return;</b></p><p><b>

122、;  }</b></p><p>  fscanf(fp,"%d\n", &TOTAL_NUM);</p><p>  head = p1 = p2 = (struct student *)malloc(LEN);</p><p>  fscanf(fp,"%s\t%ld\t%s\t%d\t%s\t%lf\t%s\n

123、", p1->name, &p1->num, p1->sex, &p1->age, p1->address, &p1->tele_num, p1->E_mail);</p><p>  while(!feof(fp))</p><p><b>  {</b></p><p&

124、gt;  p1 = (struct student *)malloc(LEN);</p><p>  fscanf(fp,"%s\t%ld\t%s\t%d\t%s\t%lf\t%s\n", p1->name, &p1->num, p1->sex, &p1->age, p1->address, &p1->tele_num, p1->

125、;E_mail);</p><p>  p2->next = p1;</p><p><b>  p2 = p1;</b></p><p><b>  }</b></p><p>  p2->next = NULL;</p><p>  fclose(fp);&l

126、t;/p><p><b>  }</b></p><p><b>  //刪除學(xué)生信息</b></p><p>  void del ()</p><p><b>  {</b></p><p>  struct student *p1, *p2;</

127、p><p>  long int num;</p><p>  if (head == NULL)</p><p><b>  {</b></p><p>  printf("無學(xué)生記錄!\n");</p><p><b>  return;</b></

128、p><p><b>  }</b></p><p>  printf("請輸入您要刪除的學(xué)生的學(xué)號:");</p><p>  scanf("%ld", &num);</p><p>  p1 = head;</p><p>  while (num !

129、= p1->num && p1->next != NULL)</p><p><b>  {</b></p><p><b>  p2 = p1;</b></p><p>  p1 = p1->next; </p><p><b>  }</b&g

130、t;</p><p>  if(num == p1->num)</p><p><b>  {</b></p><p>  if(p1 == head)</p><p>  head = p1->next;</p><p>  else p2->next = p1->nex

131、t;</p><p><b>  free(p1);</b></p><p>  TOTAL_NUM--;</p><p><b>  }</b></p><p><b>  else</b></p><p>  printf("沒有該學(xué)生記錄

132、,請核對!\n");</p><p><b>  }</b></p><p><b>  //修改學(xué)生信息</b></p><p>  void change ()</p><p><b>  {</b></p><p>  struct st

133、udent *p1, *p2;</p><p>  long int num;</p><p>  if (head == NULL)</p><p><b>  {</b></p><p>  printf ("無學(xué)生記錄!\n");</p><p><b>  r

134、eturn;</b></p><p><b>  }</b></p><p>  printf ("請輸入您要修改的學(xué)生的學(xué)號:");</p><p>  scanf ("%ld", &num);</p><p>  p1 = head; </p>

135、<p>  while (num != p1->num && p1->next != NULL)</p><p><b>  {</b></p><p><b>  p2 = p1;</b></p><p>  p1 = p1->next; </p><p

136、><b>  }</b></p><p>  if(num == p1->num)</p><p>  devise (p1); </p><p><b>  else</b></p><p>  printf("沒有該學(xué)生記錄,請核對!\n");</p>

137、<p><b>  }</b></p><p>  void devise (struct student *p)</p><p><b>  {</b></p><p>  int choice;</p><p>  choice = -1;</p><p>

138、<b>  do</b></p><p><b>  {</b></p><p>  printf("請選擇您要修改的學(xué)生的信息內(nèi)容:\n");</p><p>  printf("+----------------------+\n"); </p>&l

139、t;p>  printf("| 姓名 請按 1 |\n");</p><p>  printf("| 學(xué)號 請按 2 |\n");</p><p>  printf("| 性別 請按 3 |\n");</p><p>  printf("

140、| 年齡 請按 4 |\n");</p><p>  printf("| 地址 請按 5 |\n");</p><p>  printf("| 電話 請按 6 |\n");</p><p>  printf("| E-mail 請按 7 |

141、\n");</p><p>  printf("| 取消 請按 0 |\n");</p><p>  printf("+----------------------+\n");</p><p>  printf("請輸入您的選擇:");</p><p> 

142、 scanf("%d", &choice);</p><p>  switch (choice)</p><p><b>  {</b></p><p><b>  case 0:</b></p><p><b>  return;</b></

143、p><p><b>  case 1:</b></p><p>  printf("請輸入新姓名:");</p><p>  scanf("%s", p->name);</p><p><b>  break;</b></p><p>

144、;<b>  case 2:</b></p><p>  printf("請輸入新學(xué)號:");</p><p>  scanf("%d", &p->num);</p><p><b>  break; </b></p><p><b>

145、  case 3:</b></p><p>  printf("請輸入新性別:");</p><p>  scanf("%s", p->sex);</p><p><b>  break;</b></p><p><b>  case 4:</b&

146、gt;</p><p>  printf("請輸入新年齡:");</p><p>  scanf("%s", &p->age);</p><p><b>  break; </b></p><p><b>  case 5:</b></p&

147、gt;<p>  printf("請輸入新地址:");</p><p>  scanf("%s", p->address);</p><p><b>  break; </b></p><p><b>  case 6:</b></p><p&

148、gt;  printf("請輸入新電話:");</p><p>  scanf("%lf", &p->tele_num);</p><p><b>  break; </b></p><p><b>  case 7:</b></p><p> 

149、 printf("請輸入新E-mail:");</p><p>  scanf("%s", p->E_mail);</p><p><b>  break; </b></p><p><b>  default:</b></p><p>  printf

150、("\n無效選項!");</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  while(choice != 0);</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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論