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

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  課程設(shè)計(jì)報(bào)告書 </b></p><p><b>  一:課程設(shè)計(jì)題目</b></p><p><b>  一元多項(xiàng)式計(jì)算</b></p><p><b>  二:課程設(shè)計(jì)內(nèi)容</b></p><p>  1、能夠按照指數(shù)降序

2、排列建立并輸出多項(xiàng)式;能夠完成兩個(gè)多項(xiàng)式的相加,并將結(jié)果輸出。</p><p>  2、將任意給出的n次多項(xiàng)式建成單鏈表結(jié)構(gòu),結(jié)點(diǎn)的結(jié)構(gòu)為系數(shù)、指數(shù)、指針,然后實(shí)現(xiàn)多項(xiàng)式求和運(yùn)算。</p><p>  3、良好的用戶界面,對(duì)于錯(cuò)誤的輸入,要能給出信息提示。</p><p><b>  三:進(jìn)度安排</b></p><p>

3、;  1、2014年9月13日,自由分組,布置任務(wù)</p><p>  2、2014年9月14日,小組成員相互討論,分工合作,查閱資料,編寫源程序并調(diào)試</p><p>  3、2014年9月15-19日,完成模塊聯(lián)編并進(jìn)行測(cè)試</p><p>  4、2014年9月20-21日,成果驗(yàn)收,完成設(shè)計(jì)報(bào)告</p><p><b>  

4、四:基本要求</b></p><p>  1、用C語(yǔ)言實(shí)現(xiàn)一元多項(xiàng)式計(jì)算</p><p>  2、利用單鏈表實(shí)現(xiàn)一元多項(xiàng)式的計(jì)算存儲(chǔ)</p><p>  3、完成設(shè)計(jì)任務(wù)并書寫課程設(shè)計(jì)報(bào)告</p><p><b>  目錄</b></p><p>  一 需求分析…………………………

5、……1</p><p>  二 概要設(shè)計(jì)………………………………2</p><p>  三 詳細(xì)設(shè)計(jì)………………………………3</p><p>  四 調(diào)試分析………………………………4</p><p>  五 用戶使用說(shuō)明…………………………5</p><p>  六 測(cè)試結(jié)果………………………………6&l

6、t;/p><p>  七 課程設(shè)計(jì)總結(jié)…………………………7</p><p>  八 附錄……………………………………8</p><p><b>  1.需求分析</b></p><p>  (a)該程序能實(shí)現(xiàn)任意輸入兩個(gè)一元多項(xiàng)式,無(wú)論一元多項(xiàng)式的指數(shù)如何排列和是否有同類項(xiàng),都能先將其化簡(jiǎn)排序后,在實(shí)現(xiàn)兩個(gè)多項(xiàng)式相加的

7、功能。</p><p>  (b)在這里我們運(yùn)用單鏈表來(lái)存放一元多項(xiàng)式,先用typedef struct定義了一個(gè)新類型datatype,再typedef struct Node來(lái)申明結(jié)點(diǎn),在其中定義了datatype data_1,data_1可以訪問一元多項(xiàng)式系數(shù)和指數(shù)。struct Node *next指向下一個(gè)結(jié)點(diǎn)的指針,用尾插法建立一元多項(xiàng)式的單鏈表。輸入一元多項(xiàng)式時(shí)系數(shù)和指數(shù)用0作為終止符。</

8、p><p>  (c)通過(guò)選擇排序,將單鏈表中的多項(xiàng)式指數(shù)由高到低排序,再將單鏈表中的多項(xiàng)式指數(shù)相同的合并同類項(xiàng),得到化簡(jiǎn)后的一元多項(xiàng)式。最后調(diào)用pc = add_list(pa,pb);實(shí)現(xiàn)兩個(gè)多項(xiàng)式相加。</p><p><b>  2.概要設(shè)計(jì)</b></p><p>  1、本程序中用到的所有抽象數(shù)據(jù)類型</p><p&

