版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> C語言課程設計報告</b></p><p> 設計題目:學生成績管理系統(tǒng)</p><p><b> 一、總體設計</b></p><p><b> 功能模塊設計 </b></p><p><b> ?。?lt;/b></
2、p><p><b> 數(shù)據(jù)結構設計</b></p><p><b> 自定義的數(shù)據(jù)類型:</b></p><p> struct student </p><p> { char num[10]; /* 學號 */ </p><p> char name[20
3、]; /* 姓名*/ </p><p> char sex[4]; /* 性別*/</p><p> int computer; /* 計算機成績 */</p><p> int English; /* 英語成績 */</p><p> int math; /* 高數(shù)成績*
4、/</p><p><b> }; </b></p><p><b> 2)文件:</b></p><p> 設計了student文件,是為了長期保存學生的學號、姓名、性別、計算機成績、英語成績、高數(shù)成績等數(shù)據(jù)。</p><p> 1.3. 函數(shù)原型設計</p><p&g
5、t; 1》void printgaohongbin1()</p><p> 函數(shù)功能:用二維數(shù)組輸出圖案</p><p><b> 無參函數(shù)</b></p><p> 2》void menu()</p><p> 函數(shù)功能:輸出程序功能菜單</p><p><b> 二、詳細
6、設計</b></p><p><b> 界面設計</b></p><p><b> 開始界面</b></p><p> 2.1.2登記學生資料的界面</p><p> 2.1.3 刪除功能的界面:</p><p> 2.1.3刪除學生資料的界面<
7、;/p><p> 2.1.4查詢學生資料的界面</p><p> 2.1.5修改學生資料的界面</p><p><b> 保存功能的界面:</b></p><p> 2.1.7退出功能的界面:</p><p><b> 算法流程圖</b></p><
8、p> 2.2.1刪除功能模塊流程圖</p><p> 2.2.2查詢功能模塊流程圖</p><p> 2.2.3修改功能模塊流程圖</p><p> 2.2.4保存功能模塊流程圖</p><p><b> 三、測試及運行效果</b></p><p><b> 運行進入程
9、序主菜單</b></p><p> 主選單具有所有函數(shù)的功能實現(xiàn)的選擇功能,通過主選單的操作進入各個功能。主選單主要由主函數(shù)提供,其功能由子函數(shù)實現(xiàn)。</p><p><b> 學生成績登記模塊</b></p><p> 3.3 刪除學生成績模塊</p><p><b> 查詢學生成績模
10、塊</b></p><p><b> 進入查找記錄界面</b></p><p><b> 修改模塊</b></p><p><b> 進入修改界面</b></p><p><b> 保存模塊</b></p><p&g
11、t;<b> 進入保存界面</b></p><p> 可以根據(jù)要求添加用戶想添加的人員信息。</p><p><b> 退出模塊</b></p><p><b> 進入退出界面:</b></p><p><b> 四、總結</b></p&g
12、t;<p> 通過編寫程序,我收獲了很多,同樣我也感受到了很多,重要的是自己的不足之處,發(fā)現(xiàn)自己在C語言的學習中要很多東西沒有學好,致使在程序設計中遇到了很大的困難和障礙自己感覺到很難受,很遺憾。我知道C語言是以后專業(yè)課程的基礎,學好它對于我以后的語言學習將有很大的幫助,雖然自己在學習這門課的時候比較認真,但是由于方法不得當,效率不高,所以感覺到自己沒有學好,在這次程序設計中,當我遇到自己不懂得地方時,及時查找課本,主動
13、請教老師或同學,克服了重重困難。</p><p> 在程序設計中,我發(fā)現(xiàn)自己在指針、鏈表、文件等知識方面不是很懂,而這些只是恰恰是C語言的精華部分,只有精通了這一部分,才能用C語言編寫出好的程序來,所以在以后的程序設計中我將充分運用這些知識來編寫出高水平的程序,重要是能滿足使用者的更大需求,形成良好的人機交往,努力做一個熟練的程序設計者,精通自己的專業(yè)知識。</p><p><b&
14、gt; 附錄:源程序</b></p><p> #include <stdio.h></p><p> #include <stdlib.h></p><p> #include <string.h> </p><p> int shoudsave=0; </p><
15、;p> struct student </p><p> { char num[10];/* 學號 */ </p><p> char name[20]; </p><p> char sex[4]; </p><p> int computer; </p><p> int English; <
16、;/p><p> int math; }; </p><p> typedef struct node </p><p> { struct student data; </p><p> struct node *next; }Node,*Link;</p><p> void printgaohongbin1
17、()</p><p> {char diamond[][19]={{' ',' ',' ',' ',' ',' ',' ',' ',' ','*'},</p><p> {' ',' ','
18、; ',' ',' ',' ',' ','*',' ',' ',' ','*'},</p><p> {' ',' ',' ',' ',' ','*',' &
19、#39;,' ',' ',' ',' ',' ',' ','*'},</p><p> {' ',' ',' ','*',' ',' ',' ',' ',' '
20、;,' ',' ',' ',' ',' ',' ','*'},</p><p> {' ','*',' ',' ',' ',' ',' ',' ',' ',&
21、#39; ',' ',' ',' ',' ',' ',' ',' ','*'}};</p><p><b> int i,j;</b></p><p> for(i=0;i<5;i++)</p><p&g
22、t; {for(j=0;j<19;j++)</p><p> printf("%c",diamond[i][j]);</p><p> printf("\n");</p><p><b> }</b></p><p><b> }</b><
23、;/p><p> void printgaohongbin2()</p><p> {char diamond[][19]={{' ','*',' ',' ',' ',' ',' ',' ',' ',' ',' ',
24、' ',' ',' ',' ',' ',' ','*'},</p><p> {' ',' ',' ','*',' ',' ',' ',' ',' ',
25、9; ',' ',' ',' ',' ',' ','*'},</p><p> {' ',' ',' ',' ',' ','*',' ',' ',' ','
26、',' ',' ',' ','*'},</p><p> {' ',' ',' ',' ',' ',' ',' ','*',' ',' ',' ','*
27、9;},</p><p> {' ',' ',' ',' ',' ',' ',' ',' ',' ','*'}};</p><p><b> int i,j;</b></p><p>
28、; for(i=0;i<5;i++)</p><p> {for(j=0;j<19;j++)</p><p> printf("%c",diamond[i][j]);</p><p> printf("\n");</p><p><b> }</b></
29、p><p><b> }</b></p><p> void menu() </p><p> { printf("*****************+++++++++++++*************++++++++++++*******************\n");</p><p> pr
30、intf("* * +How do you do! * * \n"); </p><p> printf(" * * * +1-----登記學生資料(register) * * * \n"
31、); </p><p> printf(" * * * +2-----刪除學生資料(Delete) * * * \n"); </p><p> printf(" * * * +3-----查詢學生資料(Search) *
32、* * \n"); </p><p> printf(" * * * +4-----修改學生資料(Update) * * * \n"); </p><p> printf(" * * * +5-----保存學生資料(sa
33、ve) * * * \n"); </p><p> printf(" * 歡迎! * * +6-----退出系統(tǒng) (Exit) * 歡迎! * * \n"); </p><p> printf(" * * +7-----
34、結束語 (good-bye) * * \n"); </p><p> printf("*****************+++++++++++++*************++++++++++++*******************\n");</p><p><b> } </b>&l
35、t;/p><p> void printstart() </p><p> { printf("%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&^^@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n");
36、 } </p><p> void Wrong() </p><p> { printf("\n********>>>>>>提示:輸入錯誤!\n"); } </p><p> void Nofind() </p><p> { printf("\n!!!!!!!>
37、>>>>>提示:沒有找到該學生!\n"); } </p><p> void printc() /* 本函數(shù)用于輸出中文 */ </p><p><b> { </b></p><p> printf(" 學號\t 姓名 性別 \t 計算機\t 英語\t 高數(shù)\t\n"); }
38、</p><p> void printe(Node *p)/* 本函數(shù)用于輸出英文 */ </p><p><b> {</b></p><p> printf("%-12s%s\t%s\t%d\t%d\t%d\n",p->data.num,p->data.name,p->data.sex,p-&g
39、t;data.computer,p->data.English,p->data.math);</p><p><b> } </b></p><p> Node* Locate(Link l,char findmess[],char nameornum[]) /* 該函數(shù)用于定位連表中符合要求的接點,并返回該指針 */ </p><
40、p><b> { </b></p><p><b> Node *r; </b></p><p> if(strcmp(nameornum,"num")==0) /* 按學號查詢 */ </p><p><b> { </b></p><p>
41、 r=l->next; </p><p> while(r!=NULL) </p><p><b> { </b></p><p> if(strcmp(r->data.num,findmess)==0) </p><p> return r; </p><p> r=r-
42、>next; </p><p><b> }</b></p><p><b> }</b></p><p> return 0; </p><p><b> }</b></p><p> void Add(Link l) /* 增加學生
43、*/ </p><p><b> { </b></p><p> Node *p,*r,*s; </p><p> char num[10]; </p><p><b> r=l; </b></p><p> s=l->next; </p>&l
44、t;p> while(r->next!=NULL) </p><p> r=r->next; /* 將指針置于最末尾 */ </p><p><b> while(1) </b></p><p><b> { </b></p><p> printf("請你輸入
45、學號\n");</p><p> printf("(以'0'返回上一級菜單)\n"); </p><p> scanf("%s",num); </p><p> if(strcmp(num,"0")==0) </p><p><b> br
46、eak; </b></p><p><b> while(s) </b></p><p><b> {</b></p><p> if(strcmp(s->data.num,num)==0) </p><p><b> { </b></p>
47、<p> printf("++++++>>>>>>提示:學號為'%s'的學生已經(jīng)存在,若要修改請你選擇'4 修改'!\n",num); </p><p> printstart(); </p><p> printc(); </p><p> printe(
48、s); </p><p> printstart(); </p><p> printf("\n"); </p><p> return; } </p><p> s=s->next; </p><p><b> } </b></p><p&
49、gt; p=(Node *)malloc(sizeof(Node)); </p><p> strcpy(p->data.num,num); </p><p> printf("請你輸入姓名:"); </p><p> scanf("%s",p->data.name); </p><p&
50、gt; getchar(); </p><p> printf("請你輸入性別:"); </p><p> scanf("%s",p->data.sex); </p><p> getchar(); </p><p> printf("請你輸入計算機成績:"); &l
51、t;/p><p> scanf("%d",&p->data.computer); </p><p> getchar(); </p><p> printf("請你輸入英語成績:"); </p><p> scanf("%d",&p->data.Eng
52、lish); </p><p> getchar(); </p><p> printf("請你輸入高數(shù)成績:"); </p><p> scanf("%d",&p->data.math); </p><p> getchar(); </p><p> /
53、* 信息輸入已經(jīng)完成 */ </p><p> p->next=NULL; </p><p> r->next=p; </p><p><b> r=p; </b></p><p> shoudsave=1;</p><p><b> }</b><
54、/p><p><b> } </b></p><p> void Qur(Link l) /* 查詢學生 */ </p><p><b> { </b></p><p> char findmess[20]; </p><p><b> Node *p; &l
55、t;/b></p><p> if(!l->next) </p><p> { printf("\n=====>提示:沒有資料可以查詢!\n"); </p><p> return; } </p><p> printf("請你輸入要查找的學號:"); </p>
56、<p> scanf("%s",findmess); </p><p> p=Locate(l,findmess,"num"); </p><p><b> if(p) </b></p><p><b> {</b></p><p> pr
57、intf("\t\t\t\t查找結果\n"); </p><p> printstart(); </p><p> printc(); </p><p> printe(p); </p><p> printstart(); </p><p><b> } </b>&
58、lt;/p><p><b> else </b></p><p> Nofind(); </p><p><b> } </b></p><p> void Del(Link l) /* 刪除 */ </p><p><b> {</b></
59、p><p> Node *p,*r; </p><p> char findmess[20]; </p><p> if(!l->next) </p><p><b> {</b></p><p> printf("\n=====>提示:沒有資料可以刪除!\n"
60、;); </p><p> return; } </p><p> printf("請你輸入要刪除的學號:"); </p><p> scanf("%s",findmess); </p><p> p=Locate(l,findmess,"num"); </p>
61、<p><b> if(p) </b></p><p><b> {</b></p><p><b> r=l; </b></p><p> while(r->next!=p) </p><p> r=r->next; </p>
62、<p> r->next=p->next; </p><p><b> free(p); </b></p><p> printf("\n=====>提示:該學生已經(jīng)成功刪除!\n"); </p><p> shoudsave=1;</p><p><b>
63、; } </b></p><p><b> else </b></p><p><b> Nofind();</b></p><p><b> } </b></p><p> void Modify(Link l) </p><p>
64、;<b> {</b></p><p><b> Node *p; </b></p><p> char findmess[20]; </p><p> if(!l->next) </p><p><b> {</b></p><p>
65、 printf("\n=====>提示:沒有資料可以修改!\n"); </p><p> return; } </p><p> printf("請你輸入要修改的學生學號:"); </p><p> scanf("%s",findmess); </p><p> p=L
66、ocate(l,findmess,"num"); </p><p><b> if(p) </b></p><p><b> {</b></p><p> printf("請你輸入新學號:"); </p><p> scanf("%s&quo
67、t;,p->data.num); </p><p> printf("請你輸入新姓名:"); </p><p> scanf("%s",p->data.name); </p><p> getchar(); </p><p> printf("請你輸入新性別:")
68、; </p><p> scanf("%s",p->data.sex); </p><p> printf("請你輸入新的計算機成績:"); </p><p> scanf("%d",&p->data.computer); </p><p> getcha
69、r(); </p><p> printf("請你輸入新的英語成績:"); </p><p> scanf("%d",&p->data.English); </p><p> getchar(); </p><p> printf("請你輸入高數(shù)成績:"); &
70、lt;/p><p> scanf("%d",&p->data.math); </p><p> printf("\n=====>提示:資料修改成功!\n"); </p><p> shoudsave=1; </p><p><b> } </b></p
71、><p><b> else </b></p><p><b> Nofind();</b></p><p><b> } </b></p><p> void Disp(Link l) </p><p><b> {</b>
72、</p><p> int count=0; </p><p><b> Node *p; </b></p><p> p=l->next; </p><p><b> if(!p) </b></p><p><b> { </b><
73、;/p><p> printf("\n=====>提示:沒有資料可以顯示!\n"); </p><p> return; } </p><p> printf("\t\t\t\t顯示結果\n"); </p><p> printstart(); </p><p> p
74、rintc(); </p><p> printf("\n"); </p><p><b> while(p) </b></p><p><b> {</b></p><p> printe(p); </p><p> p=p->next;
75、</p><p><b> } </b></p><p> printstart(); </p><p> printf("\n"); </p><p><b> } </b></p><p> void Save(Link l) </p&
76、gt;<p><b> {</b></p><p> FILE* fp; </p><p><b> Node *p; </b></p><p> int flag=1,count=0; </p><p> fp=fopen("c:\\student",&
77、quot;wb"); </p><p> if(fp==NULL) </p><p><b> {</b></p><p> printf("\n=====>提示:重新打開文件時發(fā)生錯誤!\n"); </p><p><b> exit(1); </b>&
78、lt;/p><p><b> } </b></p><p> p=l->next; </p><p><b> while(p) </b></p><p><b> {</b></p><p> if(fwrite(p,sizeof(Node
79、),1,fp)==1) </p><p><b> { </b></p><p> p=p->next; </p><p><b> count++;</b></p><p><b> } </b></p><p><b> e
80、lse </b></p><p><b> { </b></p><p><b> flag=0; </b></p><p><b> break; </b></p><p><b> }</b></p><p>
81、;<b> } </b></p><p><b> if(flag) </b></p><p><b> { </b></p><p> printf("\n=====>提示:文件保存成功.(有%d條記錄已經(jīng)保存.)\n",count); </p>&l
82、t;p> shoudsave=0; </p><p><b> } </b></p><p> fclose(fp);</p><p><b> } </b></p><p> void main() </p><p><b> {</b&g
83、t;</p><p> Link l;/* 連表 */ </p><p> FILE *fp; /* 文件指針 */ </p><p><b> int sel; </b></p><p><b> char ch; </b></p><p> char jian;
84、 </p><p> int count=0; </p><p> Node *p,*r;</p><p> printf(" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n"); &
85、lt;/p><p> printf(" + 學生成績管理系統(tǒng) +\n");</p><p> printf(" + 設計者:計算機科學與信息工程學院軟件工程 +\n");</p><p> printf("
86、 + 11103205高紅斌 +\n");</p><p> printf(" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n");</p><p&g
87、t; l=(Node*)malloc(sizeof(Node)); </p><p> l->next=NULL; </p><p><b> r=l; </b></p><p> fp=fopen("C:\\student","rb"); </p><p> if
88、(fp==NULL) </p><p><b> { </b></p><p> printf("\n=====>提示:文件還不存在,是否創(chuàng)建?(y/n)\n"); </p><p> scanf("%c",&jian); </p><p> if(jian=
89、='y'||jian=='Y') </p><p> fp=fopen("C:\\student","wb"); </p><p><b> else </b></p><p><b> exit(0); </b></p><
90、p><b> } </b></p><p> printf("\n=====>提示:文件已經(jīng)打開,正在導入記錄......\n"); </p><p> while(!feof(fp)) </p><p><b> { </b></p><p> p=(No
91、de*)malloc(sizeof(Node)); </p><p> if(fread(p,sizeof(Node),1,fp)) /* 將文件的內(nèi)容放入接點中 */ </p><p> { p->next=NULL; </p><p> r->next=p; </p><p> r=p; /* 將該接點掛入連中 */
92、</p><p><b> count++; </b></p><p><b> } </b></p><p><b> } </b></p><p> fclose(fp); /* 關閉文件 */ </p><p> printf("
93、;\n=====>提示:記錄導入完畢,共導入%d條記錄.\n",count); </p><p><b> while(1) </b></p><p><b> { </b></p><p><b> menu(); </b></p><p> prin
94、tf("請你選擇操作:"); </p><p> scanf("%d",&sel); </p><p> if(sel==6) </p><p> { if(shoudsave==1) </p><p><b> { </b></p><p>
95、; getchar(); </p><p> printf("\n=====>提示:資料已經(jīng)改動,是否將改動保存到文件中(y/n)?\n"); </p><p> scanf("%c",&ch); </p><p> if(ch=='y'||ch=='Y') </p&
96、gt;<p><b> Save(l); </b></p><p><b> } </b></p><p> printgaohongbin1();</p><p> printf("歡迎您的使用,謝謝!!!\n");</p><p> printgaoh
97、ongbin2(); </p><p><b> break; </b></p><p><b> } </b></p><p> switch(sel) </p><p><b> { </b></p><p> case 1:Add(l);
98、break; /* 增加學生 */ </p><p> case 2:Del(l);break;/* 刪除學生 */ </p><p> case 3:Qur(l);break;/* 查詢學生 */ </p><p> case 4:Modify(l);break;/* 修改學生 */ </p><p> case 5:Save(l)
99、;break;/* 保存學生 */ </p><p> default: Wrong();getchar();break; }</p><p><b> } </b></p><p><b> }</b></p><p><b> 參考文獻</b></p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(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
提交評論