c課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)_第1頁
已閱讀1頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  本科生課程設(shè)計(jì)說明書</p><p>  題 目:C語言課程設(shè)計(jì)</p><p>  —— 學(xué)生信息管理系統(tǒng)</p><p><b>  學(xué)生姓名:</b></p><p><b>  學(xué) 號(hào):</b></p><p><b> 

2、 專 業(yè):</b></p><p><b>  班 級(jí):</b></p><p><b>  指導(dǎo)教師:</b></p><p><b>  日 期:</b></p><p><b>  課程設(shè)計(jì)任務(wù)書</b></p&g

3、t;<p><b>  目 錄</b></p><p>  內(nèi)蒙古科技大學(xué)課程設(shè)計(jì)任務(wù)書I</p><p><b>  目 錄II</b></p><p>  第一章 需求分析3</p><p><b>  1.1引言3</b></p

4、><p>  1.2任務(wù)概述3</p><p>  1.3數(shù)據(jù)描述3</p><p>  1.4功能需求3</p><p>  1.5性能需求4</p><p>  1.6運(yùn)行需求4</p><p>  1.7任務(wù)計(jì)劃4</p><p>  第二章概

5、要設(shè)計(jì)4</p><p>  2.1總體設(shè)計(jì)4</p><p>  2.2數(shù)據(jù)類型設(shè)計(jì)(或數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì))6</p><p>  2.3接口設(shè)計(jì) //函數(shù)聲明6</p><p>  2.4運(yùn)行界面設(shè)計(jì)7</p><p>  第三章詳細(xì)設(shè)計(jì)8</p><p>  3.1輸入

6、模塊設(shè)計(jì)8</p><p>  3.2輸出模塊設(shè)計(jì)8</p><p>  3.3查找模塊設(shè)計(jì)9</p><p>  3.4排序模塊設(shè)計(jì)10</p><p>  3.5保存及讀取模塊設(shè)計(jì)10</p><p>  第四章測(cè)試分析12</p><p>  4.1測(cè)試程序執(zhí)行情況

7、12</p><p>  4.2出現(xiàn)的問題和解決的方法15</p><p>  第五章用戶手冊(cè)(可選)16</p><p>  5.1使用說明16</p><p>  5.2運(yùn)行說明16</p><p>  第六章課程設(shè)計(jì)總結(jié)17</p><p>  附錄:程序代碼18&

8、lt;/p><p><b>  參考文獻(xiàn)28</b></p><p><b>  致謝28</b></p><p><b>  第一章 需求分析</b></p><p><b>  引言</b></p><p>  學(xué)生基本信息管

9、理系統(tǒng)</p><p><b>  任務(wù)概述</b></p><p>  1、建立學(xué)生信息,信息至少包含學(xué)生姓名,學(xué)號(hào),性別,年齡,出生日期,家庭地址,e-mail,電話地址等;</p><p>  2、能夠提供新建、瀏覽、查找、修改和刪除通訊錄信息的功能;</p><p>  3、能夠提供安不同方式查詢的功能;如按姓名

10、或電話等查詢;</p><p><b>  數(shù)據(jù)描述</b></p><p>  struct student </p><p><b>  {</b></p><p>  char NO[20];</p><p>  char name[20];</p>&l

11、t;p><b>  int age;</b></p><p>  char sex[3]; /*'F'表示性別男,'M'表示性別女*/</p><p>  char birthday[10];</p><p>  char address[30];</p><p>  char

12、phone[20];</p><p>  char e_mail[20];</p><p>  struct student *next; //下個(gè)結(jié)點(diǎn)</p><p><b>  };</b></p><p><b>  功能需求</b></p><p>  1、輸入功

13、能:一次可以完成自定義學(xué)生人數(shù)的學(xué)生信息記錄的輸入。</p><p>  2、刪除功能:對(duì)指定學(xué)生的信息進(jìn)行刪除。</p><p>  3、修改功能:對(duì)指定學(xué)生的信息進(jìn)行修改。</p><p>  4、查詢功能:選擇某種方式并輸入該信息查詢符合條件的學(xué)生信息。</p><p>  5、排序功能:以英語課程的分?jǐn)?shù)為依據(jù)對(duì)學(xué)生信息進(jìn)行排序。<

14、;/p><p>  6、顯示功能:將以上功能操作后的學(xué)生信息顯示出來。</p><p><b>  7、退出主菜單。</b></p><p><b>  性能需求</b></p><p>  1、輸入功能:一次可以完成自定義學(xué)生人數(shù)的學(xué)生信息記錄的輸入。</p><p>  2、