9、gt;  typedef struct </p><p><b>  {</b></p><p>  int cff;//系數(shù)</p><p>  int exp;//指數(shù)</p><p>  } datatype;</p><p>  typedef struct Node</p>

10、<p><b>  {</b></p><p>  datatype data_1;//定義datatype的一個(gè)變量</p><p>  struct Node *next;</p><p>  }listnode;//自定義struct數(shù)據(jù)類型為linklist,而不是定義linklist,所以不能在這里定義pa,pb</

11、p><p>  typedef listnode* linklist;</p><p>  linklist create_list()</p><p>  void Select_sort(linklist l)</p><p>  void merge_list(linklist l)</p><p>  linkli

12、st add_list(linklist l_fir, linklist l_sec)</p><p>  void result_out(linklist p) </p><p>  void free_list(linklist p)</p><p><b>  存儲(chǔ)結(jié)構(gòu)</b></p><p><b> 

13、 模塊劃分</b></p><p> ?。╝)主程序(b)建立單鏈表(c)輸入一元多項(xiàng)式,排序合并(d)兩個(gè)多項(xiàng)式相加</p><p>  A(x)=5*x^4-3*x^3+3*x^2+1*x^1; B(x)=6*x^5+4*x^3-3*x^2+1*x^1;</p><p>  相加后的一元多項(xiàng)式為:C(x)= 6*x^5+5*x^4+1*x^3+

14、2*x^1;</p><p><b>  主程序的流程</b></p><p> ?。╝)請(qǐng)輸入第一個(gè)多項(xiàng)式各項(xiàng)系數(shù)和指數(shù)<以數(shù)字0結(jié)束>; </p><p>  (b)排序化簡(jiǎn)后的第一個(gè)多項(xiàng)式;</p><p>  (c)請(qǐng)輸入第二個(gè)多項(xiàng)式各項(xiàng)系數(shù)和指數(shù)<以數(shù)字0結(jié)束>;</p>

15、<p>  (d)排序化簡(jiǎn)后的第二個(gè)多項(xiàng)式;</p><p>  (e)兩個(gè)一元多項(xiàng)式相加的結(jié)果。</p><p><b>  3.詳細(xì)設(shè)計(jì)</b></p><p>  1、根據(jù)一元多項(xiàng)式相加法則,對(duì)于任意兩個(gè)多項(xiàng)式所有指數(shù)相同的,對(duì)應(yīng)系數(shù)相加,若系數(shù)相加后不為0,則構(gòu)成一元多項(xiàng)式其中一項(xiàng)。對(duì)于指數(shù)不同的,則分別復(fù)制到單鏈表中。<

16、;/p><p><b>  2、系統(tǒng)流程圖</b></p><p><b>  4.調(diào)試分析</b></p><p>  (1)通過(guò)多次程序調(diào)試,我們很快的發(fā)現(xiàn)程序并不完善,對(duì)異常處理不到位。當(dāng)程序采用指數(shù)升冪排序時(shí),該程序就不能實(shí)現(xiàn)兩個(gè)多項(xiàng)式相加操作后指數(shù)的排序問題。于是我們分析問題,采用了指數(shù)降冪排序,很快解決了問題。&l

17、t;/p><p> ?。?)在這里我們用到了選擇排序:時(shí)間復(fù)雜度O(n*n);空間復(fù)雜度O(1)</p><p> ?。?)我們每個(gè)小組在一起查詢資料,討論問題,通過(guò)分工合作來(lái)完成這次任務(wù)。在這里我們掌握了單鏈表的基本操作和一些排序算法,對(duì)大二和大一學(xué)習(xí)的知識(shí)有了很好的鞏固。同時(shí)我們還學(xué)會(huì)了用C語(yǔ)言編程,進(jìn)一步加深自己對(duì)C語(yǔ)言知識(shí)理解,并且將知識(shí)與實(shí)踐相結(jié)合。</p><p

18、><b>  5.用戶使用說(shuō)明</b></p><p><b>  6.測(cè)試結(jié)果</b></p><p><b>  7.附錄</b></p><p>  #include <stdio.h></p><p>  #include <malloc.h&g

19、t;</p><p>  typedef struct </p><p><b>  {</b></p><p>  int cff;//系數(shù)</p><p>  int exp;//指數(shù)</p><p>  } datatype;</p><p>  typedef st

20、ruct Node</p><p><b>  {</b></p><p>  datatype data_1;//定義datatype的一個(gè)變量</p><p>  struct Node *next;</p><p>  }listnode;//自定義struct數(shù)據(jù)類型為linklist,而不是定義linklist

21、,所以不能在這里定義pa,pb</p><p>  typedef listnode* linklist;</p><p>  linklist create_list()//創(chuàng)建帶頭結(jié)點(diǎn)的鏈表,返回頭結(jié)點(diǎn),尾插法</p><p><b>  { </b></p><p>  linklist head=(linkl

22、ist)malloc(sizeof(listnode));</p><p>  linklist p, r;</p><p><b>  int xs;</b></p><p><b>  int zs;</b></p><p><b>  r=head;</b></p

23、><p>  while(scanf("%d %d",&xs, &zs) && xs != 0&& zs != 0)//系數(shù)和指數(shù)輸入00表示結(jié)束</p><p><b>  {</b></p><p>  p=(linklist)malloc(sizeof(listnode));

24、</p><p>  p->data_1.cff = xs;</p><p>  p->data_1.exp = zs;</p><p>  r->next = p;</p><p><b>  r = p; </b></p><p><b>  }</b&g

