版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 本科生課程論文封面</b></p><p> 課程名稱 C語言課程設計 </p><p> 教師姓名 </p><p> 本科生姓名 </p><p> 本科生學號
2、 </p><p> 本科生專業(yè) 072114 (機械) </p><p> 所在院系 機電學院 </p><p> 類別: </p><p> 日期: 2012年6月25日 </p><p><
3、;b> 目錄</b></p><p><b> 課程論文題目</b></p><p><b> 程序設計思路</b></p><p><b> 功能模塊圖</b></p><p><b> 數據結構設計</b></p>
4、;<p><b> 算法設計</b></p><p><b> 程序代碼</b></p><p><b> 程序運行結果</b></p><p> 編程中遇到的困難及解決方法</p><p><b> 總結心得及良好建議</b>&l
5、t;/p><p><b> 致謝</b></p><p> 一、課程論文題目:學生成績管理系統(tǒng)1:題目要求</p><p> 請設計《學生成績管理系統(tǒng)》,實現學生信息的錄入,顯示,查找,添加,保存,刪除,插入等功能模塊。要求功能選擇用菜單實現,數據輸入和結果輸出要求有文件存放。</p><p><b>
6、原始數據文件格式:</b></p><p> 學號 姓名 英語 C語言 高等數學 平均成績</p><p> 01 張三 75 85 80 80</p><p> 02 李四 … … … …</p><p><b> 2:需
7、求分析</b></p><p> 根據題目要求,由于學生信息總是存放在文件中,所以應提供文件的輸入,輸出等操作;在程序中需要瀏覽學生的信息,應提供顯示,查找,排序等操作;另外還應提供鍵盤式選擇菜單實現功能選擇。</p><p><b> 3:總體設計</b></p><p> 根據上面的需求分析,可以將這個系統(tǒng)的設計分為:數據
8、輸入模塊、數據顯示模塊、數據查找模塊、數據插入模塊、成績排序模塊和成績保存模塊等。</p><p><b> 二、程序設計思路</b></p><p><b> 用戶輸入模塊</b></p><p> 在此模塊中用戶根據自己的需求輸入數字1~7中的任意一個數字,實現相應的功能。</p><p>
9、;<b> 信息錄入功能模塊</b></p><p> 此模塊可以讓用戶輸入每個學生的信息:學號、姓名、英語成績、C語言成績、高等數學成績、平均成績。用戶可以連續(xù)輸入學生的信息,或者刪除或者查詢,也可以保存當前已錄入的信息。</p><p><b> 修改學生成績模塊</b></p><p> 用戶可以根據實際情況
10、的變化修改已錄入的學生成績的信息,跟實際同步。</p><p><b> 文件保存模塊</b></p><p> 用戶可以在確定已錄入的信息無誤之后將學生的信息存為一個數據文件。已保存的信息可以再文件中查看也可以在程序中進行查看。用戶輸入的學生信息可以隨時保存。</p><p><b> 查詢功能模塊</b><
11、/p><p> 在此模塊里,用戶可以根據提示輸入所想要查詢的學生的學號以查詢學生的信息。</p><p><b> 刪除功能模塊、</b></p><p> 在此模塊里,用戶可以根據自己的需求選擇想要刪除的學生信息,選擇之后程序會再次確認,以防誤刪。 </p><p><b> 7、排序功能模塊</b
12、></p><p> 在此模塊中,程序會將用戶已錄入的信息按平均成績由低到高進行排序。</p><p><b> 三、功能模塊圖</b></p><p><b> 四、數據結構設計</b></p><p> struct xueshengchengji /*聲明學生成績
13、數據結構體*/</p><p><b> {</b></p><p> char xuehao[10]; /*學生學號*/</p><p> char name[10]; /*學生姓名*/</p><p> float cyuyan; /*c語言成績*/
14、</p><p> float math; /*高數成績*/</p><p> float english; /*英語成績*/</p><p> float average; /*平均成績*/</p><p><b> };</b></p
15、><p> struct xueshengchengji chengji[100],*p=chengji; /*聲明記錄學生成績情況的100個元素的結構體數組*/</p><p><b> 五、算法設計</b></p><p><b> 1、添加模塊</b></p><p> void ad
16、d() </p><p><b> {</b></p><p> printf ("\t請輸入學生學號:");</p><p> fflush(stdin); /*清除鍵盤緩沖區(qū)*/</p><p&g
17、t; gets(chengji[++n].xuehao);</p><p> printf("\t\t\t\t請輸入學生姓名:");</p><p> gets(chengji[n].name);</p><p> printf("\t\t\t\t請輸入該學生的英語成績:");</p><p>
18、 scanf("%f",&chengji[n].cyuyan);</p><p> printf("\t\t\t\t請輸入該學生的C語言成績:");</p><p> scanf("%f",&chengji[n].math);</p><p> printf("\t\t\t
19、\t請輸入該學生的高等數學成績:");</p><p> scanf("%f",&chengji[n].english);</p><p><b> /*計算總成績*/</b></p><p> chengji[n].average=(chengji[n].cyuyan+chengji[n].math
20、+chengji[n].english)/3;</p><p><b> /*輸出內容*/</b></p><p> printf("\n\t\t\t\t該學生成績?yōu)?%f",chengji[n].average);</p><p> printf("\n\n\t\t\t\t按任意鍵返回......"
21、;);</p><p><b> getch();</b></p><p><b> }</b></p><p><b> 2、修改模式</b></p><p> void modify ( )</p><p><b> {</
22、b></p><p> char xuehao[10]; /*接收學生學號字符數組*/</p><p> int i; /*循環(huán)變量*/</p><p> if (n==-1) /*人數為0說明成績記錄尚未添加*/</p><p><b> {</b><
23、;/p><p> printf("\n\n\t\t當前還沒有學生成績記錄,按任意鍵返回主菜單......");</p><p><b> getch( );</b></p><p><b> return;</b></p><p><b> }</b>&
24、lt;/p><p> printf("\t請輸入學生學號:"); /*提示信息*/</p><p> gets(xuehao); /*從鍵盤讀取字符串*/</p><p> for (i=0;i<=n;i++) /*在學生總數范圍內循環(huán)查找*/</p><p
25、><b> {</b></p><p> if(strcmp(chengji[i].xuehao,xuehao)==0) /*比較并找到*/</p><p><b> {</b></p><p> /*顯示該學生成績情況*/</p><p> printf("\
26、n\t\t\t 該學生成績情況如下: ");</p><p> printf("\n\t\t\t===================\n\n");</p><p> printf("%-6s%-6s%-9s","學號","姓名","平均成績");</p>&l
27、t;p> printf("%-12s%-6s%12s","英語","C語言","高等數學");</p><p> printf("%-6s%-6s",chengji[i].xuehao,chengji[i].name);</p><p> printf("%9.2f%9
28、.2f%9.2f%9.2f",chengji[i].cyuyan,chengji[i].math,chengji[i].english,chengji[i].average);</p><p> /*接受該學生新的成績情況*/</p><p> printf("\n\t\t 請輸入該學生新的英語成績: ");</p><p> s
29、canf ("%f",&chengji[i].cyuyan);</p><p> printf("\n\t\t 請輸入該學生新的C語言成績: ");</p><p> scanf ("%f",&chengji[i].math);</p><p> printf("\n\t\t
30、 請輸入該學生新的高等數學成績: ");</p><p> scanf ("%f",&chengji[i].english);</p><p><b> 3、查詢模塊</b></p><p> /*查詢學生成績(依據學號)*/</p><p> void find()<
31、/p><p><b> {</b></p><p> char xuehao[10]; /*接收學生學號字符數組*/</p><p> int i; /*循環(huán)變量*/</p><p> if(n==-1) /*人數為0說明成績記錄尚未添加*/</p><p><b
32、> {</b></p><p> printf("\n\n\t\t當前還沒有學生成績,按任意鍵返回主菜單......");</p><p><b> getch();</b></p><p><b> return;</b></p><p><b&
33、gt; }</b></p><p> printf("\t請輸入學生學號:"); /*提示信息*/</p><p> gets(xuehao); /*從鍵盤讀取字符串*/</p><p> for(i=0;i<=n;i++) /*在職工總數范圍內循環(huán)查找*/</p><p>
34、;<b> {</b></p><p> if(strcmp(chengji[i].xuehao,xuehao)==0) /*比較并找到*/</p><p><b> {</b></p><p> printf("\n 該學生成績情況如下:"); </p><
35、p> printf("\n===================\n\n");</p><p> printf("%-6s%-6s%","學號","姓名");</p><p> printf("%-12s%-6s%12s%9s\n","英語","C語
36、言","高等數學","平均成績");</p><p> printf("%-6s%-6s%",chengji[i].xuehao,chengji[i].name);</p><p> printf("%9.2f%9.2f%9.2f%9.2f",chengji[i].cyuyan,chengji[i
37、].math,chengji[i].english,chengji[i].average);</p><p> printf("\n 按任意鍵返回主菜單......");</p><p><b> getch();</b></p><p><b> break;</b></p>&l
38、t;p><b> }</b></p><p><b> }</b></p><p> if(i==n+1)</p><p><b> {</b></p><p> printf("\n\t\t您所輸入的學生學號有誤或不存在!");</p
39、><p> printf("按任意鍵返回主菜單......");</p><p><b> getch();</b></p><p><b> return;</b></p><p><b> }</b></p><p><
40、b> }</b></p><p><b> 4、刪除模塊</b></p><p> void del()</p><p><b> {</b></p><p> char xuehao[10]; </p><
41、p> int i,j; </p><p> char d; </p><p> printf("\t請輸入待刪除學生學號:");</p><p> gets(xuehao);</p>
42、<p> for(i=0;i<=n;i++) {</p><p> if(strcmp(chengji[i].xuehao,xuehao)==0){</p><p> printf("\n\t\t你確認要刪除%s號學生成績信息么(y/n)?",chengji[i].xuehao );</p&
43、gt;<p> d=getche();</p><p> if(d=='y'||d=='Y') </p><p><b> {</b></p><p> if(i==n) </p><p>&
44、lt;b> n--;</b></p><p> else </p><p><b> {</b></p><p> for(j=i;j<=n;j++) </p><p><b> {</b>
45、;</p><p> strcpy(chengji[j].xuehao,chengji[j+1].xuehao);</p><p> strcpy(chengji[j].name,chengji[j+1].name);</p><p> chengji[j].english=chengji[j+1].english;</p><p>
46、 chengji[j].math=chengji[j+1].math;</p><p> chengji[j].cyuyan=chengji[j+1].cyuyan;</p><p><b> }</b></p><p><b> n--;</b></p><p><b> }&l
47、t;/b></p><p> printf("\n\n\t\t該學生記錄成功刪除,按任意鍵返回主菜單......");</p><p><b> getch();</b></p><p><b> break;</b></p><p><b> }<
48、/b></p><p> else {</p><p> printf("\n\n\t\t你選擇了不刪除該學生記錄,按任意鍵返回主菜單......");</p><p><b> getch();</b></p><p><
49、;b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> if(i == n+1)
50、{</p><p> printf("\n\t\t本班級無此學號,按任意鍵返回主菜單......");</p><p><b> getch();</b></p><p><b> }</b></p><p><b> }</b></p>
51、;<p><b> 5、排序模塊</b></p><p> void rank()</p><p><b> {</b></p><p> int i,j; </p><p> printf("\t按平均成績排序如下
52、\n");</p><p> for (i=0;i<n;i++)</p><p> for(j=i+1;j<n;j++)</p><p> if (chengji[i].average>chengji [j].average)</p><p> {*p=chengji[j];chengji[j]=cheng
53、ji[i];chengji[i]=*p;}</p><p> printf("%-6s%-6s","學號","姓名");</p><p> printf("%-12s%-6s%12s%-9s\n","英語","C語言","高等數學","平
54、均成績");</p><p> for(i=0;i<=n;i++)</p><p><b> { </b></p><p> printf("%-6s%-6s",chengji[i].xuehao,chengji[i].name);</p><p> printf("
55、%9.2f%9.2f%9.2f%9.2f\n",chengji[i].cyuyan,chengji[i].math,chengji[i].english,chengji[i].average);</p><p><b> }</b></p><p> printf("\n\n\t\t\t\t按任意鍵返回......");</p&
56、gt;<p><b> getch();</b></p><p><b> }</b></p><p><b> 六、程序代碼個</b></p><p> #include <stdio.h> /*基本的輸入輸出函數*/</p><p&
57、gt; #include <conio.h> /*getch()及getche()函數包含在此*/</p><p> #include <string.h> /*字符串相關函數*/</p><p> #include <windows.h> /*sleep()函數包含在此*/</p><p&g
58、t; #define TRUE 1</p><p> /*以下函數為自定義函數聲明語句*/</p><p> void read(); /*從數據文件中讀取學生成績數據*/</p><p> void write(); /*想學生成績數據文件寫入記錄*/</p><p> void
59、find(); /*查詢學生成績數據記錄*/</p><p> void modify(); /*修改學生成績數據記錄*/</p><p> void add(); /*向學生成績數據文件中增加記錄*/</p><p> void del(); /*從學生成
60、績數據文件中刪除記錄*/</p><p> void rank(); /*排列學生成績*/</p><p> struct xueshengchengji /*聲明學生成績數據結構體*/</p><p><b> {</b></p><p> char xuehao[10];
61、 /*學生學號*/</p><p> char name[10]; /*學生姓名*/</p><p> float cyuyan; /*c語言成績*/</p><p> float math; /*高數成績*/</p><p> float english;
62、 /*英語成績*/</p><p> float average; /*平均成績*/</p><p><b> };</b></p><p> struct xueshengchengji chengji[100],*p=chengji; /*聲明記錄學生成績情況的100個元素的結構體數組*/<
63、;/p><p> int n = -1; /*聲明統(tǒng)計學生人數的變量(全局)*/</p><p> void main() {</p><p><b> char ch;</b></p><p> read(); /*從數據文件中讀取學生成績數據并初始化學生成
64、績結構體數組*/</p><p> while(TRUE) {</p><p> system("cls"); /*清屏命令*/</p><p> printf("\n\n\t\t★☆ 歡迎使用學生成績管理系統(tǒng) ☆★\n\n\n");</p><p> printf("\t\t請
65、選擇(1-7):\n");</p><p> printf("\t\t======================================================\n");</p><p> printf("\t\t\t 1.查詢學生成績記錄\n");</p><p> printf("
66、;\t\t\t 2.修改學生成績記錄\n");</p><p> printf("\t\t\t 3.添加學生成績記錄\n");</p><p> printf("\t\t\t 4.刪除學生成績記錄\n");</p><p> printf("\t\t\t 5.保存學生成績記錄\n");<
67、;/p><p> printf("\t\t\t 6.成績排序\n");</p><p> printf("\t\t\t 7.退出\n");</p><p> printf("\t\t======================================================\n");<
68、;/p><p> printf("\n\t\t");</p><p> ch=getch();</p><p> switch(ch) {</p><p><b> case '1':</b></p><p><b> find();</b
69、></p><p> break; /*查詢*/</p><p><b> case '2':</b></p><p><b> modify();</b></p><p> break; /*修改*/</p><p>
70、;<b> case '3':</b></p><p><b> add();</b></p><p> break; /*添加*/</p><p><b> case '4':</b></p><p><b>
71、; del();</b></p><p> break; /*刪除*/</p><p><b> case '5':</b></p><p><b> write();</b></p><p> break; /*保存*/<
72、/p><p><b> case '6':</b></p><p><b> rank();</b></p><p> break; /*排序*/</p><p><b> case '7':</b></p>&
73、lt;p> return; /*退出*/</p><p><b> default:</b></p><p> printf("\t\t \n");</p><p><b> getch();</b></p><p><b>
74、 }</b></p><p><b> }</b></p><p><b> return;</b></p><p><b> }</b></p><p> /*從數據文件cj.dat中讀取學生成績數據到數據組chengji中*/</p>&l
75、t;p> void read()</p><p><b> {</b></p><p> FILE * file; /*聲明文件指針*/</p><p> if((file=fopen("cj.dat","rb"))==NULL)</p><p> /*以二進制
76、方式打開學生成績數據文件,并判斷是否失敗*/</p><p><b> {</b></p><p> printf("\n\n\t 學生成績數據文件無法打開,或為空!");</p><p> printf("\n\n\t 按任意鍵進入主菜單.......");</p><p>
77、;<b> getch();</b></p><p><b> return;</b></p><p><b> }</b></p><p> else /*文件打開成功時*/</p><p><b> {</b></p>&
78、lt;p> n++; /*計算結構體數組下標*/</p><p> while(fread(&chengji[n],sizeof(chengji[n]),1,file) == 1)</p><p><b> n++;</b></p><p> fclose(file); /*關閉文件指針*/</p>
79、;<p> printf("\n\n\t學生成績數據讀取完畢,共有%d人! \n",n);</p><p> printf("\n\t5秒后繼續(xù)...... \n",n);</p><p> n--; /*計算學生記錄總數*/</p><p> Sleep(5000); /*延時5分鐘*
80、/</p><p><b> }</b></p><p><b> }</b></p><p> /*向學生成績數據文件中寫入記錄*/</p><p> void write()</p><p><b> {</b></p>&l
81、t;p> FILE *file; /*聲明文件指針*/</p><p> if(n == -1) /*學生人數為 0 時*/</p><p><b> {</b></p><p> printf(" 沒有數據可存!按任意鍵返回主菜單 \n");</p><p>&l
82、t;b> getch();</b></p><p><b> return;</b></p><p><b> }</b></p><p> if((file=fopen("cj.dat","wb"))!=NULL)</p><p>
83、 /*以二進制方式打開學生成績數據文件,并判斷是否失敗*/</p><p><b> {</b></p><p> fwrite(&chengji[0],sizeof(chengji[0]),n+1,file); /*所有記錄一次寫入文件*/</p><p> fclose(file); /*關閉文件指針*/&l
84、t;/p><p> printf("\n\n\t\t%d條學生記錄保存完畢!\n",n+1);</p><p><b> } </b></p><p> else /*文件打開不成功時*/</p><p> printf("\t\t無法打開學生成績數據文件!\n&quo
85、t;);</p><p> printf("\n\t\t按任意鍵返回主菜單...... ");</p><p><b> getch();</b></p><p><b> }</b></p><p> /*查詢學生成績(依據學號)*/</p><p&
86、gt; void find()</p><p><b> {</b></p><p> char xuehao[10]; /*接收學生學號字符數組*/</p><p> int i; /*循環(huán)變量*/</p><p> if(n==-1) /*人數為0說明成績記錄尚未添加*/</p
87、><p><b> {</b></p><p> printf("\n\n\t\t當前還沒有學生成績,按任意鍵返回主菜單......");</p><p><b> getch();</b></p><p><b> return;</b></p&
88、gt;<p><b> }</b></p><p> printf("\t請輸入學生學號:"); /*提示信息*/</p><p> gets(xuehao); /*從鍵盤讀取字符串*/</p><p> for(i=0;i<=n;i++) /*在職工總數范圍內循環(huán)查找*/
89、</p><p><b> {</b></p><p> if(strcmp(chengji[i].xuehao,xuehao)==0) /*比較并找到*/</p><p><b> {</b></p><p> printf("\n 該學生成績情況如下:");
90、 </p><p> printf("\n===================\n\n");</p><p> printf("%-6s%-6s%","學號","姓名");</p><p> printf("%-12s%-6s%12s%9s\n",&qu
91、ot;英語","C語言","高等數學","平均成績");</p><p> printf("%-6s%-6s%",chengji[i].xuehao,chengji[i].name);</p><p> printf("%9.2f%9.2f%9.2f%9.2f",chengji
92、[i].cyuyan,chengji[i].math,chengji[i].english,chengji[i].average);</p><p> printf("\n 按任意鍵返回主菜單......");</p><p><b> getch();</b></p><p><b> break;<
93、/b></p><p><b> }</b></p><p><b> }</b></p><p> if(i==n+1)</p><p><b> {</b></p><p> printf("\n\t\t您所輸入的學生學號有
94、誤或不存在!");</p><p> printf("按任意鍵返回主菜單......");</p><p><b> getch();</b></p><p><b> return;</b></p><p><b> }</b></
95、p><p><b> }</b></p><p> void list()</p><p><b> {</b></p><p><b> int i;</b></p><p> system("cls");</p>
96、<p> printf("\n\n\t\t\t 全體學生成績情況如下\n");</p><p> printf("\t\t\t===========================\n\n");</p><p> printf("%-6s%-6s%-9s","學號","姓名&quo
97、t;,"平均成績");</p><p> printf("%-12s%-6s%12s\n","英語","C語言","高等數學");</p><p> for(i=0;i<=n;i++)</p><p><b> {</b></p
98、><p> printf("%-6s%-6s%8.2f",chengji[i].xuehao,chengji[i].name,chengji[i].average);</p><p> printf("%9.2f%9.2f%9.2f",chengji[i].english,chengji[i].math);</p><p>&
99、lt;b> }</b></p><p><b> }</b></p><p> void modify ( )</p><p><b> {</b></p><p> char xuehao[10]; /*接收學生學號字符數組*/</p><p&
100、gt; int i; /*循環(huán)變量*/</p><p> if (n==-1) /*人數為0說明成績記錄尚未添加*/</p><p><b> {</b></p><p> printf("\n\n\t\t當前還沒有學生成績記錄,按任意鍵返回主菜單......");<
101、/p><p><b> getch( );</b></p><p><b> return;</b></p><p><b> }</b></p><p> printf("\t請輸入學生學號:"); /*提示信息*/</p><
102、p> gets(xuehao); /*從鍵盤讀取字符串*/</p><p> for (i=0;i<=n;i++) /*在學生總數范圍內循環(huán)查找*/</p><p><b> {</b></p><p> if(strcmp(chengji[i].xuehao,xue
103、hao)==0) /*比較并找到*/</p><p><b> {</b></p><p> /*顯示該學生成績情況*/</p><p> printf("\n\t\t\t 該學生成績情況如下: ");</p><p> printf("\n\t\t\t========
104、===========\n\n");</p><p> printf("%-6s%-6s%-9s","學號","姓名","平均成績");</p><p> printf("%-12s%-6s%12s","英語","C語言","高
105、等數學");</p><p> printf("%-6s%-6s",chengji[i].xuehao,chengji[i].name);</p><p> printf("%9.2f%9.2f%9.2f%9.2f",chengji[i].cyuyan,chengji[i].math,chengji[i].english,chengji
106、[i].average);</p><p> /*接受該學生新的成績情況*/</p><p> printf("\n\t\t 請輸入該學生新的英語成績: ");</p><p> scanf ("%f",&chengji[i].cyuyan);</p><p> printf("
107、;\n\t\t 請輸入該學生新的C語言成績: ");</p><p> scanf ("%f",&chengji[i].math);</p><p> printf("\n\t\t 請輸入該學生新的高等數學成績: ");</p><p> scanf ("%f",&cheng
108、ji[i].english);</p><p><b> /*計算總成績*/</b></p><p> chengji[i].average=(chengji[i].cyuyan+chengji[i].math+chengji[i].english)/3;</p><p> /*同屏顯示計算結果*/</p><p>
109、; printf("\n\t\t\t 該學生成績是: %f",chengji[i].average);</p><p> printf("\n\n\t\t 該學生成績數據修改成功! 按任意鍵返回主菜單......");</p><p><b> getch();</b></p><p><
110、;b> return ;</b></p><p><b> }</b></p><p><b> }</b></p><p> printf("\n\t\t 您所輸入的學生學號有誤或不存在! ");</p><p> printf("按任意鍵
111、返回主菜單......");</p><p><b> getch();</b></p><p><b> return;</b></p><p><b> }</b></p><p> /*向學生管理系統(tǒng)中則增加記錄*/</p><p&g
112、t; void add()</p><p><b> {</b></p><p> printf ("\t請輸入學生學號:");</p><p> fflush(stdin); /*清除鍵盤緩沖區(qū)*/</p><p> gets(chengji[++n].xuehao);&l
113、t;/p><p> printf("\t\t\t\t請輸入學生姓名:");</p><p> gets(chengji[n].name);</p><p> printf("\t\t\t\t請輸入該學生的英語成績:");</p><p> scanf("%f",&chen
114、gji[n].cyuyan);</p><p> printf("\t\t\t\t請輸入該學生的C語言成績:");</p><p> scanf("%f",&chengji[n].math);</p><p> printf("\t\t\t\t請輸入該學生的高等數學成績:");</p&g
115、t;<p> scanf("%f",&chengji[n].english);</p><p><b> /*計算總成績*/</b></p><p> chengji[n].average=(chengji[n].cyuyan+chengji[n].math+chengji[n].english)/3;</p>
116、;<p><b> /*輸出內容*/</b></p><p> printf("\n\t\t\t\t該學生成績?yōu)?%f",chengji[n].average);</p><p> printf("\n\n\t\t\t\t按任意鍵返回......");</p><p><b>
117、; getch();</b></p><p><b> }</b></p><p> /*從學生成績數據文件中刪除記錄*/</p><p> void del()</p><p><b> {</b></p><p> char xuehao[10];
118、 /*接收學生學號字符數組*/</p><p> int i,j; /*循環(huán)變量*/</p><p> char d; /*接收確認刪除字符:y/n*/</p><p> printf(
119、"\t請輸入待刪除學生學號:");</p><p> gets(xuehao);</p><p> for(i=0;i<=n;i++) /*在學生總數范圍內循環(huán)查找*/</p><p><b> {</b></p><p> if(strcm
120、p(chengji[i].xuehao,xuehao)==0) /*比較并找到*/</p><p><b> {</b></p><p> printf("\n\t\t你確認要刪除%s號學生成績信息么(y/n)?",chengji[i].xuehao );</p><p> d=getche();</p>
121、<p> if(d=='y'||d=='Y') /*確認刪除*/</p><p><b> {</b></p><p> if(i==n) /*如果是最后一條記錄*/</p><p><b> n--;</b
122、></p><p> else /*不是最后一條記錄*/</p><p><b> {</b></p><p> for(j=i;j<=n;j++) /*從該記錄開始后續(xù)記錄更新前一條記錄*/</p><p><b> {<
123、/b></p><p> strcpy(chengji[j].xuehao,chengji[j+1].xuehao);</p><p> strcpy(chengji[j].name,chengji[j+1].name);</p><p> chengji[j].english=chengji[j+1].english;</p><p
124、> chengji[j].math=chengji[j+1].math;</p><p> chengji[j].cyuyan=chengji[j+1].cyuyan;</p><p><b> }</b></p><p><b> n--;</b></p><p><b>
125、 }</b></p><p> printf("\n\n\t\t該學生記錄成功刪除,按任意鍵返回主菜單......");</p><p><b> getch();</b></p><p><b> break;</b></p><p><b>
126、}</b></p><p> else /*未確認刪除記錄*/</p><p><b> {</b></p><p> printf("\n\n\t\t你選擇了不刪除該學生記錄,按任意鍵返回主菜單......");</p><p&
127、gt;<b> getch();</b></p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p>
128、<p> if(i == n+1) /*未找到指定學號或未刪除記錄*/</p><p><b> {</b></p><p> printf("\n\t\t本班級無此學號,按任意鍵返回主菜單......");</p><p><b>
129、; getch();</b></p><p><b> }</b></p><p><b> }</b></p><p> /*排列學生的成績*/</p><p> void rank()</p><p><b> {</b>&l
130、t;/p><p> int i,j; /*循環(huán)變量*/</p><p> printf("\t按平均成績排序如下\n");</p><p> for (i=0;i<n;i++)</p><p> for(j=i+1;j<n;j++)</p>&
131、lt;p> if (chengji[i].average>chengji [j].average)</p><p> {*p=chengji[j];chengji[j]=chengji[i];chengji[i]=*p;}</p><p> printf("%-6s%-6s","學號","姓名");</p&
132、gt;<p> printf("%-12s%-6s%12s%-9s\n","英語","C語言","高等數學","平均成績");</p><p> for(i=0;i<=n;i++)</p><p><b> { </b></p>
133、<p> printf("%-6s%-6s",chengji[i].xuehao,chengji[i].name);</p><p> printf("%9.2f%9.2f%9.2f%9.2f\n",chengji[i].cyuyan,chengji[i].math,chengji[i].english,chengji[i].average);</p&g
134、t;<p><b> }</b></p><p> printf("\n\n\t\t\t\t按任意鍵返回......");</p><p><b> getch();</b></p><p><b> }</b></p><p><
135、;b> 七、程序運行結果</b></p><p><b> 1、主菜單</b></p><p> 2、添加學生成績記錄</p><p> 3、刪除學生成績記錄</p><p> 4、修改學生成績記錄</p><p><b> 5、成績排序</b>
136、</p><p><b> 查詢學生成績記錄</b></p><p> 八、編程中遇到的困難及解決方法</p><p> 這一次的C語言課程設計報告是我第一次將C語言運用于實際,在這次的實習中,我遇到了很多問題,但最終我都將這些問題解決了,完成了這一次的C語言課程設計的實習。</p><p> 問題1:題目所包含
137、的程序功能太多,自己不能有一個整體的認識,不知道該從那里開始時這一次的程序設計。</p><p> 解決方法:老師給了我們一個程序的框架,并且告訴我們先確定主函數,再編寫詳細的程序功能。</p><p> 問題2:在這一次的程序設計中,需要運用到很多自己之前都不會的函數。</p><p> 解決方法:大致了解C語言中主要函數的用法,讓自己有印象,在需要用到相應
138、函數的時候再弄清楚使用方法。</p><p> 問題3:在編寫程序的時候總是會出現很多錯誤,每次在調試的時候總會顯示有錯,而且很多問題自己找不出來也不會改正。</p><p> 解決方法:在和同學討論之后還是無法解決的話就會向老師尋求幫助,問老師的意見,聽了老師的講解之后,記住錯誤的原因,避免再次犯錯。</p><p> 九、總結心得及良好建議</p&g
139、t;<p> 對于C語言程序設計這門課,我的態(tài)度還算比較認真,雖然也有上課聽不懂或者一時無法理解的時候,但是一直在努力弄懂它。期末的實習就是對我這門課的學習最真實的檢驗。</p><p> 這次上機實習讓我學到了很多有用的東西,鞏固了之前的學習,讓我學到了在教室和做題中學不到的一些知識,通過這個程序的學習,使我進一步理解和運用結構化程序設計的思想和方法。初步掌握開發(fā)一個小型實用系統(tǒng)的基本方法,基
140、本學會調試一個比較長程序的基本方法,進一步掌握和提高利用C語言進行程序設計的能力。</p><p> 但是,在此次實習中,我也發(fā)現了對一些計算機C語言知識掌握的不足。對里面的好多東西還是很陌生,并不是很熟練,有著許多欠缺,更多的在運用起來的時候還是感到很不好動手。還不能熟練的掌握即運用知識,甚至對一些基本知識混淆,以至于在編程時浪費了很多時間,操作中還出現了一些問題,這些都是我需要改進的地方。而正是這次實習給了
141、我這次機會,讓我更清楚地認識了自己的不足,及時地改正并完善自己,使知識熟練的掌握。</p><p> 這次的實習讓我學到最多最重要的東西就是c語言這門學科所顯示的靈活性,以及它所代表的一種高效率、嚴密邏輯性和高度的條理性,可能我們今后接觸c語言的機會不會很多,但我相信這些理念會給我們今后的學習和生活帶來巨大的便利。</p><p> 這次實習之后我了解到,在進行C語言編程的時候一定要在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設計---學生成績管理系統(tǒng)
- c語言課程設計學生成績管理系統(tǒng)
- c語言課程設計-學生成績管理系統(tǒng)
- c語言課程設計----學生成績管理系統(tǒng)
- c語言課程設計學生成績管理系統(tǒng)
- c語言課程設計學生成績管理系統(tǒng)
- c語言課程設計-學生成績管理系統(tǒng)
- c語言課程設計-學生成績管理系統(tǒng)
- 學生成績管理系統(tǒng)--c語言課程設計
- c語言課程設計--學生成績管理系統(tǒng)
- c語言課程設計--學生成績管理系統(tǒng)
- c語言課程設計---學生成績管理系統(tǒng)
- c語言課程設計-學生成績管理系統(tǒng)
- c語言課程設計———學生成績管理系統(tǒng)
- c語言課程設計學生成績管理系統(tǒng)
- c語言課程設計---學生成績管理系統(tǒng)
- c語言課程設計_學生成績管理系統(tǒng)
- c語言課程設計學生成績管理系統(tǒng)設計
- c語言課程設計--學生成績管理
- c語言課程設計--- 學生成績管理
評論
0/150
提交評論