c語言課程設計報告---學生信息管理系統(tǒng)_第1頁
已閱讀1頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  題目:學生信息管理系統(tǒng)</p><p><b>  一、需求分析</b></p><p><b>  任務要求:</b></p><p>  自學C語言中有關鏈表及外部文件的內(nèi)容,設計學生信息管理系統(tǒng)。具體要求如下:</p><p>  ◆ 建立學生信息,信息至少包括名字、性別

2、、年齡、學號、系別、家庭信息等內(nèi)容;</p><p>  ◆ 能夠提供添加、刪除和修改學生信息等功能;</p><p>  ◆ 能將通訊錄保存在文件中;</p><p>  ◆ 能夠按指定方式輸出學生信息。</p><p><b>  系統(tǒng)功能需求分析:</b></p><p>  ★ 1、為存儲

3、學生信息,需定義一個結(jié)構體類型,成員名字、性別、年齡、學號、系別、家庭信息等,并建立鏈表,定義該結(jié)構體類型的指針,用于指向各結(jié)點;</p><p>  ★ 2、分別建立具有添加、刪除、修改、查詢等功能的子函數(shù),完成相應功能,對程序?qū)崿F(xiàn)模塊化。這其中要用到對鏈表的刪除、插入等知識。刪除時用一結(jié)構體指針指向鏈表的第一個結(jié)點,檢查該節(jié)點的值是否等于輸入的要刪除的學號,若相等就刪除,不相等則后移指針,直至表尾。插入時也要

4、先找到相應結(jié)點,再添加。</p><p>  ★3、為實現(xiàn)存儲功能,需用到文件的相關函數(shù),打開文件,將添加、修改或刪除的信息存入磁盤中。</p><p>  ★4、為以表格的形式輸出文件,宏定義格式化輸出語句,指定輸出學生信息。</p><p><b>  二、概要設計</b></p><p><b>  系統(tǒng)

5、總體設計框架:</b></p><p>  對程序進行模塊化,建立添加、修改、刪除、查找和顯示功能的子函數(shù),各子函數(shù)中運用鏈表存儲數(shù)據(jù)。從主函數(shù)開始執(zhí)行,調(diào)用各個子函數(shù),并運用文件相關知識將信息存入磁盤中。</p><p><b>  系統(tǒng)功能模塊圖:</b></p><p><b>  三、詳細設計</b>&

6、lt;/p><p>  主要功能模塊的算法設計思路如下:</p><p>  1、查詢通訊錄信息(void chakan())</p><p> ?。?)為開辟一個新單元</p><p>  (2)輸入查詢關鍵字:</p><p> ?。?)讀取保存的文件數(shù)據(jù)輸入ASCLL字符:</p><p> 

7、?。?)在鏈表中尋找相應結(jié)點;</p><p> ?。?)調(diào)用輸出函數(shù),輸出結(jié)點信息。</p><p>  2、添加信息函數(shù)(void add())</p><p> ?。?)定義指向結(jié)構體變量的指針;</p><p> ?。?)移動指針,找到插入結(jié)點;</p><p> ?。?)在要插入的結(jié)點輸入信息;</p&

8、gt;<p> ?。?)調(diào)用保存函數(shù),打開文件,保存輸入信息。</p><p>  3、刪除信息函數(shù)(void del())</p><p> ?。?)定義指向結(jié)構體變量的指針;</p><p> ?。?)用指針檢驗鏈表中是否有記錄,若沒記錄,返回主函數(shù);</p><p> ?。?)根據(jù)要修改的編號查找要刪除的結(jié)點;</p

9、><p> ?。?)修改鏈表,刪除對應結(jié)點。</p><p>  4、修改信息函數(shù)(void xiugai())</p><p>  (1)定義指向結(jié)構體變量的指針;</p><p> ?。?)讀取保存的文件數(shù)據(jù)輸入ASCLL字符:</p><p>  (3)用指針檢驗鏈表中是否有記錄,若沒記錄,返回主函數(shù);</p&

10、gt;<p> ?。?)根據(jù)要修改的編號查找對應結(jié)點;</p><p><b> ?。?)修改信息;</b></p><p> ?。?)打開文件,保存修改記錄。</p><p>  5、保存信息函數(shù)(baocun())</p><p> ?。?)定義指向結(jié)構體變量的指針;</p><p&