25、t;</p><p>  r->next = NULL;</p><p>  return (head);</p><p><b>  }</b></p><p>  void Select_sort(linklist l)//選擇排序,將單鏈表中的多項(xiàng)式指數(shù)由高到低排序</p><p>&

26、lt;b>  {</b></p><p>  linklist p, r, q;</p><p>  r = l->next;//指向單鏈表的第一個(gè)結(jié)點(diǎn)</p><p>  p = (linklist)malloc(sizeof(listnode));</p><p>  while( r != NULL)</p

27、><p><b>  { </b></p><p>  q = r->next;</p><p>  while( q != NULL)</p><p><b>  {</b></p><p>  if( q->data_1.exp > r->data_

28、1.exp )</p><p><b>  {</b></p><p>  p->data_1.cff = r->data_1.cff;</p><p>  p->data_1.exp = r->data_1.exp;</p><p>  r->data_1.cff = q->data

29、_1.cff;</p><p>  r->data_1.exp = q->data_1.exp;</p><p>  q->data_1.cff = p->data_1.cff;</p><p>  q->data_1.exp = p->data_1.exp;</p><p><b>  }<

30、;/b></p><p>  q = q->next;</p><p><b>  }</b></p><p>  r = r->next;</p><p><b>  }</b></p><p><b>  }</b></p&g

31、t;<p>  void merge_list(linklist l)//將單鏈表中的多項(xiàng)式指數(shù)相同的合并同類項(xiàng),注意單鏈表中的多項(xiàng)式必須已經(jīng)按指數(shù)由高到低排好序</p><p><b>  {</b></p><p>  linklist r, q, p;</p><p><b>  r = l;</b>&

32、lt;/p><p>  while( r != NULL && r->next != NULL)</p><p><b>  { </b></p><p>  q = r->next;</p><p>  while( q->next != NULL && q != NUL

33、L&& (q->data_1.exp == q->next->data_1.exp))</p><p><b>  {</b></p><p>  p = q->next;</p><p>  q->data_1.cff += p->data_1.cff;</p><p&g

34、t;  q->next = p->next;</p><p><b>  free(p);</b></p><p><b>  }</b></p><p>  r = r->next;</p><p><b>  }</b></p><p&

35、gt;  r = l;//將l重新賦給r,查找多項(xiàng)式指數(shù)相同的合并同類項(xiàng)后,系數(shù)為0的項(xiàng)</p><p>  while(r != NULL && r->next != NULL)</p><p><b>  {</b></p><p>  if( r->next->data_1.cff == 0)</p

36、><p><b>  {</b></p><p>  q = r->next;</p><p>  r->next = q->next;</p><p><b>  free(q);</b></p><p><b>  }</b></

37、p><p>  else r = r->next;</p><p><b>  }</b></p><p><b>  }</b></p><p>  linklist add_list(linklist l_fir, linklist l_sec)//將單鏈表一中的多項(xiàng)式與單鏈表二中的多項(xiàng)式相

38、加后并將結(jié)果存放在單鏈表三中</p><p><b>  {</b></p><p>  linklist head=(linklist)malloc(sizeof(listnode));</p><p>  linklist p, q, r, s;</p><p><b>  r = head;</b&

39、gt;</p><p>  p = l_fir->next;</p><p>  q = l_sec->next;</p><p>  while( p != NULL && q != NULL )//單鏈表一和單鏈表二中均有數(shù)據(jù)</p><p><b>  {</b></p>

40、<p>  s = (linklist)malloc(sizeof(listnode));</p><p>  if(p->data_1.exp == q->data_1.exp)</p><p><b>  { </b></p><p>  s->data_1.cff = p->data_1.cff + q-

41、>data_1.cff;</p><p>  s->data_1.exp = p->data_1.exp;</p><p>  p = p->next;</p><p>  q = q->next;</p><p><b>  }</b></p><p>  else

42、 if(p->data_1.exp > q->data_1.exp)</p><p><b>  { </b></p><p>  s->data_1.cff = p->data_1.cff;</p><p>  s->data_1.exp = p->data_1.exp;</p>&l

43、t;p>  p = p->next;</p><p><b>  }</b></p><p>  else if(p->data_1.exp < q->data_1.exp)</p><p><b>  {</b></p><p>  s->data_1.cff

44、= q->data_1.cff;</p><p>  s->data_1.exp = q->data_1.exp;</p><p>  q = q->next;</p><p><b>  }</b></p><p>  r->next = s;</p><p>&l

45、t;b>  r = s;</b></p><p><b>  }</b></p><p>  while( p != NULL)//僅單鏈表一中有數(shù)據(jù)</p><p><b>  {</b></p><p>  s = (linklist)malloc(sizeof(listnod