15、刪除功能:對(duì)指定學(xué)生的信息進(jìn)行刪除。</p><p>  3、修改功能:對(duì)指定學(xué)生的信息進(jìn)行修改。</p><p>  4、查詢功能:選擇某種方式并輸入該信息查詢符合條件的學(xué)生信息。</p><p>  5、排序功能:以英語課程的分?jǐn)?shù)為依據(jù)對(duì)學(xué)生信息進(jìn)行排序。</p><p>  6、顯示功能:將以上功能操作后的學(xué)生信息顯示出來。</p

16、><p><b>  7、退出主菜單。</b></p><p><b>  運(yùn)行需求</b></p><p>  1、從鍵盤輸入包括學(xué)號(hào)、姓名、性別、出生年月日、籍貫、所在院系、專業(yè)、獎(jiǎng)懲信息等,并將其保存在磁盤文件里。</p><p>  2、具有進(jìn)行單項(xiàng)查詢或多項(xiàng)查詢的功能(即按照給定的關(guān)鍵字姓名等

17、找出滿足條件的紀(jì)錄)。</p><p>  3、具有插入、修改和刪除信息的功能。</p><p>  4、具有輸出文件數(shù)據(jù)信息的功能。</p><p><b>  任務(wù)計(jì)劃</b></p><p><b>  概要設(shè)計(jì)</b></p><p><b>  總體設(shè)計(jì)&

18、lt;/b></p><p>  總體結(jié)構(gòu)我們采取模塊化方式進(jìn)行程序設(shè)計(jì),要求程序的功能設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)及整體結(jié)構(gòu)設(shè)計(jì)合理。也可根據(jù)自己對(duì)題目的理解增加新的功能模塊。系統(tǒng)以菜單界面方式(至少采用文本菜單界面,如能采用圖形菜單界面更好)工作,運(yùn)行界面友好,演示程序以用戶和計(jì)算機(jī)的對(duì)話方式進(jìn)行。</p><p>  數(shù)據(jù)類型設(shè)計(jì)(或數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì))</p><p>

19、;  struct student </p><p><b>  {</b></p><p>  char NO[20];</p><p>  char name[20];</p><p><b>  int age;</b></p><p>  char sex[3];

20、 /*'F'表示性別男,'M'表示性別女*/</p><p>  char birthday[10];</p><p>  char address[30];</p><p>  char phone[20];</p><p>  char e_mail[20];</p><p>  s

21、truct student *next; //下個(gè)結(jié)點(diǎn)</p><p><b>  };</b></p><p>  接口設(shè)計(jì) //函數(shù)聲明</p><p><b>  表2.1:函數(shù)列表</b></p><p><b>  運(yùn)行界面設(shè)計(jì)</b></p>&

22、lt;p><b>  主菜單模塊</b></p><p>  采用switch()函數(shù)從鍵盤選擇相應(yīng)菜單的對(duì)應(yīng)功能。</p><p><b>  switch(c)</b></p><p><b>  {</b></p><p>  getchar();</p>

23、;<p>  case 1:insert_stu();break; //學(xué)生信息錄入</p><p>  case 2:print_stu();break; //學(xué)生信息瀏覽</p><p>  case 3:search_NO(); break; //以學(xué)號(hào)方式查詢信息</p><p>  c

24、ase 4:search_name(); break; //以姓名方式查詢信息</p><p>  case 5:del_stu(); break; //刪除學(xué)生信息</p><p>  case 6:revise_stu(); break; //修改學(xué)生信息</p><p>  case 7:arrage_stu()

25、;break; //保存信息</p><p>  case 0:exit(0); //退出 </p><p><b>  }</b></p><p><b>  詳細(xì)設(shè)計(jì)</b></p><p><b>  輸入模塊設(shè)計(jì)&l

26、t;/b></p><p><b>  數(shù)據(jù)插入模塊</b></p><p>  采用scanf( )函數(shù)輸入新聯(lián)系人信息插入至結(jié)構(gòu)數(shù)組中。</p><p>  PF("\t\t輸入學(xué)生學(xué)號(hào):\t");</p><p>  scanf("%s",p1->NO);

27、 //學(xué)號(hào)</p><p>  PF("\t\t輸入學(xué)生姓名:\t"); </p><p>  scanf("%s",p1->name); //姓名</p><p>  PF("\t\t輸入學(xué)生年齡:\t");</p><p>  s

28、canf("%d",&p1->age); //年齡 </p><p>  PF("\t\t輸入學(xué)生性別:\t");</p><p>  scanf("%s",p1->sex); //性別</p><p>  PF(&

29、quot;\t\t輸入學(xué)生出生年月:\t");</p><p>  scanf("%s",p1->birthday); //出生年月</p><p>  PF("\t\t輸入學(xué)生地址:\t");</p><p>  scanf("%s",p1->address);

30、 //地址</p><p>  PF("\t\t輸入學(xué)生電話:\t");</p><p>  scanf("%s",p1->phone); //電話</p><p>  PF("\t\t輸入學(xué)生E-mail:\t");</p><p>  sc

31、anf("%s",p1->e_mail); //E-mail</p><p><b>  n++;</b></p><p><b>  輸出模塊設(shè)計(jì)</b></p><p><b>  數(shù)據(jù)瀏覽模塊</b></p><p>  采用

32、分屏顯示,每屏3條記錄。用fread或fscanf讀文件,輸出結(jié)果。</p><p>  for(p=head->next;p!=NULL;p=p->next) //讀出信息</p><p><b>  {</b></p><p>  PF("※※※※※※※※※※※※※※※※※※學(xué)生信息瀏覽※※※※※※※※※※※※※※

33、※※※※\n");</p><p>  PF("\t\t學(xué)生學(xué)號(hào):\t%s\n",p->NO);</p><p>  PF("\t\t學(xué)生姓名:\t%s\n",p->name);</p><p>  PF("\t\t學(xué)生年齡:\t%d\n",p->age);</p>

34、<p>  PF("\t\t學(xué)生性別:\t%s\n",p->sex);</p><p>  PF("\t\t學(xué)生出生年月:\t%s\n",p->birthday);</p><p>  PF("\t\t學(xué)生地址:\t%s\n",p->address);</p><p>  PF

35、("\t\t學(xué)生電話:\t%s\n",p->phone);</p><p>  PF("\t\t學(xué)生E-mail:\t%s\n",p->e_mail);</p><p>  PF("\n");} //輸出信息</p><p><b>  }</b&

36、gt;</p><p><b>  查找模塊設(shè)計(jì)</b></p><p>  1) 按姓名查找模塊</p><p>  通過鍵盤輸入要查找的學(xué)生姓名,然后與結(jié)構(gòu)數(shù)組中的姓名信息逐一比對(duì),找出學(xué)生信息并輸出</p><p>  void search_name() //學(xué)生姓名信息查找</p><

