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

下載本文檔

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

文檔簡介

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

2、 業(yè):軟件工程</p><p>  班 級:軟件一班</p><p><b>  指導(dǎo)教師: </b></p><p>  日 期:2015年1月9日</p><p>  C語言課程設(shè)計實驗報告</p><p><b>  1.設(shè)計目的:</b></p>

3、;<p>  學(xué)生信息管理系統(tǒng)設(shè)計</p><p>  學(xué)生信息包括:學(xué)號、姓名、年齡、電話號碼、性別、出生年月、籍貫、QQ、專業(yè)、班級、獎懲信息等。試設(shè)計一學(xué)生信息管理系統(tǒng),使之能提供以下功能:</p><p><b>  系統(tǒng)以菜單方式工作</b></p><p>  學(xué)生信息添加功能---輸入</p><

4、p><b>  查詢功能---算法</b></p><p><b>  按學(xué)號查詢</b></p><p><b>  按姓名查詢</b></p><p>  學(xué)生信息的刪除與修改</p><p>  學(xué)生信息整表瀏覽功能---輸出</p><p>

5、;<b>  2.總體設(shè)計:</b></p><p><b>  程序設(shè)計組成框圖</b></p><p><b>  流程圖</b></p><p><b>  3.詳細設(shè)計:</b></p><p><b>  1>函數(shù)入口說明<

6、/b></p><p>  menu()輸出主菜單</p><p>  load_info()載入函數(shù):txt轉(zhuǎn)為鏈表</p><p>  add_info(STU*h) 增加學(xué)生信息</p><p>  search_info(STU*h,int type) 搜索學(xué)生信息</p><p>  delete_in

7、fo(STU*h) 刪除學(xué)生信息</p><p>  update_info(STU*h) 修改學(xué)生信息</p><p>  output_info(STU*h) 輸出學(xué)生信息</p><p>  preview_info(STU*h,int type) 預(yù)覽學(xué)生信息</p><p>  main() 主函數(shù)</p><p

8、><b>  2>調(diào)用關(guān)系</b></p><p><b>  3>參數(shù)說明</b></p><p>  add_info(STU*h)、delete_info(STU*h)、output_info(STU*h)、preview_info(STU*h,int type) 、search_info(STU*h,int type)

9、、update_info(STU*h)、函數(shù)中的STU*h為傳入的鏈表節(jié)點指針,type為搜索的方式:1為輸出傳入節(jié)點指針的一條學(xué)生記錄,2為輸出所有的學(xué)生記錄。</p><p><b>  4.調(diào)試與測試:</b></p><p>  1>調(diào)用STU * load_info()函數(shù)(文件載入),讀寫出現(xiàn)亂碼</p><p>  解決方法

10、:更改相應(yīng)指針指向,及有關(guān)變量的初值設(shè)置。</p><p><b>  2>邊界測試</b></p><p>  解決方法:用極端的或偏門的情況來探測和驗證代碼在處理時會發(fā)生什么。</p><p>  3>執(zhí)行窗口執(zhí)行多次命令后顯示過多,不利于輸入指令及結(jié)果查看</p><p>  解決方法:調(diào)用系統(tǒng)清屏函數(shù)

11、system("cls");。</p><p>  4>文件在打開和保存時有問題。</p><p>  解決方法:調(diào)整文件的打開方式,從原來的單純的w+修改為添加一個if語句,當(dāng)沒有文件時執(zhí)行w+的操作,否則執(zhí)行r+。避免了原存儲文件被覆蓋的問題。</p><p>  5.源程序清單和執(zhí)行結(jié)果:</p><p>  

12、#include <stdio.h></p><p>  #include <stdlib.h></p><p>  #include <string.h></p><p>  //學(xué)生信息 結(jié)構(gòu)體</p><p>  typedef struct record{</p><p> 

13、 char No[10];</p><p>  char name[12];</p><p>  unsigned int age;</p><p>  char sex[4];</p><p>  char birth[10];</p><p>  char qq[12];</p><p> 

14、 char grade[20];</p><p>  char phone[11];</p><p>  char jg[100];</p><p>  char jcxx[100];</p><p>  struct record *next;</p><p><b>  }STU;</b>&l

15、t;/p><p><b>  //菜單函數(shù)</b></p><p>  int menu();</p><p>  //載入函數(shù):txt轉(zhuǎn)為鏈表</p><p>  STU * load_info();</p><p><b>  //增加學(xué)生</b></p>&l