46、e));</p><p>  s->data_1.cff = p->data_1.cff;</p><p>  s->data_1.exp = p->data_1.exp;</p><p>  p = p->next;</p><p>  r->next = s;</p><p>&

47、lt;b>  r =s;</b></p><p><b>  }</b></p><p>  while( q != NULL)//僅單鏈表二中有數(shù)據(jù)</p><p><b>  {</b></p><p>  s = (linklist)malloc(sizeof(listnod

48、e));</p><p>  s->data_1.cff = q->data_1.cff;</p><p>  s->data_1.exp = q->data_1.exp;</p><p>  q = q->next;</p><p>  r->next = s;</p><p>&

49、lt;b>  r =s;</b></p><p><b>  }</b></p><p>  r->next = NULL;</p><p>  //清楚系數(shù)為0的項(xiàng)</p><p><b>  r = head;</b></p><p>  whil

50、e(r != NULL && r->next != NULL)</p><p><b>  {</b></p><p>  if( r->next->data_1.cff == 0)</p><p><b>  {</b></p><p>  q = r->n

51、ext;</p><p>  r->next = q->next;</p><p><b>  free(q);</b></p><p><b>  }</b></p><p>  r = r->next;</p><p><b>  }</

52、b></p><p>  return (head);</p><p><b>  }</b></p><p>  void result_out(linklist p)//輸出結(jié)果</p><p><b>  { </b></p><p>  if(p->

53、next == NULL)</p><p>  printf("空單鏈表\n"); </p><p>  while(p->next!=NULL)</p>&

54、lt;p><b>  { </b></p><p>  p=p->next;</p><p>  if(p->next==NULL||p->next->data_1.cff<0)</p><p>  printf("%d*X^%d",p->data_1.cff,p->data

55、_1.exp); </p><p>  else printf("%d*X^%d+",p->data_1.cff,p->data_1.exp); </p><p><b>  }</b></p><p><b>  } </b></p><p>  void fr

56、ee_list(linklist p)//釋放空間</p><p><b>  {</b></p><p>  linklist k, q;</p><p><b>  k = p;</b></p><p>  while(p != NULL && p->next != NUL

57、L)</p><p><b>  {</b></p><p>  q = p->next;</p><p>  p->next = q->next;</p><p><b>  free(q);</b></p><p><b>  }</b&

58、gt;</p><p><b>  }</b></p><p>  void main()</p><p><b>  {</b></p><p>  linklist pa, pb, pc; </p><p>  printf("................

59、..歡迎進(jìn)入一元多項(xiàng)式計(jì)算程序......................\n");</p><p>  printf("請(qǐng)輸入第一個(gè)多項(xiàng)式各項(xiàng)系數(shù)和指數(shù)<以數(shù)字0結(jié)束>:\n");</p><p>  pa = create_list();</p><p>  Select_sort(pa);</p><

60、;p>  merge_list(pa);</p><p>  printf("排序化簡(jiǎn)后的第一個(gè)多項(xiàng)式為:\n");</p><p>  result_out(pa);</p><p>  printf("\n");</p><p>  printf("請(qǐng)輸入第二個(gè)多項(xiàng)式各項(xiàng)系數(shù)和指數(shù)&

61、lt;以數(shù)字0結(jié)束>:\n");</p><p>  pb = create_list();</p><p>  Select_sort(pb);</p><p>  merge_list(pb);</p><p>  printf("排序化簡(jiǎn)后的第二個(gè)多項(xiàng)式為:\n");</p><p

62、>  result_out(pb);</p><p>  printf("\n");</p><p>  printf("相加后的多項(xiàng)式為:\n");</p><p>  pc = add_list(pa,pb);</p><p>  result_out(pc);</p><

63、;p>  printf("\n");</p><p>  free_list(pa);</p><p><b>  free(pa);</b></p><p>  free_list(pb);</p><p><b>  free(pb);</b></p>&

64、lt;p>  free_list(pc);</p><p><b>  free(pc);</b></p><p><b>  }</b></p><p><b>  一:課程設(shè)計(jì)題目</b></p><p><b>  成績(jī)分析系統(tǒng)</b><

65、/p><p><b>  1.需求分析</b></p><p> ?。╝)編寫一個(gè)程序,完成學(xué)生成績(jī)系統(tǒng)的各種功能要求,包括成績(jī)錄入、按指定的課程成績(jī)排序、按學(xué)生的平均成績(jī)排序、成績(jī)分析與統(tǒng)計(jì)、按學(xué)號(hào)查詢?cè)搶W(xué)生的各科成績(jī)、平均成績(jī)和總分的名次,按姓名查詢學(xué)生的各科成績(jī)、平均成績(jī)和總分的名次。</p><p>  (b)該程序在輸入成績(jī)時(shí)在[0,10

66、0]區(qū)間,如果超過(guò)這個(gè)區(qū)間,會(huì)出現(xiàn)出錯(cuò)信息,要求再次重新輸入。當(dāng)輸入姓名時(shí),可以采用字符串形式,當(dāng)不能超過(guò)規(guī)定的范圍。</p><p>  (c)本程序可以用來(lái)管理學(xué)生成績(jī),用戶可以根據(jù)界面提示的相關(guān)信息完成自己想要的操作。</p><p><b>  2.概要設(shè)計(jì)</b></p><p>  1、本程序中用到的所有抽象數(shù)據(jù)類型</p&g

