版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 目 錄</b></p><p><b> 目 錄2</b></p><p> 一、課程設(shè)計的目的與要求2</p><p><b> 二、題目說明4</b></p><p> 2.1程序開發(fā)背景4</p>
2、<p> 2.2開發(fā)工具介紹4</p><p><b> 三、總體設(shè)計6</b></p><p> 3.1.系統(tǒng)開發(fā)平臺:6</p><p> 3.2 .系統(tǒng)流程圖:7</p><p> 3.3功能結(jié)構(gòu)圖:8</p><p><b> 四、詳細(xì)說明9&l
3、t;/b></p><p> 4.1 系統(tǒng)實(shí)施9</p><p> 五、遇到的問題和解決方法17</p><p> 六、課程設(shè)計總結(jié)19</p><p><b> 七、參考文獻(xiàn)20</b></p><p> 附錄(源程序代碼)21</p><p>
4、 課程設(shè)計的目的與要求</p><p> 一、課程設(shè)計的目的與要求</p><p> 目的:應(yīng)用所學(xué)C語言知識完成相對復(fù)雜的任務(wù),進(jìn)一步鞏固C語言。理解并將其應(yīng)用到實(shí)際問題中去。</p><p> 要求:(1)整個程序用C 語言來實(shí)現(xiàn)</p><p> ?。?)利用指針等來實(shí)現(xiàn)學(xué)生信息管理的數(shù)據(jù)結(jié)構(gòu)設(shè)計</p><
5、p> ?。?)系統(tǒng)具有查詢、輸入、輸出、修改、排序、刪除、退出基本功能</p><p> ?。?)系統(tǒng)的各個功能模塊都用函數(shù)的形式來實(shí)現(xiàn)</p><p> (5)可以將學(xué)生信息從文件中讀取出來 </p><p><b> 1課程設(shè)計步驟:</b></p><p> ?。?)對系統(tǒng)進(jìn)行功能需求分析;</p&
6、gt;<p> ?。?)設(shè)計合理的數(shù)據(jù)結(jié)構(gòu)和系統(tǒng)框架;</p><p> ?。?)編程簡練,程序功能齊全,能正確運(yùn)行;</p><p> (4)說明書、流程圖要清楚;</p><p> (5)課題完成后必須按要求提交課程設(shè)計說明書;</p><p> 在課程設(shè)計過程中要求學(xué)生:重視課程設(shè)計環(huán)節(jié),用嚴(yán)謹(jǐn)、科學(xué)和踏實(shí)的工作態(tài)度
7、對待課程設(shè)計的每一項(xiàng)任務(wù);按照課程設(shè)計的題目要求,獨(dú)立地完成各項(xiàng)任務(wù),不允許相互抄襲;按時到機(jī)房上機(jī),并接受教師的檢查。認(rèn)真編寫課程設(shè)計報告。</p><p> 課程設(shè)計可以由2~4名同學(xué)合作完成一個課題。全體成員應(yīng)共同協(xié)作完成選題,確定設(shè)計思想,進(jìn)行功能模塊劃分,然后由組長為各成員分配任務(wù)。整個設(shè)計期間,組長負(fù)責(zé)協(xié)調(diào)工作。各小組成員明確自己的任務(wù)后,應(yīng)獨(dú)立完成各自模塊的設(shè)計、編碼和調(diào)試,獨(dú)立完成課程設(shè)計說明書
8、。小組成員要理解同組其他成員設(shè)計的模塊,熟練操作本組設(shè)計。</p><p> 2 考核方式和成績評定</p><p><b> 考核分為兩個部分:</b></p><p> ?。?)程序運(yùn)行情況:按規(guī)定時間到機(jī)房運(yùn)行程序,由老師檢查運(yùn)行情況</p><p> ?。?)課程設(shè)計報告:是否按規(guī)定書寫課程設(shè)計要求的各項(xiàng)內(nèi)容
9、</p><p> 課程設(shè)計成績采用百分制:100%=平時(20%)+上機(jī)檢查(30%)+課程設(shè)計報告(50%)</p><p><b> 二、題目說明</b></p><p><b> 題目說明</b></p><p> 學(xué)生信息包括:學(xué)號,姓名。試設(shè)計一學(xué)生信息管理系統(tǒng),使之能提供以下功
10、能:</p><p><b> 系統(tǒng)以菜單方式工作</b></p><p> 學(xué)生信息錄入功能(學(xué)生信息用文件保存)---輸入</p><p> 學(xué)生信息瀏覽功能---輸出</p><p> 查詢、排序功能---算法</p><p><b> 按學(xué)號查詢</b>&l
11、t;/p><p><b> 按姓名查詢</b></p><p> 輸出最大值,最小值,平均值</p><p> 學(xué)生信息的刪除與修改(可選項(xiàng)) </p><p><b> 2.1程序開發(fā)背景</b></p><p> 隨著社會發(fā)展,近年來大學(xué)不斷擴(kuò)招,大學(xué)生人數(shù)不斷的
12、增加,因此如此龐大的人 如果不進(jìn)行有效的管理就大大的增加了工作人員的工作強(qiáng)度,現(xiàn)在電子計算機(jī)技術(shù)和軟件業(yè)的日趨完善給現(xiàn)代辦公帶來了極大的便利,利用軟件就很容易的解決了這種問題從而幫助工作人員高效的合理的管理。本學(xué)生信息管理系統(tǒng)就是本著這個目的,幫助老師進(jìn)行有效的管理,減輕工作強(qiáng)度和提高工作效率,使管理更方便快捷。</p><p><b> 2.2開發(fā)工具介紹</b></p>
13、<p> C語言發(fā)展如此迅速,而且成為最受歡迎的語言之一,主要因?yàn)樗哂袕?qiáng)大的功能。</p><p> C語言具有以下特點(diǎn): </p><p><b> C語言是結(jié)構(gòu)式語言</b></p><p> 結(jié)構(gòu)式語言的顯著特點(diǎn)是代碼級數(shù)據(jù)的分隔化,即程序的各個部分除了必要的信息交流外彼此獨(dú)立。</p><p&g
14、t;<b> C語言功能齊全</b></p><p> C語言具有各種各樣的數(shù)據(jù)類型,并引入了指針概念,可是程序效率更高,另外C語言具有強(qiáng)大的圖形功能,支持多種顯示器和驅(qū)動。</p><p><b> C語言適用范圍大</b></p><p> C語言還有一個突出的特點(diǎn)就是適合于多種操作系統(tǒng)。</p>
15、<p> 通過C語言,我們能夠?qū)崿F(xiàn)學(xué)生的成績的基本管理,完成對其成績的各種操作。</p><p><b> 三、總體設(shè)計</b></p><p> 3.1.系統(tǒng)開發(fā)平臺:</p><p> 學(xué)生成績管理系統(tǒng)是為了方便用戶根據(jù)需要對學(xué)生的各科成績信息進(jìn)行管理的系統(tǒng)。在如今的現(xiàn)代化信息理念下,一個學(xué)生管理系統(tǒng)在國際各大高校的教育
16、機(jī)構(gòu)中是一個必不可少的應(yīng)用程序,他可以方便的對學(xué)生信息進(jìn)行查詢,刪除,修改,排序等功能,大大提高工作效率。</p><p> 學(xué)生成績管理系統(tǒng)包括人員信息的錄入,信息查詢,刪除,添加,排序等操作。內(nèi)容比較龐大復(fù)雜。通過以上說明,我們可以總結(jié)得到如下的系統(tǒng)結(jié)構(gòu)圖。</p><p> 3.2 .系統(tǒng)流程圖:</p><p><b> 圖 3-1<
17、;/b></p><p> 3.3功能結(jié)構(gòu)圖: </p><p><b> 圖 3-2</b></p><p><b> 四、詳細(xì)說明</b></p><p><b> 4.1 系統(tǒng)實(shí)施</b></p><p> #include&l
18、t;stdio.h></p><p> #include<conio.h></p><p><b> (1)定義個結(jié)構(gòu)體</b></p><p><b> 代碼:</b></p><p> struct student</p><p><b&g
19、t; {</b></p><p> int number; /*學(xué)號*/</p><p> char name[10]; /*姓名*/</p><p> int score[4]; /*score[1]: 應(yīng)用數(shù)學(xué)score[2]: 大學(xué)英語score[3]: Jave程序設(shè)計</p><
20、p> score[4]: 計算機(jī)應(yīng)用基礎(chǔ)*/ </p><p> float ave; /*每個學(xué)生平均成績*/ </p><p><b> }</b></p><p> struct student STU input();</p><p> (2) 學(xué)生信息輸入(學(xué)號、姓名、各科
21、成績)代碼:函數(shù)功能:輸入學(xué)生的學(xué)號、姓名、各科成績,函數(shù)參數(shù):結(jié)構(gòu)體指針head,指向存儲學(xué)生信息的結(jié)構(gòu)體數(shù)組的首地址。整形變量n表示學(xué)生數(shù)。函數(shù)返回值:沒有。</p><p> void Appscore(STU *head,int n)</p><p><b> {</b></p><p><b> int j;</
22、b></p><p><b> STU *p;</b></p><p> for(p=head;p<head+n;p++)</p><p><b> {</b></p><p> printf("\ninput number:");</p>&l
23、t;p> scanf("%d",&p->number);</p><p> printf("input name");</p><p> scanf("%s",p->name);</p><p> for(j=0;j<4;j++)</p><p&g
24、t;<b> {</b></p><p> printf("input score%d:"); </p><p> scanf("%d",p->score+j);</p><p><b> }</b></p><p><b> }
25、}</b></p><p><b> 圖 4-1</b></p><p><b> 圖 4-2</b></p><p> 此函數(shù)功能是:學(xué)校從鍵盤上輸入學(xué)生學(xué)號、姓名、各科成績等數(shù)據(jù)。</p><p> ?。?)輸出學(xué)生學(xué)號、姓名、各科成績等信息代碼:函數(shù)功能:輸出學(xué)生學(xué)號、姓名
26、、各科成績等信息;函數(shù)參數(shù):結(jié)構(gòu)體指針head,指向存儲學(xué)生信息的結(jié)構(gòu)體組的首地址。整形變量n表示學(xué)生數(shù),函數(shù)返回值:沒有。</p><p> void printscore(STU *head,int n)</p><p><b> {</b></p><p><b> STU *p;</b></p>
27、<p> int i,temp[4];</p><p> char str[100]={'\0'};</p><p> strcat(str,"Number Name");</p><p> for(i=1;i<=4;i++)</p><p><b> {</
28、b></p><p> strcat(str, "score");</p><p> itoa(i,temp,10) ;</p><p> strcat(str,temp);</p><p> strcat(str," ");</p><p><b>
29、}</b></p><p> strcat(str," ave ");</p><p> printf("%s",str); /*打印表頭*/</p><p> for(p=head;p<head+n;p++)</p><p><b> {</b>&
30、lt;/p><p> printf("\nNO.%3d%8s",p->number,p->name);</p><p> for(i=0;i<4;i++)</p><p><b> {</b></p><p> printf("%7d",p->score
31、[i]);</p><p><b> }</b></p><p> printf("%9.2f",p->ave);</p><p><b> }</b></p><p><b> }</b></p><p> 函數(shù)功能
32、:為打印出學(xué)生學(xué)號、姓名、各科成績等信息</p><p> ?。?)計算學(xué)生個人平均分并按個人平均分排名</p><p> A: 計算學(xué)生個人平均分代碼:函數(shù)功能:計算學(xué)生個人平均分;函數(shù)參數(shù):結(jié)構(gòu)體指針head,指向存儲學(xué)生信息的結(jié)構(gòu)體組的首地址。整形變量n表示學(xué)生數(shù)。函數(shù)返回值:沒有。</p><p> void avescore(STU *head,int
33、 n)</p><p><b> {</b></p><p><b> STU *p;</b></p><p> int i,sum;</p><p> for(p=head;p<head+n;p++)</p><p><b> {</b>
34、;</p><p><b> sum=0;</b></p><p> for(i=0;i<4;i++)</p><p><b> {</b></p><p> sum=sum+p->score[i];</p><p><b> }</b&
35、gt;</p><p> p->ave=(float)sum/4;</p><p><b> }</b></p><p><b> }</b></p><p> B: )按個人平均分排名代碼:函數(shù)功能:按個人平均分排名;函數(shù)參數(shù):結(jié)構(gòu)體指針head,指向存儲學(xué)生信息的結(jié)構(gòu)體組的首地址。
36、整形變量n表示學(xué)生數(shù)。函數(shù)返回值:沒有。</p><p> void sortscore(STU *head,int n </p><p><b> {</b></p><p> int i,j,k;</p><p><b> STU temp;</b></p><p&g
37、t; for(i=0;i<n-1;i++)</p><p><b> {</b></p><p><b> k=i;</b></p><p> for(j=i;j<n;j++)</p><p><b> {</b></p><p>
38、 if((head+j)->ave>(head+k)->ave)</p><p><b> {</b></p><p><b> k=j;</b></p><p><b> }</b></p><p><b> if(k!=i)</b
39、></p><p><b> {</b></p><p> temp=*(head+k);</p><p> *(head+k)=*(head+i);</p><p> *(head+i)=temp; }}}</p><p> ?。?)計算各科平均分</p><p
40、> 函數(shù)功能:代碼:計算學(xué)生各科平均分,函數(shù)參數(shù):結(jié)構(gòu)體指針head,指向存儲學(xué)生信息的結(jié)構(gòu)體組的首地址,整形變量n表示學(xué)生數(shù),函數(shù)返回值。</p><p> void av2score(STU *head,int n)</p><p><b> {</b></p><p><b> STU *p;</b>&
41、lt;/p><p> int i,sum;</p><p> float ave[4];</p><p> for(i=0;i<4;i++)</p><p><b> {</b></p><p><b> sum=0;</b></p><p&g
42、t; for(p=head;p<head+n;p++)</p><p><b> {</b></p><p> sum=sum+(p->score[i]);</p><p><b> }</b></p><p> ave[i]=sum/10;</p><p&
43、gt;<b> }</b></p><p> for(i=0;i<4;i++)</p><p> printf("%7d",ave[i]);</p><p><b> }</b></p><p> ?。?)統(tǒng)計各科成績最高分和最低分。函數(shù)功能:統(tǒng)計各科成績最高分和最
44、低分</p><p> 函數(shù)參數(shù):結(jié)構(gòu)體指針head,指向存儲學(xué)生信息的結(jié)構(gòu)體組的首地址。整形變量n表示學(xué)生數(shù),函數(shù)返回值:沒有。</p><p> void maxmin(STU *head,int n)</p><p><b> {</b></p><p><b> STU *p;</b>
45、;</p><p> int i,max,min;</p><p> for(i=0;i<4;i++)</p><p><b> {</b></p><p> max=p->score[i];</p><p> min=p->score[i];</p>&
46、lt;p> for(p=head;p<head+n;p++)</p><p><b> {</b></p><p> if(p->score[i]>max)</p><p> max=p->score[i];</p><p> if(p->score[i]<min)&l
47、t;/p><p> min=p->score[i];</p><p><b> }</b></p><p> printf("score[%d] max is:%d",i,max);</p><p> printf("score[%d] min is:%d",i,min)
48、;</p><p><b> }</b></p><p><b> }</b></p><p> (7)學(xué)生查詢成績:函數(shù)功能:查找學(xué)生姓名;函數(shù)參數(shù):結(jié)構(gòu)體指針head,指向存儲學(xué)生信息的結(jié)構(gòu)體組的首地址。整形變量n表示學(xué)生數(shù),字符數(shù)組變量ming[10]:要查找的學(xué)生的姓名。函數(shù)返回值:學(xué)生成績名次。</p
49、><p><b> A:</b></p><p> int searchname(STU *head,char ming[10],int n)</p><p><b> {</b></p><p><b> int i;</b></p><p>
50、for(i=0;i<n;i++)</p><p><b> {</b></p><p> if(strcmp((head+i)->name,ming)==0)</p><p><b> return i;</b></p><p><b> }</b><
51、/p><p> return -1;</p><p><b> }</b></p><p><b> B:</b></p><p> 函數(shù)功能:找到學(xué)生的信息并輸出;函數(shù)參數(shù):結(jié)構(gòu)體指針head,指向存儲學(xué)生信息的結(jié)構(gòu)體組的首地址。整形變量n表示學(xué)生數(shù)。函數(shù)返回值:沒有。</p>
52、<p> void searchscore(STU *head,int n)</p><p><b> {</b></p><p> char ming[10];</p><p><b> int find;</b></p><p> printf("please in
53、put the name you want to search:");</p><p> scanf("%s",ming);</p><p> find=searchname(head,ming[10],n);</p><p> if(find==(-1))</p><p> printf("\
54、not find!\n");</p><p><b> else</b></p><p><b> {</b></p><p> printscore(head+find,1);</p><p> printf("pai ming is:%7d",find);&
55、lt;/p><p><b> }</b></p><p><b> }</b></p><p><b> 圖 4-3</b></p><p> ?。?)函數(shù)功能:顯示菜單并獲得學(xué)生鍵盤輸入的選項(xiàng),函數(shù)參數(shù):沒有;函數(shù)返回值:學(xué)生輸入的選項(xiàng)。</p><
56、;p> char menu(void)</p><p><b> {</b></p><p><b> char ch;</b></p><p> printf("#=========================================#\n");</p><
57、;p> printf("# student's score manage system #\n");</p><p> printf("#=========================================#\n");</p><p> printf("#
58、 1.pai xu houjie guo #\n");</p><p> printf("# 2.ge kezuigaofenyuzidifen #\n");</p><p> printf("# 3.search scor
59、 #\n");</p><p> printf("# 0.end program #\n");</p><p> printf("#=========================================#\n");</
60、p><p> printf("please input the num");</p><p> scanf("%c",&ch);</p><p> return ch;</p><p><b> }</b></p><p><b>
61、main程序:</b></p><p><b> main()</b></p><p><b> char ch;</b></p><p><b> int n=10;</b></p><p> STU stu[10];</p><p&g
62、t; Appscore(stu,n); /*先輸入學(xué)生成績*/</p><p><b> while(1)</b></p><p><b> {</b></p><p> ch=menu(); /*實(shí)現(xiàn)菜單的顯示*/</p><p> sw
63、itch(ch)</p><p><b> {</b></p><p> case'1':avescore()stu,n ; </p><p> printscore(stu,n); /*平均成績降序輸出成績表*/ </p><p><b> break;<
64、/b></p><p> case'2':maxmin(stu,n); /*各科最高分和最低分*/</p><p><b> break;</b></p><p> case'3':avescore(stu,n); /*輸入姓名查詢成績*/</p><
65、;p> searchscore(stu,n);</p><p><b> break;</b></p><p> case'0':exit(0);</p><p> printf("end of program");</p><p><b> break;&l
66、t;/b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 五、遇到的問題和解決方法</p><p> ?。?)剛開始編寫程序,對各個函數(shù)的運(yùn)用不熟練,因此
67、在開始的時候,總是出錯,在看書查看資料后,慢慢的好了起來。也沒有一開始出錯的。</p><p> ?。?)剛開始執(zhí)行輸入函數(shù),按學(xué)號順序輸入十個學(xué)生的成績,輸完后執(zhí)行顯示功能,學(xué)生信息記錄是按學(xué)號的反順序顯示的,所以在輸入信息時只能按學(xué)號反順序輸入,最后就按學(xué)號正常順序輸出了。</p><p> ?。?)剛開始行輸入函數(shù)時,在學(xué)號輸“0”后,不能一下子退出返回菜單,仍彈出需要輸入的信息。但
68、不影響輸入結(jié)果。所以在學(xué)號輸“0”后,輸入的學(xué)生信息是無效的。</p><p> (4)輸入太多個學(xué)生的信息時,屏幕顯示不能控制為一頁一頁顯示,所以為了方便起見,不要輸入太多記錄,十七左右為最佳。</p><p> (5)在沒有輸入任何信息的情況下,去執(zhí)行其他功能,顯示“沒有任何學(xué)生資料,請先建立鏈表!”</p><p> (6)在輸入選項(xiàng)時不能輸入字母,否則
69、會死循環(huán),建議不要亂輸字母。</p><p> ?。?).學(xué)生初始信息模塊:</p><p> 其中包括學(xué)生的姓名、學(xué)號和性別以及學(xué)生的語文、數(shù)學(xué)、英語和計算機(jī)等相關(guān)信息;可用函數(shù)cin(stu *p1)來實(shí)現(xiàn)此操作。當(dāng)正確輸入存在的學(xué)生學(xué)號,系統(tǒng)進(jìn)行判斷時,提示不存在此學(xué)生。</p><p><b> 解決辦法及步驟:</b></p
70、><p> a.一個個輸出所有的學(xué)生的學(xué)號,檢查文件中是否有此學(xué)生,發(fā)現(xiàn)有。</p><p> b .既然有此學(xué)生,那么檢查循環(huán)判斷是否有此學(xué)生的語句發(fā)現(xiàn)沒有錯</p><p> c.輸出用于循環(huán)檢查語句中的學(xué)生信息,發(fā)現(xiàn)亂碼</p><p> d.仔細(xì)分析亂碼的原因,最后發(fā)現(xiàn)是變量的類型錯誤,錯將學(xué)生類型的結(jié)構(gòu)體指針變量定義為了其他類型
71、的指針變量。</p><p><b> 問題三、插入模塊:</b></p><p> ?。?).可用insert( )函數(shù)來實(shí)現(xiàn)。其中通過學(xué)號的大小來比較的,并且以此來排序。當(dāng)我們輸入插入信息時,系統(tǒng)卻提示插入不進(jìn)數(shù)據(jù)。</p><p><b> 解決辦法及步驟:</b></p><p>
72、a、檢查所編寫的程序代碼是否完全正確,若不是,則改之,然后再繼續(xù)正確輸入插入信息看能否插入進(jìn)去得到所要插入的學(xué)生信息以及學(xué)生的語文、數(shù)學(xué)、英語和計算機(jī)的成績。</p><p> b、檢查當(dāng)我們在輸入插入信息時,看是否我們輸入的插入信息有錯誤的地方。</p><p><b> 六、課程設(shè)計總結(jié)</b></p><p> 這次課程設(shè)計,我感慨
73、頗多,從理論到實(shí)踐,在整整一星期的日子里,我學(xué)到很多很多的東西,真的驗(yàn)證了:只有堅(jiān)持不懈才能更接近成功。沒有人生來什么東西都會,只要努力你一定不會比別人差。這次實(shí)訓(xùn)不僅鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的內(nèi)容。通過這次課程設(shè)計使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才是真正的知識,才能提高自己的實(shí)際動手能力和獨(dú)立思考的能力。</
74、p><p> 在設(shè)計的過程遇到了各種各樣的問題,例如,有的程序會出現(xiàn)各種錯誤,要通過調(diào)試和修改,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,通過這次課程設(shè)計,把以前所學(xué)過的知識重新溫故,鞏固了所學(xué)的知識。使自己由原來的對c語言的迷茫和恐懼變成了理解和樂觀。</p><p><b> 七、參考文獻(xiàn)</b></p>
75、<p> (1)《C程序設(shè)計》;譚浩強(qiáng)著;清華大學(xué)出版社出版。</p><p> (2)《C語言入門經(jīng)典(原書第3版)》;張欣譯;Apress出版社出版。</p><p> ?。?)《C語言程序設(shè)計》;秀峰,黃倩譯;人民電出版社出版。</p><p> ?。?)《實(shí)用C語言簡明教程》;顧小晶著;.中國電力出版社出版。</p><
76、p> (5)《C語言程序設(shè)計》; 廖雷著;北京:高等教育出版社出版。</p><p><b> 附錄(源程序代碼)</b></p><p> #include<stdio.h></p><p> #include<conio.h></p><p> struct student&l
77、t;/p><p><b> {</b></p><p> int number;</p><p> char name[10];</p><p> int score[4];</p><p> float ave;</p><p><b> };</
78、b></p><p> struct student STU input();</p><p> void Appscore(STU *head,int n)</p><p><b> {</b></p><p><b> int j;</b></p><p>
79、;<b> STU *p;</b></p><p> for(p=head;p<head+n;p++)</p><p><b> {</b></p><p> printf("\ninput number:");</p><p> scanf("%d&q
80、uot;,&p->number);</p><p> printf("input name");</p><p> scanf("%s",p->name);</p><p> for(j=0;j<4;j++)</p><p><b> {</b>&
81、lt;/p><p> printf("input score%d:");</p><p> scanf("%d",p->score+j);</p><p><b> }</b></p><p><b> }</b></p><p&
82、gt;<b> }</b></p><p> void printscore(STU *head,int n)</p><p><b> {</b></p><p><b> STU *p;</b></p><p> int i,temp[4];</p>
83、<p> char str[100]={'\0'};</p><p> strcat(str,"Number Name");</p><p> for(i=1;i<=4;i++)</p><p><b> {</b></p><p> strcat(st
84、r, "score");</p><p> itoa(i,temp,10) ;</p><p> strcat(str, temp);</p><p> strcat(str," ");</p><p><b> }</b></p><p> st
85、rcat(str," ave ");</p><p> printf("%s",str);</p><p> for(p=head;p<head+n;p++)</p><p><b> {</b></p><p> printf("\nNO.%3d%8s&q
86、uot;,p->number,p->name);</p><p> for(i=0;i<4;i++)</p><p><b> {</b></p><p> printf("%7d",p->score[i]);</p><p><b> }</b>
87、</p><p> printf("%9.2f",p->ave);</p><p><b> }</b></p><p><b> }</b></p><p> void avescore(STU *head,int n)</p><p>&
88、lt;b> {</b></p><p><b> STU *p;</b></p><p> int i,sum;</p><p> for(p=head;p<head+n;p++)</p><p><b> {</b></p><p><
89、;b> sum=0;</b></p><p> for(i=0;i<4;i++)</p><p><b> {</b></p><p> sum=sum+p->score[i];</p><p><b> }</b></p><p>
90、 p->ave=(float)sum/4;</p><p><b> }</b></p><p><b> }</b></p><p> void av2score(STU *head,int n)</p><p><b> {</b></p>&l
91、t;p><b> STU *p;</b></p><p> int i,sum;</p><p> float ave[4];</p><p> for(i=0;i<4;i++)</p><p><b> {</b></p><p><b>
92、 sum=0;</b></p><p> for(p=head;p<head+n;p++)</p><p><b> {</b></p><p> sum=sum+(p->score[i]);</p><p><b> }</b></p><p&g
93、t; ave[i]=sum/10;</p><p><b> }</b></p><p> for(i=0;i<4;i++)</p><p> printf("%7d",ave[i]);</p><p><b> }</b></p><p>
94、; void maxmin(STU *head,int n)</p><p><b> {</b></p><p><b> STU *p;</b></p><p> int i,max,min;</p><p> for(i=0;i<4;i++)</p><p&
95、gt;<b> {</b></p><p> max=(p->score[i]);</p><p> min=(p->score[i]);</p><p> for(p=head;p<head+n;p++)</p><p><b> {</b></p>&l
96、t;p> if(p->score[i]>max)</p><p> max=p->score[i];</p><p> if(p->score[i]<min)</p><p> min=p->score[i];</p><p><b> }</b></p>
97、<p> printf("score[%d] max is:%d",i,max);</p><p> printf("score[%d] min is:%d",i,min);</p><p><b> }</b></p><p><b> }</b></p&
98、gt;<p> void sortscore(STU *head,int n)</p><p><b> {</b></p><p> int i,j,k;</p><p><b> STU temp;</b></p><p> for(i=0;i<n-1;i++)&l
99、t;/p><p><b> {</b></p><p><b> k=i;</b></p><p> for(j=i;j<n;j++)</p><p><b> {</b></p><p> if((head+j)->ave>(h
100、ead+k)->ave)</p><p><b> {</b></p><p><b> k=j;</b></p><p><b> }</b></p><p><b> if(k!=i)</b></p><p>&l
101、t;b> {</b></p><p> temp=*(head+k);</p><p> *(head+k)=*(head+i);</p><p> *(head+i)=temp;</p><p><b> }</b></p><p><b> }</
102、b></p><p><b> }</b></p><p><b> }</b></p><p> int searchname(STU *head,char ming[10],int n)</p><p><b> {</b></p><p&
103、gt;<b> int i;</b></p><p> for(i=0;i<n;i++)</p><p><b> {</b></p><p> if(strcmp((head+i)->name,ming)==0)</p><p><b> return i;<
104、/b></p><p><b> }</b></p><p> return -1;</p><p><b> }</b></p><p> void searchscore(STU *head,int n)</p><p><b> {</b
105、></p><p> char ming[10];</p><p><b> int find;</b></p><p> printf("please input the name you want to search:");</p><p> scanf("%s"
106、,ming);</p><p> find=searchname(head,ming[10],n);</p><p> if(find==(-1))</p><p> printf("\not find!\n");</p><p><b> else</b></p><p&
107、gt;<b> {</b></p><p> printscore(head+find,1);</p><p> printf("pai ming is:%7d",find);</p><p><b> }</b></p><p><b> }</b&g
108、t;</p><p> char menu(void)</p><p><b> {</b></p><p><b> char ch;</b></p><p> printf("#=========================================#\n"
109、);</p><p> printf("# student's score manage system #\n");</p><p> printf("#=========================================#\n");</p><p> printf("
110、# 1.pai xu houjie guo #\n");</p><p> printf("# 2.ge kezuigaofenyuzidifen #\n");</p><p> printf("# 3.search scor
111、#\n");</p><p> printf("# 0.end program #\n");</p><p> printf("#=========================================#\n");</p><p> printf(&
112、quot;please input the num");</p><p> scanf("%c",&ch);</p><p> return ch;</p><p><b> }</b></p><p><b> main()</b></p>
113、<p><b> {</b></p><p><b> char ch;</b></p><p><b> int n=10;</b></p><p> STU stu[10];</p><p><b> clrscr();</b>
114、</p><p> Appscore(stu,n);</p><p><b> while(1)</b></p><p><b> {</b></p><p> ch=menu();</p><p> switch(ch)</p><p>&
115、lt;b> {</b></p><p> case'1':avescore(stu,n);</p><p> printscore(stu,n);</p><p><b> break;</b></p><p> case'2':maxmin(stu,n);&l
116、t;/p><p><b> break;</b></p><p> case'3':avescore(stu,n);</p><p> searchscore(stu,n);</p><p><b> break;</b></p><p> case
117、39;0':exit(0);</p><p> printf("end of program");</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p>
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計--學(xué)生信息管理
- c語言課程設(shè)計--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計--- 學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計——學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計---學(xué)生信息管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)-c語言課程設(shè)計
- c語言課程設(shè)計---學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計-學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計-學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計-學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計-學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計---學(xué)生信息管理系統(tǒng)設(shè)計
- c語言課程設(shè)計----學(xué)生信息管理系統(tǒng)設(shè)計
- 學(xué)生信息管理系統(tǒng)c語言課程設(shè)計報告
- c語言課程設(shè)計--學(xué)生信息管理系統(tǒng) (2)
- c語言課程設(shè)計--學(xué)生信息管理系統(tǒng) (2)
評論
0/150
提交評論