版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 蘇州市職業(yè)大學(xué)繼續(xù)教育學(xué)院</p><p><b> 課程設(shè)計(jì)說明書</b></p><p> 名稱 C語言程序設(shè)計(jì)課程設(shè)計(jì) </p><p> 2012年 10月 31 日至 2012年 11月 14 日共2 周</p><p> 院 系 計(jì)算機(jī)
2、工程系 </p><p> 班 級(jí) 10Z計(jì)算機(jī)網(wǎng)絡(luò) </p><p> 學(xué) 號(hào) 46 </p><p> 姓 名 錢俊琦 </p><p> 系 主 任 李金祥 </p><p> 指導(dǎo)教師 陸公正
3、 </p><p><b> 目 錄</b></p><p><b> 1 前言1</b></p><p><b> 2 需求分析1</b></p><p><b> 2.1要求1</b></p><p><b
4、> 2.2任務(wù)1</b></p><p><b> 2.3運(yùn)行環(huán)境1</b></p><p><b> 2.4開發(fā)工具1</b></p><p> 3 概要設(shè)計(jì)與詳細(xì)設(shè)計(jì)2</p><p> 3.1系統(tǒng)流程圖2</p><p> 3.2
5、查詢函數(shù)流程圖3</p><p> 4 編碼與實(shí)現(xiàn)15</p><p><b> 4.1分析15</b></p><p> 4.2具體代碼實(shí)現(xiàn)16</p><p> 5 課程設(shè)計(jì)總結(jié)30</p><p><b> 參考文獻(xiàn)30</b></p>
6、<p><b> 致 謝30</b></p><p><b> 1 前言</b></p><p> 編寫一個(gè)學(xué)生成績管理系統(tǒng)。先建立一個(gè)有三個(gè)學(xué)生的鏈表,每個(gè)結(jié)點(diǎn)包含:學(xué)號(hào)、姓名、三門考試成績(英語、數(shù)學(xué)、計(jì)算機(jī))。要求利用菜單的形式進(jìn)行管理。</p><p><b> 2 需求分析&l
7、t;/b></p><p><b> 2.1要求</b></p><p> ?。?)用C語言實(shí)現(xiàn)程序設(shè)計(jì);</p><p> ?。?)利用結(jié)構(gòu)體進(jìn)行相關(guān)信息處理;</p><p> (3)畫出查詢模塊的流程圖;</p><p> ?。?)系統(tǒng)的各個(gè)功能模塊要求用函數(shù)的形式實(shí)現(xiàn);</
8、p><p> (5)界面友好(良好的人機(jī)互交),程序要有注釋。</p><p><b> 2.2任務(wù)</b></p><p> ?。?)先建立一個(gè)有三個(gè)學(xué)生的鏈表,每個(gè)結(jié)點(diǎn)包含:學(xué)號(hào)、姓名、3門考試成績;</p><p> ?。?)輸入姓名查詢?cè)撏瑢W(xué)的信息,并顯示在屏幕上;</p><p> ?。?/p>
9、3)畫出所有模塊的流程圖;</p><p><b> ?。?)編寫代碼;</b></p><p> ?。?)程序分析與調(diào)試。</p><p><b> 2.3運(yùn)行環(huán)境</b></p><p> (1)WINDOWS2000/XP系統(tǒng)</p><p> ?。?)TurboC
10、2.0編譯環(huán)境</p><p><b> 2.4開發(fā)工具</b></p><p><b> C語言</b></p><p> 3 概要設(shè)計(jì)與詳細(xì)設(shè)計(jì)</p><p><b> 3.1系統(tǒng)流程圖</b></p><p><b> 如圖3
11、.1所示。</b></p><p> 3.2查詢函數(shù)流程圖</p><p><b> 4 編碼與實(shí)現(xiàn)</b></p><p><b> 4.1分析</b></p><p> 在程序的開頭部分定義結(jié)構(gòu)體類型和全局的結(jié)構(gòu)體數(shù)組,用來存放和提取學(xué)生的信息。</p><
12、;p> struct student //學(xué)生數(shù)據(jù) </p><p> { int num;</p><p> struct score f[9];</p><p> char name[20]; </p><p> float ave; </p><p> float sum;
13、</p><p><b> }; </b></p><p> 用輸入函數(shù)scanf來輸入學(xué)生的信息放在程序中,在這個(gè)函數(shù)</p><p> 用void語句就能實(shí)現(xiàn)。</p><p> void luru(struct student a[] ); //錄入函數(shù) </p><p>
14、 void paixu(struct student a[]); //排序函數(shù) </p><p> void charu(struct student a[]); //插入函數(shù) </p><p> void del(struct student a[]); //刪除函數(shù) </p><p> void display(struct student a
15、[]);//顯示函數(shù) </p><p> void cprint(struct student a[],int m);//查詢輸出函數(shù) </p><p> void chaxun1(struct student a[]);//學(xué)號(hào)查詢函數(shù) </p><p> void chaxun2(struct student a[]);//姓名查詢函數(shù) </p&
16、gt;<p> void charu(struct student a[])paixu(struct student a[])調(diào)用paixu(struct student a[])</p><p> struct student a[];//存檔函數(shù) </p><p> 在main函數(shù)中用int函數(shù)定義,然后再運(yùn)用printf()函數(shù)就可以提取學(xué)生的成績了。</
17、p><p> 而后可以根據(jù)不同的函數(shù)來刪除、修改學(xué)生的成績信息。</p><p> 最終程序結(jié)束,完成學(xué)生成績信息的錄入、修改、刪除以及查詢。</p><p><b> 4.2具體代碼實(shí)現(xiàn)</b></p><p> #include<stdio.h> </p><p> #i
18、nclude<stdlib.h> </p><p> #include<string.h> </p><p> struct score //各科成績 </p><p><b> { </b></p><p> float s; </p><p>&l
19、t;b> }; </b></p><p> struct student //學(xué)生數(shù)據(jù) </p><p><b> { </b></p><p> int num; </p><p> struct score f[9]; </p><p> ch
20、ar name[20]; </p><p> float ave; </p><p> float sum; </p><p><b> }; </b></p><p> int i=0;//統(tǒng)計(jì)個(gè)數(shù) </p><p> struct student stu[99];
21、 </p><p> void luru(struct student a[] ); //錄入函數(shù) </p><p> void paixu(struct student a[]); //排序函數(shù) </p><p> void charu(struct student a[]); //插入函數(shù) </p><p> vo
22、id del(struct student a[]); //刪除函數(shù) </p><p> void display(struct student a[]);//顯示函數(shù) </p><p> void cprint(struct student a[],int m);//查詢輸出函數(shù) </p><p> void chaxun1(struct stude
23、nt a[]);//學(xué)號(hào)查詢函數(shù) </p><p> void chaxun2(struct student a[]);//姓名查詢函數(shù) </p><p> void save(struct student a[]);//存檔函數(shù) </p><p> void main() //主函數(shù)開始 </p><p><b> {
24、 </b></p><p> int number; </p><p><b> int x,y; </b></p><p> for(y=0;y<99;y++) //將所有成績清空 </p><p><b> { </b></p><p>
25、 for(x=0;x<6;x++) </p><p><b> { </b></p><p> stu[y].f[x].s=NULL; </p><p><b> } </b></p><p><b> } </b></p><p>
26、printf("********************************************************************************\n"); </p><p> printf("\t\t\t 歡迎使用\n"); </p><p> printf("\n\t\t\t
27、 學(xué)生成績管理系統(tǒng)\n\n"); </p><p> printf("*************************************菜單***************************************\n"); </p><p> printf("請(qǐng)選擇功能:\n\n0.退出\n1.錄入新學(xué)生成績數(shù)據(jù)\n2.顯示學(xué)生成績
28、數(shù)據(jù)\n3.按總成績排序\n4.插入學(xué)生成績數(shù)據(jù)\n5.刪除學(xué)生成績數(shù)據(jù)\n6.按學(xué)生學(xué)號(hào)查詢\n7.按學(xué)生姓名查詢\n8.儲(chǔ)存為TXT文件\n\n"); </p><p> printf("\n********************************************************************************\n"); </p
29、><p><b> do </b></p><p><b> { </b></p><p> scanf("%d",&number); </p><p> printf("\n-----------------------------------
30、--------\n"); </p><p> switch (number) </p><p><b> { </b></p><p> case 0:break; //退出 </p><p> case 1:luru(stu);break; //錄入新學(xué)生成績數(shù)據(jù) </p>
31、;<p> case 2:display(stu);break; //顯示學(xué)生成績數(shù)據(jù) </p><p> case 3:paixu(stu);break; //按總成績排序 </p><p> case 4:charu(stu);break; //插入學(xué)生成績數(shù)據(jù) </p><p> case 5:del(stu);break; //刪
32、除學(xué)生成績數(shù)據(jù)\n </p><p> case 6:chaxun1(stu);break; //按學(xué)生學(xué)號(hào)查詢 </p><p> case 7:chaxun2(stu);break; //按學(xué)生姓名查詢 </p><p> case 8:save(stu);break; //儲(chǔ)存為TXT文件 </p><p><b>
33、} </b></p><p> }while(number!=0); </p><p> printf("謝謝使用!"); </p><p> printf("\n"); </p><p><b> } </b></p><
34、;p> void luru(struct student a[]) //錄入函數(shù) </p><p><b> { </b></p><p><b> int m; </b></p><p><b> int k; </b></p><p> ch
35、ar b; </p><p> float sum=0; </p><p> printf("請(qǐng)輸入科目數(shù)(最多6科):"); </p><p> scanf("%d",&m); </p><p> printf("請(qǐng)輸入學(xué)生信息\n"); <
36、;/p><p><b> do </b></p><p><b> { </b></p><p> printf("學(xué)號(hào):"); </p><p> scanf("%d",&a[i].num); </p><p&
37、gt; printf("姓名:"); </p><p> scanf("%s",a[i].name); </p><p> for(k=0;k<m;k++) </p><p><b> { </b></p><p> printf("請(qǐng)輸入
38、第%d科目成績:",k+1); </p><p> float temp; </p><p> scanf("%f",&temp); </p><p> a[i].f[k].s = temp; </p><p><b> } </b></p>
39、<p><b> //計(jì)算總分 </b></p><p> a[i].sum=0; </p><p> for(k=0;k<m;k++) </p><p><b> { </b></p><p> a[i].sum=a[i].sum+a[i].f[k].s
40、; </p><p><b> } </b></p><p> //計(jì)算平均分 </p><p> a[i].ave=0; </p><p> a[i].ave=a[i].sum/m; </p><p><b> i++; </b></
41、p><p> printf("是否繼續(xù)錄入學(xué)生數(shù)據(jù)?\n(Y/N)"); </p><p> fflush(stdin);//刷新標(biāo)準(zhǔn)輸入緩沖區(qū) </p><p> scanf("%c",&b); </p><p> }while(b=='Y'||b=='
42、y'); </p><p> display(a); </p><p><b> } </b></p><p> void display(struct student a[]) //顯示函數(shù) </p><p><b> { </b></p><
43、;p> int k,m; </p><p> system("cls"); //清屏 </p><p> printf("學(xué)號(hào)\t姓名\t第1科\t第2科\t第3科\t第4科\t第5科\t第6科\t總分\t平均分\n"); </p><p> printf("\n----------------
44、--------------------------------------------------------------\n\n"); </p><p> for(k=0;k<i;k++) </p><p><b> { </b></p><p> printf("%d\t%s\t",a
45、[k].num,a[k].name); </p><p> for(m=0;m<6;m++) </p><p><b> { </b></p><p> printf("%.2f\t",a[k].f[m].s); </p><p><b> } </b>&l
46、t;/p><p> printf("%.2f\t%.2f\n",a[k].sum,a[k].ave); </p><p><b> } </b></p><p> printf("\n-------------------------------------------------------------
47、-----------------\n\n"); </p><p> printf("請(qǐng)選擇功能:\n0.退出\t1.錄入\t2.顯示\t3.排序\t4.插入\t5.刪除\t6.學(xué)號(hào)查詢 7.姓名查詢\t8.存檔\n\n"); </p><p><b> } </b></p><p> void
48、 paixu(struct student a[]) //排序函數(shù) </p><p><b> { </b></p><p> int j,k; </p><p> struct student temp; </p><p> for(k=0;k<i;k++) </p>&
49、lt;p><b> { </b></p><p> for(j=0;j<i-k;j++) </p><p><b> { </b></p><p> if(a[j].ave<a[j+1].ave) </p><p><b> { </b
50、></p><p> temp=a[j]; </p><p> a[j]=a[j+1]; </p><p> a[j+1]=temp; </p><p><b> } </b></p><p><b> } </b></p>
51、<p><b> } </b></p><p> printf("按總分排序后的學(xué)生數(shù)據(jù)如下\n"); </p><p> display(a); </p><p><b> } </b></p><p> void charu(struct
52、student a[]) //插入函數(shù) </p><p><b> { </b></p><p> int j,k,m,x; </p><p> struct student temp; </p><p> for(x=0;x<6;x++) </p><p><
53、b> { </b></p><p> temp.f[x].s=0; </p><p><b> } </b></p><p> //將temp中的所有成績清除 </p><p> printf("請(qǐng)輸入成績數(shù)目:"); </p><p> sc
54、anf("%d",&m); </p><p> printf("請(qǐng)輸入學(xué)生信息\n"); </p><p> printf("學(xué)號(hào):"); </p><p> scanf("%d",&temp.num); </p><p>
55、 printf("姓名:"); </p><p> scanf("%s",temp.name); </p><p> for(k=0;k<m;k++) </p><p><b> { </b></p><p> printf("請(qǐng)輸入第%d科
56、目成績:",k+1); </p><p> float tt; </p><p> scanf("%f",&tt); </p><p> temp.f[k].s = tt; </p><p><b> } </b></p><p>&
57、lt;b> //計(jì)算總分 </b></p><p> temp.sum=0; </p><p> for(k=0;k<m;k++) </p><p><b> { </b></p><p> temp.sum=temp.sum+temp.f[k].s; </p&
58、gt;<p><b> } </b></p><p> //計(jì)算平均分 </p><p> temp.ave=temp.sum/m; </p><p> for(j=0;j<i;j++) </p><p> for(k=i;k>j;k--) </p>
59、<p><b> { </b></p><p> a[k]=a[k-1]; </p><p><b> } </b></p><p><b> i++; </b></p><p> a[j]=temp; </p><p
60、> display(a); </p><p><b> } </b></p><p> void del(struct student a[]) //刪除函數(shù) </p><p><b> { </b></p><p> int k,j; </p>&
61、lt;p> printf("請(qǐng)輸入要?jiǎng)h除的學(xué)生學(xué)號(hào):"); </p><p> scanf("%d",&k); </p><p> for(j=0;j<i;j++) </p><p><b> { </b></p><p> if(k=
62、=a[j].num) //記錄要?jiǎng)h除的學(xué)生的位置 </p><p><b> { </b></p><p><b> break; </b></p><p><b> } </b></p><p><b> } </b></
63、p><p> if(j<i) </p><p><b> { </b></p><p> for(k=j;k<i-1;k++) </p><p><b> { </b></p><p> a[j]=a[j+1]; </p>
64、<p><b> } </b></p><p><b> i--; </b></p><p> printf("刪除后的學(xué)生數(shù)據(jù)\n"); </p><p> display(a); </p><p><b> } </b&
65、gt;</p><p><b> else </b></p><p><b> { </b></p><p> printf("\n\t\t沒有您要?jiǎng)h除的學(xué)生數(shù)據(jù)\n\n"-); </p><p> printf("\n請(qǐng)選擇功能:\n0.退出\t1
66、.錄入\t2.顯示\t3.排序\t4.插入\t5.刪除\t6.學(xué)號(hào)查詢 7.姓名查詢\t8.存檔\n\n"); </p><p><b> } </b></p><p><b> } </b></p><p> void cprint(struct student a[],int m)//查詢
67、輸出函數(shù) </p><p><b> { </b></p><p><b> int o; </b></p><p> system("cls"); //清屏 </p><p> printf("學(xué)號(hào)\t姓名\t第1科\t第2科\t第3科\t第4科\t第5科\t
68、第6科\t總分\t平均分\n"); </p><p> printf("\n------------------------------------------------------------------------------\n\n"); </p><p> printf("%d\t%s\t",a[m].num,a[m]
69、.name); </p><p> for(o=0;o<6;o++) </p><p><b> { </b></p><p> printf("%.2f\t",a[m].f[o].s); </p><p><b> } </b></p>&l
70、t;p> printf("%.2f\t%.2f\n",a[m].sum,a[m].ave); </p><p> printf("\n------------------------------------------------------------------------------\n\n"); </p><p> pri
71、ntf("\n請(qǐng)選擇功能:\n0.退出\t1.錄入\t2.顯示\t3.排序\t4.插入\t5.刪除\t6.學(xué)號(hào)查詢 7.姓名查詢\t8.存檔\n\n"); </p><p><b> } </b></p><p> void chaxun1(struct student a[])//學(xué)號(hào)查詢函數(shù) </p><p>
72、<b> { </b></p><p><b> int m,t; </b></p><p> printf("請(qǐng)輸入要查詢的學(xué)號(hào):"); </p><p> scanf("%d",&t); </p><p> for(m=0;m<=i
73、;m++) </p><p><b> { </b></p><p> if(a[m].num==t) </p><p><b> { </b></p><p> cprint(a,m); </p><p><b> break; </b>&
74、lt;/p><p><b> } </b></p><p> if(m==i&&a[m].num!=t) </p><p><b> { </b></p><p> system("cls"); //清屏 </p><p> pri
75、ntf("\n\t\t沒有查到您要找的學(xué)生資料\n"); </p><p> printf("\n--------------------------------------------------------------------------------\n"); </p><p> printf("\n請(qǐng)選擇功能:\n0.退出
76、\t1.錄入\t2.顯示\t3.排序\t4.插入\t5.刪除\t6.學(xué)號(hào)查詢 7.姓名查詢\t8.存檔\n\n"); </p><p><b> } </b></p><p><b> } </b></p><p><b> } </b></p><p>
77、 void chaxun2(struct student a[])//姓名查詢函數(shù) </p><p><b> { </b></p><p><b> int m; </b></p><p> char t[20]; </p><p> printf("請(qǐng)輸入要查詢的姓名:&qu
78、ot;); </p><p> scanf("%s",t); </p><p> for(m=0;m<=i;m++) </p><p><b> { </b></p><p> if(strcmp(a[m].name,t)==0) </p><p><b&
79、gt; { </b></p><p> cprint(a,m); </p><p><b> break; </b></p><p><b> } </b></p><p> if(m==i&&(strcmp(a[m].name,t)!=0)) </p&
80、gt;<p><b> { </b></p><p> system("cls"); //清屏 </p><p> printf("\n\t\t沒有查到您要找的學(xué)生資料\n"); </p><p> printf("\n---------------------------
81、-----------------------------------------------------\n"); </p><p> printf("\n請(qǐng)選擇功能:\n0.退出\t1.錄入\t2.顯示\t3.排序\t4.插入\t5.刪除\t6.學(xué)號(hào)查詢 7.姓名查詢\t8.存檔\n\n"); </p><p><b> } <
82、;/b></p><p><b> } </b></p><p><b> } </b></p><p> void save(struct student a[])//存檔函數(shù) </p><p><b> { </b></p><p>
83、; int k,m; </p><p> FILE * fpFile; </p><p> fpFile = fopen("student.txt", "w"); </p><p> fprintf(fpFile,"學(xué)號(hào)\t姓名\t第1科\t第2科\t第3科\t第4科\t第5科\t第6科\t總分\
84、t平均分\n"); </p><p> fprintf(fpFile,"\n---------------------------------------------------------------------------------\n\n"); </p><p> for(k=0;k<i;k++) </p><
85、p><b> { </b></p><p> fprintf(fpFile,"%d\t%s\t",a[k].num,a[k].name); </p><p> for(m=0;m<6;m++) </p><p><b> { </b></p><p>
86、 fprintf(fpFile,"%.2f\t",a[k].f[m].s); </p><p><b> } </b></p><p> fprintf(fpFile,"%.2f\t%.2f\n",a[k].sum,a[k].ave); </p><p><b> } <
87、;/b></p><p> fprintf(fpFile,"\n---------------------------------------------------------------------------------\n\n"); </p><p> fclose(fpFile); </p><p> printf(&
88、quot;已存到根目錄student.txt文件"); </p><p> printf("\n-------------------------------------------\n"); </p><p> printf("\n請(qǐng)選擇功能:\n0.退出\t1.錄入\t2.顯示\t3.排序\t4.插入\t5.刪除\t6.學(xué)號(hào)查詢 7
89、.姓名查詢\t8.存檔\n\n"); </p><p><b> } </b></p><p><b> 結(jié)果如圖所示</b></p><p><b> 5 課程設(shè)計(jì)總結(jié)</b></p><p> 通過這次課程設(shè)計(jì)我對(duì)C語言的神奇功能更加佩服,我默默在心
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計(jì)---學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)-學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)----學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)-學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)-學(xué)生成績管理系統(tǒng)
- 學(xué)生成績管理系統(tǒng)--c語言課程設(shè)計(jì)
- c語言課程設(shè)計(jì)--學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)--學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)---學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)-學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)———學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)---學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)_學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)設(shè)計(jì)
- c語言課程設(shè)計(jì)--學(xué)生成績管理
- c語言課程設(shè)計(jì)--- 學(xué)生成績管理
評(píng)論
0/150
提交評(píng)論