11、gt;  (2)用文件指針指向要讀寫的磁盤文件名,若沒有則新建此文件名:</p><p> ?。?)用指針檢驗鏈表中是否有記錄,若沒記錄,返回主函數(shù):</p><p> ?。?)打開文件,保存記錄:</p><p>  6、屏幕操作函數(shù)(void stubent187())</p><p> ?。?)以一定格式輸出所想要的圖形:</p&

12、gt;<p><b>  四、主要源程序代碼</b></p><p>  定義變量:(對整個程序定義全局變量)</p><p>  #include "stdio.h"</p><p>  #include "conio.h"</p><p>  #define ST

13、UDENT ID /*所有STUDENT都用ID來代替*/</p><p>  typedef struct node /*定義結(jié)構體*/</p><p>  { char ming[50]; /*名字*/</p><p>  char xing[50];

14、 /*性別*/</p><p>  char nian[50]; /*年齡*/</p><p>  int xuehao; /*學號*/</p><p>  char xibie[50]; /*專

15、業(yè)*/</p><p>  char sushe[50]; /*宿舍號*/</p><p>  char jia[50]; /*家庭地址*/</p><p>  struct node *next;</p><p>  }ID;

16、 /*學生信息(變量名)*/</p><p>  ID *head=NULL; /*定義一個頭指針*/</p><p>  FILE *zhi; /*定義一個文件指針*/</p><p>  主菜單界面:(進入屏幕界面的形式)</p><p>  void

17、 stubent187() /*屏幕格式函數(shù)*/</p><p>  { printf("****************************************\n");</p><p>  printf("* 學生信息管理系統(tǒng) *\n");</p><p>  

18、printf("* *\n");</p><p>  printf("* 請選擇:1:查看; 2:添加; 3:刪除; *\n");</p><p>  printf("* 4:修改; 0:退出系統(tǒng)

19、 *\n");</p><p>  printf("* *\n");</p><p>  printf("*******************************************\n");</p><p>  print

20、f(">>>>>>>>>>>>>輸入 0~4 數(shù)字<<<<<<<<<<<<<\n");</p><p><b>  return ;</b></p><p><b>  }</b

21、></p><p>  查看學生信息記錄:(對以保存在磁盤文件的學生信息進行查詢)</p><p>  void chakan()</p><p>  { /* 查看*/</p><p><b>  ID *t;</b></p><p&g

22、t;<b>  t=head;</b></p><p>  t=(ID *)malloc(sizeof(ID)); /*為t開辟一個新單元*/</p><p>  if((zhi=fopen("yihu1.txt","rb"))==NULL) printf("沒有此文件\n");</p>

23、<p><b>  else</b></p><p>  { printf("%10s%10s%10s%10s%10s%10s%10s\n","ming","xing","nian","xuehao","eng","sushe",&quo

24、t;jia"); /*輸出一個屏幕格式*/</p><p>  while (!feof(zhi))</p><p>  { fscanf(zhi,"%10s%10s%10s%10d%10s%10s%10s\n",&t->ming,&t->xing,&t->nian,&t->xueha

25、o,&t->xibie,&t->sushe,&t->jia); /*讀取保存的文件數(shù)據(jù)輸入ASCLL字符:*/</p><p>  printf("%10s%10s%10s%10d%10s%10s%10s\n",t->ming,t->xing,t->nian,t->xuehao,t->xibie,t->s

26、ushe,t->jia); /*以這形式輸出各個學生信息*/</p><p>  t->next=(ID *)malloc(sizeof(ID));t=t->next;</p><p><b>  }</b></p><p><b>  };</b></p><p>&l

27、t;b>  }</b></p><p>  添加學生信息記錄:()</p><p>  void add()</p><p><b>  {</b></p><p>  char i; /*添加*/</p><p>  I

28、D *t1,*t2;</p><p>  t1=t2=NULL;</p><p>  loop: t1=(ID *)malloc(sizeof(ID)); /*為t1開辟一個新單元*/</p><p>  printf("請輸入姓名:");scanf("%s",&t1->ming);

29、 /* 姓名 */</p><p>  printf("請輸入性別:");scanf("%s",&t1->xing); /* 性別 */</p><p>  printf("請輸入年齡:");scanf("%s",&(t1->nian)); /* 年齡 */&l

30、t;/p><p>  printf("請輸入學號:");scanf("%d",&(t1->xuehao)); /* 學號 */</p><p>  printf("請輸入系別:");scanf("%s",&(t1->xibie)); /*系別*/</p>&l

31、t;p>  printf("請輸入宿舍號:");scanf("%s",&(t1->sushe)); /*宿舍號*/</p><p>  printf("請輸入家庭地址:");scanf("%s",&(t1->jia)); /*家庭地址*/</p><p>  t1->

32、next=NULL;</p><p>  if (head==NULL) /*如果頭結(jié)點為空*/</p><p>  { head=t1; /*t1指向頭結(jié)點*/</p><p><b>  t2=t1;</b></p><p><b>  }&

33、lt;/b></p><p><b>  else {</b></p><p><b>  t2=head;</b></p><p>  while (t2->next!=NULL) t2=t2->next; /*沒有成立則指向下個結(jié)點*/</p><p>  t2->n

34、ext=t1;</p><p>  } getchar();</p><p>  printf("是否繼續(xù)添加(Y/N):\n");</p><p>  scanf("%s",&i); /*輸入Y/N*/</p><p>  if(i=='y'||i=='Y

35、9;) </p><p>  {clrscr(); goto loop; /* 清屏 在 循環(huán)*/</p><p><b>  }</b></p><p>  else {printf("是否保存此次添加(Y/N)\n");scanf("%s",&i);</p>

36、;<p>  if(i=='y'||i=='Y') /*是否要保存*/</p><p>  {baocun(); /*調(diào)用保存*/</p><p>  clrscr(); /*清屏*/</p><p>  stubent187();/*調(diào)用屏幕函數(shù)*/</p><p>  p

37、rintf("保存成功");</p><p><b>  }</b></p><p>  else if(i=='n'||i=='N')</p><p><b>  {</b></p><p>  clrscr(); /*清屏*/<

38、;/p><p>  stubent187();} /*調(diào)用屏幕函數(shù)*/</p><p><b>  }</b></p><p><b>  return ;</b></p><p><b>  }</b></p><p>  刪除學生信息操作:

