數(shù)據(jù)庫課程設(shè)計(jì)----利用順序存儲(chǔ)實(shí)現(xiàn)管理學(xué)生信息系統(tǒng)_第1頁
已閱讀1頁,還剩21頁未讀 繼續(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ù) 結(jié) 構(gòu) 課 程 設(shè) 計(jì)</p><p>  設(shè)計(jì)題目:利用順序存儲(chǔ)實(shí)現(xiàn)管理學(xué)生信息系統(tǒng)</p><p>  學(xué)生姓名: </p><p>  專業(yè)班級(jí): </p><p>  指導(dǎo)教師 <

2、;/p><p>  完成時(shí)間: </p><p>  信息工程 院 信息科學(xué) 系</p><p>  課程設(shè)計(jì)成績?cè)u(píng)定表(本科)</p><p><b>  目 錄</b></p><p>  一、課程設(shè)計(jì)的目的與意義1</p><p> 

3、 1、設(shè)計(jì)題目的目的:1</p><p>  2、設(shè)計(jì)題目的意義:1</p><p><b>  二、需求分析1</b></p><p><b>  1、問題描述:1</b></p><p><b>  2、功能要求:1</b></p><p>

4、; ?。?)信息錄入功能1</p><p><b>  (2)瀏覽功能2</b></p><p><b> ?。?)查詢功能2</b></p><p><b>  (4)其它功能2</b></p><p><b>  3、說明:2</b><

5、/p><p>  4、輸入輸出的形式:2</p><p><b>  5、開發(fā)環(huán)境:2</b></p><p><b>  三、 概要設(shè)計(jì)2</b></p><p><b>  四、 模塊圖4</b></p><p><b>  五、 詳細(xì)

6、設(shè)計(jì)4</b></p><p>  六、運(yùn)行結(jié)果與分析10</p><p><b>  七、總結(jié)13</b></p><p><b>  八、附錄14</b></p><p><b>  九、參考文獻(xiàn)19</b></p><p> 

7、 一、課程設(shè)計(jì)的目的與意義 </p><p>  1、設(shè)計(jì)題目的目的:</p><p>  本課題主要的目的是讓我們通過這次課程設(shè)計(jì)更加了解C的應(yīng)用,學(xué)習(xí)基本的思考過程,而不能僅僅學(xué)習(xí)程序的實(shí)現(xiàn)技巧。學(xué)會(huì)課本上學(xué)的內(nèi)容使用在編寫的程序中,還要學(xué)會(huì)寫論文為畢業(yè)論文打好基礎(chǔ)。</p><p>  設(shè)計(jì)一個(gè)能實(shí)際使用

8、的學(xué)生信息管理系統(tǒng)。具有添加學(xué)生信息,查詢學(xué)生成績的,刪除學(xué)生信息以及顯示所有學(xué)生信息。它使用循環(huán)語句和多分制語句來實(shí)現(xiàn),充分體現(xiàn)C程序設(shè)計(jì)特點(diǎn)。</p><p>  2、設(shè)計(jì)題目的意義: </p><p>  隨著人類進(jìn)入信息科技時(shí)代,管理信息系統(tǒng)的開發(fā)和設(shè)計(jì),則成了必然的發(fā)展要求,其重要性也是不可忽視的。管理工作的成敗,取決于能否做出有效的決策,而決策的正確與否則在很大程度上取決于信息

9、的質(zhì)量。</p><p>  而學(xué)生信息管理系統(tǒng),是以學(xué)校在學(xué)生信息管理當(dāng)面的實(shí)際需求為背景,將各相關(guān)的業(yè)務(wù)及工作流程計(jì)算機(jī)化,以計(jì)算機(jī)代替?zhèn)鹘y(tǒng)的手工操作方式,實(shí)現(xiàn)通過操作平臺(tái)對(duì)學(xué)生相關(guān)信息進(jìn)行整合、分類及查詢等功能。</p><p>  目前各個(gè)學(xué)校和公司都開發(fā)了自己的管理軟件,但在進(jìn)行全面地信息整合分析、同時(shí)增加學(xué)生與學(xué)校之間交流與聯(lián)系的全面交互系統(tǒng)并不多。因此,該系統(tǒng)的研究和設(shè)計(jì)對(duì)于

10、改善大學(xué)生信息的管理,提高工作效率,提高工作質(zhì)量方面起到了積極作用,具有一定的經(jīng)濟(jì)效益和較大的社會(huì)效益。</p><p><b>  二、需求分析</b></p><p><b>  1、問題描述:</b></p><p>  該系統(tǒng)實(shí)現(xiàn)對(duì)學(xué)生的信息進(jìn)行管理,包括了學(xué)生的姓名,學(xué)號(hào),性別,年齡,電話號(hào)碼以及身份證號(hào)碼。&l

