版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 本科生C語言課程設計</p><p> 題 目 學生成績管理系統(tǒng)</p><p><b> 一、課程設計</b></p><p> 題目:學生成績管理系統(tǒng)</p><p> 給出n個學生的4門考試的成績表,每個學生的信息由學號、姓名以及各科成績組成。對學生的考試成績進行有關統(tǒng)計:按
2、某一科分數(shù)或平均分數(shù)高低次序,列出名次表,分數(shù)相同的為同一名次;按名次打印出每個學生的學號、姓名、總分以及各科成績,并打印統(tǒng)計表。</p><p><b> 三、概要設計</b></p><p><b> 程序要有的功能:</b></p><p> 1. 輸入學生成績 </p><p><
3、;b> 2. 保存成績 </b></p><p> 3. 學生成績排序 </p><p> 4. 學生成績查詢 </p><p> 5. 學生成績清單 </p><p><b> 6. 退出管理系統(tǒng)</b></p><p> 程序運行當中,通過選擇對應的功能序號來實現(xiàn)
4、所需功能。對輸入的數(shù)據(jù)要有事先的分析,如果用戶輸入的數(shù)據(jù)與實際不相符如輸入成績的數(shù)值為負,則程序應輸出相應的提示:“數(shù)據(jù)不存在”。再者就是,當再輸入完相應的數(shù)據(jù)后,程序作出相應的提示,詢問用戶是否要繼續(xù)輸入。在排列學生成績時候,如果出現(xiàn)成績相同的情況,程序自動作出處理。</p><p><b> 四、設計任務</b></p><p> 將程序分為六個方面:1. 輸
5、入學生成績 、2. 保存成績 、3. 學生成績排序 、4. 學生成績查詢 、5. 學生成績清單 、6. 退出管理系統(tǒng)。每個人負責兩個方面的程序,其中侯蒙召負責1、2兩個程序,楊天靜負責3、4兩個,張振陸負責5、6兩個,最后交由組長侯蒙召組合整理,形成現(xiàn)在的總的程序。</p><p><b> 流程圖:</b></p><p><b> 四、詳細設計<
6、;/b></p><p><b> 源程序:</b></p><p> #include<stdio.h></p><p> #include<stdlib.h></p><p> #include<string.h></p><p> #inc
7、lude<conio.h></p><p> struct Student</p><p> {char name[20];</p><p><b> int no;</b></p><p><b> int math;</b></p><p> int
8、 program;</p><p> int english;</p><p> int chinese;</p><p><b> int aver;</b></p><p> }stu[100],t;</p><p> int num=0;</p><p>
9、 int menu()</p><p><b> {</b></p><p><b> int a;</b></p><p> char s[20];</p><p> system("cls");</p><p><b> /*程序介
10、紹*/</b></p><p> printf(" 歡迎使用學生成績管理系統(tǒng),該系統(tǒng)包括以下幾項功能,請根據(jù)提示做相應操作\n");</p><p> printf(" 1->輸入學生成績\n");</p><p> printf(" 2->保存成績\n");</p
11、><p> printf(" 3->學生成績排序\n");</p><p> printf(" 4->學生成績查詢\n");</p><p> printf(" 5->學生成績清單\n");</p><p> printf(" 6->退出
12、管理系統(tǒng)\n");/*選擇操作*/</p><p> printf("\n");</p><p> printf(" 請選擇要進行操作的編號:\n");</p><p><b> do{</b></p><p> printf("Enter you c
13、hoice(0~6):");</p><p> scanf("%s",s);</p><p> a=atoi(s);</p><p><b> }</b></p><p> while (a<0 || a>6);</p><p><b>
14、 return a;</b></p><p><b> }</b></p><p> int enter()</p><p><b> {</b></p><p><b> int i=0;</b></p><p> printf
15、("請輸入學生信息\n");</p><p> printf("NO.:");</p><p> scanf("%d",&stu[num].no);</p><p> printf("姓名:");</p><p> scanf("%10s
16、",stu[num].name);</p><p> printf("數(shù)學:");</p><p> scanf("%4d",&stu[num].math);</p><p> printf("程序設計:");</p><p> scanf("%4
17、d",&stu[num].program);</p><p> printf("英語:");</p><p> scanf("%4d",&stu[num].english);</p><p> printf("語文:");</p><p> scan
18、f("%4d",&stu[num].chinese);</p><p> stu[num].aver=(stu[num].math+stu[num].program+stu[num].english+stu[num].chinese)/4;</p><p> num=num+1;</p><p> printf("是否繼續(xù)
19、輸入?(y/n):\n");</p><p> if(getch()=='y'||getch()=='Y')</p><p><b> enter();</b></p><p><b> else </b></p><p> return(0);&l
20、t;/p><p><b> }</b></p><p> void save()</p><p><b> {</b></p><p><b> FILE*fp;</b></p><p><b> int i;</b><
21、/p><p> if((fp=fopen("stu.dat","wb"))==NULL)</p><p><b> {</b></p><p> printf("The fire can not open\n");</p><p><b> ret
22、urn;</b></p><p><b> }</b></p><p> for(i=0;i<num;i++)</p><p> if(fwrite(&stu[i],sizeof(struct Student),1,fp)!=1)</p><p><b> {</b>
23、;</p><p> printf("The wirte error\n");</p><p><b> return;</b></p><p><b> }</b></p><p> printf("數(shù)據(jù)保存成功\n");</p>&l
24、t;p> system("pause");</p><p> fclose(fp);</p><p><b> }</b></p><p> void sort()</p><p><b> {</b></p><p> int i, j
25、, k;</p><p> int sort_no;</p><p> printf("1--按數(shù)學成績排\n");</p><p> printf("2--按程序設計成績排\n");</p><p> printf("3--按英語成績排\n");</p>&l
26、t;p> printf("4--按語文成績排\n");</p><p> printf("5--按平均分成績排\n");</p><p> printf("6--返回主菜單\n");</p><p> scanf("%d",&sort_no);</p>
27、<p> if(sort_no==1)// 數(shù)學成績排序</p><p><b> {</b></p><p> for(i=0; i<num-1; i++)</p><p><b> {</b></p><p><b> k = i;</b>&
28、lt;/p><p> for(j=i+1; j<num; j++)</p><p> if(stu[j].math>stu[k].math) </p><p><b> k=j;</b></p><p><b> {</b></p><p><b>
29、 t=stu[k];</b></p><p> stu[k]=stu[i];</p><p><b> stu[i]=t;</b></p><p><b> }</b></p><p><b> }</b></p><p> pr
30、intf("學號 姓名 數(shù)學 程序 英語 語文 平均分\n");</p><p> for(i=0; i<num; i++)</p><p><b> {</b></p><p> printf("%4d %5s %5d", stu[i].no, stu[i].na
31、me, stu[i].math);</p><p> printf("%5d %5d %4d %4d\n",stu[i].english, stu[i].chinese, stu[i].program, stu[i].aver);</p><p><b> }</b></p><p><b>
32、}</b></p><p> else if(sort_no == 2)// 程序設計成績排序</p><p><b> {</b></p><p> for(i=0; i<num-1; i++)</p><p><b> {</b></p><p&g
33、t;<b> k = i;</b></p><p> for(j=i+1; j<num; j++)</p><p><b> {</b></p><p> if(stu[j].program>stu[k].program) </p><p><b> k=j;<
34、/b></p><p><b> }</b></p><p><b> t=stu[k];</b></p><p> stu[k]=stu[i];</p><p><b> stu[i]=t;</b></p><p><b>
35、}</b></p><p> printf("學號 姓名 數(shù)學 程序 英語 語文 平均分\n");</p><p> for(i=0; i<num; i++)</p><p><b> {</b></p><p> printf("%4d
36、 %5s %5d", stu[i].no, stu[i].name, stu[i].math);</p><p> printf("%5d %5d %4d %4d\n",stu[i].english, stu[i].chinese, stu[i].program, stu[i].aver);</p><p><b> }</b
37、></p><p><b> }</b></p><p> else if(sort_no == 3)// 英語成績排序</p><p><b> {</b></p><p> for(i=0; i<num-1; i++)</p><p><b&g
38、t; {</b></p><p><b> k = i;</b></p><p> for(j=i+1; j<num; j++)</p><p><b> {</b></p><p> if(stu[j].english>stu[k].english) </p
39、><p><b> k=j;</b></p><p><b> }</b></p><p><b> t=stu[k];</b></p><p> stu[k]=stu[i];</p><p><b> stu[i]=t;</b&g
40、t;</p><p><b> }</b></p><p> printf("學號 姓名 數(shù)學 程序 英語 語文 平均分\n");</p><p> for(i=0; i<num; i++)</p><p><b> {</b></p&
41、gt;<p> printf("%4d %5s %5d", stu[i].no, stu[i].name, stu[i].math);</p><p> printf("%5d %5d %4d %4d\n",stu[i].english, stu[i].chinese, stu[i].program, stu[i].aver);</
42、p><p><b> }</b></p><p><b> }</b></p><p> else if(sort_no == 4)// 語文績排序</p><p><b> {</b></p><p> for(i=0; i<num-1;
43、 i++)</p><p><b> {</b></p><p><b> k = i;</b></p><p> for(j=i+1; j<num; j++)</p><p><b> {</b></p><p> if(stu[j].
44、chinese>stu[k].chinese) </p><p><b> k=j;</b></p><p><b> }</b></p><p><b> t=stu[k];</b></p><p> stu[k]=stu[i];</p><
45、p><b> stu[i]=t;</b></p><p><b> }</b></p><p> printf("學號 姓名 數(shù)學 程序 英語 語文 平均分\n");</p><p> for(i=0; i<num; i++)</p><p
46、><b> {</b></p><p> printf("%4d %5s %5d", stu[i].no, stu[i].name, stu[i].math);</p><p> printf("%5d %5d %4d %4d\n",stu[i].english, stu[i].chinese, s
47、tu[i].program, stu[i].aver);</p><p><b> }</b></p><p><b> }</b></p><p> else if(sort_no==5) // 平均分排序</p><p><b> {</b></p>
48、<p> for(i=0; i<num-1; i++)</p><p><b> {</b></p><p><b> k = i;</b></p><p> for(j=i+1; j<num; j++)</p><p><b> {</b>&
49、lt;/p><p> if(stu[j].aver>stu[k].aver) </p><p><b> k=j;</b></p><p><b> }</b></p><p><b> t=stu[k];</b></p><p> stu[
50、k]=stu[i];</p><p><b> stu[i]=t;</b></p><p><b> }</b></p><p> printf("學號 姓名 數(shù)學 程序 英語 語文 平均分\n");</p><p> for(i=0; i<
51、num; i++)</p><p><b> {</b></p><p> printf("%4d %5s %5d", stu[i].no, stu[i].name, stu[i].math);</p><p> printf("%5d %5d %4d %4d\n",stu[i].
52、english, stu[i].chinese, stu[i].program, stu[i].aver);</p><p><b> }</b></p><p><b> }</b></p><p> else if(sort_no==6) // 返回上層</p><p><b>
53、; {</b></p><p><b> return;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> pr
54、intf("錯誤的排序方式!\n");</p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> void list()</p><p>&
55、lt;b> {</b></p><p><b> int i;</b></p><p> printf("學生成績清單\n");</p><p> printf("學號 姓名 數(shù)學 程序 英語 語文 平均分\n");</p><p>
56、; for(i=0; i<num; i++)</p><p><b> {</b></p><p> printf("%4d %5s %5d", stu[i].no, stu[i].name, stu[i].math);</p><p> printf("%5d %5d %4d %4
57、d\n",stu[i].english, stu[i].chinese, stu[i].program, stu[i].aver);</p><p><b> }</b></p><p><b> }</b></p><p> void search()</p><p><b&
58、gt; {</b></p><p> char NAME[20];</p><p> int search_no;</p><p><b> int no,i;</b></p><p> printf(" 請選擇以下的方式對學生數(shù)據(jù)進行查詢:\n");</p>
59、<p> printf(" 1->學號查詢\n");</p><p> printf(" 2->姓名查詢\n");</p><p> printf(" 3->返回主菜單\n");</p><p> printf(" 請選擇要進行查詢內(nèi)容
60、的編號:\n");</p><p> scanf(" %d", &search_no);</p><p> if(search_no==1)</p><p><b> {</b></p><p> printf(" 請輸入要查詢的學號\n");<
61、;/p><p> scanf("%d", &no);</p><p> for(i=0; i<num; i++)</p><p><b> {</b></p><p> if(no==stu[i].no)</p><p><b> {</b&
62、gt;</p><p> printf("學號 姓名 數(shù)學 程序 英語 語文 平均分\n");</p><p> printf("%4d %5s %5d", stu[i].no, stu[i].name, stu[i].math);</p><p> printf("%5d %5
63、d %4d %4d\n",stu[i].english, stu[i].chinese, stu[i].program, stu[i].aver);</p><p><b> }</b></p><p><b> else </b></p><p> printf("數(shù)據(jù)不存在"
64、;);</p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> else if(search_no==2)</p><p><b> {</
65、b></p><p> printf(" 請輸入要查詢的姓名\n");</p><p> scanf("%s", NAME);</p><p> for(i=0; i<num; i++)</p><p><b> {</b></p><
66、p> if(strcmp(NAME,stu[i].name)==0)</p><p><b> {</b></p><p> printf("學號 姓名 數(shù)學 程序設計 英語 語文 平均分\n");</p><p> printf("%4d %5s %5d", s
67、tu[i].no, stu[i].name, stu[i].math);</p><p> printf("%5d %5d %4d %4d\n",stu[i].english, stu[i].chinese, stu[i].program, stu[i].aver);</p><p><b> }</b></p>&
68、lt;p><b> else </b></p><p> printf("數(shù)據(jù)不存在");</p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b>&l
69、t;/p><p><b> else </b></p><p><b> return;</b></p><p><b> }</b></p><p> void main()</p><p><b> {</b></p
70、><p><b> menu();</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> switch(menu())</p><p><b> { case 1:</b
71、></p><p><b> {</b></p><p><b> enter();</b></p><p><b> break;</b></p><p><b> }</b></p><p><b>
72、case 2:</b></p><p><b> {</b></p><p><b> save();</b></p><p><b> break;</b></p><p><b> }</b></p><p>
73、;<b> case 3:</b></p><p><b> {</b></p><p><b> sort();</b></p><p> system("pause");</p><p><b> break;</b>&l
74、t;/p><p><b> }</b></p><p><b> case 4:</b></p><p><b> {</b></p><p><b> search();</b></p><p> system("
75、pause");</p><p><b> break;</b></p><p><b> }</b></p><p><b> case 5:</b></p><p><b> {</b></p><p><
76、;b> list();</b></p><p> system("pause");</p><p><b> break;</b></p><p><b> }</b></p><p><b> case 6:</b></
77、p><p><b> {</b></p><p> printf("baibai!\n");</p><p><b> exit(0);</b></p><p><b> break;</b></p><p><b>
78、 }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 五、程序使用說明、測試分析及結果</p><p><b> 程序的主要功能:
79、</b></p><p><b> >輸入學生成績</b></p><p><b> >保存成績</b></p><p><b> >學生成績排序</b></p><p><b> >學生成績查詢</b><
80、/p><p><b> >學生成績清單</b></p><p><b> >退出管理系統(tǒng)</b></p><p> 輸入程序對應功能的相應序號,選擇相應功能,然后根據(jù)提示繼續(xù)。例如:想要輸入學生的相關信息,輸入1,然后根據(jù)提示輸入學生相關信息,再輸入2,保存學生信息。</p><p>
81、 2、對應測試結果與分析:</p><p> 程序運行當中,通過選擇對應的功能序號來實現(xiàn)所需功能。對輸入的數(shù)據(jù)要有事先的分析,如果用戶輸入的數(shù)據(jù)與實際不相符如輸入成績的數(shù)值為負,則程序應輸出相應的提示:“數(shù)據(jù)不存在”。當再輸入完相應的數(shù)據(jù)后,程序作出相應的提示,詢問用戶是否要保存數(shù)據(jù)。</p><p> 3、每個模塊設計和調(diào)試時存在問題的思考</p><p>
82、 輸入完相應的數(shù)據(jù)后,程序不會自動作出相應的提示,詢問用戶是否要保存數(shù)據(jù)。在排列學生成績時候,如果出現(xiàn)成績相同的情況,程序自動作出處理。</p><p> 4、運行界面(截圖)</p><p><b> ?。▓D1)</b></p><p><b> (圖2)</b></p><p> 5、主
83、界面設計如下:</p><p> 歡迎使用學生成績管理系統(tǒng),該系統(tǒng)包含以下幾種功能,請根據(jù)提示做相關操作 </p><p><b> 1->輸入學生成績</b></p><p><b> 2->保存成績</b></p><p><b> 3->學生成績排序<
84、/b></p><p><b> 4->學生成績查詢</b></p><p><b> 5->學生成績清單</b></p><p><b> 6->退出管理系統(tǒng)</b></p><p> 請選擇要進行的編號:</p><p&g
85、t; Enter your choice(1~6):</p><p><b> 六、課程設計總結</b></p><p> 通過此次《數(shù)據(jù)結構》課程設計,我初步掌握了程序設計的基本方法,也學會了怎樣去借鑒別人的方法和經(jīng)驗,知道如何怎樣通過查找資料和整合處理這些資料來解決問題,這為以后的大學畢業(yè)設計論文打下了一個初步的基礎。同時也享受了一種成功的喜悅,在這為期一周
86、的課程設計當中,我從開始確定論文題目,然后是上網(wǎng)和上圖書館查找資料,編寫C++語言原程序,然后是進行編譯,這個環(huán)節(jié)是一個非常需要對問題認真的態(tài)度和足夠的耐心,常常會因為一小點的錯誤而在編譯失敗與再次修改的漫漫循環(huán)之路中,但失敗的越多,對人的考驗就越多,在編譯運行成功之后的享受成功的喜悅也就越多。另外在調(diào)試程序的過程中不斷的思考和運用已經(jīng)學到的知識,這對于自己是有很大的提高的。 </p>&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設計--學生成績管理系統(tǒng)
- c語言課程設計---學生成績管理系統(tǒng)
- c語言課程設計學生成績管理系統(tǒng)
- c語言課程設計-學生成績管理系統(tǒng)
- c語言課程設計----學生成績管理系統(tǒng)
- c語言課程設計學生成績管理系統(tǒng)
- c語言課程設計學生成績管理系統(tǒng)
- c語言課程設計-學生成績管理系統(tǒng)
- c語言課程設計-學生成績管理系統(tǒng)
- 學生成績管理系統(tǒng)--c語言課程設計
- c語言課程設計--學生成績管理系統(tǒng)
- c語言課程設計--學生成績管理系統(tǒng)
- c語言課程設計---學生成績管理系統(tǒng)
- c語言課程設計-學生成績管理系統(tǒng)
- c語言課程設計———學生成績管理系統(tǒng)
- c語言課程設計學生成績管理系統(tǒng)
- c語言課程設計---學生成績管理系統(tǒng)
- c語言課程設計_學生成績管理系統(tǒng)
- c語言課程設計學生成績管理系統(tǒng)設計
- c語言課程設計--學生成績管理
評論
0/150
提交評論