67、t;<p>  struct student</p><p><b>  {</b></p><p>  char num[10];</p><p>  char name[10];</p><p><b>  int math;</b></p><p>  i

68、nt english;</p><p>  int computer;</p><p><b>  int sum;</b></p><p><b>  int aver;</b></p><p>  }stu[10];//定義結(jié)構(gòu)體類型變量</p><p>  int t;

69、//設(shè)置全局變量</p><p>  void creat_data();</p><p>  void add();</p><p>  void delet();</p><p>  void sort_stu();</p><p>  void search();</p><p><

70、b>  模塊劃分</b></p><p>  主程序(b)定義結(jié)構(gòu)體,用一位數(shù)組儲(chǔ)存學(xué)生人數(shù)(c)定義新建、添加、刪除、查詢、排序函數(shù) </p><p><b>  3.詳細(xì)設(shè)計(jì)</b></p><p>  (1)函數(shù)之間的調(diào)用關(guān)系</p><p>  1、void search()調(diào)用search_n

71、um();search_name();search_math();search_english();search_computer();search_sum();main();</p><p>  void sort_stu()調(diào)用print ();</p><p>  creat-data()調(diào)用sum-stu();print();</p><p>  add()

72、調(diào)用sum-stu();print();</p><p><b> ?。?)系統(tǒng)流程圖</b></p><p><b>  4.調(diào)試分析</b></p><p>  (1)在進(jìn)行調(diào)試時(shí),一般一維數(shù)組的下標(biāo)從0開始,在這里我們規(guī)定的下標(biāo)從1開始,要注意區(qū)分,以免混淆。</p><p>  (2)在這里

73、我們用到了選擇排序:時(shí)間復(fù)雜度O(n*n);空間復(fù)雜度O(1);為了提高程序的效率,我們也可以采用堆排序其時(shí)間復(fù)雜度O(nlogn);空間復(fù)雜度O(1);如果用磁盤文件輸入數(shù)據(jù),可以方便操作。</p><p>  (3)通過(guò)程序調(diào)試,我們很快的發(fā)現(xiàn)問題,并通過(guò)查資料分析問題,能夠很快的找到錯(cuò)誤,解決問題。同時(shí)我們還學(xué)會(huì)了用C語(yǔ)言編程,進(jìn)一步加深自己對(duì)C語(yǔ)言理解。在這里,我們可以親自動(dòng)手,把自己的想法融入的程序中,

74、程序得到實(shí)現(xiàn)和解決問題,自己的信心也增強(qiáng)了。</p><p><b>  5.用戶使用說(shuō)明</b></p><p>  在主菜單下,你可以選擇你想要選擇的功能,當(dāng)必須在新建數(shù)據(jù)下來(lái)實(shí)現(xiàn)其他功能。當(dāng)你新建數(shù)據(jù)后,你可以再繼續(xù)添加、刪除、排序、查詢。在打開排序和查詢菜單下,你會(huì)得到它們的子菜單,根據(jù)自己的要求來(lái)選擇你要實(shí)現(xiàn)的功能。</p><p>

75、<b>  6.測(cè)試結(jié)果</b></p><p><b>  7.附錄</b></p><p>  #include<stdio.h></p><p>  #include<string.h>//頭文件</p><p>  struct student</p>

76、<p><b>  {</b></p><p>  char num[10];</p><p>  char name[10];</p><p><b>  int math;</b></p><p>  int english;</p><p>  int com

77、puter;</p><p><b>  int sum;</b></p><p><b>  int aver;</b></p><p>  }stu[10];//定義結(jié)構(gòu)體類型變量</p><p>  int t;//設(shè)置全局變量</p><p>  void main(

78、)//主函數(shù)</p><p><b>  {</b></p><p><b>  int n;</b></p><p>  void creat_data();</p><p>  void add();</p><p>  void delet();</p>

79、<p>  void sort_stu();</p><p>  void search();//函數(shù)的申明</p><p><b>  do{</b></p><p>  printf("************************************主菜單*****************************

80、*********\n");</p><p>  printf("\t\t////////////////////////////////////////////////////\n");</p><p>  printf("\t\t| *1.新建數(shù)據(jù) |\n") ;