37、;p><b>  {</b></p><p>  STU *p=NULL;</p><p>  char name[20];</p><p>  if(head==NULL) //判斷鏈表是否為空</p><p><b>  {</b></p><p>  PF(

38、"文檔中無記錄!\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  PF("輸入學(xué)生姓名:");</p><p>  scanf("%s",name);</p&g

39、t;<p>  for(p=head->next;p!=NULL;p=p->next) //讀出信息</p><p><b>  {</b></p><p>  if(!strcmp(p->name,name))</p><p>  3) 按學(xué)號(hào)查找模塊</p><p>  通過鍵盤輸

40、入要查找的學(xué)生學(xué)號(hào),然后與結(jié)構(gòu)數(shù)組中的電話信息逐一比對(duì),找出學(xué)生信息并輸出</p><p>  void search_NO() //學(xué)生學(xué)號(hào)信息查找</p><p><b>  {</b></p><p>  STU *p=NULL;</p><p>  char NO[20];</p><

41、;p>  if(head==NULL) //判斷鏈表是否為空</p><p><b>  {</b></p><p>  PF("文檔中無記錄!\n");</p><p><b>  return;</b></p><p><b>  }</b>

42、</p><p>  PF("請(qǐng)輸入學(xué)生學(xué)號(hào):");</p><p>  scanf("%s",NO);</p><p>  for(p=head->next;p!=NULL;p=p->next) //讀出信息</p><p><b>  {</b></p&g

43、t;<p>  if(!strcmp(p->NO,NO))</p><p><b>  排序模塊設(shè)計(jì)</b></p><p><b>  保存及讀取模塊設(shè)計(jì)</b></p><p>  1) 按姓名查找模塊</p><p>  通過鍵盤輸入要查找的學(xué)生姓名,然后與結(jié)構(gòu)數(shù)組中的姓名

44、信息逐一比對(duì),找出學(xué)生信息并輸出</p><p>  void search_name() //學(xué)生姓名信息查找</p><p><b>  {</b></p><p>  STU *p=NULL;</p><p>  char name[20];</p><p>  if(head==N

45、ULL) //判斷鏈表是否為空</p><p><b>  {</b></p><p>  PF("文檔中無記錄!\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p&

46、gt;  PF("輸入學(xué)生姓名:");</p><p>  scanf("%s",name);</p><p>  for(p=head->next;p!=NULL;p=p->next) //讀出信息</p><p><b>  {</b></p><p>  if

47、(!strcmp(p->name,name))</p><p>  3) 按學(xué)號(hào)查找模塊</p><p>  通過鍵盤輸入要查找的學(xué)生學(xué)號(hào),然后與結(jié)構(gòu)數(shù)組中的電話信息逐一比對(duì),找出學(xué)生信息并輸出</p><p>  void search_NO() //學(xué)生學(xué)號(hào)信息查找</p><p><b>  {</b&g

