版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 課 程 設(shè) 計(jì) 報(bào) 告 </p><p> 課程名稱 數(shù)據(jù)結(jié)構(gòu) </p><p> 設(shè)計(jì)題目 學(xué)生成績(jī)管理系統(tǒng) </p><p> 專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) </p><p>
2、班 級(jí) </p><p> 學(xué) 號(hào) </p><p> 姓 名 </p><p> 完成日期 2012年6月7號(hào)
3、 </p><p><b> 一、問題描述</b></p><p> 編寫一個(gè)簡(jiǎn)單的學(xué)生信息管理程序,能實(shí)現(xiàn)對(duì)學(xué)生信息的簡(jiǎn)單管理。 </p><p><b> 二、基本要求</b></p><p> 建立一個(gè)4個(gè)學(xué)生的信息登記表,每個(gè)學(xué)生的信息包括:學(xué)號(hào),姓
4、名,和3門課程的成績(jī)(FOX,C,ENGLISH)。</p><p> 程序運(yùn)行時(shí)顯示一個(gè)簡(jiǎn)單的菜單,例如:</p><p> ?。?)信息輸入(INPUT) (2)總分統(tǒng)計(jì)(COUNT) (3)總分排序(SORT) (4)查詢(QUERY)輸入要求:</p><p><b>
5、 三、測(cè)試數(shù)據(jù)</b></p><p><b> 其中:</b></p><p> (1)對(duì)4個(gè)學(xué)生的信息進(jìn)行輸入;</p><p> ?。?)對(duì)每個(gè)學(xué)生的3門課程統(tǒng)計(jì)總分;</p><p> ?。?)對(duì)4個(gè)學(xué)生的總分按降序排序并顯示出來;</p><p> ?。?)查詢輸入一個(gè)
6、學(xué)號(hào)后,顯示出該學(xué)生的有關(guān)信息;。</p><p><b> 四、算法思想</b></p><p> 信息輸入:采用數(shù)組的形式把自己輸入的那些關(guān)于學(xué)生信息的資料存儲(chǔ)起來,以便于以后的應(yīng)用。</p><p> 打印顯示:把那些已經(jīng)錄入的學(xué)生信息按錄入的順序輸出來檢查是否有錯(cuò)。</p><p> 修改和刪除模塊:錄入
7、的那些信息按要求刪除和修改。</p><p> 查詢模塊:按姓名查詢和按學(xué)好查詢,都是把他們和原來的那些數(shù)據(jù)進(jìn)行比較就可以查找。</p><p> 最后就是總分排序的模塊</p><p><b> 五、數(shù)據(jù)結(jié)構(gòu)</b></p><p> 學(xué)生成績(jī)管理的數(shù)據(jù)類型:</p><p> str
8、uct stu</p><p><b> {</b></p><p> char name[20];</p><p><b> int num;</b></p><p><b> };</b></p><p> struct dom</p
9、><p> { int zong_num;</p><p> int shu_num;</p><p> int ying_num;</p><p> int c_num;</p><p> struct stu st;}s[MAX],p;</p><p><b> 六、測(cè)試情
10、況</b></p><p><b> 1、主菜單界面:</b></p><p> 2、錄入學(xué)生信息時(shí)候的界面:</p><p> 3、查詢模塊的操作頁(yè)面:</p><p> 4、總分排序的操作界面:</p><p><b> 七、心得:</b></
11、p><p> 在選擇題目的時(shí)候我就想了,我可以把原來的程序給改了,可是我還是想的太簡(jiǎn)單了,修改一個(gè)程序不是那么的簡(jiǎn)單的,有時(shí)候還會(huì)把他給復(fù)雜化,因?yàn)樵瓉淼某绦蚨紩?huì)有好多的不能用的語(yǔ)句,需要把他們一句一句的都給刪掉,原來多余的也要?jiǎng)h掉,還有的可要可不要的程序,有時(shí)候自己都拿不準(zhǔn)要不要了,起步的時(shí)候還是有這樣或者那樣的一些不對(duì)的東西,程序的錯(cuò)誤是在所難免的,我們要一步一步的去施行,去修改,沒有免費(fèi)的午餐,有時(shí)候調(diào)程序的
12、時(shí)候就好幾個(gè)小時(shí)坐在那里不動(dòng)一動(dòng),自己的脖子就會(huì)很痛很痛。不過在調(diào)出來程序的時(shí)候一切都是值得的。當(dāng)你成功時(shí)候的那種喜悅,和別人羨慕的表情中,感覺自己很偉大。當(dāng)然在自己調(diào)程序的時(shí)候感覺自己對(duì)程序的了解有了質(zhì)的飛躍。不是每個(gè)人都有這樣的機(jī)會(huì)的。</p><p><b> 八、源程序</b></p><p> #include <stdio.h></p
13、><p> #include "string.h"</p><p> #define MAX 10</p><p> #define PRINT1 printf("---------------------------------------------------------------------------\n")
14、</p><p> #define PRINT2 printf("學(xué)號(hào)--學(xué)生姓名--數(shù)學(xué)成績(jī)--英語(yǔ)成績(jī)--c語(yǔ)言成績(jī)\n\n")</p><p><b> int sum;</b></p><p> struct stu</p><p> {char name[20];int num;
15、};</p><p> struct dom</p><p> {int zong_num, shu_num, ying_num, c_num;</p><p> struct stu st;}s[MAX],p;</p><p> save_message()/*保存信息*/</p><p> { FILE
16、*fp;</p><p><b> int i;</b></p><p> if((fp=fopen("dom.txt","wt"))==NULL)</p><p> {printf("讀文件錯(cuò)誤!\n");</p><p> return 0;}<
17、;/p><p> for(i=0;i<sum;i++)</p><p> if(fwrite(&s[i],sizeof(struct dom),1,fp)!=1)</p><p> printf("寫文件錯(cuò)誤!\n");</p><p> fclose(fp);}</p><p>
18、 input_message()/*輸入模塊*/</p><p> { int i=0,j;</p><p> printf("錄入人數(shù):");</p><p> scanf("%d",&j);</p><p> printf("\n\n 錄入學(xué)生信息(
19、最多%d個(gè))\n",MAX);</p><p> printf(" ----------------------------\n"); do</p><p> { printf("\n 第%d個(gè)學(xué)生\n\n",i+1);</p><p> printf("
20、;\n 學(xué)號(hào): ");</p><p> scanf("%d",&s[i].st.num);</p><p> if(s[i].st.num==0) break;</p><p> printf("\n 學(xué)生姓名: ");</p><p>
21、scanf("%s",s[i].st.name); </p><p> printf("請(qǐng)輸入數(shù)學(xué)成績(jī):");</p><p> scanf("%d",&s[i].shu_num);</p><p> getchar();</p><p> printf(&qu
22、ot;請(qǐng)輸入英語(yǔ)成績(jī):");</p><p> scanf("%d",&s[i].ying_num);</p><p> getchar();</p><p> printf("請(qǐng)輸入C語(yǔ)言成績(jī):");</p><p> scanf("%d",&s[
23、i].c_num);</p><p><b> i++;</b></p><p> }while(i<j);</p><p> printf("\n --%d個(gè)學(xué)生的信息輸入完畢!--\n",i);</p><p><b> sum=i;</b>
24、</p><p> printf("\n 按任意鍵返回主菜單!");</p><p> getchar();</p><p> return 0;}</p><p> int read_message()/*讀取信息*/</p><p> {FILE *fp;</
25、p><p><b> int i=0;</b></p><p> if((fp=fopen("dom.txt","rt"))==NULL)</p><p> {printf("\n\n*****暫時(shí)還沒有任何信息,按任意鍵進(jìn)入主菜單選擇基本信息的錄入!*****\n");return
26、 0; }</p><p> while(!feof(fp))</p><p> {fread(&s[i],sizeof(struct dom),1,fp);</p><p><b> i++;}</b></p><p> fclose(fp);</p><p> return(
27、i);}</p><p> output_message()/*輸出模塊*/</p><p> { int i=0;</p><p> printf("\n\n --學(xué)生信息表-- \n\n");</p><p><b> PRINT2;&l
28、t;/b></p><p><b> PRINT1;</b></p><p> for(i=0;i<sum;i++)</p><p> if(s[i].st.num!=0)</p><p> {printf("%2d%10s%8d%8d%8d\n\n",s[i].st.num,s[
29、i].st.name,</p><p> s[i].shu_num,s[i].ying_num,s[i].c_num);</p><p> printf("\n");}}</p><p> insert_message()/*添加學(xué)生信息*/</p><p> {int i=sum,flag=0;</p>
30、;<p> char choice;</p><p> printf("\n\n 添加一個(gè)新同學(xué)\n");</p><p> printf(" ---------------\n");do</p><p> {printf(&qu
31、ot;\n 新學(xué)號(hào): ");</p><p> scanf("%d",&s[i].st.num);</p><p> printf("\n 學(xué)生姓名: ");</p><p> scanf("%s",s[i].st.name);<
32、;/p><p> printf("\n 數(shù)學(xué)成績(jī) ");</p><p> scanf("%d",&s[i].shu_num);</p><p> printf("\n 英語(yǔ)成績(jī) ");</p><p> scanf("%d&
33、quot;,&s[i].ying_num);</p><p> printf("\n C語(yǔ)言成績(jī) ");</p><p> scanf("%d",&s[i].c_num);</p><p><b> sum++;</b></p><p>
34、printf("\n 要繼續(xù)嗎?(Y/N)");</p><p> getchar();</p><p> scanf("%c",&choice);</p><p> if(choice=='y' || choice=='Y')</p><
35、;p> {flag=1; i++;</p><p> printf("\n 繼續(xù)!\n");}</p><p> else flag=0;</p><p> }while(flag==1);</p><p> printf("\n 按任意鍵返回主
36、菜單!");</p><p> return 0;} /*刪除模塊*/</p><p> del_message()</p><p> {int flag,del_num,i,k;</p><p> char choice; do</p><p> {printf("\n
37、 輸入要?jiǎng)h除的學(xué)生學(xué)號(hào): ");</p><p> scanf("%d",&del_num);</p><p> for(i=0;i<sum;i++)</p><p> if(del_num==s[i].st.num)</p><p> for(k=i;k<sum-1
38、;k++)</p><p> s[k]=s[k+1];sum--;</p><p> printf("\n\n 繼續(xù)嗎?(Y/N)");</p><p> getchar();</p><p> scanf("%c",&choice);</p><
39、;p> if(choice=='y' || choice=='Y')</p><p><b> {flag=1;</b></p><p> printf("\n 繼續(xù)!\n");}</p><p> else flag=0;</p><p&g
40、t; }while(flag==1);</p><p> printf("\n\n 按任意鍵返回主菜單!");</p><p> getchar();</p><p> return 0;}</p><p> revise_message()/*修改模塊*/</p>
41、<p> {int i=0,choices,revise_num,flag=0; </p><p><b> do</b></p><p> {printf("\n 輸入要修改的學(xué)生號(hào): ");</p><p> scanf("%d",&re
42、vise_num);</p><p> for(i=0;i<sum;i++)</p><p> if(s[i].st.num==revise_num)</p><p><b> {</b></p><p> printf("\n --學(xué)生信息--\n");</
43、p><p><b> PRINT1;</b></p><p> PRINT2; printf("%2d%10s%8d%8d%8d\n\n",s[i].st.num,s[i].st.name,s[i].shu_num,s[i].ying_num,s[i].c_num;</p><p> printf("\n
44、 您要修改哪一項(xiàng)?\n");</p><p> printf("\n 1.學(xué)號(hào)\n");</p><p> printf("\n 2.姓名\n");</p><p> printf("\n 3.數(shù)學(xué)成績(jī)\n&
45、quot;);</p><p> printf("\n 4.英語(yǔ)成績(jī)\n");</p><p> printf("\n 5.c語(yǔ)言成績(jī)\n");</p><p> printf("\n 請(qǐng)選擇(1-5): ");</
46、p><p> scanf("%d",&choices);</p><p> switch(choices)</p><p> {case 1:printf("\n 輸入修改后的學(xué)號(hào)");</p><p> scanf("%d",&s[i].st.num)
47、;break;</p><p> case 2:printf("\n 輸入修改后的姓名");</p><p> scanf("%s",s[i].st.name);break; </p><p> case 3:printf("\n 輸入修改后的數(shù)學(xué)成績(jī)");</p&
48、gt;<p> scanf("%d",&s[i].shu_num);break;</p><p> case 4:printf("\n 輸入修改后的英語(yǔ)成績(jī)");</p><p> scanf("%d",&s[i].ying_num);break;</p><p>
49、; case 5:printf("\n 輸入修改后的c語(yǔ)言成績(jī)");</p><p> scanf("%d",&s[i].c_num);break; }</p><p><b> PRINT1;</b></p><p><b> PRINT2;</b><
50、/p><p> printf("%2d%10s%8d%8d%8d\n\n",s[i].st.num,s[i].st.name,s[i].shu_num,s[i].ying_num,s[i].c_num;</p><p><b> break; }</b></p><p> if(i==sum)</p><
51、;p> printf("\n 該學(xué)生不存在!");</p><p><b> return 0;</b></p><p> }while(flag==1);</p><p> getchar();</p><p> printf("\n
52、 按任意鍵返回主菜單! ");</p><p> return 0;}</p><p> renew_message()/*更新模塊*/</p><p> { int choice;do</p><p> {printf("\n\n\n *****更新學(xué)生
53、信息*****\n\n");</p><p> printf(" 1.添加學(xué)生信息\n\n");</p><p> printf(" 2.刪除學(xué)生信息\n\n");</p><p> printf("
54、 3.修改學(xué)生信息\n\n");</p><p> printf(" 0.返回主菜單\n請(qǐng)選擇(0-3)\n");</p><p> scanf("%d",&choice);</p><p> switch
55、(choice){</p><p> case 1:insert_message();break;</p><p> case 2:del_message();break;</p><p> case 3:revise_message();break;</p><p> case 0:break;}}</p><p
56、> while(choice!=0);</p><p> return 0;}</p><p> inquire_name() /*按姓名查詢*/</p><p> {int i,j=0;</p><p> char inquire_name[10];</p><p> printf(&
57、quot;\n 輸入要查詢的學(xué)生姓名: ");</p><p> scanf("%s",inquire_name);</p><p> for(i=0;i<sum;i++)</p><p> if(strcmp(s[i].st.name,inquire_name)==0&&am
58、p;s[i].st.num!=0)</p><p> {printf("\n --學(xué)生信息-- \n");</p><p><b> PRINT1;</b></p><p><b> PRINT2;</b></p><p&g
59、t; printf("%2d%10s%8d%8d%8d\n\n",s[i].st.num,s[i].st.name,s[i].shu_num,s[i].ying_num,s[i].c_num;</p><p> }else j++;</p><p> if(j==sum)</p><p> printf("\n
60、 該學(xué)生不存在!");</p><p> return 0; }</p><p> int inquire_num() /*按學(xué)號(hào)查詢*/</p><p> {int i,j=0,inquire_num;</p><p> printf("\n
61、 輸入要查詢的學(xué)生學(xué)號(hào): ");</p><p> scanf("%d",&inquire_num);</p><p> for(i=0;i<sum;i++)</p><p> if(inquire_num==s[i].st.num)</p><p> {print
62、f("\n --學(xué)生信息--\n");</p><p><b> PRINT1;</b></p><p><b> PRINT2;</b></p><p> printf("%2d%10s%8d%8d%8d\n",s[i].st.nu
63、m,s[i].st.name,s[i].shu_num,</p><p> s[i].ying_num,s[i].c_num);}</p><p><b> else j++;</b></p><p> if(j==sum)</p><p> printf("\n
64、 該學(xué)生不存在!");</p><p><b> return 0;</b></p><p><b> }</b></p><p><b> /*查詢模塊*/</b></p><p> inquire_message()</p><p>
65、; {int choice;do</p><p> {printf("\n\n *****查詢學(xué)生信息*****\n\n");</p><p> printf(" 1.按學(xué)生姓名查詢\n");</p><p> printf("
66、 2.按學(xué)生學(xué)號(hào)查詢\n");</p><p> printf(" 0.回主菜單\n");</p><p> printf(" 請(qǐng)選擇(0-2): ");</p><p> scanf("%d"
67、;,&choice);</p><p> switch(choice)</p><p> {case 1:inquire_name();break;</p><p> case 2:inquire_num();break;</p><p> case 0:break;}</p><p> }while
68、(choice!=0);</p><p> return 0;}</p><p> count_person() /*學(xué)生成績(jī)情況統(tǒng)計(jì)*/</p><p> {int i,j;struct dom tmp;</p><p> printf("\n 學(xué)生總分
69、排序情況");</p><p> printf("\n -------------------------------\n");</p><p> printf("\n 姓名 學(xué)號(hào) 數(shù)學(xué)成績(jī) 英語(yǔ)成績(jī) C語(yǔ)言成績(jī) 總成績(jī) \n");</p><p> for(i=0;i<sum;
70、i++)s[i].zong_num=s[i].shu_num+s[i].ying_num+s[i].c_num;</p><p> for (i=0;i<sum;i++)</p><p> {for (j=1;j<sum-i;j++)</p><p> {if (s[j-1].zong_num<s[j].zong_num)</p>
71、<p> {tmp=s[j-1];</p><p> s[j-1]=s[j];</p><p> s[j]=tmp; }} }</p><p> for(i=0;i<sum-1;i++)</p><p> printf("\n%10s%8d%8d%8d%8d%8d\n",s[i].st.nam
72、e,s[i].st.num,s[i].shu_num,</p><p> s[i].ying_num,s[i].c_num,s[i].zong_num);}</p><p> void main()</p><p> {int choice;</p><p> sum=read_message();do</p><
73、p> {printf("\n\n\n *****學(xué)生成績(jī)管理系統(tǒng)*****\n\n");</p><p> printf(" 1.錄入學(xué)生信息\n\n");</p><p> printf(" 2.顯示學(xué)生信息\n\n");</p><p> p
74、rintf(" 3.更新學(xué)生信息\n\n");</p><p> printf(" 4.查詢學(xué)生信息\n\n");</p><p> printf(" 5.總分排序成績(jī)\n\n");</p><p> printf("
75、 0.退出系統(tǒng)\n\n");</p><p> printf(" 請(qǐng)選擇(0-5):");</p><p> scanf("%d",&choice);</p><p> switch(choice)</p><p> {case 1: input_me
76、ssage(); break; /*錄入模塊*/</p><p> case 2: output_message(); break; /*輸出模塊*/</p><p> case 3: renew_message(); break; /*更新模塊*/</p><p> case 4: inquire_message
77、(); break; /*查詢模塊*/</p><p> case 5: count_person(); break; /*統(tǒng)計(jì)模塊*/</p><p> case 0: break; /*退出系統(tǒng)*/}</p><p> }while(choice!=0);</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--學(xué)生成績(jī)管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告--學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告---學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)----學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)——學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---學(xué)生成績(jī)管理問題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--- 學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)(部分)
- 學(xué)生成績(jī)管理課程設(shè)計(jì)
- 學(xué)生成績(jī)管理課程設(shè)計(jì)
- c語(yǔ)言數(shù)據(jù)結(jié)構(gòu)學(xué)生成績(jī)管理系統(tǒng)實(shí)驗(yàn)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-學(xué)生成績(jī)查詢系統(tǒng)
- 學(xué)生成績(jī)管理課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--成績(jī)管理
評(píng)論
0/150
提交評(píng)論