81、</p><p>  printf("\t\t| *2.添加數(shù)據(jù) |\n");</p><p>  printf("\t\t| *3.刪除數(shù)據(jù) |\n");</p><p>  p

82、rintf("\t\t| *4.排序 |\n");</p><p>  printf("\t\t| *5.查詢 |\n");</p><p>  printf("\t\t|

83、 *6.退出 |\n");</p><p>  printf("\t\t////////////////////////////////////////////////////\n");</p><p>  printf("請(qǐng)輸入序號(hào)選擇相應(yīng)操作:");</p

84、><p>  scanf("%d",&n);</p><p><b>  switch(n)</b></p><p><b>  {</b></p><p>  case 1:creat_data();break;</p><p>  case 2:a

85、dd();break;</p><p>  case 3:delet();break;</p><p>  case 4:sort_stu();break;</p><p>  case 5:search();break;</p><p>  case 6:printf("\t\t\t\t謝謝使用!\n");break;&

86、lt;/p><p>  default: printf("輸入錯(cuò)誤");</p><p><b>  }</b></p><p>  }while(n!=6);</p><p><b>  }</b></p><p>  void sum_stu() //各個(gè)

87、學(xué)生各科分?jǐn)?shù)總和和平均分</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  for(i=1;i<=t;i++)</p><p>  { stu[i].sum=stu[i].math+stu[i].english+stu[i].comp

88、uter;</p><p>  stu[i].aver=stu[i].sum/3;}</p><p><b>  }</b></p><p>  void print()</p><p><b>  {</b></p><p><b>  int i;</b&

89、gt;</p><p>  printf("-------------------------------------------------------------------------------\n");</p><p>  printf("|學(xué)號(hào) 姓名 數(shù)學(xué)成績(jī) 英語(yǔ)成績(jī) 計(jì)算機(jī)成績(jī) 總分 平均分

90、\n");</p><p>  for(i=1;i<=t;i++)</p><p>  printf("|%s %s %d %d %d %d %d\n",stu[i].num,stu[i].name,stu[i].math,stu[i].engli

91、sh,stu[i].computer,stu[i].sum,stu[i].aver);</p><p>  printf("-------------------------------------------------------------------------------\n\n");</p><p><b>  }</b></p&

92、gt;<p>  void creat_data() //新建數(shù)據(jù)</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  printf("請(qǐng)輸入你想要?jiǎng)?chuàng)建的學(xué)生人數(shù): ");</p><p>  scanf(&

93、quot;%d",&t);</p><p>  for(i=1;i<=t;i++)</p><p><b>  {</b></p><p>  printf("\n請(qǐng)輸入學(xué)生學(xué)號(hào):");</p><p>  scanf("%s",stu[i].num); &

94、lt;/p><p>  printf("請(qǐng)輸入學(xué)生姓名:");</p><p>  scanf("%s",stu[i].name); </p><p>  printf("請(qǐng)輸入學(xué)生數(shù)學(xué)成績(jī):");</p><p>  scanf("%d",&stu[i].m

95、ath); </p><p>  while(stu[i].math<0||stu[i].math>100)</p><p>  {printf("出錯(cuò),學(xué)生的成績(jī)不可能小于0或大于100");printf("\n"); printf("請(qǐng)重新輸入學(xué)生數(shù)學(xué)成績(jī):");</p><p>  sca

96、nf("%d",&stu[i].math); }</p><p>  printf("請(qǐng)輸入學(xué)生英語(yǔ)成績(jī):");</p><p>  scanf("%d",&stu[i].english);</p><p>  while(stu[i].english<0||stu[i].englis

97、h>100){printf("出錯(cuò),學(xué)生的成績(jī)不可能小于0或大于100");printf("\n"); </p><p>  printf("請(qǐng)重新輸入學(xué)生英語(yǔ)成績(jī):");</p><p>  scanf("%d",&stu[i].english);}</p><p>  

98、printf("請(qǐng)輸入學(xué)生計(jì)算機(jī)成績(jī):");</p><p>  scanf("%d",&stu[i].computer);</p><p>  while(stu[i].computer<0||stu[i].computer>100){printf("出錯(cuò),學(xué)生的成績(jī)不可能小于0或大于100");printf

99、("\n");</p><p>  printf("請(qǐng)重新輸入學(xué)生計(jì)算機(jī)成績(jī):");</p><p>  scanf("%d",&stu[i].computer);} </p><p><b>  }</b></p><p>  sum_stu();&l

100、t;/p><p><b>  print();</b></p><p><b>  }</b></p><p>  void add() //添加數(shù)據(jù)</p><p><b>  {</b></p><p><b>  char ch;</