48、t;</p><p>  STU *p=NULL;</p><p>  char NO[20];</p><p>  if(head==NULL) //判斷鏈表是否為空</p><p><b>  {</b></p><p>  PF("文檔中無記錄!\n");</

49、p><p><b>  return;</b></p><p><b>  }</b></p><p>  PF("請(qǐng)輸入學(xué)生學(xué)號(hào):");</p><p>  scanf("%s",NO);</p><p>  for(p=head->

50、;next;p!=NULL;p=p->next) //讀出信息</p><p><b>  {</b></p><p>  if(!strcmp(p->NO,NO))</p><p><b>  測(cè)試分析</b></p><p><b>  測(cè)試程序執(zhí)行情況</b&g

51、t;</p><p><b>  主菜單</b></p><p><b>  輸入學(xué)生信息</b></p><p><b>  學(xué)生信息瀏覽</b></p><p><b>  按學(xué)號(hào)查找學(xué)生信息</b></p><p><b

52、>  按姓名查找學(xué)生信息</b></p><p><b>  刪除學(xué)生信息</b></p><p><b>  修改學(xué)生信息</b></p><p><b>  退出</b></p><p>  出現(xiàn)的問題和解決的方法</p><p>

53、  出現(xiàn)的問題就是不能進(jìn)行排序,解決方法為刪除。</p><p><b>  用戶手冊(cè)(可選)</b></p><p><b>  使用說明</b></p><p><b>  運(yùn)行說明</b></p><p><b>  課程設(shè)計(jì)總結(jié)</b></p

54、><p>  在我們上機(jī)調(diào)試程序的過程中,我遇到了很多的問題,說實(shí)話這次課程設(shè)計(jì)自己沒有出多大的力,大部分都是借鑒同學(xué)的設(shè)計(jì)成果,自己設(shè)計(jì)是總是覺得沒有頭緒,無從下手??吹酵瑢W(xué)認(rèn)真看程序的樣子,還有修改程序時(shí)的熟練,我很羨慕他,我想,我要將C語言學(xué)好,在將來能為我的就業(yè)加分。</p><p>  在這期末考試前期,學(xué)院給我們安排的課程設(shè)計(jì)周,總讓我們覺的有些為難我們,這樣一個(gè)復(fù)雜困難而又繁瑣的

55、作業(yè),似乎弄得我們既沒有時(shí)間也沒有心情復(fù)習(xí),我曾一度地抱怨過學(xué)院,在完成它之后,我發(fā)現(xiàn)我錯(cuò)了,課程設(shè)計(jì)不僅讓我們鞏固了所學(xué)的知識(shí),還使得我們學(xué)習(xí)到了更多平時(shí)所忽略的,最重要的是,它磨礪了我們,讓我們?cè)诖髮W(xué)的下一個(gè)階段能更好的成長。</p><p><b>  附錄:程序代碼</b></p><p>  #include <stdio.h></p>

56、;<p>  #include <stdlib.h></p><p>  #include <string.h></p><p>  #define PF printf</p><p>  #define LEN sizeof(struct student)</p><p>  //◆◆◆◆◆◆◆◆◆◆◆

