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

下載本文檔

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

文檔簡介

1、<p>  《C語言程序設(shè)計》課程設(shè)計報告</p><p>  題目: 學(xué)生信息管理系統(tǒng) </p><p>  專業(yè): 計算機(jī)科學(xué)與技術(shù) </p><p>  班級: 計算機(jī)XX班 </p><p>  學(xué)號: </p><

2、;p>  姓名: ***** </p><p>  日期:2012年3月21日</p><p><b>  1.2意義</b></p><p>  熟悉C語言程序的編程環(huán)境、熟練應(yīng)用Visual C++ 6.0進(jìn)行C語言編程、糾正、改錯、運(yùn)行。</p><p>  掌握C語言的所

3、有數(shù)據(jù)類型,熟練的定義使用整型、實(shí)型和字符型的變量。</p><p>  掌握C語言的所有算法,并且能熟練使用,進(jìn)行各項操作。</p><p>  學(xué)習(xí)并掌握C語言定義函數(shù)的基本方法、聲明函數(shù)及調(diào)用函數(shù)的方法和過程。</p><p>  掌握文件和文件指針的概念以及文件的定義方法,認(rèn)識文件打開、關(guān)閉、讀、寫等文件基本操作函數(shù)。</p><p>

4、;  掌握結(jié)構(gòu)體類型變量、數(shù)組的定義和使用。</p><p><b>  1.3目標(biāo)</b></p><p>  熟悉C語言程序的編輯、編譯鏈接和運(yùn)行的過程,至少能夠用一種編譯器較熟練地編輯、編譯及調(diào)試程序。</p><p>  掌握C語言數(shù)據(jù)類型,如何定義一個整型、字符型和實(shí)型的變量,以及對它們賦值的方法。</p><p&

5、gt;  熟練運(yùn)用if語句和switch語句以及嵌套應(yīng)用。涉及循環(huán)調(diào)用的,了解并掌握三種控制語句while、do-while和for語句。</p><p>  學(xué)習(xí)并掌握C語言定義函數(shù)的基本方法、聲明函數(shù)及調(diào)用函數(shù)的方法和過程。</p><p>  2.1 功能模塊設(shè)計</p><p>  模塊一:頭文件,變量定義,函數(shù)的聲明 </p><p&g

6、t;  對系統(tǒng)所使用的變量進(jìn)行定義,對函數(shù)進(jìn)行聲明 </p><p>  模塊二:學(xué)生信息系統(tǒng)使用幫助 </p><p>  聲明函數(shù)void help(),對整個系統(tǒng)進(jìn)行使用說明 </p><p>  模塊三:錄入學(xué)生信息 </p><p>  聲明函數(shù)void readfile(),說明一個文件指針FILE *fp 打開文件"s

7、tudent.txt" </p><p>  模塊四:刪除學(xué)生信息 </p><p>  聲明void del()實(shí)現(xiàn)學(xué)生信息刪除,通過學(xué)號對比確定要刪除的信息,然后用后一個替換掉。 </p><p>  模塊五:學(xué)生信息的查找 </p><p>  聲明void seek()為查找函數(shù),通過switch(item)設(shè)定用學(xué)號查找,

8、用姓名查找,用成績查找三個分支 </p><p>  模塊六:學(xué)生信息按總成績排序 </p><p>  聲明void sort()將錄入學(xué)生系按升序排列,用的是“冒泡排序法”實(shí)現(xiàn)排序 </p><p>  模塊七:顯示學(xué)生信息 </p><p>  通過display()函數(shù)輸出學(xué)生信息 </p><p><b

9、>  模塊八:保存信息 </b></p><p>  通過fp=fopen(“card.dat”, “wb”);寫入信息 </p><p><b>  模塊九:導(dǎo)出信息</b></p><p>  通過fp=fopen(“card.dat”, “wb”);導(dǎo)出信息</p><p><b>  

10、模塊九:界面菜單 </b></p><p>  通過switch(num)調(diào)用,以上各函數(shù),實(shí)現(xiàn)功能</p><p>  函數(shù)void help(),對整個系統(tǒng)進(jìn)行使用說明 </p><p>  3、 聲明函數(shù)void readfile(),說明一個文件指針FILE *fp 打開文件 “card.dat”</p><p&g

11、t;  4、聲明void del()實(shí)現(xiàn)學(xué)生信息刪除,通過學(xué)號對比確定要刪除的信息,然后用后一個替換掉。</p><p>  5、聲明void seek()為查找函數(shù),通過switch(item)設(shè)定用學(xué)號查找,用姓名查找,用成績查找三個分支 </p><p>  6、 聲明void sort()將錄入學(xué)生按升序排列,用的是“冒泡排序法”實(shí)現(xiàn)排序 </p><p>