101、b></p><p><b>  do</b></p><p><b>  {</b></p><p>  printf("\n請(qǐng)輸入學(xué)生學(xué)號(hào):");</p><p>  scanf("%s",stu[t+1].num); </p><

102、;p>  printf("請(qǐng)輸入學(xué)生姓名:");</p><p>  scanf("%s",stu[t+1].name); </p><p>  printf("請(qǐng)輸入學(xué)生數(shù)學(xué)成績(jī):");</p><p>  scanf("%d",&stu[t+1].math); <

103、/p><p>  while(stu[t+1].math<0||stu[t+1].math>100)</p><p><b>  {</b></p><p>  printf("出錯(cuò),學(xué)生的成績(jī)不可能小于0或大于100");printf("\n"); printf("請(qǐng)重新輸入學(xué)生數(shù)學(xué)成

104、績(jī):");</p><p>  scanf("%d",&stu[t+1].math); </p><p><b>  }</b></p><p>  printf("請(qǐng)輸入學(xué)生英語(yǔ)成績(jī):");</p><p>  scanf("%d",&

105、;stu[t+1].english);</p><p>  while(stu[t+1].english<0||stu[t+1].english>100)</p><p><b>  {</b></p><p>  printf("出錯(cuò),學(xué)生的成績(jī)不可能小于0或大于100");printf("\n&qu

106、ot;); </p><p>  printf("請(qǐng)重新輸入學(xué)生英語(yǔ)成績(jī):");</p><p>  scanf("%d",&stu[t+1].english);</p><p><b>  }</b></p><p>  printf("請(qǐng)輸入學(xué)生計(jì)算機(jī)成績(jī):&

107、quot;);</p><p>  scanf("%d",&stu[t+1].computer);</p><p>  while(stu[t+1].computer<0||stu[t+1].computer>100)</p><p><b>  {</b></p><p>  p

108、rintf("出錯(cuò),學(xué)生的成績(jī)不可能小于0或大于100");printf("\n");</p><p>  printf("請(qǐng)重新輸入學(xué)生計(jì)算機(jī)成績(jī):");</p><p>  scanf("%d",&stu[t+1].computer);</p><p><b>  

109、}</b></p><p><b>  t++;</b></p><p>  printf("是否繼續(xù)添加y/n:");</p><p>  ch=getchar();</p><p>  printf("\n");</p><p>  }whi

110、le(ch=='y');</p><p>  sum_stu();</p><p><b>  print();</b></p><p><b>  }</b></p><p>  void delet()//刪除數(shù)據(jù)</p><p><b>  {

111、</b></p><p>  char num1[10];</p><p>  int i,j,count=0;</p><p>  printf("輸入想要?jiǎng)h除的學(xué)生的學(xué)號(hào)");</p><p>  scanf("%s",num1);</p><p>  for (

112、i=1;i<=t;i++)</p><p>  if(strcmp(num1,stu[i].num)==0)</p><p><b>  {</b></p><p>  for(j=i;j<t+1;j++)</p><p>  stu[j]=stu[j+1];</p><p><

113、b>  count++;</b></p><p><b>  t--;</b></p><p><b>  }</b></p><p>  if(count==0) printf("沒有該生信息!");</p><p>  else print();</

114、p><p><b>  }</b></p><p>  void sort_stu() //選擇排序,由大到小</p><p><b>  {</b></p><p>  int k,j,i;</p><p>  struct student temp;</p>

115、<p>  printf("************************************排序菜單************************************\n");</p><p>  printf("\t\t\t*-------*-------*-------*-------*-------* \n");</p><

116、p>  printf("\t\t\t| 1.數(shù)學(xué)成績(jī)排序 |\n");</p><p>  printf("\t\t\t| 2英語(yǔ)成績(jī)排序 |\n");</p><p>  printf("\t\t\t| 3計(jì)算機(jī)成績(jī)排序

117、 |\n");</p><p>  printf("\t\t\t| 4.總分排序 |\n");</p><p>  printf("\t\t\t| 5.平均分排序 |\n");</p><p&g

118、t;  printf("\t\t\t| 6.返回主菜單 |\n");</p><p>  printf("\t\t\t*-------*-------*-------*-------*-------*\n");</p><p>  printf("請(qǐng)按序號(hào)選擇相應(yīng)操作:");<

119、;/p><p>  scanf("%d",&k);</p><p>  if(k==1)//第一趟在所有學(xué)生中找到某一科的最大的成績(jī)</p><p><b>  {</b></p><p>  for(i=1;i<t;i++)</p><p>  for(j=i+1;

120、j<=t;j++)</p><p>  if(stu[i].math<stu[j].math)</p><p>  {temp=stu[i];stu[i]=stu[j];stu[j]=temp;}</p><p><b>  print();</b></p><p><b>  }</b>