57、◆◆◆◆◆◆◆定義結(jié)構(gòu)體◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆</p><p>  struct student </p><p><b>  {</b></p><p>  char NO[20];</p><p>  char name[20];</p><p><b>  in

58、t age;</b></p><p>  char sex[3]; /*'F'表示性別男,'M'表示性別女*/</p><p>  char birthday[10];</p><p>  char address[30];</p><p>  char phone[20];</p>

59、<p>  char e_mail[20];</p><p>  struct student *next; //下個(gè)結(jié)點(diǎn)</p><p><b>  };</b></p><p>  typedef struct student STU;</p><p>  STU *head=NULL;

60、 //全局指針</p><p>  int n,i=0; //全局變量</p><p>  //◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆自定義函數(shù)◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆</p><p>  void show_menu(); //顯示菜單</p><p>  void menu();

61、 //執(zhí)行菜單</p><p>  void creat_stu(); //建立鏈表 </p><p>  void insert_stu(); //學(xué)生信息錄入</p><p>  void print_stu(); //學(xué)生信息瀏覽</p><p>  void searc

62、h_NO(); //以學(xué)號(hào)方式查詢信息</p><p>  void search_name(); //以姓名方式查詢信息</p><p>  void del_stu(); //刪除學(xué)生信息</p><p>  void revise_stu(); //修改學(xué)生信息</p><p>  void

63、 save(); //保存信息</p><p>  void main()</p><p><b>  {</b></p><p>  creat_stu();</p><p><b>  menu();</b></p><p><b>  }

64、</b></p><p>  //◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆創(chuàng)建鏈表◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆</p><p>  void creat_stu()</p><p><b>  {</b></p><p><b>  FILE *fp;</b></p&

65、gt;<p>  long size;</p><p>  STU *p1,*p2;</p><p>  head=(STU *)malloc(sizeof(STU));</p><p>  head->next=NULL;</p><p>  if((fp=fopen("fname.txt",&quo

66、t;r"))==NULL)</p><p><b>  {</b></p><p>  printf("這是新表\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p

67、>  fseek(fp,0L,2);</p><p>  size=ftell(fp);</p><p><b>  if(!size)</b></p><p><b>  {</b></p><p>  printf("這是空表\n");</p><p

68、><b>  return;</b></p><p>  } //開始創(chuàng)建鏈表</p><p>  rewind(fp); //移動(dòng)到文件首</p><p>  p2=head->next; //找到當(dāng)前位置</p><p>  while(!feof(fp))<

69、/p><p><b>  { </b></p><p>  p1=(STU *)malloc(sizeof(STU));</p><p>  fscanf(fp,"%s %s %d %s %s %s %s %s\n",p1->NO,p1->name,&p1->age,</p><p&

70、gt;  p1->sex,p1->birthday,p1->address,p1->phone,p1->e_mail);</p><p>  p1->next=NULL; //創(chuàng)建節(jié)點(diǎn)完</p><p>  if(head->next==NULL)</p><p>  head->next=p1;</p

71、><p><b>  else</b></p><p>  p2->next=p1;</p><p><b>  p2=p1;</b></p><p><b>  n++;</b></p><p><b>  }</b></

72、p><p>  p2->next=NULL;</p><p>  fclose(fp);</p><p><b>  }</b></p><p>  //◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆執(zhí)行菜單◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆</p><p>  void menu()</p&

73、gt;<p><b>  {</b></p><p><b>  int c;</b></p><p>  show_menu();</p><p><b>  while(1)</b></p><p><b>  {</b></p&g

74、t;<p>  scanf("%d",&c);</p><p><b>  switch(c)</b></p><p><b>  {</b></p><p>  getchar();</p><p>  case 1:insert_stu();break;

75、</p><p>  case 2:print_stu();break;</p><p>  case 3:search_NO(); break;</p><p>  case 4:search_name(); break;</p><p>  case 5:del_stu(); break;</p><p>  ca

76、se 6:revise_stu(); break;</p><p>  case 0:exit(0); </p><p>  }//執(zhí)行菜單選項(xiàng)</p><p>  show_menu();</p><p><b>  }</b></p><p><b>  }<

77、/b></p><p>  //◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆顯示菜單◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆</p><p>  void show_menu()</p><p><b>  {</b></p><p><b>  PF("\n");</b>

78、;</p><p>  PF("\n※※※※※※※※※※※※※※※※※※菜單※※※※※※※※※※※※※※※※※※\n");</p><p>  PF("\t\t◆1.輸 入 學(xué) 生 信 息 ◆\n");</p><p>  PF("\t\t★2.瀏 覽 學(xué) 生 信 息 ★\n");</p>&

79、lt;p>  PF("\t\t◆3.以學(xué)號(hào)方式查詢信息◆\n");</p><p>  PF("\t\t★4.以姓名方式查詢信息★\n");</p><p>  PF("\t\t◆5.刪 除 學(xué) 生 信 息 ◆\n");</p><p>  PF("\t\t★6.修 改 學(xué) 生 信 息 ★\

80、n");</p><p>  PF("\t\t★0. 退 出 ★\n");</p><p>  PF("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");</p><p>  PF("\n請(qǐng)選擇\n");</p><p

81、><b>  }</b></p><p>  //◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆學(xué)生信息錄入◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆</p><p>  void insert_stu() //學(xué)生信息錄入</p><p><b>  {</b></p><p><

82、;b>  n=0;</b></p><p>  STU *p1=NULL,*p2=NULL;</p><p>  p1=(STU *)malloc(sizeof(STU));</p><p>  PF("\n※※※※※※※※※※※※※※※※※※錄入學(xué)生信息※※※※※※※※※※※※※※※※※※\n"); //錄入學(xué)生信息&

83、lt;/p><p>  PF("\t\t輸入學(xué)生學(xué)號(hào):\t");</p><p>  scanf("%s",p1->NO); //學(xué)號(hào)</p><p>  PF("\t\t輸入學(xué)生姓名:\t"); </p><p>  scanf("%s&qu

84、ot;,p1->name); //姓名</p><p>  PF("\t\t輸入學(xué)生年齡:\t");</p><p>  scanf("%d",&p1->age); //年齡 </p><p>  PF("\t\t輸入學(xué)生性別:

85、\t");</p><p>  scanf("%s",p1->sex); //性別</p><p>  PF("\t\t輸入學(xué)生出生年月:\t");</p><p>  scanf("%s",p1->birthday); //出生年月</

86、p><p>  PF("\t\t輸入學(xué)生地址:\t");</p><p>  scanf("%s",p1->address); //地址</p><p>  PF("\t\t輸入學(xué)生電話:\t");</p><p>  scanf("%s",p

87、1->phone); //電話</p><p>  PF("\t\t輸入學(xué)生E-mail:\t");</p><p>  scanf("%s",p1->e_mail); //E-mail</p><p><b>  n++;</b></p>

88、<p>  if(head->next==NULL)</p><p><b>  {</b></p><p>  head=(STU *)malloc(LEN);</p><p>  head->next=p1;</p><p><b>  }</b></p>

89、<p><b>  else</b></p><p><b>  {</b></p><p>  for(p2=head;p2->next!=NULL;p2=p2->next); /*找到最后的結(jié)點(diǎn),然后將增加的結(jié)點(diǎn)掛在它上面*/</p><p>  p2->next=p1;</p&g

90、t;<p><b>  }</b></p><p>  p1->next=NULL;</p><p>  save();//保存到文件 </p><p><b>  }</b></p><p&g

91、t;  //◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆學(xué)生信息瀏覽◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆</p><p>  void print_stu() //學(xué)生信息瀏覽</p><p><b>  {</b></p><p>  STU *p=NULL;</p><p>  if(head==NULL)

92、 //判斷鏈表是否為空</p><p><b>  {</b></p><p>  PF("文檔中無記錄!\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  fo

93、r(p=head->next;p!=NULL;p=p->next) //讀出信息</p><p><b>  {</b></p><p>  PF("※※※※※※※※※※※※※※※※※※學(xué)生信息瀏覽※※※※※※※※※※※※※※※※※※\n");</p><p>  PF("\t\t學(xué)生學(xué)號(hào):\t%s

94、\n",p->NO);</p><p>  PF("\t\t學(xué)生姓名:\t%s\n",p->name);</p><p>  PF("\t\t學(xué)生年齡:\t%d\n",p->age);</p><p>  PF("\t\t學(xué)生性別:\t%s\n",p->sex);</

95、p><p>  PF("\t\t學(xué)生出生年月:\t%s\n",p->birthday);</p><p>  PF("\t\t學(xué)生地址:\t%s\n",p->address);</p><p>  PF("\t\t學(xué)生電話:\t%s\n",p->phone);</p><p

96、>  PF("\t\t學(xué)生E-mail:\t%s\n",p->e_mail);</p><p><b>  PF("\n");</b></p><p><b>  }//輸出信息</b></p><p><b>  }</b></p>

97、<p>  //◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆學(xué)生學(xué)號(hào)信息查找◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆</p><p>  void search_NO()//學(xué)生學(xué)號(hào)信息查找</p><p><b>  {</b></p><p>  STU *p=NULL;</p><p>  char NO[20]

98、;</p><p>  if(head==NULL) //判斷鏈表是否為空</p><p><b>  {</b></p><p>  PF("文檔中無記錄!\n");</p><p><b>  return;</b></p><p><b&

99、gt;  }</b></p><p>  PF("請(qǐng)輸入學(xué)生學(xué)號(hào):");</p><p>  scanf("%s",NO);</p><p>  for(p=head->next;p!=NULL;p=p->next) //讀出信息</p><p><b>  {&l

100、t;/b></p><p>  if(!strcmp(p->NO,NO))</p><p><b>  {</b></p><p>  PF("※※※※※※※※※※※※※※※※※※您查找的學(xué)生是※※※※※※※※※※※※※※※※※※\n");</p><p>  PF("\t\t學(xué)

101、生學(xué)號(hào):\t%s\n",p->NO);</p><p>  PF("\t\t學(xué)生姓名:\t%s\n",p->name);</p><p>  PF("\t\t學(xué)生年齡:\t%d\n",p->age);</p><p>  PF("\t\t學(xué)生性別:\t%s\n",p->se

102、x);</p><p>  PF("\t\t學(xué)生出生年月:\t%s\n",p->birthday);</p><p>  PF("\t\t學(xué)生地址:\t%s\n",p->address);</p><p>  PF("\t\t學(xué)生電話:\t%s\n",p->phone);</p>

103、;<p>  PF("\t\t學(xué)生E-mail:\t%s\n",p->e_mail);</p><p><b>  PF("\n");</b></p><p><b>  i=1;</b></p><p><b>  }//輸出信息</b>

104、;</p><p>  if(!i) </p><p><b>  {</b></p><p>  PF("無該生信息!請(qǐng)查證:"); //沒找到信息時(shí)的處理</p><p><b>  return;</b><

105、;/p><p><b>  } </b></p><p>  } </p><p><b>  } </b></p><p>  //◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆學(xué)生姓名信息查找◆◆◆◆◆◆◆◆◆◆◆◆◆