12、;  7、 通過fp=fopen(“card.dat”, “wb”);寫入信息 </p><p>  8、 通過fp=fopen(“card.dat”, “wb”);導(dǎo)出信息</p><p>  9、 通過display()函數(shù)輸出學(xué)生信息 </p><p>  10、通過switch(num)調(diào)用,以上各函數(shù),實(shí)現(xiàn)功能</p><p>&l

13、t;b>  4 源代碼摘錄</b></p><p>  #include <stdio.h> </p><p>  #include <string.h></p><p>  #include <stdlib.h> </p><p>  #include <conio.h>

14、</p><p>  #define M 3</p><p>  #define N 1000</p><p>  typedef struct stu</p><p><b>  {</b></p><p>  char xingming[20];</p><p>  i

15、nt xuehao;</p><p>  int chengji;</p><p>  int gaoshu;</p><p>  int yingyu;</p><p>  int jisuanji;</p><p>  int zchengji;</p><p><b>  }ST

16、U;</b></p><p>  STU stu[N];</p><p>  int renshu=0;</p><p>  void menu();</p><p>  void fhzjm()//返回主界面函數(shù)</p><p><b>  {</b></p><

17、p>  char biaozhi[20];</p><p>  printf("\n");</p><p>  printf("還需要操作么?如果需要操作請輸入:yes,否則請輸入:no\n");</p><p>  scanf("%s",biaozhi);</p><p> 