121、;</p><p>  else if(k==2)</p><p><b>  {</b></p><p>  for(i=1;i<t;i++)</p><p>  for(j=i+1;j<=t;j++)</p><p>  if(stu[i].english<stu[j].e

122、nglish)</p><p>  {temp=stu[i];stu[i]=stu[j];stu[j]=temp;}</p><p><b>  print();</b></p><p><b>  }</b></p><p>  else if(k==3)</p><p>

123、;<b>  {</b></p><p>  for(i=1;i<t;i++)</p><p>  for(j=i+1;j<=t;j++)</p><p>  if(stu[i].computer<stu[j].computer)</p><p>  {temp=stu[i];stu[i]=stu[j]

124、;stu[j]=temp;}</p><p><b>  print();</b></p><p><b>  }</b></p><p>  else if(k==4)</p><p><b>  {</b></p><p>  for(i=1;i&

125、lt;t;i++)</p><p>  for(j=i+1;j<=t;j++)</p><p>  if(stu[i].sum<stu[j].sum)</p><p>  {temp=stu[i];stu[i]=stu[j];stu[j]=temp;}</p><p><b>  print();</b>&l

126、t;/p><p><b>  }</b></p><p>  else if(k==5)</p><p><b>  {</b></p><p>  for(i=1;i<t;i++)</p><p>  for(j=i+1;j<=t;j++)</p>

127、<p>  if(stu[i].aver<stu[j].aver)</p><p>  {temp=stu[i];stu[i]=stu[j];stu[j]=temp;}</p><p><b>  print();</b></p><p><b>  }</b></p><p>  

128、else main();</p><p><b>  }</b></p><p>  void search_num()</p><p><b>  {</b></p><p>  char m[10];int i, count=0;</p><p>  printf(&qu

129、ot;輸入學(xué)號(hào):");</p><p>  scanf("%s",m);</p><p>  for(i=1;i<=t;i++)</p><p>  if(strcmp(m,stu[i].num)==0) </p><p><b>  {</b></p><p>

130、;  printf("----------------------------------------------------------------------");</p><p>  printf("%s %s %d %d %d %d %d\n",stu[i].num,stu[i].name,stu[i].math,stu

131、[i].english,stu[i].computer,stu[i].sum,stu[i].aver);count++;</p><p>  printf("----------------------------------------------------------------------");</p><p><b>  }</b><

132、;/p><p>  if (count==0) printf("沒有找到相關(guān)信息!\n");</p><p><b>  }</b></p><p>  void search_name()</p><p><b>  {</b></p><p>  char

133、 m[10];int i,count=0;</p><p>  printf("輸入姓名:");</p><p>  scanf("%s",m);</p><p>  for(i=1;i<=t;i++)</p><p>  if(strcmp(m,stu[i].name)==0) {</p

134、><p>  printf("----------------------------------------------------------------------");</p><p>  printf("%s %s %d %d %d %d %d\n",stu[i].num,stu[i

135、].name,stu[i].math,stu[i].english,stu[i].computer,stu[i].sum,stu[i].aver);count++;</p><p>  printf("----------------------------------------------------------------------");</p><p><

136、;b>  }</b></p><p>  if (count==0) printf("沒有找到相關(guān)信息!\n");</p><p><b>  }</b></p><p>  void search_math()//數(shù)學(xué)課程的平均成績(jī)、最高分、最低分、不及格人數(shù)、60~69分人數(shù)、70~79分人數(shù)、80~8

137、9分人數(shù)、90分以上人數(shù)</p><p><b>  {</b></p><p>  int sum1=0,aver1,max1=1,min1=1,i,count1=0,count2=0,count3=0,count4=0,count5=0;</p><p>  for(i=1;i<=t;i++)//順序查找</p><

138、;p>  {if(stu[i].math>stu[max1].math) max1=i;</p><p>  else if(stu[i].math<stu[min1].math) min1=i;</p><p><b>  }</b></p><p>  for(i=0;i<=t;i++){</p>

139、<p>  sum1+=stu[i].math;</p><p>  aver1=sum1/t;}</p><p>  printf("數(shù)學(xué)課程的平均成績(jī)、最高分、最低分為:\n");</p><p>  printf("%d %d %d\n",aver1,stu[max1].math,stu[m

140、in1].math);</p><p>  for(i=1;i<=t;i++)</p><p>  if (stu[i].math>=90) count1++;</p><p>  else if (stu[i].math>=80&&stu[i].math<90) count2++; </p><p>

141、  else if (stu[i].math>=70&&stu[i].math<79) count3++;</p><p>  else if (stu[i].math>=60&&stu[i].math<69) count4++;</p><p>  else if (stu[i].math<60) count5++;</

溫馨提示

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