11、t;/p><p><b>  2、功能要求:</b></p><p><b> ?。?)信息錄入功能</b></p><p>  在這個(gè)功能里主要是學(xué)生的基本信息,包括了學(xué)生的姓名,學(xué)號(hào),年齡,電話號(hào)碼,身份證號(hào)碼等。</p><p><b> ?。?)瀏覽功能</b></p

12、><p>  瀏覽功能包括瀏覽學(xué)生的電話號(hào)碼,身份證號(hào)碼以及學(xué)號(hào)等。</p><p><b> ?。?)查詢功能</b></p><p>  查詢功能主要是通過輸入學(xué)生的序號(hào),該學(xué)生的所有有關(guān)信息。</p><p><b> ?。?)其它功能</b></p><p>  除了信息

13、錄入功能,瀏覽功能和查詢功能以后,還包括對(duì)所有學(xué)生按照姓名字母從小到大依次進(jìn)行排序,并且再排序后給所有的學(xué)生都一一的編上學(xué)號(hào),</p><p>  另外還有刪除,增加某學(xué)生的信息的功能。</p><p><b>  3、說明:</b></p><p>  (1)功能各方面越完善越好</p><p> ?。?)自定義的數(shù)據(jù)

14、結(jié)構(gòu)使用數(shù)組,鏈表等,然后根據(jù)不同的數(shù)據(jù)結(jié)構(gòu),設(shè)計(jì)不同的排序,查找算法。其中,排序算法至少有兩種,可以使用多種數(shù)據(jù)結(jié)構(gòu)來存放數(shù)據(jù),然后在其上使用不同的排序算法。</p><p>  (3)若用數(shù)組,必須動(dòng)態(tài)分配空間(文本文件中最好有一行表示學(xué)生人數(shù))</p><p>  4、輸入輸出的形式:</p><p>  本系統(tǒng)是一個(gè)學(xué)生成績管理系統(tǒng),采用VC++6.0 編譯

15、器作為開發(fā)環(huán)境,這個(gè)環(huán)境是我們?cè)趯W(xué)習(xí)C++的平臺(tái)。輸入數(shù)據(jù)類型主要是char、int等數(shù)據(jù)類型,輸入內(nèi)容包括:學(xué)號(hào)、姓名、性別,年齡,身份證號(hào)和電話號(hào)碼。用戶在輸入學(xué)生數(shù)據(jù)時(shí)要保證輸入數(shù)據(jù)格式的正確性,系統(tǒng)不會(huì)自動(dòng)檢測輸入的數(shù)據(jù)是否正確,輸出形式與輸入形式類似。 </p><p><b>  5、開發(fā)環(huán)境:</b></p><p>  Visual C++不僅僅是是一

16、個(gè)C++編譯器,而是一個(gè)基于Windows操作系統(tǒng)的可視化集成開發(fā)環(huán)境IDE,這種環(huán)境開發(fā)出來的軟件穩(wěn)定性好、可移植性強(qiáng),可以編制各種各樣的Windows應(yīng)用程序。</p><p><b>  概要設(shè)計(jì)</b></p><p>  1、先編入系統(tǒng)所需的庫函數(shù)和需要宏定義的變量以及結(jié)構(gòu)體的定義,從而使程序可運(yùn)行。</p><p>  #inclu

17、de<stdio.h></p><p>  #define maxsize 100</p><p>  typedef struct</p><p><b>  {</b></p><p>  char name[20];</p><p>  char sex;</p&g

18、t;<p>  int age;</p><p>  int num[2];</p><p>  char ID[18];</p><p>  char tele[11];</p><p><b>  }std;</b></p><p>  typedef struct

19、</p><p><b>  {</b></p><p>  std student[maxsize];</p><p>  int last;</p><p><b>  }seqlist;</b></p><p>  2、Main()函數(shù)的設(shè)計(jì)</p>

20、<p>  在main()函數(shù)中主要運(yùn)用switch()-case選擇判斷語句來調(diào)用相關(guān)功能模塊。系統(tǒng)的運(yùn)行是在一個(gè)永遠(yuǎn)重復(fù)循環(huán)里進(jìn)行的,只有在主界面并選擇“退出”時(shí),才會(huì)跳出永真循環(huán),并退出程序。</p><p><b>  3、主界面的設(shè)計(jì)</b></p><p>  主界面:在此界面用戶可以選擇要操作的選項(xiàng),回車之后即可進(jìn)入相關(guān)的頁面進(jìn)行操作,所有操作

