版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 課 程 設(shè) 計 報 告 </p><p> 課程名稱 數(shù)據(jù)結(jié)構(gòu) </p><p> 設(shè)計題目 學(xué)生成績管理系統(tǒng) </p><p> 專 業(yè) 計算機科學(xué)與技術(shù) </p><p>
2、班 級 </p><p> 學(xué) 號 </p><p> 姓 名 </p><p> 完成日期 2012年6月7號
3、 </p><p><b> 一、問題描述</b></p><p> 編寫一個簡單的學(xué)生信息管理程序,能實現(xiàn)對學(xué)生信息的簡單管理。 </p><p><b> 二、基本要求</b></p><p> 建立一個4個學(xué)生的信息登記表,每個學(xué)生的信息包括:學(xué)號,姓
4、名,和3門課程的成績(FOX,C,ENGLISH)。</p><p> 程序運行時顯示一個簡單的菜單,例如:</p><p> ?。?)信息輸入(INPUT) (2)總分統(tǒng)計(COUNT) (3)總分排序(SORT) (4)查詢(QUERY)輸入要求:</p><p><b>
5、 三、測試數(shù)據(jù)</b></p><p><b> 其中:</b></p><p> ?。?)對4個學(xué)生的信息進(jìn)行輸入;</p><p> ?。?)對每個學(xué)生的3門課程統(tǒng)計總分;</p><p> ?。?)對4個學(xué)生的總分按降序排序并顯示出來;</p><p> ?。?)查詢輸入一個
6、學(xué)號后,顯示出該學(xué)生的有關(guān)信息;。</p><p><b> 四、算法思想</b></p><p> 信息輸入:采用數(shù)組的形式把自己輸入的那些關(guān)于學(xué)生信息的資料存儲起來,以便于以后的應(yīng)用。</p><p> 打印顯示:把那些已經(jīng)錄入的學(xué)生信息按錄入的順序輸出來檢查是否有錯。</p><p> 修改和刪除模塊:錄入
7、的那些信息按要求刪除和修改。</p><p> 查詢模塊:按姓名查詢和按學(xué)好查詢,都是把他們和原來的那些數(shù)據(jù)進(jìn)行比較就可以查找。</p><p> 最后就是總分排序的模塊</p><p><b> 五、數(shù)據(jù)結(jié)構(gòu)</b></p><p> 學(xué)生成績管理的數(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> 六、測試情
10、況</b></p><p><b> 1、主菜單界面:</b></p><p> 2、錄入學(xué)生信息時候的界面:</p><p> 3、查詢模塊的操作頁面:</p><p> 4、總分排序的操作界面:</p><p><b> 七、心得:</b></
11、p><p> 在選擇題目的時候我就想了,我可以把原來的程序給改了,可是我還是想的太簡單了,修改一個程序不是那么的簡單的,有時候還會把他給復(fù)雜化,因為原來的程序都會有好多的不能用的語句,需要把他們一句一句的都給刪掉,原來多余的也要刪掉,還有的可要可不要的程序,有時候自己都拿不準(zhǔn)要不要了,起步的時候還是有這樣或者那樣的一些不對的東西,程序的錯誤是在所難免的,我們要一步一步的去施行,去修改,沒有免費的午餐,有時候調(diào)程序的
12、時候就好幾個小時坐在那里不動一動,自己的脖子就會很痛很痛。不過在調(diào)出來程序的時候一切都是值得的。當(dāng)你成功時候的那種喜悅,和別人羨慕的表情中,感覺自己很偉大。當(dāng)然在自己調(diào)程序的時候感覺自己對程序的了解有了質(zhì)的飛躍。不是每個人都有這樣的機會的。</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é)號--學(xué)生姓名--數(shù)學(xué)成績--英語成績--c語言成績\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("讀文件錯誤!\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("寫文件錯誤!\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個)\n",MAX);</p><p> printf(" ----------------------------\n"); do</p><p> { printf("\n 第%d個學(xué)生\n\n",i+1);</p><p> printf("
20、;\n 學(xué)號: ");</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("請輸入數(shù)學(xué)成績:");</p><p> scanf("%d",&s[i].shu_num);</p><p> getchar();</p><p> printf(&qu
22、ot;請輸入英語成績:");</p><p> scanf("%d",&s[i].ying_num);</p><p> getchar();</p><p> printf("請輸入C語言成績:");</p><p> scanf("%d",&s[
23、i].c_num);</p><p><b> i++;</b></p><p> }while(i<j);</p><p> printf("\n --%d個學(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*****暫時還沒有任何信息,按任意鍵進(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 添加一個新同學(xué)\n");</p><p> printf(" ---------------\n");do</p><p> {printf(&qu
31、ot;\n 新學(xué)號: ");</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é)成績 ");</p><p> scanf("%d",&s[i].shu_num);</p><p> printf("\n 英語成績 ");</p><p> scanf("%d&
33、quot;,&s[i].ying_num);</p><p> printf("\n C語言成績 ");</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、 輸入要刪除的學(xué)生學(xué)號: ");</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é)生號: ");</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、 您要修改哪一項?\n");</p><p> printf("\n 1.學(xué)號\n");</p><p> printf("\n 2.姓名\n");</p><p> printf("\n 3.數(shù)學(xué)成績\n&
45、quot;);</p><p> printf("\n 4.英語成績\n");</p><p> printf("\n 5.c語言成績\n");</p><p> printf("\n 請選擇(1-5): ");</
46、p><p> scanf("%d",&choices);</p><p> switch(choices)</p><p> {case 1:printf("\n 輸入修改后的學(xué)號");</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é)成績");</p&
48、gt;<p> scanf("%d",&s[i].shu_num);break;</p><p> case 4:printf("\n 輸入修改后的英語成績");</p><p> scanf("%d",&s[i].ying_num);break;</p><p>
49、; case 5:printf("\n 輸入修改后的c語言成績");</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請選擇(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é)號查詢*/</p><p> {int i,j=0,inquire_num;</p><p> printf("\n
61、 輸入要查詢的學(xué)生學(xué)號: ");</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é)號查詢\n");</p><p> printf(" 0.回主菜單\n");</p><p> printf(" 請選擇(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é)生成績情況統(tǒng)計*/</p><p> {int i,j;struct dom tmp;</p><p> printf("\n 學(xué)生總分
69、排序情況");</p><p> printf("\n -------------------------------\n");</p><p> printf("\n 姓名 學(xué)號 數(shù)學(xué)成績 英語成績 C語言成績 總成績 \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é)生成績管理系統(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.總分排序成績\n\n");</p><p> printf("
75、 0.退出系統(tǒng)\n\n");</p><p> printf(" 請選擇(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)計模塊*/</p><p> case 0: break; /*退出系統(tǒng)*/}</p><p> }while(choice!=0);</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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--學(xué)生成績管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告--學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告---學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計----學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計——學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---學(xué)生成績管理問題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--- 學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---學(xué)生成績管理系統(tǒng)(部分)
- 學(xué)生成績管理課程設(shè)計
- 學(xué)生成績管理課程設(shè)計
- c語言數(shù)據(jù)結(jié)構(gòu)學(xué)生成績管理系統(tǒng)實驗報告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-學(xué)生成績查詢系統(tǒng)
- 學(xué)生成績管理課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--成績管理
評論
0/150
提交評論