版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、. C語言課程設計報告題目:成績記錄簿學生姓名: 學生學號: 所在班級: 任課教師: 2012年6月19日目 錄1.設計目的2.設計思路3.總體設計4.詳細設計5.設計體會6附錄(所寫是運行程序的圖片)一、設計目的要求:編制一個C語言成績記錄簿,每個學生信息包括:學號、姓名、C語言成績。具體功能:(1)創(chuàng)建信息鏈表并以磁盤文件保存;(2)讀取磁盤文件并顯示輸出所有學生的成績;(3)按學號或姓名查詢成績;(4)添加成績記錄;(5)修改指定姓名或學號的學生的成績并可存盤;(6)顯示輸出60分以下、6079、8089、90分以上各分數(shù)段的學生信息。、二、設計思路1.設計好算法,用流程圖或者用自己簡單
2、的想法,并記好記錄。2.分別做好主函數(shù),和需要用到的各個函數(shù),參考我們的教材一點點的綜合在一起。慢慢的從中學到技巧。3.將已學過的代碼和學過的函數(shù)拼接起來,做好調試和改正。4.從新檢查一遍,將沒用的函數(shù)或者多余的步驟簡化,提高運行速度。5.完成系統(tǒng)總結報告以及使用說明書。三、總體設計主模塊學生成績錄入學生成績顯示學生成績添加學生信息查詢學生成績刪除學生信息統(tǒng)計推出程序添加學生信息刪除學生信息修改學生信息按姓名查詢按學號查詢按學號修改按成績修改60分以下人數(shù)6079 人數(shù)8089 人數(shù)90分以上 人數(shù)四、詳細設計#include "stdio.h" #include &quo
3、t;stdlib.h" #include "string.h" int shoudsave=0; / struct student char num20;/學號 char name20; int cgrade; char neartime10;/最近更新時間 ; typedef struct node struct student data; struct node *next; Node,*Link; void menu() printf("*"); printf("t1輸入學生資料ttttt2查詢學生資料n"); pri
4、ntf("t3修改學生資料ttttt4顯示學生資料n"); printf("t5統(tǒng)計學生成績ttttt6保存學生資料n"); printf("t7獲取幫助信息ttttt0退出系統(tǒng)n"); printf("*n"); void printstart() printf("-n"); void Wrong() printf("n=>提示:輸入錯誤!n"); void Nofind() printf("n=>提示:沒有找到該學生!n"); void p
5、rintc() / 本函數(shù)用于輸出中文 printf(" 學號t 姓名 C語言成績 n"); void printe(Node *p)/本函數(shù)用于輸出英文 printf("%-12s%st%dt n",p->data.num,p->,p->data.cgrade); Node* Locate(Link l,char findmess,char nameornum) /該函數(shù)用于定位連表中符合要求的接點,并返回該指針 Node *r; if(strcmp(nameornum,"num")=0) /按學
6、號查詢 r=l->next; while(r!=NULL) if(strcmp(r->data.num,findmess)=0) return r; r=r->next; else if(strcmp(nameornum,"name")=0) /按姓名查詢 r=l->next; while(r!=NULL) if(strcmp(r->,findmess)=0) return r; r=r->next; return 0; void Add(Link l) /增加學生 Node *p,*r,*s; char num10;
7、r=l; s=l->next; while(r->next!=NULL) r=r->next; /將指針置于最末尾 while(1) printf("請你輸入學號(以'0'返回上一級菜單:)"); scanf("%s",num); if(strcmp(num,"0")=0) break; while(s) if(strcmp(s->data.num,num)=0) printf("=>提示:學號為'%s'的學生已經(jīng)存在,若要修改請你選擇'4 修改'
8、!n",num); printstart(); printc(); printe(s); printstart(); printf("n"); return; s=s->next; p=(Node *)malloc(sizeof(Node); strcpy(p->data.num,num); printf("請你輸入姓名:"); scanf("%s",p->); getchar(); printf("請你輸入c語言成績:"); scanf("%d",
9、&p->data.cgrade); /信息輸入已經(jīng)完成 p->next=NULL; r->next=p; r=p; shoudsave=1; void Qur(Link l) /查詢學生 int sel; char findmess20; Node *p; if(!l->next) printf("n=>提示:沒有資料可以查詢!n"); return; printf("n=>1按學號查找n=>2按姓名查找n"); scanf("%d",&sel); if(sel=1)/學號 p
10、rintf("請你輸入要查找的學號:"); scanf("%s",findmess); p=Locate(l,findmess,"num"); if(p) printf("tttt查找結果n"); printstart(); printc(); printe(p); printstart(); else Nofind(); else if(sel=2) /姓名 printf("請你輸入要查找的姓名:"); scanf("%s",findmess); p=Locate(l,fi
11、ndmess,"name"); if(p) printf("tttt查找結果n"); printstart(); printc(); printe(p); printstart(); else Nofind(); else Wrong(); void Modify(Link l) Node *p; char findmess20; if(!l->next) printf("n=>提示:沒有資料可以修改!n"); return; printf("請你輸入要修改的學生學號:"); scanf("%
12、s",findmess); p=Locate(l,findmess,"num"); if(p) printf("請你輸入新學號(原來是%s):",p->data.num); scanf("%s",p->data.num); printf("請你輸入新姓名(原來是%s):",p->); scanf("%s",p->); printf("請你輸入新的c語言成績(原來是%d分):",p->data.cgra
13、de); scanf("%d",&p->data.cgrade); printf("n=>提示:資料修改成功!n"); shoudsave=1; else Nofind(); void Disp(Link l) int count=0; Node *p; p=l->next; if(!p) printf("n=>提示:沒有資料可以顯示!n"); return; printf("tttt顯示結果n"); printstart(); printc(); printf("n&qu
14、ot;); while(p) printe(p); p=p->next; printstart(); printf("n"); void Tongji(Link l) Node *pc = l; /用于指向分數(shù)最高的接點 Node *r=l->next; if(!r) printf("n=>提示:沒有資料可以統(tǒng)計!n"); return ; while(r!=NULL) if(r->data.cgrade>=pc->data.cgrade) pc=r; r=r->next; printf("-統(tǒng)計結果-
15、n"); printf("c語言最高者:t%s %d分n",pc->,pc->data.cgrade); printstart(); void Save(Link l) FILE* fp; Node *p; int flag=1,count=0; fp=fopen("c:student","wb"); if(fp=NULL) printf("n=>提示:重新打開文件時發(fā)生錯誤!n"); exit(1); p=l->next; while(p) if(fwrite(
16、p,sizeof(Node),1,fp)=1) p=p->next; count+; else flag=0; break; if(flag) printf("n=>提示:文件保存成功.(有%d條記錄已經(jīng)保存.)n",count); shoudsave=0; fclose(fp); void main() Link l;/連表 FILE *fp; /文件指針 int sel; char ch; char jian; int count=0; Node *p,*r; printf("tttt學生成績記錄簿ntttt-計算機信息管理,張志堅(2011401
17、30207),李權(201140130106),劉進祎(201140130226),褚璐(201140130114)n"); l=(Node*)malloc(sizeof(Node); l->next=NULL; r=l; fp=fopen("C:student","rb"); if(fp=NULL) printf("n=>提示:文件還不存在,是否創(chuàng)建?(y/n)n"); scanf("%c",&jian); if(jian='y'|jian='Y')
18、fp=fopen("C:student","wb"); else exit(0); printf("n=>提示:文件已經(jīng)打開,正在導入記錄.n"); while(!feof(fp) p=(Node*)malloc(sizeof(Node); if(fread(p,sizeof(Node),1,fp) /將文件的內容放入接點中 p->next=NULL; r->next=p; r=p; /將該接點掛入連中 count+; fclose(fp); /關閉文件 printf("n=>提示:記錄導入完畢,共導
19、入%d條記錄.n",count); while(1) menu(); printf("請你選擇操作:"); scanf("%d",&sel); if(sel=0) if(shoudsave=1) getchar(); printf("n=>提示:資料已經(jīng)改動,是否將改動保存到文件中(y/n)?n"); scanf("%c",&ch); if(ch='y'|ch='Y') Save(l); printf("n=>提示:你已經(jīng)退出系統(tǒng),再見!n"); break; switch(sel) case 1:Add(l);break; /增加學生 case 2:Qur(l);break;/查詢學生 case 3:Modify(l);break;/修改
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江西省南昌2024-2025學年八年級上學期期末考試英語試卷(含解析無聽力原文及音頻)
- 2024年高端裝備制造居間合同
- 2024新車購車簡單的協(xié)議書范本
- 2024收養(yǎng)孤殘兒童協(xié)議書范本參考3篇
- 中國青年政治學院《審計學原理及實務》2023-2024學年第一學期期末試卷
- 浙江中醫(yī)藥大學濱江學院《酒店規(guī)劃與管理》2023-2024學年第一學期期末試卷
- 昭通衛(wèi)生職業(yè)學院《三筆字訓練》2023-2024學年第一學期期末試卷
- 《畜禽中毒病防制》課件
- 旅游行業(yè)人力資源總結
- 2024連鎖店保密合同
- 2025屆云南省昆明市祿勸縣第一中學數(shù)學高二上期末復習檢測試題含解析
- 機械工程師招聘筆試題及解答
- 2023年基礎會計學課后習題及參考答案
- 2024年時事新聞及點評【六篇】
- (部編版)統(tǒng)編版小學語文教材目錄(一至六年級上冊下冊齊全)
- 2024年中國防偽行業(yè)發(fā)展概況、市場全景分析及投資策略研究報告
- 高中英語-名詞性從句教學設計學情分析教材分析課后反思
- 2024-2030年中國Micro LED行業(yè)發(fā)展現(xiàn)狀調研及市場前景趨勢報告
- 2024年全國職業(yè)院校技能大賽“新型電力系統(tǒng)與維護”賽項考試題庫-中(多選題)
- 除濕機濕度調節(jié)能力考核試卷
- 朗誦社團活動教案
評論
0/150
提交評論