21、均有提示語,比較人性化的管理,易懂,簡單。</p><p>  在主界面中包括:①初始化鏈表 ②建立學(xué)生的基本信息 ③刪除某學(xué)生有關(guān)的基本信息 ④插入某學(xué)生的基本信息 ⑤將所有的學(xué)生按照姓名的字母大小進(jìn)行排序 ⑥給所有的學(xué)生編上學(xué)號(hào) ⑦輸出所有學(xué)生的基本信息 ⑧退出等全部的功能。之所以設(shè)計(jì)這么一個(gè)主界面,一是因?yàn)槟苁褂脩魧?duì)程序操作的流程更加清晰簡明,二是保證了用戶同時(shí)只能對(duì)一個(gè)文件進(jìn)行操作系統(tǒng)的要求,保證了系統(tǒng)不

22、會(huì)打開文件紊亂或者出現(xiàn)致命的錯(cuò)誤。</p><p>  4、以下是函數(shù)聲明:</p><p>  void setnull(seqlist *l) 函數(shù)功能:將鏈表初始化</p><p>  void creat_list(seqlist *l,int n) 函數(shù)功能:建立學(xué)生的所有有關(guān)信息</p><p>  int in

23、sert(seqlist *l,std x,int i) 函數(shù)功能:插入某學(xué)生以及他的所有有關(guān)信息</p><p>  int deletlist(seqlist *l,int i) 函數(shù)功能:刪除某學(xué)生以及他的所有有關(guān)信息</p><p>  void sort(seqlist *l) 函數(shù)功能:將所有的學(xué)生進(jìn)行排序</p><p>

24、  void ident(seqlist *l) 函數(shù)功能:給所有的學(xué)生編上學(xué)號(hào)</p><p>  void print_list(seqlist *l) 函數(shù)功能:輸入所有學(xué)生的所有有關(guān)信息</p><p><b>  模塊圖</b></p><p><b>  詳細(xì)設(shè)計(jì)</b></p>

25、<p>  1、首先是將定義的鏈表進(jìn)行初始化,也就是把l->last置為-1,具體的函數(shù)如下:</p><p>  void setnull(seqlist *l)</p><p><b>  {</b></p><p>  l->last=-1;</p><p><b>  }&l

26、t;/b></p><p>  2、建立main函數(shù)大致構(gòu)建在算法的過程當(dāng)中所需要調(diào)用的一些函數(shù)以及利用switch—case和while循環(huán)構(gòu)造一個(gè)可以永遠(yuǎn)重復(fù)調(diào)用的環(huán)境,除非用戶終止循環(huán)也就退出了系統(tǒng)了。并且為了界面的友好化,可以利用printf函數(shù)輸出一些來美化界面的字和提示語。具體的函數(shù)如下</p><p>  void main()</p><p>