106、◆◆◆◆◆◆◆</p><p>  void search_name() //學(xué)生姓名信息查找</p><p><b>  {</b></p><p>  STU *p=NULL;</p><p>  char name[20];</p><p>  if(head==NULL) /

107、/判斷鏈表是否為空</p><p><b>  {</b></p><p>  PF("文檔中無記錄!\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  PF(&

108、quot;輸入學(xué)生姓名:");</p><p>  scanf("%s",name);</p><p>  for(p=head->next;p!=NULL;p=p->next) //讀出信息</p><p><b>  {</b></p><p>  if(!strcmp(

109、p->name,name))</p><p><b>  {</b></p><p>  PF("※※※※※※※※※※※※※※※※※※您查找的學(xué)生是※※※※※※※※※※※※※※※※※※\n");</p><p>  PF("\t\t學(xué)生學(xué)號(hào):\t%s\n",p->NO);</p>

110、<p>  PF("\t\t學(xué)生姓名:\t%s\n",p->name);</p><p>  PF("\t\t學(xué)生年齡:\t%d\n",p->age);</p><p>  PF("\t\t學(xué)生性別:\t%s\n",p->sex);</p><p>  PF("\t\

111、t學(xué)生出生年月:\t%s\n",p->birthday);</p><p>  PF("\t\t學(xué)生地址:\t%s\n",p->address);</p><p>  PF("\t\t學(xué)生電話:\t%s\n",p->phone);</p><p>  PF("\t\t學(xué)生E-mail:\t

112、%s\n",p->e_mail);</p><p><b>  PF("\n");</b></p><p><b>  i=1;</b></p><p><b>  }//輸出信息</b></p><p>  if(!i)

113、 </p><p><b>  {</b></p><p>  PF("無該生信息!請(qǐng)查證:"); //沒找到信息時(shí)的處理</p><p><b>  return;</b></p><p><b>  } </b

114、></p><p>  } </p><p><b>  } </b></p><p>  //◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆刪除學(xué)生信息◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆</p><p>  void del_

115、stu()</p><p><b>  {</b></p><p>  STU *p=NULL;</p><p>  if(head==NULL)//判斷鏈表是否為空</p><p><b>  {</b></p><p>  PF("文檔中無記錄!\n&quo

116、t;);</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  char NO[20];

117、</p><p>  PF("請(qǐng)輸入學(xué)生的學(xué)號(hào):\t");</p><p>  scanf("%s",NO);</p><p>  for(p=head;p!=NULL;p=p->next) </p><p><b>  {</b></p><p>

118、;  if(!strcmp(p->next->NO,NO))//驗(yàn)證信息是否正確</p><p><b>  {</b></p><p>  PF("※※※※※※※※※※※※※※※※※※您要?jiǎng)h除的學(xué)生是※※※※※※※※※※※※※※※※※※\n");</p><p>  PF("\t\t學(xué)生學(xué)號(hào):\t

119、%s\n",p->next->NO);</p><p>  PF("\t\t學(xué)生姓名:\t%s\n",p->next->name);</p><p>  PF("\t\t學(xué)生年齡:\t%d\n",p->next->age);</p><p>  PF("\t\t學(xué)生性別:

120、\t%s\n",p->next->sex);</p><p>  PF("\t\t學(xué)生出生年月:\t%s\n",p->next->birthday);</p><p>  PF("\t\t學(xué)生地址:\t%s\n",p->next->address);</p><p>  PF(&q

121、uot;\t\t學(xué)生電話:\t%s\n",p->next->phone);</p><p>  PF("\t\t學(xué)生E-mail:\t%s\n",p->next->e_mail);</p><p>  PF("\n");//輸出要?jiǎng)h除的信息</p><p><b>  i=1;&

122、lt;/b></p><p>  if(p->next->next)</p><p><b>  {</b></p><p>  p->next=p->next->next;</p><p><b>  }</b></p><p><

123、b>  else</b></p><p>  p->next=NULL;</p><p><b>  n--;</b></p><p><b>  save();</b></p><p><b>  return;</b></p><

124、p><b>  }</b></p><p>  if(!i) </p><p><b>  {</b></p><p>  PF("無該生信息!請(qǐng)查證:"); //沒找到信息時(shí)的處理</p><p><b

125、>  return;</b></p><p><b>  } </b></p><p><b>  }</b></p><p><b>  } </b></p><p><b>  } </b></p><p&

