版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 軟件設計報告</b></p><p> 題 目: 學生成績管理系統(tǒng) </p><p> 一.課程設計的目的:</p><p> ?、偻ㄟ^本課程設計,強化上機動手能力,使學生在理論和實踐的基礎上進一步鞏固《C語言程序設計》課程學習
2、的內容,掌握工程軟件設計的基本方法; </p><p> ?、趯W會將知識應用于實際的方法,提高分析和解決問題的能力,增加綜合能力; </p><p> ③為后續(xù)各門計算機課程的學習打下堅實基礎;為畢業(yè)設計和以后工作打下必要基楚。</p><p> 二.課程設計的內容 :</p><p> ①,運用數(shù)組編
3、輯一個簡單的學生成績管理系統(tǒng),使之能完成學生的錄入,修改,刪除等功能;</p><p> ②,執(zhí)行編譯操作,并根據(jù)提示進行排錯;</p><p> ?、郏埨蠋煓z查并向老師演示。</p><p> 三.需求分析:根據(jù)實用性,我決定設計一個學生成績管理系統(tǒng).由于自己也是一個學生,經常跟成績打交道,以前的成績自己搞得很亂,每次想找以前的成績看一下,做個總結,以便制定
4、新一個近期計劃.可是以前的成績都沒有系統(tǒng)的管理,所以搞起來很麻煩,于是決定做一個學生成績管理系統(tǒng).這個系統(tǒng)實用性非常強,操作起來也非常簡單,可以很容易的查找到你所要的信息.例如:如果你要查看某個學生的成績,只需要輸入那個學生的姓名就可以了,系統(tǒng)會自動打印出該學生的有關信息,如學號,姓名,每一學科的成績等,非常簡潔,一目了然.</p><p> 由于時間的緊迫,也由于這是自己第一次設計系統(tǒng),沒什么經驗,基礎知識也
5、還不是很扎實,所以這個學生成績管理系統(tǒng)還存在著一定的局限性,希望老師和同學們多多指正,也希望它能為大家?guī)矸奖?</p><p><b> 四.概要設計:</b></p><p><b> 數(shù)據(jù)結構設計:</b></p><p> 設計這個系統(tǒng),我選擇了用結構體來存放不同類型的數(shù)據(jù).在這個過程當中,我有打算過用指針,
6、但由于指針這章節(jié)非常復雜,而且剛講不久,自己了解的還不夠透切,而且用指針要非常的小心,不然很容易出錯,對剛學不久的同學來說,要查出其中的錯誤,也不那么簡單,所以為了盡量減少發(fā)生錯誤,我就沒有將指針利用到其中。 </p><p&g
7、t; 五、詳細設計及運行結果</p><p><b> ?。?lt;/b></p><p> 六. 調試情況,設計技巧及體會</p><p> 調試情況:1,進入系統(tǒng)會提示你(請輸入密碼):當輸入12345并以回車鍵結束,你就會進入主界面:</p><p> 2. 菜單界面上有提示操作,告訴你如何使用該系統(tǒng)!該系統(tǒng)操作
8、非常簡單,你所要進行的每一步操作它都會提示你該如何做,就算你是第一次接觸該系統(tǒng),你也可以很順利地利用它完成你所要做的事!</p><p> 例如你按1,過程及結果如下: </p><p> 根據(jù)提示,然后它會繼續(xù)提示你(請輸入學生學號),當你輸入完畢后,系統(tǒng)會詢問是否繼續(xù),如果繼續(xù),則同上;否則,退出到主界面。</p><p> 3,可以修改你覺得需要修改的資
9、料,其操作是按功能選擇鍵2,然后按提示一步一步操作。</p><p> 4,當你輸入一些數(shù)據(jù)和修改后,想查看的話可以按功能選擇鍵3,這是界面會顯示你的數(shù)據(jù)。</p><p> 5,如果一切無誤后,但你想查看成績排名,此時你可以按功能選擇鍵4進行學生成績排名。</p><p> 6,如果你在操作中想刪除一些內容,你可以按功能選擇鍵5進行刪除。</p>
10、<p> 7,如果一切無誤后你想保存這些內容,你可以按功能選擇鍵6進行保存,此時界面會出現(xiàn): 然后輸入你想保存的地方。</p><p> 8,如果想讀取則按功能選擇鍵7進行讀取。</p><p> 9,而當你想插入學生信息時則可按功能選擇鍵8進行插入:</p><p> 10,想退出時你可以按功能選擇鍵0退出程序。</p>&l
11、t;p><b> 設計技巧及體會:</b></p><p> 緊張而又充實的兩個星期即將過去,在這兩個星期里,通過做課程設計,自己的感觸甚多,收獲也很多.發(fā)現(xiàn)自己對課本知識的認知提升到了一個新的層次,就好像站在一個山峰上俯瞰,可以比較系統(tǒng)地,全面的理解課本上的內容.過去覺得理解得模模糊糊的知識點,現(xiàn)在基本上都可以掌握了.這又一次驗證了實踐能夠反作用于認識,只有自己真真正正地動手去做
12、了,將自己學到的,或者是只學到一半半的課本知識應用到實際中去,當遇到問題時,再細心地,耐心地慢慢去推敲,去查找錯誤,看看是哪一步錯了,錯在哪里.找出問題后再翻翻課本,看課本還解決不了問題就問同學問老師,直到解決問題為止.這時,當你回頭看時,你會突然發(fā)現(xiàn)自己已經學到了很多東西,有課本上之前不明白的知識點,也有在程序設計過程中遇到問題時該如何去面對,如何去解決的方法.其實,我發(fā)現(xiàn)導致程序出現(xiàn)問題錯誤或運行不了,很大部分原因歸結于對課本知識點
13、的不熟悉或理解錯誤.這些要是不親自動手去做,光看課本是沒有多大作用的.當我通過自己的努力或老師跟同學的幫助下,解決了一個問題,才發(fā)現(xiàn)原來這個知識點應該這樣用.</p><p> 通過這次課程設計,我體會最深的就是,不能只看課本,要經常動手去練習一下,看課本加上做練習,效果非常好,可以做到事半功倍.這樣知識點記得會比較牢固一些.通過練習還可以培養(yǎng)自己的設計思維,讓自己以后設計程序時思維會活躍一些,轉得快一些.&l
14、t;/p><p> 在這課程設計接近尾聲時,我總結了一下自己在設計時經常犯的一些錯誤,諸如for循環(huán)語句,括號里面的條件之間應該是用分號分開的,而我經常會忘記,都是用逗號來分開的,這導致程序運行不了,自己檢查了一遍又一遍還是發(fā)現(xiàn)不了問題的所在,后來叫同學幫忙看了一下,才發(fā)現(xiàn)問題出現(xiàn)在哪里.就這么簡單的,基本的一個錯誤,常常會令自己花上半個小時或者更長的時間,都無法找出來.類似的錯誤還有,就是經常會在語句后面忘了加上
15、分號.但現(xiàn)在這些問題不會再出現(xiàn)了,經過這次的實踐,我懂得了很多,很多語句用起來都比較熟悉了,更重要的是積累了一些經驗,將來可以少走些彎路,不再像剛開始的時候,像一個迷路羔羊一樣到處亂竄.</p><p> 雖然這次的課程設計即將結束,設計的系統(tǒng)也可以運行了,但我知道它現(xiàn)在還只是個雛形,還不夠完善,還存在不足之處,還需要我的進一步改善.今后我會更加努力,學習更多的知識來完善它,把它的功能做大,做強!</p&
16、gt;<p> 七.參考文獻:《C語言程序設計》,劉燕,中國鐵道出版《C語言程序設計》,廖雷,高等教育出版社《C語言程序設計》,方少卿,中國鐵道出版社</p><p> 八.附錄:源代碼:#include<stdio.h></p><p> #include<stdlib.h></p><p> #include&l
17、t;string.h></p><p> #include<io.h></p><p><b> /*結構體*/</b></p><p> typedef struct</p><p><b> {</b></p><p> double aver
18、;</p><p><b> int age;</b></p><p><b> long num;</b></p><p> char name[20];</p><p> char sex[8];</p><p> double mark1,mark2,mark
19、3;</p><p><b> }STU;</b></p><p><b> /*函數(shù)聲明*/</b></p><p> int menu ();</p><p> int input(STU stu[]);</p><p> void output(STU stu
20、[],int count);</p><p> int seek(STU stu[]);</p><p> void change(STU stu[]);</p><p> int seekinsert(STU stu[],int count);</p><p> int insert(STU stu[]);</p>&
21、lt;p> int del(STU stu[]);</p><p> void sort(STU stu[],int count);</p><p> /*讀取學生信息*/</p><p> int read_file(STU stu[])</p><p><b> {</b></p>&l
22、t;p><b> FILE *fp;</b></p><p> int i=0,fno,fsize,fnum;</p><p> char filename[10];</p><p> gets(filename);</p><p> printf("輸入");</p>
23、<p> gets(filename); </p><p> if((fp=fopen(filename,"rb"))==NULL)</p><p><b> {</b></p><p> printf("\n\n*******庫存文件不存在!請創(chuàng)建!");</p>
24、;<p><b> return 0;</b></p><p><b> }</b></p><p> fno=fileno(fp);</p><p> fsize=filelength(fno);</p><p> fnum=fsize/sizeof(STU);</p
25、><p> printf("\n\n*******庫存文件*******\n");</p><p> for(i=0;i<fnum;i++)</p><p> fread(&stu[i],sizeof(STU),1,fp);</p><p> fclose(fp);</p><p>
26、;<b> return i;</b></p><p><b> }</b></p><p><b> /*保存信息*/</b></p><p> void save_file(STU stu[],int count)</p><p><b> {</
27、b></p><p><b> FILE *fp;</b></p><p><b> int i;</b></p><p> char filename[10];</p><p> gets(filename);</p><p> printf("輸
28、入保存文件名:\n");</p><p> gets(filename);</p><p> if((fp=fopen(filename,"wb"))==NULL)</p><p> printf("讀文件錯誤!\n");</p><p> for(i=0;i<count;i++
29、)</p><p> if(fwrite(&stu[i],sizeof(STU),1,fp)!=1)</p><p> printf("寫文件錯誤!\n");</p><p> fclose(fp);</p><p><b> }</b></p><p><
30、;b> /*插入函數(shù)*/</b></p><p> int seekinsert(STU stu[],int count)</p><p><b> {</b></p><p><b> int i,k;</b></p><p> printf("請輸入你要插入
31、的學號:"); </p><p> scanf("%d",&k);</p><p> for(i=0;i<count;i++)</p><p><b> {</b></p><p> if(stu[i].num==k)</p><p>&
32、lt;b> {</b></p><p> return(i);</p><p><b> }</b></p><p><b> }</b></p><p> return(100);</p><p> } </p>
33、<p> int insert(STU stu[],int count)</p><p><b> {</b></p><p><b> int i ,j;</b></p><p> i=seekinsert(stu,count);</p><p> if(i==100)<
34、;/p><p><b> {</b></p><p> printf("有誤");</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b>&l
35、t;/p><p> for(j=count;j>=i;j--)</p><p> stu[j+1]=stu[j];</p><p><b> count++;</b></p><p> printf("\t請輸入學生學號:");</p><p> scanf(&qu
36、ot;%ld",&stu[i].num);</p><p> printf("\n\t請輸入學生姓名:");</p><p> scanf("%s",&stu[i].name);</p><p> printf("\n\t請輸入學生年齡:");</p><
37、p> scanf("%d",&stu[i].age);</p><p> printf("\n\t請輸入學生性別:");</p><p> scanf("%s",&stu[i].sex);</p><p> printf("\n\t請分別輸入學生成績:");
38、</p><p> scanf("%lf%lf%lf",&stu[i].mark1,&stu[i].mark2,&stu[i].mark3);</p><p> stu[i].aver=(stu[i].mark1+stu[i].mark2+stu[i].mark3)/3.0;</p><p><b> }&
39、lt;/b></p><p> return(count);</p><p><b> } </b></p><p><b> /*刪除函數(shù)*/</b></p><p> int seek(STU stu[],int count)</p><p><
40、b> {</b></p><p> long delnum;</p><p><b> int i;</b></p><p> printf("請輸入要刪除的學生的學號:");</p><p> scanf("%ld",&delnum);<
41、/p><p> for(i=0;i<count;i++)</p><p> if(stu[i].num==delnum)</p><p> return(i);</p><p> return(count);</p><p><b> }</b></p><p>
42、; int del(STU stu[],int count)</p><p><b> {</b></p><p> long i,delnum;</p><p> delnum=seek(stu,count);</p><p> if(delnum==count-1)</p><p>
43、<b> {</b></p><p> count=count-1;</p><p> return(count);</p><p><b> }</b></p><p><b> else</b></p><p><b> {&l
44、t;/b></p><p> for(i=delnum;i<count-1;i++)</p><p> stu[i]=stu[i+1];</p><p> return(count-1);</p><p><b> }</b></p><p><b> }</
45、b></p><p><b> /*修改信息*/</b></p><p> void change(STU stu[],int count)</p><p><b> {</b></p><p><b> int i;</b></p><p&g
46、t; long chanum;</p><p> printf("請輸入要修改學生的學號:");</p><p> scanf("%ld",&chanum);</p><p> for(i=0;i<count;i++)</p><p><b> { </b&g
47、t;</p><p> if(chanum==stu[i].num)</p><p><b> {</b></p><p> printf("\n\t請輸入學生姓名:");</p><p> scanf("%s",&stu[i].name);</p>
48、<p> printf("\n\t請輸入學生年齡:");</p><p> scanf("%d",&stu[i].age);</p><p> printf("\n\t請輸入學生性別:");</p><p> scanf("%s",&stu[i].sex
49、);</p><p> printf("\n\t請分別輸入學生成績:");</p><p> scanf("%lf%lf%lf",&stu[i].mark1,&stu[i].mark2,&stu[i].mark3);</p><p> stu[i].aver=(stu[i].mark1+stu[i
50、].mark2+stu[i].mark3)/3.0;</p><p><b> break;</b></p><p><b> } </b></p><p><b> }</b></p><p> output(stu,count);</p><
51、p><b> }</b></p><p><b> /*輸入函數(shù)*/</b></p><p> int input(STU stu[])</p><p><b> {</b></p><p> int i=0,count=0,jude=1;</p>
52、<p> system("cls");</p><p> printf("\n\n\t\t\t\t請輸入學生信息\n\n");</p><p> while(jude)</p><p><b> { </b></p><p> printf("\
53、t請輸入學生學號:");</p><p> scanf("%ld",&stu[count].num);</p><p> printf("\n\t請輸入學生姓名:");</p><p> scanf("%s",&stu[count].name);</p><
54、;p> printf("\n\t請輸入學生年齡:");</p><p> scanf("%d",&stu[count].age);</p><p> printf("\n\t請輸入學生性別:");</p><p> scanf("%s",&stu[count
55、].sex);</p><p> printf("\n\t請分別輸入學生成績:");</p><p> scanf("%lf%lf%lf",&stu[count].mark1,&stu[count].mark2,&stu[count].mark3);</p><p> stu[count].ave
56、r=(stu[count].mark1+stu[count].mark2+stu[count].mark3)/3.0;</p><p><b> count++;</b></p><p> printf("是否繼續(xù)輸入,是按1,否按0");</p><p> scanf("%d",&jude
57、); </p><p><b> }</b></p><p> printf("\n\t\t%d個學生信息輸入完畢!\n",count);</p><p> printf("\t\t按任意鍵返回主菜單!\n");</p><p> getchar();</p>
58、<p> return(count);</p><p><b> }</b></p><p><b> /*輸出函數(shù)*/</b></p><p> void output(STU stu[],int count)</p><p><b> {</b><
59、;/p><p><b> int i;</b></p><p> system("cls");</p><p> printf("\n\n\t\t\t\t——學生信息表——\n\n");</p><p> printf("學號\t姓名\t年齡\t性別\t成績1\t成績
60、2\t成績3\t平均成績\n");</p><p> for(i=0;i<count;i++)</p><p><b> {</b></p><p> printf("%ld\t%s\t%d\t%s\t%.2lf\t%.2lf\t%.2lf\t%.2lf\n",stu[i].num,stu[i].nam
61、e,</p><p> stu[i].age,stu[i].sex,stu[i].mark1,stu[i].mark2,stu[i].mark3,stu[i].aver);</p><p><b> } </b></p><p><b> }</b></p><p><b> /
62、*主菜單*/</b></p><p> int menu ()</p><p><b> {</b></p><p><b> int a=1;</b></p><p> while(a) </p><p><b> {</b>
63、;</p><p> printf("\t\t*********學生管理系統(tǒng)********\n\n");</p><p> printf("\t\t 1.輸入學生信息\n");</p><p> printf("\t\t 2.修改學生信息\n");</p><
64、p> printf("\t\t 3.查看學生信息\n");</p><p> printf("\t\t 4.學生成績排名表\n");</p><p> printf("\t\t 5.刪除學生信息\n");</p><p> printf("\t\t
65、 6.保存學生信息\n");</p><p> printf("\t\t 7.讀取學生信息\n");</p><p> printf("\t\t 8.插入學生信息\n");</p><p> printf("\t\t 0.退出系統(tǒng)\n");</p>
66、;<p> scanf("%d",&a);</p><p><b> break; </b></p><p><b> }</b></p><p> return(a);</p><p><b> }</b></p&g
67、t;<p> /*冒泡降序排序*/</p><p> void sort(STU stu[],int count)</p><p> { STU t;</p><p><b> int i,j;</b></p><p> for(i=0;i<count-1;i++)</p>
68、<p> for(j=i+1;j<count;j++)</p><p> if(stu[i].aver<stu[j].aver)</p><p><b> {</b></p><p><b> t=stu[i];</b></p><p> stu[i]=stu[j]
69、;</p><p><b> stu[j]=t;</b></p><p><b> }</b></p><p> printf("\n\n\t\t\t\t——學生信息表——\n\n");</p><p> printf("學號\t姓名\t年齡\t性別\t成績1\
70、t成績2\t成績3\t平均成績\n");</p><p> for(i=0;i<count;i++)</p><p><b> {</b></p><p> printf("%ld\t%s\t%d\t%s\t%.2lf\t%.2lf\t%.2lf\t%.2lf\n",stu[i].num,stu[i].
71、name,</p><p> stu[i].age,stu[i].sex,stu[i].mark1,stu[i].mark2,stu[i].mark3,stu[i].aver);</p><p><b> }</b></p><p><b> }</b></p><p><b>
72、/*主函數(shù)*/</b></p><p> void main(void)</p><p><b> {</b></p><p> char s[6];</p><p> STU stu[100];</p><p> int choice=1,count,i,k=0;</
73、p><p> while(k==0)</p><p><b> {</b></p><p> printf("\n\n\t歡迎登陸學生管理系統(tǒng),請輸入密碼:");</p><p> for(i=0;i<6;i++)</p><p><b> {</b
74、></p><p> s[i]=getch();</p><p> printf("*");</p><p><b> }</b></p><p> s[5]='\0';</p><p> if(strcmp(s,"12345"
75、;)==0)</p><p><b> {</b></p><p> printf("\n\n");</p><p><b> break;</b></p><p><b> }</b></p><p><b>
76、else</b></p><p> printf("輸入有誤\n");</p><p> getchar();</p><p><b> } </b></p><p> while(choice)</p><p><b> {</b&g
77、t;</p><p> choice=menu();</p><p> if(choice==1) count=input(stu);</p><p> if(choice==2) change(stu,count);</p><p> if(choice==3) output(stu,count);</p&g
78、t;<p> if(choice==4) sort(stu,count);</p><p> if(choice==5) count=del(stu,count);</p><p> if(choice==6) save_file(stu,count);</p><p> if(choice==7) count=read
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學生成績管理系統(tǒng)課程設計
- 課程設計——學生成績管理系統(tǒng)
- 課程設計---學生成績管理系統(tǒng)
- 學生成績管理系統(tǒng)課程設計
- 學生成績管理系統(tǒng)課程設計
- 學生成績管理系統(tǒng)課程設計
- 學生成績管理系統(tǒng)課程設計
- 學生成績管理系統(tǒng) 課程設計
- 課程設計--學生成績管理系統(tǒng)
- 學生成績管理系統(tǒng)課程設計
- 課程設計-- 學生成績管理系統(tǒng)
- 學生成績管理系統(tǒng)課程設計
- 學生成績管理系統(tǒng)課程設計10
- vfp課程設計--- 學生成績管理系統(tǒng)
- java課程設計--學生成績管理系統(tǒng)
- vfp課程設計--學生成績管理系統(tǒng)
- 學生成績管理系統(tǒng)課程設計報告
- vb課程設計---學生成績管理系統(tǒng)
- vb課程設計----學生成績管理系統(tǒng)
- web課程設計.學生成績管理系統(tǒng)
評論
0/150
提交評論