27、;<b>  {</b></p><p>  int i=1,n;</p><p>  seqlist l;</p><p><b>  std x;</b></p><p>  printf("*********************************************

28、***********************************\n\n");</p><p>  printf("\t\t\t\t學(xué)生信息管理系統(tǒng)\n\n\n");</p><p>  printf("***********************************************************************

29、*********");</p><p>  printf("請(qǐng)輸入學(xué)生的個(gè)數(shù):\n");</p><p>  scanf("%d",&n);</p><p><b>  while(i)</b></p><p><b>  {</b><

30、;/p><p>  printf("請(qǐng)輸入i的值:\n");</p><p>  printf("\t0-->置空鏈表\n\t1-->建立學(xué)生信息表\n\t\t2-->插入某同學(xué)的信息\n\t\t3-->刪除某同學(xué)的信息\n\t\t4-->將學(xué)生信息表進(jìn)行排序\n\t\t5-->給學(xué)生編學(xué)號(hào)\n\t\t6-->查找某學(xué)生的

31、信息\n\t\t7-->輸出所有學(xué)生的信息\n");</p><p>  scanf("%d",&i);</p><p><b>  switch(i)</b></p><p><b>  {</b></p><p>  case 0:setnull(&

32、amp;l);break;</p><p>  case 1:creat_list(&l,n);break;</p><p>  case 2:printf("請(qǐng)輸入要插入的學(xué)生的位置:");</p><p>  scanf("%d",&i);</p><p>  printf(&q

33、uot;請(qǐng)輸入該同學(xué)的基本信息\n");</p><p>  printf("姓名:\n");</p><p>  scanf("%s",x.name);</p><p>  getchar();</p><p>  printf("性別:\n");</p>

34、<p>  scanf("%c",&x.sex);</p><p>  printf("年齡:\n");</p><p>  scanf("%d",&x.age);</p><p>  printf("身份證號(hào):\n");</p><p>

35、;  scanf("%s",x.ID);</p><p>  printf("電話號(hào)碼:\n");</p><p>  scanf("%s",x.tele);</p><p>  x.num[0]=x.num[1]='0';</p><p>  insert(&

36、;l,x,i);break;</p><p>  case 3:printf("請(qǐng)輸入要?jiǎng)h除的學(xué)生的號(hào)碼:");scanf("%d",&i);deletlist(&l,i);break;</p><p>  case 4:sort(&l);break;</p><p>  case 5:ident

37、(&l);break;</p><p>  case 6:printf("請(qǐng)輸入你要查找的學(xué)生的號(hào)碼:\n");scanf("%d",&i);printf("%s\t%c\t%d%s%s",l.student[i-1].name,&l.student[i-1].sex,l.student[i-1].age,l.student[i

38、-1].ID,l.student[i-1].tele);break;</p><p>  case 7:print_list(&l);break;</p><p><b>  }</b></p><p>  printf("請(qǐng)輸入i的值\n\t0-->結(jié)束\n\t1-->繼續(xù)\n");</p>

39、;<p>  scanf("%d",&i);</p><p><b>  }</b></p><p><b>  }</b></p><p>  3、知道m(xù)ain函數(shù)需要調(diào)用的函數(shù)以后首先就是建立學(xué)生信息的錄入函數(shù),其中在輸入的過程中應(yīng)該注意空格符也是字符,所以在單個(gè)字符的輸入時(shí)前

40、面可以加一個(gè)getchar()以免輸入的字符不能正確的賦給想要的變量。而且在輸入的過程當(dāng)中也要適當(dāng)?shù)慕o一些提示語。具體函數(shù)如下:</p><p>  void creat_list(seqlist *l,int n)</p><p><b>  {</b></p><p><b>  int i;</b></p

41、><p>  void ident(seqlist *l);</p><p>  for(i=0;i<n;i++)</p><p><b>  { </b></p><p>  l->student[i].num[0]=l->student[i].num[1]=0;</p><p&g

42、t;  printf("請(qǐng)輸入第%d個(gè)同學(xué)的基本信息\n",i+1);</p><p>  printf("姓名:\n");</p><p>  scanf("%s",l->student[i].name);</p><p>  getchar();</p><p>  pri

43、ntf("性別:\n");</p><p>  scanf("%c",&l->student[i].sex);</p><p>  printf("年齡:\n");</p><p>  scanf("%d",&l->student[i].age);</p

44、><p>  printf("身份證號(hào):\n");</p><p>  scanf("%s",l->student[i].ID);</p><p>  printf("電話號(hào)碼:\n");</p><p>  scanf("%s",l->student[i

45、].tele);</p><p>  l->last++;</p><p><b>  }</b></p><p><b>  }</b></p><p>  4、建立好學(xué)生的信息以后,還有插入或刪除某學(xué)生以及他的所有有關(guān)信息,具體函數(shù)如下:</p><p>  int