18、 if(strcmp(biaozhi,"yes")==0)</p><p><b>  {</b></p><p><b>  menu();</b></p><p><b>  }</b></p><p>  else if(strcmp(biaozhi

19、,"no")==0)</p><p><b>  exit(0);</b></p><p><b>  else </b></p><p><b>  {</b></p><p>  printf("請輸入正確的字符,謝謝!\n");&l

20、t;/p><p><b>  fhzjm();</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void DengJi()</p><p><b>  {</b></p&

21、gt;<p>  int i,j,k=1;</p><p>  system("CLS");</p><p>  printf("請輸入學(xué)生的人數(shù):");</p><p>  scanf("%d",&j);</p><p>  for(i=0;i<j;i+

22、+,k++)</p><p><b>  {</b></p><p>  printf("請輸入第%d個學(xué)生的學(xué)號:",k);</p><p>  scanf("%d",&stu[i].xuehao );</p><p>  printf("請輸入第%d個學(xué)生的姓

23、名:",k);</p><p>  scanf("%s",stu[i].xingming );</p><p>  printf("請輸入第%d個學(xué)生的成績\n",k);</p><p>  printf("請輸入高數(shù)學(xué)成績:");</p><p>  scanf(&quo

24、t;%d",&stu[i].gaoshu );</p><p>  printf("請輸入英語成績:");</p><p>  scanf("%d",&stu[i].yingyu );</p><p>  printf("請輸入計算機(jī)成績:");</p><p&

25、gt;  scanf("%d",&stu[i].jisuanji );</p><p>  stu[i].zchengji=stu[i].gaoshu+stu[i].yingyu+stu[i].jisuanji;</p><p>  printf("總成績?yōu)椋?d\n",stu[i].zchengji);</p><p&g

26、t;<b>  }</b></p><p>  renshu=renshu+j;</p><p><b>  fhzjm();</b></p><p><b>  }</b></p><p>  void ShanChu()</p><p><b&

27、gt;  {</b></p><p>  char scxxi[15];</p><p>  system("CLS");</p><p>  printf("刪除全部學(xué)生信息請輸入\"all\",刪除指定學(xué)生請輸入\"one\"\n");</p><p&

28、gt;  scanf("%s",scxxi);</p><p>  if(strcmp(scxxi,"all")==0)</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  printf("你

29、刪除的學(xué)生信息如下:\n");</p><p>  printf("--------學(xué)號--------姓名--------高數(shù)------英語-------計算機(jī)-------總成績--------\n");</p><p>  for(i=0;i<renshu;i++)</p><p>  printf("----%

30、d-----%s-----%d-----%d-----%d-----%d-----\n",stu[i].xuehao ,stu[i].xingming ,stu[i].gaoshu ,stu[i].yingyu,stu[i].jisuanji,stu[i].zchengji);</p><p><b>  renshu=0;</b></p><p>  pr

31、intf("刪除成功\n");</p><p><b>  }</b></p><p>  else if(strcmp(scxxi,"one")==0)</p><p><b>  {</b></p><p>  struct stu *p=NULL;<

32、;/p><p><b>  int q;</b></p><p>  int i,j,k=0;</p><p>  printf("請輸入你要刪除的學(xué)生的學(xué)號:");</p><p>  scanf("%d",&q);</p><p>  for(i=0

33、;i<renshu;i++)</p><p><b>  {</b></p><p>  if(q==stu[i].xuehao)</p><p><b>  {</b></p><p>  k=1;j=i;break;</p><p><b>  }<

34、/b></p><p><b>  }</b></p><p><b>  if(k)</b></p><p><b>  {</b></p><p>  printf("你刪除的學(xué)生信息如下:\n");</p><p>  p

35、rintf("--------學(xué)號--------姓名--------高數(shù)------英語-------計算機(jī)-------總成績--------\n");</p><p>  printf("----%d----------%s----------%d---------%d--------%d----------%d-----\n",stu[i].xuehao ,stu[

36、i].xingming ,stu[i].gaoshu ,stu[i].yingyu,stu[i].jisuanji,stu[i].zchengji);</p><p>  if(renshu==1)</p><p><b>  {</b></p><p>  p=&stu[0];</p><p><b>

37、;  free(p);</b></p><p><b>  renshu=0;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><

38、p>  for(i=j;i<renshu;i++)</p><p>  stu[i]=stu[i+1];</p><p><b>  }</b></p><p>  renshu=renshu-1;</p><p><b>  }</b></p><p>  pr

39、intf("刪除成功\n");</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("輸入數(shù)據(jù)錯誤\n");</p>

40、<p><b>  }</b></p><p><b>  fhzjm();</b></p><p><b>  }</b></p><p>  void LiuLan()</p><p><b>  {</b></p><

41、p><b>  int i;</b></p><p>  system("CLS");</p><p>  if(renshu==0)</p><p><b>  {</b></p><p>  printf("系統(tǒng)里面沒有任何學(xué)生的信息\n");<

42、;/p><p><b>  }</b></p><p><b>  else </b></p><p><b>  {</b></p><p>  for(i=0;i<renshu;i++)</p><p><b>  {</b>

43、</p><p>  printf("第%d個學(xué)生的學(xué)號是:%d\n",i+1,stu[i].xuehao);</p><p>  printf("第%d個學(xué)生的姓名是:%s\n",i+1,stu[i].xingming);</p><p>  printf("第%d個學(xué)生的高數(shù)成績:%d\n",i+1,s

44、tu[i].gaoshu);</p><p>  printf("第%d個學(xué)生的英語成績:%d\n",i+1,stu[i].yingyu);</p><p>  printf("第%d個學(xué)生的計算機(jī)成績:%d\n",i+1,stu[i].jisuanji);</p><p>  printf("第%d個學(xué)生的總成績:

45、%d\n",i+1,stu[i].zchengji);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  fhzjm();</b></p><p><b>  }</b></p>

46、;<p>  void ChaZhao()</p><p><b>  {</b></p><p>  char choice,xxi[15];</p><p><b>  int xx;</b></p><p>  int i,j,k=0;</p><p> 

47、 if(renshu==0)</p><p><b>  {</b></p><p>  printf("系統(tǒng)里面沒有任何學(xué)生信息\n");</p><p><b>  fhzjm();</b></p><p><b>  }</b></p>

48、<p>  printf("三種查找方式:學(xué)號、姓名、成績,如果按照學(xué)號查找請輸入,如果按照姓名查找請輸入,如果按照成績查找請輸入:\n");</p><p>  printf("請輸入您查找的方式:");</p><p>  scanf("%s",&choice);</p><p>  

49、if(choice=='1')</p><p><b>  {</b></p><p>  printf("請輸入您所要查找的學(xué)生的學(xué)號:");</p><p>  scanf("%d",&xx);</p><p>  printf("您所查找的學(xué)

50、生的信息為:\n");</p><p>  printf("------學(xué)號--------姓名--------高數(shù)--------英語--------計算機(jī)--------總成績\n");</p><p>  for(i=0;i<renshu;i++)</p><p><b>  {</b></p&g

51、t;<p>  if(xx==stu[i].xuehao)</p><p><b>  {</b></p><p><b>  j=i;k=1;</b></p><p>  printf("-------%d------%s------%d--------%d---------%d---------

52、--%d\n",stu[i].xuehao,stu[i].xingming,stu[i].gaoshu,stu[i].yingyu,stu[i].jisuanji,stu[i].zchengji);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>

53、  if(k==0)</b></p><p>  printf("輸入的信息有誤\n");</p><p><b>  }</b></p><p>  else if(choice=='2')</p><p><b>  {</b></p>

54、<p>  printf("請輸入您所要查找的學(xué)生的姓名:");</p><p>  scanf("%s",xxi);</p><p>  printf("您所要查找的學(xué)生的信息為:\n");</p><p>  printf("------學(xué)號--------姓名--------高

55、數(shù)--------英語--------計算機(jī)--------總成績\n");</p><p>  for(i=0;i<renshu;i++)</p><p><b>  {</b></p><p>  if(strcmp(xxi,stu[i].xingming)==0)</p><p><b>

56、  {</b></p><p><b>  j=i;k=1;</b></p><p>  printf("-------%d------%s------%d--------%d---------%d----------%d\n",stu[i].xuehao,stu[i].xingming,stu[i].gaoshu,stu[i].yin

57、gyu,stu[i].jisuanji,stu[i].zchengji);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if(k==0)</b></p><p>  printf("輸入信息有誤!\n&q

58、uot;);</p><p><b>  }</b></p><p>  else if(choice=='3')</p><p><b>  {</b></p><p>  printf("請輸入您所要查找的學(xué)生的成績:");</p><p&

59、gt;  scanf("%d",&xx);</p><p>  printf("您所要查找的學(xué)生的信息為:\n");</p><p>  printf("------學(xué)號--------姓名--------高數(shù)--------英語--------計算機(jī)--------總成績\n");</p><p>

60、;  for(i=0;i<renshu;i++)</p><p><b>  {</b></p><p>  if((xx==stu[i].gaoshu)||(xx==stu[i].yingyu)||(xx==stu[i].jisuanji))</p><p><b>  {</b></p><p

61、><b>  j=i;k=1;</b></p><p>  printf("-------%d------%s------%d--------%d---------%d----------%d\n",stu[i].xuehao,stu[i].xingming,stu[i].gaoshu,stu[i].yingyu,stu[i].jisuanji,stu[i].zch

62、engji);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if(k==0)</b></p><p>  printf("輸入的信息有誤!\n");</p><p>&l

63、t;b>  }</b></p><p><b>  fhzjm();</b></p><p><b>  }</b></p><p>  void PaiXu()</p><p><b>  {</b></p><p>  if(re

64、nshu==0)</p><p><b>  {</b></p><p>  printf("系統(tǒng)里面沒有任何學(xué)生信息\n");</p><p><b>  fhzjm();</b></p><p><b>  }</b></p><p&

65、gt;  struct stu *p1[N],**p2,*temp;</p><p><b>  int i,j;</b></p><p>  system("CLS");</p><p><b>  p2=p1;</b></p><p>  for(i=0;i<rensh

66、u;i++)</p><p><b>  {</b></p><p>  p1[i]=stu+i;</p><p><b>  }</b></p><p>  for( i=0;i<renshu;i++)</p><p><b>  {</b>&l

67、t;/p><p>  for( j=i+1;j<renshu;j++)</p><p><b>  {</b></p><p>  if((*(p2+i))->zchengji<(*(p2+j))->zchengji)</p><p>  {temp=*(p2+i);*(p2+i)=*(p2+j);*

68、(p2+j)=temp;}</p><p><b>  }</b></p><p><b>  }</b></p><p>  printf("按照總成績排序之后的信息為:\n");</p><p>  printf("------學(xué)號--------姓名-------

69、-高數(shù)--------英語--------計算機(jī)--------總成績\n");</p><p>  for(i=0;i<renshu;i++)</p><p><b>  {</b></p><p>  printf("----%d-----%s----%d------%d--------%d----------%d

70、\n",(*(p2+i))->xuehao,(*(p2+i))->xingming,(*(p2+i))->gaoshu,(*(p2+i))->yingyu,(*(p2+i))->jisuanji,(*(p2+i))->zchengji);</p><p><b>  }</b></p><p><b>  fhz

71、jm();</b></p><p><b>  }</b></p><p>  void CunChu()</p><p><b>  {</b></p><p><b>  int i;</b></p><p><b>  FIL

72、E *rs;</b></p><p>  if((rs=fopen("card.dat","wb"))==NULL)</p><p><b>  {</b></p><p>  printf("not open");</p><p><b>

73、;  exit(0);</b></p><p><b>  }</b></p><p>  for(i=0;i<renshu;i++)</p><p><b>  {</b></p><p>  fwrite(&stu[i], sizeof(stu[i]), 1, rs);

74、</p><p><b>  }</b></p><p>  if(ferror(rs))</p><p><b>  {</b></p><p>  fclose(rs);</p><p>  perror("寫文件失??!\n");</p>

75、<p><b>  return;</b></p><p><b>  }</b></p><p>  printf("存儲文件成功!\n");</p><p>  fclose(rs); </p><p><b>  fhzjm();</b>&

76、lt;/p><p><b>  }</b></p><p>  void DaoChu()</p><p><b>  {</b></p><p>  struct stu t;</p><p><b>  int i=0;</b></p>&

77、lt;p>  FILE* fp = fopen("card.dat", "rb");</p><p><b>  renshu=0;</b></p><p>  if(NULL==fp)</p><p><b>  {</b></p><p>  per

78、ror("讀取文件打開失??!\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  memset(stu,0x0,sizeof(stu));</p><p><b>  while(1)</b&g

79、t;</p><p><b>  {</b></p><p>  fread(&t,sizeof(t),1,fp);</p><p>  if(ferror(fp))</p><p><b>  {</b></p><p>  fclose(fp);</p>

80、;<p>  perror("讀文件過程失?。n");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  if(feof(fp))</p><p><b>  {</b></

81、p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  stu[i]=t;</b></p><p><b>  i++;</b></p><p><b>  }<

82、/b></p><p>  fclose(fp);</p><p><b>  renshu=i;</b></p><p>  printf("導(dǎo)出文件成功!\n");</p><p><b>  fhzjm();</b></p><p><b

83、>  }</b></p><p>  void menu()</p><p><b>  {</b></p><p><b>  int n=0;</b></p><p>  system("CLS");</p><p>  printf

84、(" 學(xué)生信息管理系統(tǒng)\n");</p><p>  printf(" 作者10030095\n");</p><p>  printf("----------------------MENU------------------\n");</p>&

85、lt;p>  printf(" 1. 登記學(xué)生信息\n");</p><p>  printf(" 2. 刪除學(xué)生信息\n");</p><p>  printf(" 3. 瀏覽所有已經(jīng)登記的學(xué)生\n");</p><p>  

86、printf(" 4. 查找\n");</p><p>  printf(" 4.1.按學(xué)號查找\n");</p><p>  printf(" 4.2.按姓名查找\n");</p><p>  printf("

87、 4.3.按成績查找\n");</p><p>  printf(" 5. 根據(jù)總成績排序\n");</p><p>  printf(" 6. 存儲到文件\n");</p><p>  printf(" 7

88、. 從文件導(dǎo)出\n");</p><p>  printf(" 8. 退出系統(tǒng)\n");</p><p>  a:printf(" 請選擇:");</p><p>  scanf("%d",&n);</p><p>  switch (n)

89、</p><p><b>  {</b></p><p><b>  case 1:</b></p><p>  DengJi();break;</p><p><b>  case 2:</b></p><p>  ShanChu();break;&l

90、t;/p><p><b>  case 3:</b></p><p>  LiuLan();break;</p><p><b>  case 4:</b></p><p>  ChaZhao();break;</p><p><b>  case 5:</b&g

91、t;</p><p>  PaiXu();break;</p><p><b>  case 6:</b></p><p>  CunChu();break;</p><p><b>  case 7:</b></p><p>  DaoChu();break;</p&

92、gt;<p><b>  case 8:</b></p><p>  exit(0);break;</p><p>  default:</p><p><b>  {</b></p><p>  printf("請輸入-8之間的數(shù)字,謝謝!\n");</

93、p><p><b>  goto a;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  main()</b>

94、;</p><p><b>  {</b></p><p><b>  menu();</b></p><p><b>  }</b></p><p>  5 程序的運(yùn)行及結(jié)果分析</p><p><b>  主界面</b><

95、/p><p>  在主界面上選擇需要進(jìn)行的操作:</p><p>  選擇1:則登記一個學(xué)生的信息。界面如下: </p><p>  選擇2:可以刪除全部學(xué)生的信息,也可以刪除指定某個學(xué)生姓名的信息。</p><p>  選擇3:可以瀏覽所有學(xué)生的信息。</p><p>  選擇4:進(jìn)行查找操作。按照不同的方式查找。<

96、;/p><p>  選擇5:可以根據(jù)總成績排序</p><p>  選擇6: 則可以保存數(shù)據(jù)。</p><p>  選擇7: 導(dǎo)出文件</p><p>  選擇八: 退出學(xué)生信息管理系統(tǒng)</p><p><b>  7 總結(jié)和體會</b></p><p>  課程設(shè)計是把

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論