39、(對以存的學生信息進行刪除)</p><p>  void del()</p><p>  { /*刪除*/</p><p>  ID *A,*B; /*定義指針*/</p><p>  char t,i;int xuehao; /*定義整型變量

40、與字符型變量*/</p><p><b>  A=B=NULL;</b></p><p>  if((zhi=fopen("yihu1.txt","a+"))==NULL) printf("沒有此信息文件\n");</p><p><b>  else</b>&l

41、t;/p><p>  { loop: printf("請輸入要刪除的學生學號:");scanf("%d",&xuehao);</p><p>  while (!feof(zhi))</p><p>  { fscanf(zhi,"%10s%10s%10s%10d%10s%10s%10s\n",

42、&A->ming,&A->xing,&A->nian,&A->xuehao,&A->xibie,&A->sushe,&A->jia); /*讀取保存的文件數(shù)據(jù)輸入ASCLL字符:*/</p><p>  if(A!=NULL && A->xuehao!=xuehao)</p>&l

43、t;p>  A=A->next;</p><p>  else break;</p><p><b>  }</b></p><p>  if (A->xuehao==xuehao)</p><p>  { head=A->next;</p><p><b>

44、;  free(*A);</b></p><p>  printf("成功!\n");</p><p>  printf("是否繼續(xù)刪除(Y/N)");scanf("%s",&i);</p><p>  if(i=='y'||i=='Y')</p&g

45、t;<p>  {clrscr(); goto loop;</p><p><b>  }</b></p><p>  if(i=='n'||i=='N')</p><p>  printf("是否保存此次刪除(Y/N)\n");scanf("%s",&

46、;i);</p><p>  if(i=='y'||i=='Y')</p><p><b>  baocun();</b></p><p><b>  else</b></p><p><b>  clrscr();</b></p>

47、<p>  stubent187();</p><p><b>  }</b></p><p>  else printf("無法找到此編號\n");</p><p><b>  }</b></p><p><b>  }</b></p&

