版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 成績管理分析系統(tǒng)課程設計文檔</p><p><b> 班級: </b></p><p><b> 學生: </b></p><p><b> 學號:</b></p><p><b> 目 錄</b></p>
2、<p> 一、軟件需求分析1</p><p><b> 1、可行性分析1</b></p><p> ?。?)經濟可行性1</p><p> ?。?)法律可行性1</p><p> ?。?)技術可行性1</p><p> 2、用戶需求概述1</p><
3、p> 二、軟件分析與設計2</p><p> 1、整體設計(概要設計)2</p><p><b> 2、詳細設計3</b></p><p><b> 三、編碼實現(xiàn)4</b></p><p> 主菜單第一項:錄入學生成績4</p><p> 主菜單第
4、二項:查詢學生成績5</p><p> 主菜單第三項:修改學生成績7</p><p> 主菜單第四項:平均成績和排序7</p><p> 主菜單第五項:顯示系別成績單9</p><p> 主菜單第六項:顯示班級成績單9</p><p> 主菜單第七項:增加學生成績10</p><
5、;p> 初始化數組函數10</p><p><b> 總結11</b></p><p><b> 參考資料11</b></p><p><b> 一、軟件需求分析</b></p><p><b> 1、可行性分析</b></p&
6、gt;<p><b> ?。?)經濟可行性</b></p><p> 本軟件可以快速的統(tǒng)計大量學生的成績,并且很方便的增刪學生的成績,可以讓人很好的了解學生成績的整體情況。該軟件適合在各個學校進行大量推廣,例如可以將此軟件的源代碼以及設計風格上進行修改,還可以用在別的方面。</p><p><b> (2)法律可行性</b>&l
7、t;/p><p> 本軟件是根據教材知識編寫,并用合法的編譯器進行開發(fā),所以該軟件的編寫在法律上可行。</p><p><b> ?。?)技術可行性</b></p><p> 經過大量的測試以及更改,本軟件在技術上可行.</p><p><b> 2、用戶需求概述</b></p>&
8、lt;p> 表1 數據結構(結構體student)成員表</p><p><b> 功能描述:</b></p><p> 1. 錄入學生成績</p><p> 2. 查詢學生成績</p><p> 3. 修改學生成績</p><p> 4. 平均成績和排序<
9、/p><p> 5. 顯示系成績單</p><p> 6. 顯示班級成績單</p><p> 7. 增加學生成績</p><p><b> 8. 重置</b></p><p><b> 0. 退出</b></p><p>&l
10、t;b> 查詢學生成績</b></p><p><b> 1.按學號查詢</b></p><p><b> 2.按科目查詢</b></p><p><b> 3.重置</b></p><p><b> 0.返回上一層菜單</b>
11、</p><p><b> 二、軟件分析與設計</b></p><p> 1、整體設計(概要設計)</p><p><b> 2、詳細設計</b></p><p><b> 三、編碼實現(xiàn)</b></p><p> 主菜單第一項:錄入學生成績&l
12、t;/p><p> void input(student stu[])</p><p><b> {</b></p><p><b> int i=0;</b></p><p> printf("請依次輸入學生成績信息:系別 班級 學號 姓名 數學 英語 C語言 計算機 網頁設計 \n
13、");</p><p> for(i=0;i<stu_number;i++)</p><p><b> {</b></p><p> printf("學生 %d :",i+1);</p><p> scanf("%s%s%s%s",stu[i].depart
14、ment,stu[i].clase,stu[i].id,stu[i].name);</p><p> scanf("%f%f%f%f%f",&stu[i].score[0],&stu[i].score[1],&stu[i].score[2],&stu[i].score[3],&stu[i].score[4]);</p><p>
15、<b> }</b></p><p><b> }</b></p><p> void save_file(student stu[])</p><p><b> {</b></p><p><b> FILE *fp;</b></p>
16、;<p><b> int i;</b></p><p> if((fp=fopen("f:\\student.dat","wb"))==NULL)</p><p><b> {</b></p><p> printf("打開文件失敗,按任意鍵退出!\
17、n");</p><p><b> exit(1);</b></p><p><b> }</b></p><p> for(i=0;i<stu_number;i++)</p><p> if(fwrite(&stu[i],sizeof(student),1,fp)!
18、=1)</p><p><b> {</b></p><p> printf("Writer file error!\n");</p><p><b> exit(1);</b></p><p><b> }</b></p><p
19、> fclose(fp);</p><p><b> }</b></p><p> int input_data()</p><p><b> {</b></p><p> printf("\n請輸入學生實際人數:");</p><p>
20、 scanf("%d",&stu_number);</p><p> input(stu);</p><p> save_file(stu);</p><p> return(stu_number);</p><p><b> }</b></p><p> 主
21、菜單第二項:查詢學生成績</p><p> void search_menu()</p><p><b> {</b></p><p> printf("\n\t\t**************************************");</p><p> printf("
22、\n\t\t* 學生成績查詢 *");</p><p> printf("\n\t\t* 1.按學號查詢 *");</p><p> printf("\n\t\t* 2.按科目查詢 *");</p&g
23、t;<p> printf("\n\t\t* 3.重置 *");</p><p> printf("\n\t\t* 0.退出 *");</p><p> printf("\n\t\t**************
24、************************");</p><p> printf("\n\n");</p><p><b> }</b></p><p> int search_id(char id[10])</p><p><b> {</b></
25、p><p><b> int i;</b></p><p> for(i=0;i<stu_number;i++)</p><p><b> {</b></p><p> if(!strcmp(id,stu[i].id)) // !strcmp(id,stu[i].id) 如
26、果查詢的學號和學號相等,那么函數返回0,!0也就是把0值再取反,結果是1,那就執(zhí)行if語句的代碼</p><p><b> {</b></p><p> printf("系別\t班級\t學號\t姓名\t數學\t英語\tC語言\t計算機\t網頁設計\n");</p><p> printf("---------
27、-----------------------------\n");</p><p> printf("%s\t%s\t%s\t%s",stu[i].department,stu[i].clase,stu[i].id,stu[i].name);</p><p> printf("\t%f\t%f\t%f\t%f\t%f\n",stu[i
28、].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].score[4]);</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p>
29、<p> if(i==stu_number)</p><p> printf("學號輸入有誤!沒有該學生!\n");</p><p> return i;</p><p><b> }</b></p><p> void search_course(int course)&l
30、t;/p><p><b> {</b></p><p><b> int i;</b></p><p> switch(course)</p><p><b> {</b></p><p> case 1:printf("\n系別\t班級
31、\t學號\t姓名\t數學\n");break;</p><p> case 2:printf("\n系別\t班級\t學號\t姓名\t英語\n");break;</p><p> case 3:printf("\n系別\t班級\t學號\t姓名\tC語言\n");break;</p><p> case 4:pri
32、ntf("\n系別\t班級\t學號\t姓名\t計算機\n");break;</p><p> case 5:printf("\n系別\t班級\t學號\t姓名\t網頁設計\n");break;</p><p> default:printf("\n課程號錯誤!\n");</p><p><b>
33、 return;</b></p><p><b> }</b></p><p> printf("-------------------------------\n");</p><p> for(i=0;i<stu_number;i++)</p><p><b>
34、 {</b></p><p> printf("%s\t%s\t%s\t%s",stu[i].department,stu[i].clase,stu[i].id,stu[i].name);</p><p> printf("\t%-8.1f\n",stu[i].score[course-1]); </p><p&
35、gt;<b> }</b></p><p> printf("---------------------------------------\n");</p><p><b> }</b></p><p> void search_data()</p><p><b
36、> {</b></p><p> int select,flag=1;</p><p> int course;</p><p> char s_id[10];</p><p><b> while(1)</b></p><p><b> {</b&g
37、t;</p><p> search_menu();</p><p> printf("請輸入所選查詢功能號:");</p><p> scanf("%d",&select);</p><p> switch(select)</p><p><b>
38、{</b></p><p> case 1:printf("請輸入查詢學號:");</p><p> scanf("%s",s_id);</p><p> search_id(s_id);</p><p><b> break;</b></p>&
39、lt;p> case 2:printf("請輸入查詢科目號:1數學 2英語 3C語言 4計算機 5網頁設計\n");</p><p> scanf("%d",&course);</p><p> search_course(course);</p><p><b> break;</b&g
40、t;</p><p><b> case 3:</b></p><p> system("cls");</p><p><b> break;</b></p><p> default :printf("輸入有錯誤,重新選擇!\n");</p&g
41、t;<p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 主菜單第三項:修改學生成績</p><
42、;p> void modify_data()</p><p><b> {</b></p><p><b> int i=0;</b></p><p> char id[10];</p><p><b> FILE *fp;</b></p><
43、;p> if((fp=fopen("f:\\studet.dat","wb"))==NULL)</p><p><b> {</b></p><p> printf("打開文件失敗,按任意鍵退出!");</p><p><b> return;</b>
44、;</p><p><b> }</b></p><p> printf("請輸入要修改的學生學號:");</p><p> scanf("%s",id);</p><p> i=search_id(id); </p><p> printf(&q
45、uot;請按【數學 英語 C語言 計算機 網頁設計】順序輸入成績:");</p><p> scanf("%f %f %f %f %f",&stu[i].score[0],&stu[i].score[1],&stu[i].score[2],&stu[i].score[3],&stu[i].score[4]);</p><p
46、> fwrite(&stu[i],sizeof(student),stu_number,fp);</p><p> fclose(fp);</p><p><b> }</b></p><p> 主菜單第四項:平均成績和排序</p><p> void sort(float average[50]
47、)</p><p><b> {</b></p><p><b> int i,j;</b></p><p> student t;</p><p> float ave;</p><p> for(i=0;i<stu_number-1;i++)</p&
48、gt;<p> for(j=0;j<stu_number-1-i;j++)</p><p> if(average[j]<average[j+1])</p><p><b> {</b></p><p><b> t=stu[i];</b></p><p> st
49、u[i]=stu[i+1];</p><p> stu[i+1]=t;</p><p> ave=average[j];</p><p> average[j]=average[j+1];</p><p> average[j+1]=ave;</p><p><b> }</b><
50、/p><p><b> }</b></p><p> void average_sort()</p><p><b> {</b></p><p><b> int i;</b></p><p> float sum,average[50];<
51、;/p><p> for(i=0;i<stu_number;i++)</p><p><b> {</b></p><p> sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2]+stu[i].score[3]+stu[i].score[4];</p><p>
52、 average[i]=sum/5;</p><p><b> }</b></p><p> sort(average);</p><p> printf("\n\t\t\t按平均成績升序輸出成績\n");</p><p> printf("\t\t\t===============
53、==========\n");</p><p> printf("系別\t班級\t學號\t姓名\t數學\t英語\tC語言\t計算機\t網頁設計\t平均成績\n");</p><p> printf("--------------------------------\n");</p><p> for(i=0;i
54、<stu_number;i++)</p><p><b> {</b></p><p> printf("%s\t%s\t%s\t%s",stu[i].department,stu[i].clase,stu[i].id,stu[i].name);</p><p> printf("\t%-f\t%f\t
55、%f\t%f\t%f\n",stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].score[4]);</p><p> printf("\t%f\n",average[i]);</p><p><b> }</b></p><
56、p> printf("--------------------------------------------\n");</p><p><b> }</b></p><p> 主菜單第五項:顯示系別成績單</p><p> void display_department_data()</p>&
57、lt;p><b> {</b></p><p> char department[10];</p><p><b> int i=0;</b></p><p> printf("情輸入系別名稱:");</p><p> scanf("%s",d
58、epartment);</p><p> printf("\n\t\t\t%s班成績單\n",department);</p><p> printf("\t\t\t===============\n");</p><p> printf("班級\t學號\t姓名\t數學\t\t英語\t\tC語言\t\t計算機\
59、t\t網頁設計\n");</p><p> printf("-----------------------------------------\n");</p><p> for(;i<stu_number;i++)</p><p><b> {</b></p><p> if
60、(!strcmp(department,stu[i].department))</p><p><b> {</b></p><p> printf("%s\t%s\t%s",stu[i].clase,stu[i].id,stu[i].name);</p><p> printf("\t%f\t%f\t%f\
61、t%f\t%f\n",stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].score[4]);</p><p><b> }</b></p><p><b> }</b></p><p> printf("-
62、--------------------------------------\n");</p><p><b> }</b></p><p> 主菜單第六項:顯示班級成績單</p><p> void display_clase_data()</p><p><b> {</b>&
63、lt;/p><p> char clase[10];</p><p><b> int i=0;</b></p><p> printf("情輸入班級名稱:");</p><p> scanf("%s",clase);</p><p> printf(
64、"\n\t\t\t%s班成績單\n",clase);</p><p> printf("\t\t\t===============\n");</p><p> printf("系別\t學號\t姓名\t數學\t英語\tC語言\t計算機\t網頁設計\n");</p><p> printf("-
65、----------------------------------------\n");</p><p> for(;i<stu_number;i++)</p><p><b> {</b></p><p> if(!strcmp(clase,stu[i].clase))</p><p><
66、b> {</b></p><p> printf("%s\t%s\t%s",stu[i].department,stu[i].id,stu[i].name);</p><p> printf("\t%f\t%f\t%f\t%f\t%f\n",stu[i].score[0],stu[i].score[1],stu[i].scor
67、e[2],stu[i].score[3],stu[i].score[4]);</p><p><b> }</b></p><p><b> }</b></p><p> printf("---------------------------------------\n");</p>
68、<p><b> }</b></p><p> 主菜單第七項:增加學生成績</p><p> void insert_data()</p><p><b> {</b></p><p> student st;</p><p><b> FI
69、LE *fp;</b></p><p> printf("輕按下列順序輸入要插入學生的成績:系別 班級 學號 姓名 數學 英語 C語言 計算機 網頁設計\n");</p><p> scanf("%s%s%s%s",&st.department,&st.clase,&st.id,&st.name);&l
70、t;/p><p> scanf("%f %f %f %f %f",&st.score[0],&st.score[1],&st.score[2],&st.score[3],&st.score[4]);</p><p> if((fp=fopen("f:\\student.dat","ab"))
71、==NULL)</p><p><b> {</b></p><p> printf("打開文件失敗,按任意鍵退出!");</p><p><b> return;</b></p><p><b> }</b></p><p>
72、; fwrite(&st,sizeof(student),1,fp);</p><p> fclose(fp);</p><p><b> }</b></p><p><b> 初始化數組函數</b></p><p> int init_arr()</p><p
73、><b> {</b></p><p><b> FILE *fp;</b></p><p><b> int i=0;</b></p><p> if((fp=fopen("f:\\student.dat","rb"))==NULL)</p
74、><p><b> {</b></p><p> printf("打開文件失敗,按任意鍵退出!");</p><p> return(0);</p><p><b> }</b></p><p> while(!feof(fp))</p>
75、<p><b> {</b></p><p> fread(&stu[i],sizeof(student),1,fp);</p><p><b> i++;</b></p><p><b> }</b></p><p> stu_number=i
76、-1;</p><p> fclose(fp);</p><p><b> return 1;</b></p><p><b> }</b></p><p><b> 總結</b></p><p> 課程設計已經結束了,因為自己的水平有限,所以
77、一周的時間我不能夠完全由自己獨立完成。并且我在完成時遇到了很多困難,尤其在文件上。我很多東西都不懂,所以在做課程設計當中,我浪費了很多時間看書,但是在做課程設計當中,我有很大的收獲,并且文件也懂了一些。掌握面向過程程序設計的基本思路和方法,達到較熟練掌握linux C的基本知識和技能; </p><p> 還有我感到編程真的很難,想要學好是要付出很多努力的。還有課程設計讓我懂得了不要盲目的去敲代碼,在編程前一定
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設計--成績管理系統(tǒng)
- 成績管理系統(tǒng)課程設計
- 成績管理系統(tǒng)課程設計
- 課程設計---考務成績管理系統(tǒng)
- 課程設計-- 班級成績管理系統(tǒng)
- 學生成績管理系統(tǒng)課程設計
- php成績管理系統(tǒng)課程設計報告
- 課程設計——學生成績管理系統(tǒng)
- 課程設計---學生成績管理系統(tǒng)
- 學生成績管理系統(tǒng)課程設計
- vf課程設計---高校成績管理系統(tǒng)
- c語言課程設計-成績管理系統(tǒng)
- 學生成績管理系統(tǒng)課程設計
- 學生成績管理系統(tǒng)課程設計
- 學生成績管理系統(tǒng)課程設計
- 學生成績管理系統(tǒng) 課程設計
- 課程設計--學生成績管理系統(tǒng)
- 學生成績管理系統(tǒng)課程設計
- 課程設計-- 學生成績管理系統(tǒng)
- 學生成績管理系統(tǒng)課程設計
評論
0/150
提交評論