16、t;p>  STU * add_info(STU *h);</p><p><b>  //搜索函數(shù)</b></p><p>  STU * search_info(STU *h,int type);</p><p><b>  //刪除學(xué)生</b></p><p>  STU * delet

17、e_info(STU *h);</p><p><b>  //修改學(xué)生信息</b></p><p>  void update_info(STU *h);</p><p><b>  //輸出信息</b></p><p>  void output_info(STU *h);</p>

18、<p><b>  //預(yù)覽信息</b></p><p>  void preview_info(STU *h,int type);</p><p>  void main()</p><p><b>  {</b></p><p>  STU *header=NULL,*sear=NU

19、LL;int cmd=1;</p><p>  system("title 學(xué)生信息管理系統(tǒng)");</p><p>  //system("mode con cols=48 lines=25");</p><p>  system("date /T");</p><p>  syst

20、em("TIME /T");</p><p>  system("color 3E");</p><p>  header=load_info();</p><p>  //preview_info(header,2);</p><p>  cmd=menu();</p><p>

21、;  while(cmd!=0)</p><p><b>  {</b></p><p>  switch(cmd)</p><p><b>  {</b></p><p>  case 0:break;</p><p><b>  //添加信息</b>

22、</p><p><b>  case 1:</b></p><p>  header=add_info(header);output_info(header);</p><p><b>  break;</b></p><p><b>  //學(xué)號查詢</b></p&g

23、t;<p><b>  case 2:</b></p><p>  sear=search_info(header,1);</p><p>  if(sear!=NULL)</p><p><b>  {</b></p><p>  preview_info(sear,1);</

24、p><p><b>  }</b></p><p><b>  else</b></p><p>  printf("該學(xué)生不存在!\n");</p><p>  sear=NULL;</p><p><b>  break;</b>&l

25、t;/p><p><b>  //姓名查詢</b></p><p><b>  case 3:</b></p><p>  sear=search_info(header,2);</p><p>  if(sear!=NULL)</p><p><b>  {</

26、b></p><p>  preview_info(sear,1);</p><p><b>  }</b></p><p><b>  else</b></p><p>  printf("該學(xué)生不存在!\n");</p><p>  sear=N

27、ULL;</p><p><b>  break;</b></p><p><b>  //按學(xué)號刪除</b></p><p><b>  case 4:</b></p><p>  header=delete_info(header);</p><p>

28、;  output_info(header);</p><p><b>  break;</b></p><p><b>  //修改</b></p><p><b>  case 5:</b></p><p>  update_info(header);</p>

29、<p>  output_info(header);</p><p><b>  break;</b></p><p><b>  //整表輸出</b></p><p><b>  case 6:</b></p><p>  preview_info(header,

30、2);</p><p><b>  break;</b></p><p><b>  default:</b></p><p>  printf("無效的命令!\n請重新輸入命令!\n");</p><p><b>  break;</b></p>

31、;<p><b>  }</b></p><p>  if(cmd!=0)</p><p>  cmd=menu();</p><p><b>  }</b></p><p><b>  }</b></p><p>  int menu()

32、</p><p><b>  {</b></p><p>  int cmd=0;</p><p>  printf("\n感謝趙亞瓊同學(xué)對我課程設(shè)計的幫助\n請輸入命令:\n\t0:結(jié)束程序!\n\t1:添加記錄!\n\t2:按學(xué)號查詢!\n\t3:按姓名查詢!\n\t4:按學(xué)號刪除信息!\n\t5:按學(xué)號修改信息!\n\t6:整表

33、瀏覽!\n");</p><p>  scanf("%d",&cmd);</p><p>  while(cmd<0 || cmd>9)</p><p><b>  {</b></p><p>  printf("無效的命令!\n請重新輸入:\n");

34、</p><p>  scanf("%d",&cmd);</p><p><b>  }</b></p><p>  return cmd;</p><p><b>  }</b></p><p>  STU * load_info()</p

