版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫課程設(shè)計(jì)--學(xué)生管理信息系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)---學(xué)生管理信息系統(tǒng)
- 數(shù)據(jù)庫學(xué)生管理信息系統(tǒng)課程設(shè)計(jì)
- 學(xué)生選課信息系統(tǒng)數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)庫課程設(shè)計(jì)---學(xué)生宿舍管理信息系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告---學(xué)生學(xué)籍管理信息系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)--- 論壇管理信息系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)-酒店管理信息系統(tǒng)
- 數(shù)據(jù)庫原理課程設(shè)計(jì)報(bào)告---學(xué)生信息管理信息系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)--學(xué)生信息查詢管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)---學(xué)生信息管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)--考勤管理信息系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)---醫(yī)院管理信息系統(tǒng)
- 數(shù)據(jù)庫原理b課程設(shè)計(jì)--數(shù)據(jù)庫學(xué)生信息管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)學(xué)生信息管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計(jì)
- 數(shù)據(jù)庫課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)學(xué)生信息管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)---學(xué)生信息管理系統(tǒng)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論