46、 insert(seqlist *l,std x,int i)</p><p><b>  {</b></p><p><b>  int j;</b></p><p>  if(l->last>=maxsize-1)</p><p><b>  {</b>&l

47、t;/p><p>  printf("overflow");</p><p>  return NULL;</p><p><b>  }</b></p><p><b>  Else</b></p><p>  if(i<1||i>l->

48、last+2)</p><p><b>  { </b></p><p>  printf("eroor");</p><p>  return NULL;</p><p><b>  }</b></p><p><b>  El

49、se</b></p><p><b>  {</b></p><p>  for(j=l->last;j>=i-1;j--)</p><p>  l->student[j+1]=l->student[j];</p><p>  l->student[i-1]=x;</p&g

50、t;<p>  l->last=l->last+1;</p><p><b>  }</b></p><p><b>  return 1;</b></p><p><b>  }</b></p><p>  int deletlist(seqlis

51、t *l,int i)</p><p><b>  {</b></p><p><b>  int j;</b></p><p>  if(l->last==-1)</p><p><b>  {</b></p><p>  printf(&q

52、uot;表空");</p><p>  return 0;</p><p><b>  }</b></p><p><b>  else</b></p><p>  if(i<1||i>l->last+1)</p><p><b>  

53、{</b></p><p>  printf("eroor");</p><p>  return 0;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</

54、b></p><p>  for(j=i;j<=l->last;j++)</p><p>  l->student[j-1]=l->student[j];</p><p>  l->last--;</p><p><b>  }</b></p><p>  re

55、turn 1;</p><p><b>  }</b></p><p>  5、寫好刪除和插入函數(shù)以后就是給所有的學(xué)生按照姓名字母從小到大依次排序,主要利用的就是冒泡法。具體函數(shù)如下:</p><p>  void sort(seqlist *l)</p><p><b>  {</b><

56、;/p><p>  int i,j,k;</p><p><b>  std t;</b></p><p>  for(i=0;i<=l->last-1;i++) </p><p>  for(j=0;j<=l->last-i-1;j++)</p><p>  

57、{ k=0; while(l->student[j+1].name[k]==l->student[j].name[k])</p><p>  k++; if(l->student[j].name[k]>l->student[j+1].name[k])</p><p><b>  {</b></p><

58、p>  t=l->student[j];</p><p>  l->student[j]=l->student[j+1];</p><p>  l->student[j+1]=t;</p><p><b>  }</b></p><p><b>  }</b></

59、p><p><b>  }</b></p><p>  6、給所有的同學(xué)排好序以后利用for循環(huán)給所有的學(xué)生編好學(xué)號(hào)。具體函數(shù)如下:</p><p>  void ident(seqlist *l)</p><p><b>  {</b></p><p><b> 

60、 int i;</b></p><p>  for(i=1;i<=l->last;i++)</p><p><b>  {</b></p><p>  l->student[i].num[0]=i/10;</p><p>  l->student[i].num[1]=i%10;<

61、;/p><p><b>  }</b></p><p><b>  }</b></p><p>  7、最后一個(gè)非常重要的函數(shù)就是輸出函數(shù),主要也是利用for循環(huán)依次輸出所有學(xué)生的有關(guān)信息。具體函數(shù)如下:</p><p>  void print_list(seqlist *l)</p>

62、;<p><b>  {</b></p><p><b>  int j;</b></p><p>  for(j=0;j<=l->last;j++)</p><p><b>  {</b></p><p>  printf("number:

63、");</p><p>  printf("%d%d\n",l->student[j].num[0],l->student[j].num[1]);</p><p>  printf("name:");</p><p>  printf("%s\n",l->student[j].n

64、ame);</p><p>  printf("sex:");</p><p>  printf("%c\n",l->student[j].sex);</p><p>  printf("age:");</p><p>  printf("%d\n",l-&

65、gt;student[j].age);</p><p>  printf("ID:");</p><p>  printf("%s\n",l->student[j].ID);</p><p>  printf("telephone:");</p><p>  printf(&q

66、uot;%s\n",l->student[j].tele);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  六、運(yùn)行結(jié)果與分析</b></p><p><b>  1、主界面</b&g

67、t;</p><p>  圖1 系統(tǒng)的主界面</p><p><b>  2、建立學(xué)生信息表</b></p><p>  圖2 錄入學(xué)生的基本信息</p><p>  3、插入某學(xué)生以及他的所有有關(guān)信息</p><p>  圖3 插入某同學(xué)的信息</p><p>

68、  4、刪除某學(xué)生以及他的所有有關(guān)信息</p><p>  圖4 刪除某同學(xué)的所有信息</p><p>  給所有的學(xué)生進(jìn)行排序</p><p>  圖5 將所有同學(xué)排序</p><p>  將排好序的學(xué)生編上學(xué)號(hào)</p><p>  圖6 給所有同學(xué)編學(xué)號(hào)</p><p>&

69、lt;b>  七、總結(jié)</b></p><p>  首先,經(jīng)過這么長時(shí)間的編程及報(bào)告總結(jié),我對(duì)C語言這門學(xué)科有了新的認(rèn)識(shí),感覺自己真的收獲了很多!要想編寫一個(gè)準(zhǔn)確、高效并有使用價(jià)值的程序,一定先要對(duì)課本知識(shí)熟悉,還要掌握必要的上機(jī)操作能力,寫程序其實(shí)很容易而關(guān)鍵在于調(diào)試程序。這次設(shè)計(jì),讓我重新掌握了C語言,而且還得到了用C語言解決實(shí)際問題的寶貴經(jīng)驗(yàn)。</p><p>  

70、其次, 通過此次編程我也發(fā)現(xiàn)了自己在學(xué)習(xí)中的錯(cuò)誤和不足,復(fù)習(xí)了以前學(xué)過的知識(shí)。同時(shí)也學(xué)到了一些沒學(xué)過的知識(shí),讓我從中收益非淺!更重要的是培養(yǎng)了獨(dú)立思考問題和解決問題的能力,熟悉了一些基本操作和解決問題的方法!</p><p>  第三,此次課程設(shè)計(jì)之初遇到了許多問題,我深刻體會(huì)到老師發(fā)揮的重要作用,在匆忙的學(xué)習(xí)中C語言程序?qū)ξ覀儊碚f還不熟練,但在老師的幫助下我學(xué)會(huì)了如何掌握編寫的思想,如何查找系統(tǒng)沒有提示的錯(cuò)誤,

71、最后終于在一遍又一遍地把程序搞定,體會(huì)到原來編程也挺有意思的快感.我想沒有老師的幫助我很難在短期內(nèi)把程序設(shè)計(jì)做的這樣好,在此特地感謝老師的幫助。</p><p>  編完此程序后,我體會(huì)到學(xué)C語言不能死記硬背,一定要靈活的使用才行。在編寫程序過程中我遇到了不少問題。也學(xué)到了不少東西。經(jīng)過兩個(gè)星期的上機(jī)實(shí)踐學(xué)習(xí),使我對(duì)C語言有了更進(jìn)一步的認(rèn)識(shí)和了解,要想學(xué)好它重在實(shí)踐,要不斷的上機(jī)操作才能更好地學(xué)好C語言。從中又發(fā)

72、現(xiàn)我對(duì)C語言的一些標(biāo)準(zhǔn)庫函數(shù)不太了解,還有對(duì)函數(shù)調(diào)用的正確使用不夠熟悉,對(duì)C語言中經(jīng)常出現(xiàn)的錯(cuò)誤也不了解,通過實(shí)踐,使我在這幾個(gè)方面的認(rèn)識(shí)有所提高。</p><p>  這次的C語言程序設(shè)計(jì),在具體操作中,鞏固了這學(xué)期所學(xué)的C語言的理論知識(shí),這也是實(shí)習(xí)的目的所在。通過實(shí)際操作,學(xué)會(huì)了C語言程序編程的基本步驟、基本方法,開發(fā)了自己的邏輯思維能力,培養(yǎng)了分析問題、解決問題的能力。通過這次對(duì)學(xué)生信息管理系統(tǒng)的編譯,我了

73、解到C語言程序設(shè)計(jì)的思想,我們的程序雖然實(shí)用,但它有許多不足之處,我所編譯的程序容量有限,而且每次操作都要回到主界面,在這方面該系統(tǒng)還有待于進(jìn)一步優(yōu)化。</p><p>  C語言是一種計(jì)算機(jī)的高級(jí)語言,具有功能豐富,使用靈活方便,應(yīng)用面廣,目標(biāo)程序效率高等特點(diǎn),通過這次的C語言程序我真正知道了C語言的作用廣泛。在完成大作業(yè)中使我進(jìn)一步了解學(xué)C語言,并體會(huì)到設(shè)計(jì)程序并不是那么容易的。在解決這些問題中,同時(shí)學(xué)到了許

74、多函數(shù)的實(shí)際用途。這對(duì)我學(xué)C語言起了很大作用。我領(lǐng)悟到運(yùn)用c語言可以解決許多實(shí)際問題,它在我們的學(xué)習(xí)和工作中解決很多問題,尤其是在信息管理方面,c語言作為一門高級(jí)和計(jì)算機(jī)編輯語言,有其強(qiáng)大的功能。而我們應(yīng)嚴(yán)格要求自己,不斷培養(yǎng)各方面的能力。</p><p>  在學(xué)習(xí)當(dāng)中,我認(rèn)識(shí)到學(xué)好計(jì)算機(jī)要重視實(shí)踐操作,不僅僅是學(xué)習(xí)C語言,還是其它的語言,以及其它的計(jì)算機(jī)方面的知識(shí)都要重在實(shí)踐,以后在學(xué)習(xí)過程中,我會(huì)更加注視實(shí)

75、踐操作,使自己更好地學(xué)好計(jì)算機(jī)。通過這次課程設(shè)計(jì)我認(rèn)識(shí)了自己,學(xué)會(huì)怎樣利用C語言的函數(shù),數(shù)組,關(guān)鍵字來設(shè)計(jì)自己所需要程序等的收獲即有了深刻的認(rèn)識(shí),對(duì)我今后的學(xué)習(xí)以及將來走向工作崗位打下了穩(wěn)固的基礎(chǔ)。</p><p>  最后,再次感謝編程過程中老師的幫助和教誨。</p><p><b>  八、附錄</b></p><p>  #include

76、<stdio.h></p><p>  #define maxsize 100</p><p>  typedef struct</p><p><b>  {</b></p><p>  char name[20];</p><p>  char sex;</p>

77、<p>  int age;</p><p>  int num[2];</p><p>  char ID[18];</p><p>  char tele[11];</p><p><b>  }std;</b></p><p>  typedef struct&l

78、t;/p><p><b>  {</b></p><p>  std student[maxsize];</p><p>  int last;</p><p><b>  }seqlist;</b></p><p>  seqlist *l;</p><

79、;p>  void setnull(seqlist *l)</p><p><b>  {</b></p><p>  l->last=-1;</p><p><b>  }</b></p><p>  void creat_list(seqlist *l,int n)<

80、/p><p><b>  {</b></p><p><b>  int i;</b></p><p>  void ident(seqlist *l);</p><p>  for(i=0;i<n;i++)</p><p><b>  { </b>

81、;</p><p>  l->student[i].num[0]=l->student[i].num[1]=0;</p><p>  printf("請(qǐng)輸入第%d個(gè)同學(xué)的基本信息\n",i+1);</p><p>  printf("姓名:\n");</p><p>  scanf(&quo

82、t;%s",l->student[i].name);</p><p>  getchar();</p><p>  printf("性別:\n");</p><p>  scanf("%c",&l->student[i].sex);</p><p>  printf(&qu

83、ot;年齡:\n");</p><p>  scanf("%d",&l->student[i].age);</p><p>  printf("身份證號(hào):\n");</p><p>  scanf("%s",l->student[i].ID);</p><p

84、>  printf("電話號(hào)碼:\n");</p><p>  scanf("%s",l->student[i].tele);</p><p>  l->last++;</p><p><b>  }</b></p><p><b>  }</b&

85、gt;</p><p>  int insert(seqlist *l,std x,int i)</p><p><b>  {</b></p><p><b>  int j;</b></p><p>  if(l->last>=maxsize-1)</p><

86、p><b>  {</b></p><p>  printf("overflow");</p><p>  return NULL;</p><p><b>  }</b></p><p><b>  Else</b></p><

87、p>  if(i<1||i>l->last+2)</p><p><b>  { </b></p><p>  printf("eroor");</p><p>  return NULL;</p><p><b>  }</b></

88、p><p><b>  Else</b></p><p><b>  {</b></p><p>  for(j=l->last;j>=i-1;j--)</p><p>  l->student[j+1]=l->student[j];</p><p>  

89、l->student[i-1]=x;</p><p>  l->last=l->last+1;</p><p><b>  }</b></p><p><b>  return 1;</b></p><p><b>  }</b></p><

90、;p>  int deletlist(seqlist *l,int i)</p><p><b>  {</b></p><p><b>  int j;</b></p><p>  if(l->last==-1)</p><p><b>  {</b><

91、;/p><p>  printf("表空");</p><p>  return 0;</p><p><b>  }</b></p><p><b>  else</b></p><p>  if(i<1||i>l->last+1)<

92、;/p><p><b>  {</b></p><p>  printf("eroor");</p><p>  return 0;</p><p><b>  }</b></p><p><b>  else</b></p>

93、;<p><b>  {</b></p><p>  for(j=i;j<=l->last;j++)</p><p>  l->student[j-1]=l->student[j];</p><p>  l->last--;</p><p><b>  }</b

94、></p><p>  return 1;</p><p><b>  }</b></p><p>  void sort(seqlist *l)</p><p><b>  {</b></p><p>  int i,j,k;</p><p&

95、gt;<b>  std t;</b></p><p>  for(i=0;i<=l->last-1;i++)</p><p>  for(j=0;j<=l->last-i-1;j++)</p><p><b>  { k=0;</b></p><p>  while(l

96、->student[j+1].name[k]==l->student[j].name[k])</p><p><b>  k++;</b></p><p>  if(l->student[j].name[k]>l->student[j+1].name[k])</p><p><b>  {</b&g

97、t;</p><p>  t=l->student[j];</p><p>  l->student[j]=l->student[j+1];</p><p>  l->student[j+1]=t;</p><p><b>  }</b></p><p><b>

98、  }</b></p><p><b>  }</b></p><p>  void ident(seqlist *l)</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  fo

99、r(i=1;i<=l->last;i++)</p><p><b>  {</b></p><p>  l->student[i].num[0]=i/10;</p><p>  l->student[i].num[1]=i%10;</p><p><b>  }</b><

100、;/p><p><b>  }</b></p><p>  void print_list(seqlist *l)</p><p><b>  {</b></p><p><b>  int j;</b></p><p>  for(j=0;j<

101、=l->last;j++)</p><p><b>  {</b></p><p>  printf("number:");</p><p>  printf("%d%d\n",l->student[j].num[0],l->student[j].num[1]);</p>

102、<p>  printf("name:");</p><p>  printf("%s\n",l->student[j].name);</p><p>  printf("sex:");</p><p>  printf("%c\n",l->student[j].s

103、ex);</p><p>  printf("age:");</p><p>  printf("%d\n",l->student[j].age);</p><p>  printf("ID:");</p><p>  printf("%s\n",l->

104、;student[j].ID);</p><p>  printf("telephone:");</p><p>  printf("%s\n",l->student[j].tele);</p><p><b>  }</b></p><p><b>  }<

105、/b></p><p>  void main()</p><p><b>  {</b></p><p>  int i=1,n;</p><p>  seqlist l;</p><p><b>  std x;</b></p><p>

106、;  printf("********************************************************************************\n\n");</p><p>  printf("\t\t\t\t學(xué)生信息管理系統(tǒng)\n\n\n");</p><p>  printf("**********

107、**********************************************************************");</p><p>  printf("請(qǐng)輸入學(xué)生的個(gè)數(shù):\n");</p><p>  scanf("%d",&n);</p><p><b>  whi

108、le(i)</b></p><p><b>  {</b></p><p>  printf("請(qǐng)輸入i的值:\n");</p><p>  printf("\t0-->置空鏈表\n\t1-->建立學(xué)生信息表\n\t\t2-->插入某同學(xué)的信息\n\t\t3-->刪除某同學(xué)的信息

109、\n\t\t4-->將學(xué)生信息表進(jìn)行排序\n\t\t5-->給學(xué)生編學(xué)號(hào)\n\t\t6-->查找某學(xué)生的信息\n\t\t7-->輸出所有學(xué)生的信息\n");</p><p>  scanf("%d",&i);</p><p><b>  switch(i)</b></p><p>&

110、lt;b>  {</b></p><p>  case 0:setnull(&l);break;</p><p>  case 1:creat_list(&l,n);break;</p><p>  case 2:printf("請(qǐng)輸入要插入的學(xué)生的位置:");</p><p>  

111、scanf("%d",&i);</p><p>  printf("請(qǐng)輸入該同學(xué)的基本信息\n");</p><p>  printf("姓名:\n");</p><p>  scanf("%s",x.name);</p><p>  getchar();

112、</p><p>  printf("性別:\n");</p><p>  scanf("%c",&x.sex);</p><p>  printf("年齡:\n");</p><p>  scanf("%d",&x.age);</p>

113、<p>  printf("身份證號(hào):\n");</p><p>  scanf("%s",x.ID);</p><p>  printf("電話號(hào)碼:\n");</p><p>  scanf("%s",x.tele);</p><p>  x.n

114、um[0]=x.num[1]='0';</p><p>  insert(&l,x,i);break;</p><p>  case 3:printf("請(qǐng)輸入要?jiǎng)h除的學(xué)生的號(hào)碼:");scanf("%d",&i);deletlist(&l,i);break;</p><p>  ca

115、se 4:sort(&l);break;</p><p>  case 5:ident(&l);break;</p><p>  case 6:printf("請(qǐng)輸入你要查找的學(xué)生的號(hào)碼:\n");scanf("%d",&i);printf("%s\t%c\t%d%s%s",l.student[i-1

116、].name,&l.student[i-1].sex,l.student[i-1].age,l.student[i-1].ID,l.student[i-1].tele);break;</p><p>  case 7:print_list(&l);break;</p><p><b>  }</b></p><p>  pri

117、ntf("請(qǐng)輸入i的值\n\t0-->結(jié)束\n\t1-->繼續(xù)\n");</p><p>  scanf("%d",&i);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>

118、  九、參考文獻(xiàn)</b></p><p>  【1】張國峰.C++語言及其程序設(shè)計(jì)教程.電子工業(yè)出版書,1992</p><p>  【2】薩師煊,王珊.數(shù)據(jù)庫系統(tǒng)概論.第二版.高等教育出版社,1991</p><p>  【3】徐德民.最新C語言程序設(shè)計(jì).電子工業(yè)出版社,1992</p><p>  【4】唐策善,黃劉生.數(shù)據(jù)結(jié)

溫馨提示

  • 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)論