48、gt;<p>  修改學生信息操作:(對保存的學生信息進行修改)</p><p>  void xiugai()</p><p>  { /*修改*/</p><p>  ID *t1,*t2; /*定義指針*/</p><p>  in

49、t i;char xuehao; /*定義整型變量與字符型變量*/</p><p><b>  t1=head;</b></p><p>  if((zhi=fopen("yihu1.txt","a+"))==NULL) printf("沒有此信息文件\n");</p>&l

50、t;p>  loop: printf("請輸入要修改的學號:");scanf("%s",&xuehao); /* 輸入編號*/</p><p>  while (!feof(zhi))</p><p>  {fscanf(zhi,"%10s%10s%10s%10d%10s%10s%10s\n",&

51、t1->ming,&t1->xing,&t1->nian,&t1->xuehao,&t1->xibie,&t1->sushe,&t1->jia); *讀取保存的文件數(shù)據(jù)輸入ASCLL字符:*/</p><p>  if(t1!=NULL && t1->xuehao!=xuehao)</p>

52、;<p>  t1=t1->next;</p><p>  else break;</p><p><b>  }</b></p><p>  if (t1->xuehao==xuehao)</p><p>  { fprintf(zhi,"%10s%10s%10s%10d%1

53、0s%10s%10s\n",t1->ming,t1->xing,t1->nian,t1->xuehao,t1->xibie,t1->sushe,t1->jia);</p><p>  printf("輸入名字:");scanf("%s",&t1->ming); /*名字*/</p&g

54、t;<p>  printf("輸入性別:");scanf("%s",&(t1->xing)); /*性別*/</p><p>  printf("輸入年齡:");scanf("%s",&(t1->nian)); /*年齡*/</p>&l

55、t;p>  printf("輸入學號:");scanf("%s",&t1->xuehao); /*學號*/</p><p>  printf("輸入系別:");scanf("%s",&(t1->xibie)); /*系別*/

56、 printf("輸入專業(yè):");scanf("%s",&(t1->sushe)); /* 宿舍號 */ printf("輸入家庭地址:");scanf("%s",&(t1->jia)); /* 家庭地址*/</p>

57、<p>  printf("成功!\n");</p><p>  printf("是否繼續(xù)修改(Y/N)");scanf("%d",&i);</p><p>  if(i=='y'||i=='Y')</p><p>  {clrscr(); goto loo

58、p;</p><p><b>  }</b></p><p>  if(i=='n'||i=='N')</p><p>  printf("是否保存此次修改(Y/N)\n");scanf("%c",&i);</p><p>  if(i==&

59、#39;y'||i=='Y')</p><p><b>  baocun();</b></p><p><b>  else</b></p><p>  clrscr(); /*清屏*/ </p><p>  stubent187(); /*調(diào)用屏幕函數(shù)*/

60、</p><p><b>  }</b></p><p>  else printf("沒有此編號\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  保存添加,

61、刪除,修改學生的信息:(操作過后是否保存)</p><p>  baocun() /*保存*/</p><p><b>  {</b></p><p>  ID *t=head; /*定義指針*/</p><p>  zhi=fopen("yi

62、hu1.txt","a+"); /*(讀寫 yihu.txt文本) */</p><p>  while (t!=NULL){</p><p>  fprintf(zhi,"%10s%10s%10s%10d%10s%10s%10s\n",t->ming,t->xing,t->nian,t->xuehao,t

63、->xibie,t->sushe,t->jia); /*以zhi為文件指針保存*/</p><p>  t=t->next;</p><p><b>  }</b></p><p>  fclose(zhi); /*關閉此文件*/</p><p&g

64、t;  printf("成功!\n"); </p><p><b>  return ;</b></p><p><b>  }</b></p><p>  主菜單操作:(選擇所需要的操作)</p><p>  main() /*主函數(shù)*/</p

65、><p><b>  {</b></p><p>  int i; /*定義整形變量i*/</p><p>  stubent187(); /*調(diào)用屏幕函數(shù)*/</p><p><b>  while(1)</b></p><p><b>  

66、{</b></p><p>  scanf("%d",&i); /*輸入要執(zhí)行的操作*/</p><p><b>  switch(i)</b></p><p>  { case 1:chakan();break; /*調(diào)用查看函數(shù)*/</p><p> 

67、 case 2:add();break; /*調(diào)用添加函數(shù)*/</p><p>  case 3:del();break; /*調(diào)用刪除函數(shù)*/</p><p>  case 4:xiugai();break; /*調(diào)用修改函數(shù)*/</p><p>  case 0:exit(0); /*結(jié)束*/<

68、/p><p>  default:printf("輸入錯誤,請在此輸入\n");continue;</p><p>  } /*輸入不是0~4的,則返回*/</p><p><b>  }</b></p><p><b>  }</b></p>&l

69、t;p><b> ?、裨春瘮?shù)代碼:</b></p><p>  void chakan()</p><p>  { /* 查看*/</p><p><b>  ID *t;</b></p><p><b>  t=head;&

70、lt;/b></p><p>  t=(ID *)malloc(sizeof(ID)); /*為t開辟一個新單元*/</p><p>  if((zhi=fopen("yihu1.txt","rb"))==NULL) printf("沒有此文件\n");</p><p><b>  

71、else</b></p><p>  { printf("%10s%10s%10s%10s%10s%10s%10s\n","ming","xing","nian","xuehao","eng","sushe","jia"); /*輸

72、出一個屏幕格式*/</p><p>  while (!feof(zhi))</p><p>  { fscanf(zhi,"%10s%10s%10s%10d%10s%10s%10s\n",&t->ming,&t->xing,&t->nian,&t->xuehao,&t->xibie,&a

73、mp;t->sushe,&t->jia); /*讀取保存的文件數(shù)據(jù)輸入ASCLL字符:*/</p><p>  printf("%10s%10s%10s%10d%10s%10s%10s\n",t->ming,t->xing,t->nian,t->xuehao,t->xibie,t->sushe,t->jia);

74、 /*以這形式輸出各個學生信息*/</p><p>  t->next=(ID *)malloc(sizeof(ID));t=t->next;</p><p><b>  }</b></p><p><b>  };</b></p><p><b>  }</b>&

75、lt;/p><p>  void add()</p><p><b>  {</b></p><p>  char i; /*添加*/</p><p>  ID *t1,*t2;</p><p>  t1=t2=NULL;</p>

76、<p>  loop: t1=(ID *)malloc(sizeof(ID)); /*為t1開辟一個新單元*/</p><p>  printf("請輸入姓名:");scanf("%s",&t1->ming); /* 姓名 */</p><p>  printf("請輸入性別

77、:");scanf("%s",&t1->xing); /* 性別 */</p><p>  printf("請輸入年齡:");scanf("%s",&(t1->nian)); /* 年齡 */</p><p>  printf("請輸入學號:");sc

78、anf("%d",&(t1->xuehao)); /* 學號 */</p><p>  printf("請輸入系別:");scanf("%s",&(t1->xibie)); /*系別*/</p><p>  printf("請輸入宿舍號:");scanf("%

79、s",&(t1->sushe)); /*宿舍號*/</p><p>  printf("請輸入家庭地址:");scanf("%s",&(t1->jia)); /*家庭地址*/</p><p>  t1->next=NULL;</p><p>  if (head==NULL)

80、 /*如果頭結(jié)點為空*/</p><p>  { head=t1; /*t1指向頭結(jié)點*/</p><p><b>  t2=t1;</b></p><p><b>  }</b></p><p><b>  else {<

81、;/b></p><p><b>  t2=head;</b></p><p>  while (t2->next!=NULL) t2=t2->next; /*沒有成立則指向下個結(jié)點*/</p><p>  t2->next=t1;</p><p>  } getchar();</p&

82、gt;<p>  printf("是否繼續(xù)添加(Y/N):\n");</p><p>  scanf("%s",&i); /*輸入Y/N*/</p><p>  if(i=='y'||i=='Y') </p><p>  {clrscr(); goto l

83、oop; /* 清屏 在 循環(huán)*/</p><p><b>  }</b></p><p>  else {printf("是否保存此次添加(Y/N)\n");scanf("%s",&i);</p><p>  if(i=='y'||i=='Y')

84、 /*是否要保存*/</p><p>  {baocun(); /*調(diào)用保存*/</p><p>  clrscr(); /*清屏*/</p><p>  stubent187();/*調(diào)用屏幕函數(shù)*/</p><p>  printf("保存成功");</p><p><

85、b>  }</b></p><p>  else if(i=='n'||i=='N')</p><p><b>  {</b></p><p>  clrscr(); /*清屏*/</p><p>  stubent187();} /*調(diào)用屏幕函

86、數(shù)*/</p><p><b>  }</b></p><p><b>  return ;</b></p><p><b>  }</b></p><p>  void del()</p><p>  {

87、 /*刪除*/</p><p>  ID *A,*B; /*定義指針*/</p><p>  char t,i;int xuehao; /*定義整型變量與字符型變量*/</p><p><b>  A=B=NULL;</b></p><p>  if((zhi=fopen

88、("yihu1.txt","a+"))==NULL) printf("沒有此信息文件\n");</p><p><b>  else</b></p><p>  { loop: printf("請輸入要刪除的學生學號:");scanf("%d",&xueha

89、o);</p><p>  while (!feof(zhi))</p><p>  { fscanf(zhi,"%10s%10s%10s%10d%10s%10s%10s\n",&A->ming,&A->xing,&A->nian,&A->xuehao,&A->xibie,&A->s

90、ushe,&A->jia); /*讀取保存的文件數(shù)據(jù)輸入ASCLL字符:*/</p><p>  if(A!=NULL && A->xuehao!=xuehao)</p><p>  A=A->next;</p><p>  else break;</p><p><b>  }</b

91、></p><p>  if (A->xuehao==xuehao)</p><p>  { head=A->next;</p><p><b>  free(*A);</b></p><p>  printf("成功!\n");</p><p>  p

92、rintf("是否繼續(xù)刪除(Y/N)");scanf("%s",&i);</p><p>  if(i=='y'||i=='Y')</p><p>  {clrscr(); goto loop;</p><p><b>  }</b></p><

93、p>  if(i=='n'||i=='N')</p><p>  printf("是否保存此次刪除(Y/N)\n");scanf("%s",&i);</p><p>  if(i=='y'||i=='Y')</p><p><b>  ba

94、ocun();</b></p><p><b>  else</b></p><p><b>  clrscr();</b></p><p>  stubent187();</p><p><b>  }</b></p><p>  else

95、 printf("無法找到此編號\n");</p><p><b>  }</b></p><p><b>  }</b></p><p>  void xiugai()</p><p>  { /*修改*/&l

96、t;/p><p>  ID *t1,*t2; /*定義指針*/</p><p>  int i;char xuehao; /*定義整型變量與字符型變量*/</p><p><b>  t1=head;</b></p><p>  if((zhi=fopen("yihu1

97、.txt","a+"))==NULL) printf("沒有此信息文件\n");</p><p>  loop: printf("請輸入要修改的學號:");scanf("%s",&xuehao); /* 輸入編號*/</p><p>  while (!feof(zhi))<

98、/p><p>  {fscanf(zhi,"%10s%10s%10s%10d%10s%10s%10s\n",&t1->ming,&t1->xing,&t1->nian,&t1->xuehao,&t1->xibie,&t1->sushe,&t1->jia); *讀取保存的文件數(shù)據(jù)輸入ASCLL字符:

99、*/</p><p>  if(t1!=NULL && t1->xuehao!=xuehao)</p><p>  t1=t1->next;</p><p>  else break;</p><p><b>  }</b></p><p>  if (t1->x

100、uehao==xuehao)</p><p>  { fprintf(zhi,"%10s%10s%10s%10d%10s%10s%10s\n",t1->ming,t1->xing,t1->nian,t1->xuehao,t1->xibie,t1->sushe,t1->jia);</p><p>  printf(&quo

101、t;輸入名字:");scanf("%s",&t1->ming); /*名字*/</p><p>  printf("輸入性別:");scanf("%s",&(t1->xing)); /*性別*/</p><p>  printf("輸入年齡:&

102、quot;);scanf("%s",&(t1->nian)); /*年齡*/</p><p>  printf("輸入學號:");scanf("%s",&t1->xuehao); /*學號*/</p><p>  printf("輸入系別:");s

103、canf("%s",&(t1->xibie)); /*系別*/ printf("輸入專業(yè):");scanf("%s",&(t1->sushe)); /* 宿舍號 */ printf("輸入家庭地址:")

104、;scanf("%s",&(t1->jia)); /* 家庭地址*/</p><p>  printf("成功!\n");</p><p>  printf("是否繼續(xù)修改(Y/N)");scanf("%d",&i);</p><p>

105、;  if(i=='y'||i=='Y')</p><p>  {clrscr(); goto loop;</p><p><b>  }</b></p><p>  if(i=='n'||i=='N')</p><p>  printf("是否保

106、存此次修改(Y/N)\n");scanf("%c",&i);</p><p>  if(i=='y'||i=='Y')</p><p><b>  baocun();</b></p><p><b>  else</b></p><p

107、>  clrscr(); /*清屏*/ </p><p>  stubent187(); /*調(diào)用屏幕函數(shù)*/</p><p><b>  }</b></p><p>  else printf("沒有此編號\n");</p><p><b>  return;&l

108、t;/b></p><p><b>  }</b></p><p>  baocun() /*保存*/</p><p><b>  {</b></p><p>  ID *t=head; /*定義指針*/</p>

109、<p>  zhi=fopen("yihu1.txt","a+"); /*(讀寫 yihu.txt文本) */</p><p>  while (t!=NULL){</p><p>  fprintf(zhi,"%10s%10s%10s%10d%10s%10s%10s\n",t->ming,t->

110、xing,t->nian,t->xuehao,t->xibie,t->sushe,t->jia); /*以zhi為文件指針保存*/</p><p>  t=t->next;</p><p><b>  }</b></p><p>  fclose(zhi);

111、 /*關閉此文件*/</p><p>  printf("成功!\n"); </p><p><b>  return ;</b></p><p><b>  }</b></p><p>  main() /*主函數(shù)*/</p><

112、;p><b>  {</b></p><p>  int i; /*定義整形變量i*/</p><p>  stubent187(); /*調(diào)用屏幕函數(shù)*/</p><p><b>  while(1)</b></p><p><b>  {</b&g

113、t;</p><p>  scanf("%d",&i); /*輸入要執(zhí)行的操作*/</p><p><b>  switch(i)</b></p><p>  { case 1:chakan();break; /*調(diào)用查看函數(shù)*/</p><p>  case 2:a

114、dd();break; /*調(diào)用添加函數(shù)*/</p><p>  case 3:del();break; /*調(diào)用刪除函數(shù)*/</p><p>  case 4:xiugai();break; /*調(diào)用修改函數(shù)*/</p><p>  case 0:exit(0); /*結(jié)束*/</p>&

115、lt;p>  default:printf("輸入錯誤,請在此輸入\n");continue;</p><p>  } /*輸入不是0~4的,則返回*/</p><p><b>  }</b></p><p><b>  }</b></p><p>&l

116、t;b>  5、歸納總結(jié)</b></p><p> ?、賹嵱栔杏龅降膯栴}及解決方法:</p><p>  在這次的實訓中,主要遇到的問題是在修改第一個操作—查看時,出現(xiàn)了一些亂碼,與規(guī)格不是所想實現(xiàn)的要求。后經(jīng)老師指導解決了此問題,就是fprintf存文件數(shù)據(jù)后,需用fscanf來調(diào)用輸出文件數(shù)據(jù)。</p><p> ?、谠O計中尚存的不足之處:&l

117、t;/p><p>  關于這次的程序,有許多不足,比如在查詢的方式中,只有單一的一個查詢方式;程序界面不夠美觀大方;刪除與修改的功能,沒有實現(xiàn)我所想編程的操作;</p><p><b> ?、鄹邢牒托牡皿w會:</b></p><p>  通過這次課程設計,我對C語言有了更深刻的了解,自身不僅對增強了程序的編寫能力,更鞏固了專業(yè)知識,對程序的模塊化觀

118、念也又模糊逐漸變的清晰了。雖然在程序的運行與調(diào)試過程中出現(xiàn)了很多錯誤,但在通過反復地復習課本上的相關知識和在老師,同學的指導下,不停地修改與調(diào)試,我終于完成了這段程序。雖然程序沒有預想中的實現(xiàn)多功能。但在編程過程中,我認識到了C語言的靈活性與嚴謹性,同一個功能可以由不同的語句來實現(xiàn)。編寫程序時要特別注意細節(jié)方面的問題,一個小小的疏忽就能導致整個程序不能運行。</p><p>  當然我也認識到了自己的不足之處,如

119、對鏈表相關知識的欠缺,程序的構想不完好,文件運用的不熟練等。因此在今后的學習中,應多問老師,多向同學學習。</p><p><b>  6、參考資料</b></p><p>  [1] 譚浩強. C程序設計(第三版). 清華大學出版社, </p><p>  [2] 沈嵐嵐 學生成績管理系統(tǒng) 文件附件

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論