126、gt;  //◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆修改學(xué)生信息◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆</p><p>  void revise_stu()</p><p><b>  {</b></p><p>  STU *p=NULL;</p><p>  if(head==NULL) //判斷鏈表是否

127、為空</p><p><b>  {</b></p><p>  PF("文檔中無記錄!\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  char NO[20]

128、;</p><p>  PF("請(qǐng)輸入學(xué)生的學(xué)號(hào):\t");</p><p>  scanf("%s",NO);</p><p>  for(p=head->next;p!=NULL;p=p->next) </p><p><b>  {</b></p>

129、<p>  if(!strcmp(p->NO,NO))//驗(yàn)證信息是否正確</p><p><b>  {</b></p><p>  PF("※※※※※※※※※※※※※※※※※※您要修改的學(xué)生是※※※※※※※※※※※※※※※※※※\n");</p><p>  PF("\t\t學(xué)生學(xué)號(hào):\

130、t%s\n",p->NO);</p><p>  PF("\t\t學(xué)生姓名:\t%s\n",p->name);</p><p>  PF("\t\t學(xué)生年齡:\t%d\n",p->age);</p><p>  PF("\t\t學(xué)生性別:\t%s\n",p->sex);&l

131、t;/p><p>  PF("\t\t學(xué)生出生年月:\t%s\n",p->birthday);</p><p>  PF("\t\t學(xué)生地址:\t%s\n",p->address);</p><p>  PF("\t\t學(xué)生電話:\t%s\n",p->phone);</p>&l

132、t;p>  PF("\t\t學(xué)生E-mail:\t%s\n",p->e_mail);</p><p>  PF("\n");//輸出要修改信息</p><p><b>  i=1;</b></p><p>  PF("※※※※※※※※※※※※※※※※※※修改學(xué)號(hào)為%s的學(xué)生※※※

133、※※※※※※※※※※※※※※※\n",NO);</p><p>  strcpy(p->NO,NO);</p><p>  PF("\t\t輸入修改學(xué)生學(xué)號(hào):\t");</p><p>  scanf("%s",p->NO);</p><p>  PF("\t\t輸入修改

134、學(xué)生姓名:\t");</p><p>  scanf("%s",p->name); </p><p>  PF("\t\t輸入修改學(xué)生年齡:\t");</p><p>  scanf("%d",&p->age); &

135、lt;/p><p>  PF("\t\t輸入修改學(xué)生性別:\t");</p><p>  scanf("%s",p->sex); </p><p>  PF("\t\t輸入修改學(xué)生出生年月:\t");</p><p>  scanf("%s&quo

136、t;,p->birthday); </p><p>  PF("\t\t輸入修改學(xué)生地址:\t");</p><p>  scanf("%s",p->address); </p><p>  PF("\t\t輸入修改學(xué)生電話:\t");</p>

137、<p>  scanf("%s",p->phone); </p><p>  PF("\t\t輸入修改學(xué)生E-mail:\t");</p><p>  scanf("%s",p->e_mail); </p><p>  PF(&q

138、uot;\n"); //輸入修改信息</p><p><b>  save();</b></p><p><b>  }</b></p><p>  if(!i) </p><p&g

139、t;<b>  {</b></p><p>  PF("無該生信息!請(qǐng)查證:");/*沒找到信息時(shí)的處理*/</p><p><b>  return;</b></p><p><b>  } </b></p><p><b>  }&

140、lt;/b></p><p><b>  }</b></p><p>  //◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆保存信息◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆</p><p>  void save()</p><p><b>  {</b></p><p>  pr

141、intf("※※※※※※※※※※※※※※※※※※保存信息并結(jié)束※※※※※※※※※※※※※※※※※※\n");</p><p>  STU *p=NULL;</p><p><b>  FILE *fp;</b></p><p>  char *filename="fname.txt";</p>

142、<p>  if((fp=fopen("fname.txt","w"))==NULL) //出錯(cuò)檢測(cè)</p><p><b>  {</b></p><p>  printf("\n打不開文件!\n");</p><p><b>  return

143、;</b></p><p><b>  }</b></p><p>  if(head->next==NULL)</p><p><b>  {</b></p><p>  printf("\n信息為空!\n");</p><p><

144、;b>  return;</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  p=head->next;</p><p>  while(p!=NULL)</p><p><b>

145、  {</b></p><p>  fprintf(fp,"%s %s %d %s %s %s %s %s\n",p->NO,p->name,p->age,</p><p>  p->sex,p->birthday,p->address,p->phone,p->e_mail);//存入文件</p>

146、<p>  p=p->next;</p><p><b>  }</b></p><p>  printf("保存完畢!\n");</p><p>  fclose(fp); </p><p><b>  }</b></p><p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論