版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 成績管理系統(tǒng)課程設(shè)計報告</p><p> 學院:信息科學與技術(shù)學院</p><p> 專業(yè):信息管理與信息系統(tǒng)</p><p> 1.課程設(shè)計題目與要求</p><p><b> 1.1設(shè)計題目:</b></p><p><b> 成績管理系統(tǒng)</
2、b></p><p><b> 1.2設(shè)計要求:</b></p><p> 編寫一系統(tǒng),實現(xiàn)學生信息管理,軟件的入口界面應(yīng)包括如下幾個方面:</p><p> (1)信息維護:要求:學生信息數(shù)據(jù)要以文件的形式保存,能實現(xiàn)學生信息數(shù)據(jù)維護,此模塊包括子模塊有,增加學生信息,修改學生信息,刪除學生信息。</p><p
3、> (2)信息查詢:要求:查詢時可實現(xiàn)按姓名查詢,按學號查詢。</p><p> ?。?)成績統(tǒng)計:要求:輸入任意的一個課程名(如數(shù)學)和一個分數(shù)段(如60-70),統(tǒng)計出在此分數(shù)段的學生情況。</p><p> ?。?)排序:能對用戶指定的任意課程名,按成績升序或降序排列學生數(shù)據(jù)并顯示排序結(jié)果(使用表格的形式顯示排序后的輸出結(jié)果)。</p><p> ?。?/p>
4、5)至少采用文本菜單界面(如果能采用圖形菜單界面更好)。</p><p><b> 2.總體設(shè)計</b></p><p><b> 2.1總體功能框架</b></p><p><b> 1:新增學生信息</b></p><p><b> 2:輸出學生信息<
5、;/b></p><p><b> 3:修改學生信息</b></p><p><b> 4:刪除學生信息</b></p><p> 5:按學號查詢學生信息</p><p> 6:按姓名查詢學生信息</p><p><b> 7:成績排序</b&
6、gt;</p><p><b> 8:成績統(tǒng)計</b></p><p><b> 0:退出</b></p><p><b> 菜單流程圖</b></p><p> 2.2數(shù)據(jù)結(jié)構(gòu)概要設(shè)計</p><p> struct student{
7、 /*學生信息結(jié)構(gòu)類型定義*/</p><p> }students[Maxsize];</p><p><b> 3.詳細設(shè)計</b></p><p> 3.1數(shù)據(jù)結(jié)構(gòu)詳細設(shè)計</p><p> struct student{
8、 /*學生信息結(jié)構(gòu)類型定義*/</p><p> int num; /*學號*/</p><p> char name[10]; /*姓名*/</p><p> int chinese,math,english; /*三門課程成績*
9、/</p><p> }students[Maxsize]; /*結(jié)構(gòu)變量名表*/</p><p> 變量說明:num 整型變量用來存放學號</p><p> name[10] 字符型變量用來存放學生姓名</p><p> Chinese math English 整型變量用來存放三門課成績 &l
10、t;/p><p> 3.2系統(tǒng)功能詳細設(shè)計</p><p> void new_student(struct student students[]) /*新增學生信息*/</p><p> void output_student(struct student students[]) /*輸出學生信息*/</p><
11、p> void update_student(struct student students[],int num)/*修改學生信息*/ </p><p> void delect_student(struct student students[],int num)/*刪除學生信息*/</p><p> void search1_student(struct student st
12、udents[],int num) /*按學號查找*/</p><p> void search2_student(struct student students[],char name/*按姓名查找*/</p><p> void sort_student(struct student students[]) /*成績排序*/</p><p&g
13、t; void statistics_student(struct student students[]) /*成績統(tǒng)計*/</p><p><b> 主函數(shù)流程圖</b></p><p><b> YES</b></p><p><b> NO</b></p><
14、p><b> YES</b></p><p><b> NO</b></p><p><b> YES</b></p><p><b> NO</b></p><p><b> YES</b></p>&
15、lt;p><b> NO</b></p><p><b> YES</b></p><p><b> NO</b></p><p><b> YES</b></p><p><b> NO</b></p>
16、<p><b> YES</b></p><p><b> NO</b></p><p><b> YES</b></p><p><b> NO</b></p><p> 新增學生信息函數(shù)流程圖</p><p&g
17、t;<b> 輸出學生信息流程圖</b></p><p><b> YES</b></p><p><b> NO</b></p><p><b> 修改學生信息流程圖</b></p><p><b> NO</b><
18、/p><p><b> YES</b></p><p><b> NO</b></p><p><b> YES</b></p><p><b> NO</b></p><p> 刪除學生信息函數(shù)流程圖</p>
19、<p><b> NO</b></p><p><b> YES</b></p><p> 按學號查詢學生信息函數(shù)流程圖</p><p><b> YES</b></p><p><b> NO</b></p><p
20、><b> NO</b></p><p><b> YES</b></p><p> 按姓名查找學生信息函數(shù)流程圖</p><p><b> YES</b></p><p><b> NO</b></p><p>&
21、lt;b> NO</b></p><p><b> YES</b></p><p><b> 成績排序函數(shù)流程圖</b></p><p><b> YES</b></p><p><b> YES</b></p>
22、<p><b> NO</b></p><p><b> YES</b></p><p><b> YES</b></p><p><b> NO</b></p><p><b> 成績統(tǒng)計函數(shù)流程圖</b><
23、;/p><p><b> YES</b></p><p><b> NO</b></p><p><b> YES</b></p><p><b> NO</b></p><p><b> 4.運行結(jié)果</b&
24、gt;</p><p><b> 圖1 菜單界面</b></p><p> 圖2 新增學生信息</p><p> 圖3 輸出學生信息</p><p> 圖4 修改學生信息</p><p> 圖5 刪除學生信息</p><p> 圖6 按學
25、號查詢學生信息</p><p> 圖7 按姓名查詢學生信息</p><p><b> 圖8 成績排序</b></p><p><b> 圖9 成績統(tǒng)計</b></p><p><b> 5.課程設(shè)計總結(jié)</b></p><p> 5
26、.1編程中的問題及解決方法</p><p> 在制作按學生姓名查詢學生信息時采用“==”對兩字符串進行比較而使程序不能正常運行經(jīng)過改正調(diào)用字符串比較函數(shù)strcmp(s1,s2)對字符串進行比較從而解決了這個問題。</p><p><b> 5.2小結(jié)</b></p><p> 這次的課程設(shè)計是對我們這一學期《C語言程序設(shè)計》的一個總結(jié)與
27、檢驗,對我來說還是有比較大難度的,在設(shè)計的過程中也遇到了許多的問題,這跟平時的知識積累不夠,實踐不夠是有很大的關(guān)系的,許多知識都是一知半解,一些定義也不是很清楚,總感覺就是那樣的可是一做起來卻總是出錯。但是通過翻閱書籍,請教別人等方法最終完成了這次的課程設(shè)計,同時也鍛煉了自己綜合所學知識,解決實際問題的能力,達到了學以致用的目的。隨著科學技術(shù)的不斷發(fā)展,計算機技術(shù)在我們生活中的應(yīng)用更是無處不在,因此我們更應(yīng)該學好這門課程掌握好這門課程。
28、</p><p><b> 5.3心得體會</b></p><p> 通過這次的C語言課程設(shè)計,我覺的對自己的能力有了很大的提高,不僅培養(yǎng)了自己綜合運用所學知識發(fā)現(xiàn),提出,分析和解決實際問題的能力更加增強了自己實踐的能力,雖然在編寫程序的過程中也遇到了很多的問題有時會因一小點錯誤而使編譯失敗重新修改。但是失敗的次數(shù)越多我們積累的經(jīng)驗就越多。不論在編譯過程中經(jīng)歷了多
29、少次的失敗但在成功的那一刻我們的心中是喜悅的。不懂就問,多多實踐,能夠把平時所學的知識拼湊起來完成一個完整的程序,使自己思考問題更加的周密,也使自己更加的有耐心。</p><p> 但是我們對C語言的理解和使用還在一個初級階段,我們要想掌握它要學習的還有很多,同時要懂得創(chuàng)新而不能一味的模仿別人,許多編程方法都是人們一步一步總結(jié)出來的,所以我們也要努力拓展自己的思維,在以后的學習中不斷的提高和改進努力去尋求新的方
30、法,以創(chuàng)造出更為完善的應(yīng)用程序。</p><p><b> 5.4程序設(shè)計方法</b></p><p> 采用自頂向下,逐步細化的程序設(shè)計方法,以模塊化設(shè)計為中心。</p><p><b> 參考文獻</b></p><p> 《C語言程序設(shè)計基礎(chǔ)》(第二版) 高等教育出版社</
31、p><p><b> 附錄 源程序</b></p><p> #include<stdio.h></p><p> #include<string.h></p><p> #include<stdlib.h></p><p> #define Maxsiz
32、e 50</p><p> struct student{</p><p><b> int num;</b></p><p> char name[10];</p><p> int chinese,math,english;</p><p> }students[Maxsize];&
33、lt;/p><p> int count=0;</p><p> void new_student(struct student students[]);</p><p> void output_student(struct student students[]);</p><p> void update_student(struct
34、 student students[],int num);</p><p> void delect_student(struct student students[],int num);</p><p> void search1_student(struct student students[],int num);</p><p> void search
35、2_student(struct student students[],char name[10]);</p><p> void sort_student(struct student students[]);</p><p> void statistics_student(struct student students[]);</p><p> int
36、main(void)</p><p><b> {</b></p><p> int choice,num;</p><p> char name[10];</p><p> struct student studnts[Maxsize];</p><p><b> do{&l
37、t;/b></p><p> printf("成績管理系統(tǒng)\n");</p><p> printf("1:新增學生信息\n");</p><p> printf("2:輸出學生信息\n");</p><p> printf("3:修改學生信息\n"
38、);</p><p> printf("4:刪除學生信息\n");</p><p> printf("5:按學號查詢學生信息\n");</p><p> printf("6:按姓名查詢學生信息\n");</p><p> printf("7:成績排序\n"
39、);</p><p> printf("8:成績統(tǒng)計\n");</p><p> printf("0:退出\n");</p><p> printf("請輸入您的選擇<0~8>\n");</p><p> scanf("%d",&cho
40、ice);</p><p> switch(choice){</p><p> case 1:new_student(students); break;</p><p> case 2:output_student(students); break;</p><p> case 3:printf("please input
41、the number of update student:");</p><p> scanf("%d",&num);</p><p> update_student(students,num); break;</p><p> case 4:printf("please input the number of
42、delect student:");</p><p> scanf("%d",&num);</p><p> delect_student(students,num); break;</p><p> case 5:printf("please input the student's number:&qu
43、ot;);</p><p> scanf("%d",&num);</p><p> search1_student(students,num);</p><p><b> break;</b></p><p> case 6:printf("please input the
44、student's name:");</p><p> scanf("%s",name);</p><p> getchar();</p><p> search2_student(students,name); break;</p><p> case 7:sort_student(studen
45、ts); break;</p><p> case 8:statistics_student(students); break;</p><p> case 0:break;</p><p><b> }</b></p><p> }while(choice!=0);</p><p>
46、printf("END!\n");</p><p><b> return 0;</b></p><p><b> }</b></p><p> void new_student(struct student students[])</p><p><b> {
47、</b></p><p> struct student s;</p><p> if(count==Maxsize){</p><p> printf("The array is full!\n");</p><p><b> return;</b></p><
48、;p><b> }</b></p><p> printf("Input the student's name:");</p><p> scanf("%s",s.name);</p><p> printf("Input the student's num:&qu
49、ot;);</p><p> scanf("%d",&s.num);</p><p> printf("Input the student's chinese score:");</p><p> scanf("%d",&s.chinese);</p><p
50、> printf("Input the student's math score:");</p><p> scanf("%d",&s.math);</p><p> printf("Input the student's english score:");</p><p&g
51、t; scanf("%d",&s.english);</p><p> students[count]=s;</p><p><b> count++;</b></p><p><b> }</b></p><p> void output_student(st
52、ruct student students[])</p><p><b> {</b></p><p><b> int i;</b></p><p> if(count==0){</p><p> printf("count of students is zero!\n"
53、;);</p><p><b> return;</b></p><p><b> }</b></p><p> printf("name\tnum\tchinese\tmath\tenglish\n");</p><p> for(i=0;i<count;i++)
54、{</p><p> printf("%s\t",students[i].name);</p><p> printf("%d\t",students[i].num);</p><p> printf("%d\t",students[i].chinese);</p><p>
55、 printf("%d\t",students[i].math);</p><p> printf("%d\n",students[i].english);</p><p><b> }</b></p><p><b> }</b></p><p>
56、void update_student(struct student students[],int num)</p><p><b> {</b></p><p> int i,course,score,flag=0;</p><p> printf("choice the course:1.chinese 2.math 3.e
57、nglish:");</p><p> scanf("%d",&course);</p><p> printf("input the new score:");</p><p> scanf("%d",&score);</p><p> for(i
58、=0;i<count;i++)</p><p> if(students[i].num==num){</p><p><b> flag=1;</b></p><p><b> break;</b></p><p><b> }</b></p>&l
59、t;p><b> if(flag)</b></p><p><b> {</b></p><p> switch(course){</p><p> case 1:students[i].chinese=score;break;</p><p> case 2:students[i]
60、.math=score;break;</p><p> case 3:students[i].english=score;break;</p><p><b> }</b></p><p> printf("After update:\n");</p><p> printf("nu
61、m\tname\tchinese\tmath\tenglish\n");</p><p> printf("%d\t %s\t %d\t %d\t %d\n",students[i].num,students[i].name,students[i].chinese,students[i].math,students[i].english);</p><p>
62、<b> }</b></p><p><b> else</b></p><p> printf("No Found!\n");</p><p><b> }</b></p><p> void delect_student(struct stud
63、ent students[],int num)</p><p><b> {</b></p><p> int i,j,flag=1;</p><p> while(flag){</p><p> for(i=0;i<count;i++)</p><p> if(students[
64、i].num==num){</p><p> for(j=i;j<count;j++)</p><p> students[j]=students[j+1];</p><p> printf("刪除成功!\n");</p><p> printf("After delect:\n");&l
65、t;/p><p> printf("num\tchinese\tmath\tenglish\n");</p><p> for(i=0;i<count;i++)</p><p> printf("%d\t %s\t %d\t %d\t %d\n",students[i].num,students[i].name,stu
66、dents[i].chinese,students[i].math,students[i].english);</p><p><b> }</b></p><p><b> else</b></p><p><b> flag=0;</b></p><p><b&
67、gt; }</b></p><p><b> }</b></p><p> void search1_student(struct student students[],int num)</p><p><b> {</b></p><p> int i,flag=0;<
68、/p><p> if(count==0){</p><p> printf("count of students is zero!\n");</p><p><b> return;</b></p><p><b> }</b></p><p> f
69、or(i=0;i<count;i++)</p><p> if(students[i].num==num){</p><p><b> flag=1;</b></p><p><b> break;</b></p><p><b> }</b></p>
70、<p><b> if(flag){</b></p><p> printf("num:%d,",students[i].num);</p><p> printf("name:%s,",students[i].name);</p><p> printf("chinese
71、:%d,",students[i].chinese);</p><p> printf("math:%d,",students[i].math);</p><p> printf("english:%d\n",students[i].english);</p><p><b> }</b>
72、</p><p><b> else</b></p><p> printf("Not Found!");</p><p><b> }</b></p><p> void search2_student(struct student students[],char na
73、me[10])</p><p><b> {</b></p><p> int i,flag=1;</p><p> if(count==0){</p><p> printf("count of students is zero!\n");</p><p><b
74、> return;</b></p><p><b> }</b></p><p> while(flag){</p><p> for(i=0;i<count;i++)</p><p> if(strcmp(students[i].name,name)==0){</p>&
75、lt;p> printf("num:%d,",students[i].num);</p><p> printf("name:%s,",students[i].name);</p><p> printf("chinese:%d,",students[i].chinese);</p><p>
76、 printf("math:%d,",students[i].math);</p><p> printf("english:%d\n",students[i].english);</p><p><b> }</b></p><p><b> else</b></p&g
77、t;<p><b> flag=0;</b></p><p><b> }</b></p><p><b> }</b></p><p> void sort_student(struct student students[])</p><p><b
78、> {</b></p><p> int i,index,j,select;</p><p> struct student temp;</p><p> printf("please input the subject:");</p><p> printf("select:1.ch
79、inese 2.math 3.english:");</p><p> scanf("%d",&select);</p><p> switch(select){</p><p> case 1:for(i=0;i<count-1;i++){</p><p><b> index=
80、i;</b></p><p> for(j=i+1;j<count;j++)</p><p> if(students[j].chinese>students[i].chinese)</p><p><b> index=j;</b></p><p> temp=students[inde
81、x];</p><p> students[index]=students[i];</p><p> students[i]=temp;</p><p><b> }</b></p><p> printf("num\tname\tchinese\n");</p><p&g
82、t; for(i=0;i<count;i++)</p><p> printf("%d\t%s\t%d\n",students[i].num,students[i].name,students[i].chinese);</p><p><b> break;</b></p><p> case 2:for(i=
83、0;i<count-1;i++){</p><p><b> index=i;</b></p><p> for(j=i+1;j<count;j++)</p><p> if(students[j].math>students[i].math)</p><p><b> index=j
84、;</b></p><p> temp=students[index];</p><p> students[index]=students[i];</p><p> students[i]=temp;</p><p><b> }</b></p><p> printf(&
85、quot;num\tname\tmath\n");</p><p> for(i=0;i<count;i++)</p><p> printf("%d\t%s\t%d\n",students[i].num,students[i].name,students[i].math);</p><p><b> break;
86、</b></p><p> case 3:for(i=0;i<count-1;i++){</p><p><b> index=i;</b></p><p> for(j=i+1;j<count;j++)</p><p> if(students[j].english>student
87、s[i].english)</p><p><b> index=j;</b></p><p> temp=students[index];</p><p> students[index]=students[i];</p><p> students[i]=temp;</p><p>&
88、lt;b> }</b></p><p> printf("num\tname\tenglish\n");</p><p> for(i=0;i<count;i++)</p><p> printf("%d\t%s\t%d\n",students[i].num,students[i].name,s
89、tudents[i].english);</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> void statistics_student(struct student stud
90、ents[])</p><p><b> {</b></p><p> int m,n,i,select,total=0;</p><p> printf("please input the subject:");</p><p> printf("select:1.chinese
91、2.math 3.english:");</p><p> scanf("%d",&select);</p><p> printf("please input the score from m to n:");</p><p> scanf("%d%d",&m,&n
92、);</p><p> switch(select){</p><p> case 1:for(i=0;i<count;i++){</p><p> if(students[i].chinese>=m&&students[i].chinese<=n)</p><p><b> total++
93、;</b></p><p><b> }</b></p><p><b> break;</b></p><p> case 2:for(i=0;i<count;i++){</p><p> if(students[i].math>=m&&studen
94、ts[i].math<=n)</p><p><b> total++;</b></p><p><b> }</b></p><p><b> break;</b></p><p> case 3:for(i=0;i<count;i++){</p&g
95、t;<p> if(students[i].english>=m&&students[i].english<=n)</p><p><b> total++;</b></p><p><b> }</b></p><p><b> break;</b>
96、</p><p><b> }</b></p><p> printf("total=%d\n",total);</p><p><b> }</b></p><p> void fileopen(struct student students[])</p>
97、<p><b> {</b></p><p> int i,chinese,math,english,num;</p><p> char name[10];</p><p><b> FILE *fp;</b></p><p> if((fp=fopen("學生成績
98、信息.txt","r+"))==NULL)</p><p> fp=fopen("學生信息.txt","w+");</p><p><b> {</b></p><p> printf("file open error!\n");</p>
99、<p><b> exit(0);</b></p><p><b> }</b></p><p> for(i=1;i<=5;i++)</p><p><b> {</b></p><p> fscanf(fp,"%s%d%d%d%d&q
100、uot;,&name,num,&chinese,&math,&english);</p><p> printf("%s %d %d %d %d %d\n",name,num,chinese,math,english);</p><p><b> }</b></p><p> if(fc
101、lose(fp)){</p><p> printf("Can not close the file!\n");</p><p><b> exit(0);</b></p><p><b> }</b></p><p><b> }</b></
102、p><p> void filesave(struct student students[])</p><p><b> {</b></p><p> int i,chinese,math,english,num;</p><p> char name[10];</p><p><b&g
103、t; FILE *fp;</b></p><p> if((fp=fopen("學生成績信息.txt","r+"))==NULL)</p><p><b> {</b></p><p> printf("file open error!\n");</p>
104、<p><b> exit(0);</b></p><p><b> }</b></p><p> for(i=1;i<=5;i++)</p><p><b> {</b></p><p> fprintf(fp,"%d%S%d%d%d&
105、quot;,name,num,chinese,math,english);</p><p> printf("%s %d %d %d %d %d\n",name,num,chinese,math,english);</p><p><b> }</b></p><p> if(fclose(fp)){</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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計---班級成績管理系統(tǒng)
- c語言課程設(shè)計—班級成績管理系統(tǒng)
- c語言課程設(shè)計報告--成績管理系統(tǒng)
- 《班級成績管理系統(tǒng)》c語言課程設(shè)計
- c語言課程設(shè)計--學生成績管理系統(tǒng)
- c語言課程設(shè)計---學生成績管理系統(tǒng)
- c語言課程設(shè)計學生成績管理系統(tǒng)
- c語言課程設(shè)計-學生成績管理系統(tǒng)
- c語言課程設(shè)計----學生成績管理系統(tǒng)
- c語言課程設(shè)計學生成績管理系統(tǒng)
- c語言課程設(shè)計學生成績管理系統(tǒng)
- c語言課程設(shè)計-學生成績管理系統(tǒng)
- c語言課程設(shè)計(成績管理系統(tǒng))源程序
- c語言課程設(shè)計-學生成績管理系統(tǒng)
- 學生成績管理系統(tǒng)--c語言課程設(shè)計
- c語言課程設(shè)計--學生成績管理系統(tǒng)
- c語言課程設(shè)計---班級成績管理系統(tǒng) (2)
- c語言課程設(shè)計--學生成績管理系統(tǒng)
- c語言課程設(shè)計---學生成績管理系統(tǒng)
- c語言課程設(shè)計-學生成績管理系統(tǒng)
評論
0/150
提交評論