35、><p><b>  {</b></p><p>  FILE *fp=fopen("d:\\stu.txt","r+"),*fpNew=NULL;</p><p>  STU *h=NULL,*q=NULL,*p=NULL;char ch='0';</p><p> 

36、 h=(STU *)malloc(sizeof(STU));</p><p>  if(fp==NULL)</p><p><b>  {</b></p><p>  fpNew=fopen("d:\\stu.txt","w");</p><p>  fclose(fpNew);&

37、lt;/p><p>  return NULL;</p><p><b>  }</b></p><p>  rewind(fp);</p><p>  ch=fgetc(fp);</p><p>  if(ch==EOF)</p><p><b>  {</b

38、></p><p>  return NULL;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  rewind(fp);</p><

39、;p>  fscanf(fp,"%10s %12s %3d %11s %4s %10s %12s %20s %20s %20s",h->No,h->name,&h->age,h->phone,h->sex,h->birth,h->qq,h->grade,h->jcxx,h->jg);</p><p><b> 

40、 q=h;</b></p><p>  q->next=NULL;</p><p><b>  }</b></p><p>  ch=fgetc(fp);</p><p>  while(ch!=EOF)</p><p><b>  {</b></p&

41、gt;<p>  p=(STU *)malloc(sizeof(STU));</p><p>  p->next=NULL;</p><p>  fscanf(fp,"%10s %12s %3d %11s %4s %10s %12s %20s %20s %20s",p->No,p->name,&p->age,p->ph

42、one,p->sex,p->birth,p->qq,p->grade,p->jcxx,p->jg);</p><p>  ch=fgetc(fp);</p><p>  q->next=p;</p><p>  q=q->next;</p><p><b>  }</b>&

43、lt;/p><p>  fclose(fp);</p><p><b>  return h;</b></p><p><b>  }</b></p><p>  STU * add_info(STU *h)</p><p><b>  {</b></

44、p><p>  FILE *fpin=fopen("d:\\stu.txt","a");</p><p>  STU *stu,*p;</p><p><b>  p=h;</b></p><p>  stu=(STU *)malloc(sizeof(STU));</p>

45、<p>  stu->next=NULL;</p><p>  system("cls");</p><p>  if(h==NULL)</p><p><b>  {</b></p><p><b>  h=stu;</b></p><p&

46、gt;  printf("請輸入學(xué)號:\n");</p><p>  scanf("%s",h->No);</p><p>  printf("請輸入姓名:\n");</p><p>  scanf("%s",h->name);</p><p>  p

47、rintf("請輸入年齡:\n");</p><p>  scanf("%d",&h->age);</p><p>  printf("請輸入籍貫: \n");</p><p>  scanf("%s",h->jg);</p><p>  pr

48、intf("請輸入手機號:\n");</p><p>  scanf("%s",h->phone);</p><p>  printf("請輸入性別:\n");</p><p>  scanf("%s",h->sex);</p><p>  print

49、f("請輸入出生年月日:\n");</p><p>  scanf("%s",h->birth);</p><p>  printf("請輸入qq:\n");</p><p>  scanf("%s",h->qq);</p><p>  printf(

50、"請輸入專業(yè)班級: \n");</p><p>  scanf("%s",h->grade);</p><p>  printf("請輸入獎懲信息: \n");</p><p>  scanf("%s",h->jcxx);</p><p><b&

51、gt;  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  while(p->next!=NULL)</p><p><b>  {</b></p><p>  p=p

52、->next;</p><p><b>  }</b></p><p>  p->next=stu;</p><p>  printf("請輸入學(xué)號:\n");</p><p>  scanf("%s",stu->No);</p><p>

53、  printf("請輸入姓名:\n");</p><p>  scanf("%s",stu->name);</p><p>  printf("請輸入年齡:\n");</p><p>  scanf("%d",&stu->age);</p><p

54、>  printf("請輸入籍貫: \n");</p><p>  scanf("%s",stu->jg);</p><p>  printf("請輸入手機號:\n");</p><p>  scanf("%s",stu->phone);</p><

55、p>  printf("請輸入性別:\n");</p><p>  scanf("%s",stu->sex);</p><p>  printf("請輸入出生年月日:\n");</p><p>  scanf("%s",stu->birth);</p>&

56、lt;p>  printf("請輸入qq:\n");</p><p>  scanf("%s",stu->qq);</p><p>  printf("請輸入專業(yè)班級:\n");</p><p>  scanf("%s",stu->grade);</p>

57、<p>  printf("請輸入獎懲信息: \n");</p><p>  scanf("%s",stu->jcxx);</p><p><b>  }</b></p><p>  fclose(fpin);</p><p><b>  return h

58、;</b></p><p><b>  }</b></p><p>  STU * delete_info(STU *h)</p><p><b>  {</b></p><p>  STU *p,*q;</p><p>  char no[11];</p&

59、gt;<p><b>  p=h;</b></p><p>  if(p==NULL)</p><p><b>  {</b></p><p>  printf("\t目前還沒有信息記錄!\n");</p><p>  return NULL;</p>

60、<p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("請輸入一個學(xué)號:\n");</p><p>  scanf("%s",n

61、o);</p><p>  q=p->next;</p><p>  if(strcmp(h->No,no)==0)</p><p><b>  {</b></p><p>  printf("該學(xué)生信息已刪除!\n");</p><p>  h=h->nex

62、t;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  while(q!=NULL)</p><p><b>  {</b></p

63、><p>  if(strcmp(q->No,no)==0)</p><p><b>  {</b></p><p>  printf("\t該學(xué)生的信息已刪除!\n");</p><p>  p->next=q->next;</p><p><b> 

64、 return h;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  p=q;</b></p><p> 

65、 q=q->next;</p><p><b>  }</b></p><p><b>  }</b></p><p>  printf("該學(xué)生不存在!\n");</p><p><b>  }</b></p><p><

66、;b>  return h;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  STU * search_info(STU *h,int type)</p><p><b>  {</b></p&

67、gt;<p>  STU *p_temp=NULL,*q=h;</p><p>  p_temp=(STU *)malloc(sizeof(STU));</p><p>  system("cls");</p><p>  switch(type)</p><p><b>  {</b>

68、</p><p><b>  case 1:</b></p><p>  printf("\t請輸入一個學(xué)號:\n\t");</p><p>  scanf("%s",p_temp->No);</p><p>  while(q!=NULL)</p><p

69、><b>  {</b></p><p>  if(strcmp(q->No,p_temp->No)==0)</p><p><b>  return q;</b></p><p><b>  else</b></p><p>  q=q->next;&

70、lt;/p><p><b>  }</b></p><p>  return NULL;</p><p>  break;//按學(xué)號查詢</p><p><b>  case 2:</b></p><p>  printf("\t請輸入一個名字:\n\t");

71、</p><p>  scanf("%s",p_temp->name);</p><p>  while(q!=NULL)</p><p><b>  {</b></p><p>  if(strcmp(q->name,p_temp->name)==0)</p><

72、;p><b>  return q;</b></p><p><b>  else</b></p><p>  q=q->next;</p><p><b>  }</b></p><p>  return NULL;</p><p>  b

73、reak;//按姓名查詢</p><p>  default:return NULL;break;</p><p><b>  }</b></p><p><b>  }</b></p><p>  void update_info(STU *h)</p><p><b

74、>  {</b></p><p>  STU *q=NULL;</p><p>  unsigned int cmd=1,rec=1;</p><p>  system("cls");</p><p>  while(rec!=0)</p><p><b>  {<

75、/b></p><p>  q=search_info(h,1);</p><p>  if(q==NULL)</p><p>  printf("\t該學(xué)生不存在,無法進行修改操作!\n");</p><p><b>  else</b></p><p><b&g

76、t;  {</b></p><p><b>  cmd=1;</b></p><p>  while(cmd!=0)</p><p><b>  {</b></p><p>  system("cls");</p><p>  preview_

77、info(q,1);</p><p>  printf("\n\t0:修改完成,回主菜單!\n\t1:修改該學(xué)生姓名!\n\t2:修改該學(xué)生年齡!\n\t3:修改該學(xué)生手機號!\n\t4:修改該學(xué)生性別!\n\t5:修改該學(xué)生生日!\n\t6:修改該學(xué)生qq號!\n\t7:修改該學(xué)生班級!\n\t8:修改下一個!\n");</p><p>  printf("

78、請輸入命令:\n\t");</p><p>  scanf("%d",&cmd);</p><p>  switch(cmd)</p><p><b>  {</b></p><p>  case 0:cmd=0;rec=0;break;</p><p>&l

79、t;b>  case 1:</b></p><p>  printf("\t請輸入學(xué)生新的姓名:\n\t");</p><p>  scanf("%s",q->name);</p><p><b>  break;</b></p><p><b>

80、  case 2:</b></p><p>  printf("\t請輸入學(xué)生新的年齡:\n\t");</p><p>  scanf("%d",&q->age);</p><p><b>  break;</b></p><p><b>  c

81、ase 3:</b></p><p>  printf("\t請輸入學(xué)生新的手機號:\n\t");</p><p>  scanf("%s",q->phone);</p><p><b>  break;</b></p><p><b>  case 4

82、:</b></p><p>  printf("\t請輸入學(xué)生新的性別:\n\t");</p><p>  scanf("%s",q->sex);</p><p><b>  break;</b></p><p><b>  case 5:</b&

83、gt;</p><p>  printf("\t請輸入學(xué)生新的生日:\n\t");</p><p>  scanf("%s",q->birth);</p><p><b>  break;</b></p><p><b>  case 6:</b><

84、;/p><p>  printf("\t請輸入學(xué)生新的qq號:\n\t");</p><p>  scanf("%s",q->qq);</p><p><b>  break;</b></p><p><b>  case 7:</b></p>

85、<p>  printf("\t請輸入學(xué)生新的班級:\n\t");</p><p>  scanf("%s",q->grade);</p><p><b>  break;</b></p><p><b>  case 8:</b></p><p

86、><b>  cmd=0;</b></p><p><b>  break;</b></p><p>  }//switch結(jié)束</p><p>  }//內(nèi)層while結(jié)束</p><p><b>  }</b></p><p>  }//外層w

87、hile結(jié)束</p><p><b>  }//函數(shù)結(jié)束</b></p><p>  void output_info(STU *h)</p><p><b>  {</b></p><p>  FILE *fpin=fopen("d:\\stu.txt","w&quo

88、t;);</p><p>  STU *q=NULL;</p><p><b>  q=h;</b></p><p>  if(q!=NULL)</p><p><b>  {</b></p><p>  fprintf(fpin,"%-10s %-12s %4d

89、%11s %-4s %-8s %-11s %20s %20s %20s",q->No,q->name,q->age,q->phone,q->sex,q->birth,q->qq,q->grade,q->jcxx,q->jg);</p><p>  q=q->next;</p><p><b>  }<

90、;/b></p><p>  while(NULL!=q)</p><p><b>  {</b></p><p>  fprintf(fpin,"\n%-10s %-12s %4d %11s %-4s %-8s %-11s %20s",q->No,q->name,q->age,q->phone

91、,q->sex,q->birth,q->qq,q->grade,q->jcxx,q->jg);</p><p>  q=q->next;</p><p><b>  }</b></p><p>  fclose(fpin);</p><p><b>  }</b&

92、gt;</p><p>  void preview_info(STU *h,int type)</p><p><b>  {</b></p><p>  STU *p=NULL;</p><p><b>  p=h;</b></p><p>  system("

93、cls");</p><p>  switch(type)</p><p><b>  {</b></p><p><b>  case 1:</b></p><p>  printf("=================================");</

94、p><p>  printf("\n該學(xué)生的完整信息為:\n\t學(xué)號:%-10s\n\t姓名:%-12s\n\t年齡:%-4d\n\t電話:%-11s\n\t性別:%-4s\n\t生日:%-s\t\n\tQQ號:%s\t\n\t班級:%-s\n",h->No,h->name,h->age,h->phone,h->sex,h->birth,h->qq,h-&

95、gt;grade);</p><p>  printf("\n\t獎罰信息:%s\n\t籍貫:%s\n",h->jcxx,h->jg);</p><p>  printf("=================================");</p><p><b>  break;</b>

96、;</p><p><b>  case 2:</b></p><p>  if(p==NULL)</p><p><b>  {</b></p><p>  printf("文件中沒有信息!\n");</p><p><b>  break;&

97、lt;/b></p><p><b>  }</b></p><p>  printf("=================================");</p><p>  while(p!=NULL)</p><p><b>  {</b></p>

98、<p>  printf("\n\t學(xué)號:%-10s\n\t姓名:%-12s\n\t年齡:%-4d\n\t電話:%-11s\n\t性別:%-4s\n\t生日:%-s\t\n\tQQ號:%s\t\n\t班級:%-s\n",p->No,p->name,p->age,p->phone,p->sex,p->birth,p->qq,p->grade);</p&g

99、t;<p>  printf("\t獎罰信息:%s\n\t籍貫:%s\n",p->jcxx,p->jg);</p><p>  printf("=================================");</p><p>  p=p->next;</p><p><b> 

100、 }</b></p><p><b>  break;</b></p><p>  default:break;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  6.實驗心

101、得:</b></p><p>  對C語言的編程實踐有所認識。</p><p>  在遇到程序調(diào)試不通過時,會通過縮小范圍的分析來鎖定問題所在。</p><p>  通過這次實驗,熟悉了從自然語言轉(zhuǎn)換成偽代碼再轉(zhuǎn)換為流程圖的過程。</p><p>  在程序中設(shè)定合適的全局變量,可以簡化程序的編寫難度。</p>&l

溫馨提示

  • 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論