版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、實驗題目:學生成績管理系統(tǒng)一、 實驗目的1. 熟悉c語言的編譯連接和運行過程。2. 掌握c語言的數(shù)據(jù)類型,熟悉整型、實型、字符型變量的定義方式及如何給它們賦值。3. 掌握if語句及switch語句的運用方法及嵌套應用方法。4. 掌握實現(xiàn)循環(huán)結構的三種語句while、 do-while.、for 的使用。5. 掌握函數(shù)的定義方法和調用方法。6. 能夠采用模塊化思想調試程序。二實驗內容1. 編寫程序并進行調試運行。2. 輸入學生資料,并保存于文件。每個學生包含信息如:姓名、學號、性別、物理成績、數(shù)學成績、英語成績、計算機成績。3. 對已存入的學生信息進行更新操作,包括更新學生信息信息、刪除某個學生
2、信息和修改學生信息。4. 通過按學生姓名的方式查詢學生信息。5.輸入某學生各門成績進行統(tǒng)計。6 對學生物理成績排序。7.最后輸出學生信息,供需要時打印。 二、 需求分析1. 該程序可用于對學生的基本信息的存儲、更新、查詢、輸出、統(tǒng)計、排序等操作。2. 其中更新功能包括:添加信息、刪除信息、修改信息、可根據(jù)需要添加一個或多個學生 信息,也可對個別學生信息進行適當?shù)膭h除或修改。以便隨時更新學生信息。3. 程序中設計的查詢功能可根據(jù)需要從若干數(shù)據(jù)中查詢某信息,四、概要設計1、方案設計對系統(tǒng)進行分析,給出結構圖 分析:系統(tǒng)要求實現(xiàn)許多的功能,因此遵循結構化程序設計思想來進行本系統(tǒng)的設計自頂向下、逐步細
3、化,將系統(tǒng)設計任務分解出許多子功能模塊進行設計 結構圖如下:學生成績管理系統(tǒng)插入數(shù)據(jù)查看數(shù)據(jù)更新數(shù)據(jù)物理成績數(shù)學成績英語成績計算機成績統(tǒng)計成績成績排序輸入數(shù)據(jù)輸出數(shù)據(jù)更新數(shù)據(jù)刪除數(shù)據(jù)修改數(shù)據(jù)物理成績排序物 理 總 分 和 平均 分數(shù)學總分和平均分英語總分和平均分計算機平均分顯示數(shù)據(jù)保存數(shù)據(jù)五 功能模塊的說明1 輸入初始學生信息:其中包括學生姓名,學號,性別,物理 數(shù)學 英語 計算機成績 等相關信息;可用函數(shù)cin(stu *p1)來實現(xiàn)此操作。2 查詢模塊:可用 stu *lookdata(stu *p1)來實現(xiàn)。找到就輸出此學生全部信息包括學生物理 數(shù)學 英語 計算機的成績 。3 插入模塊:
4、可用insert()來實現(xiàn)。其中通過學號的大小比較的,并且以此來排序。4 輸出學生的信息及成績:通過學生的姓名來查看學生的語文 數(shù)學 英語 計算機的有關成績,同時也可以分別通過paverage() maverage() eaverage() comaverage()來輸出物理 數(shù)學 英語 計算機等成績的平均分 最高分 最低分。5 退出系統(tǒng):可以用一個函數(shù)來實現(xiàn),首先將信息保存在文件中,釋放動態(tài)創(chuàng)建的內存空間,再退出次程序。流程圖如下六 調試情況及運行結果1、 對自己設計進行評價,指出合理和不足之處,提出改進的方案。此次實踐課編寫的是一個應用程序,相對于以前我們見到的程序,它要大得多,于是就按課
5、本上的例子編了超市管理系統(tǒng),先把界面弄好然后再添加各模塊,而且各模塊也出現(xiàn)了不少問題,在同學們和老師的幫助下,我很有耐心的一次又一次的進行修改,最后運行的結果基本上達到了預期的目的??山Y果還不是太理想。由于時間很短,在選題報告中設想到的好多功能都沒有實現(xiàn)。已有的那些功能雖已能基本上滿足管理者和消費者的需要,但如果還有更多的功能程序就會更加完美。如:進入系統(tǒng)時沒有設制密碼,保護性不夠強;在輸入商品號時沒有出錯提示,如果商品號輸入負值2、在設計過程中的感受。 本次C 語言的實習課讓我對C 語言的學習又有了更深入的了解,也讓我更深刻地領悟到了“實踐出真理”這個道理,在上機實踐過程中學到的知識遠遠超過
6、了在課堂上十幾周學到的,學校組織的這次實習讓我們這些實踐知識匱乏的大學生增添了許多社會經(jīng)驗,為我們將來走上工作崗位其了不小的鋪墊作用。本次實習中遇到了很多以前沒有遇到過的問題,也曾想過要放棄,但看到那些同學都在那認真的寫程序,給了我繼續(xù)的信心。在同學的幫助下,我順利的結束了本次實習,讓我知道原來憑借自己努力取得的成功會讓自己這么欣慰,也讓我知道了友誼和團結的重要性。七參考文獻C語言程序設計 王曙燕 曹錳 科學出版社 八。附錄: #include <stdio.h>#include <stddef.h>#include <stddef.h>#include &
7、lt;string.h>#include <stdlib.h>#include <conio.h>#define MAX 10int sum=10;typedef struct student /*定義結構體*/ char nameMAX; /*姓名*/ int num; /*學號*/ char sexMAX; /*性別*/ float physic; /*語文*/ float mathematic; /*數(shù)學*/ float english; /*英語*/ float computer; /*計算機*/ struct student *next; /*結構體指針
8、*/ stu; stu *head;/*讀取信息*/int read_message() FILE *fp; stu *p; int i=0; if(fp=fopen("student_manage.txt","rb")=NULL) printf("nn*暫時還沒有任何信息,輸入密碼進入主菜單選擇基本信息錄入!*n"); return 0; while(feof(fp)!=1) fread(head,sizeof(stu),1,fp); if(p->num=0) break; else i+; fclose(fp); retur
9、n(i); /*顯示或打印函數(shù)*/ void print() printf("ttt Score Manage Systemn"); /*成績管理系統(tǒng)*/ printf("ttt 成績管理系統(tǒng)n"); printf(" <1>Enter Record: 輸入數(shù)據(jù) n"); /*輸入數(shù)據(jù)*/ printf(" <2>Display: 顯示或打印 n"); /*顯示*/ printf(" <3>find: 查找數(shù)據(jù) n"); /*訪問數(shù)據(jù)*/ printf(&qu
10、ot; <4>Renew_message: 更新模塊 n"); /*更新模塊*/ printf(" <5>Save: 保存數(shù)據(jù) n"); printf(" <6>sort_physic: 成績排名 n"); /*物理成績排名*/ printf(" <7>Count: 數(shù)據(jù)統(tǒng)計 n"); /*數(shù)據(jù)統(tǒng)計*/ printf(" <8>Physic Average: 物理平均成績 n"); /*物理平均成績*/ printf(" <9&g
11、t;Math Average: 數(shù)學平均成績 n"); /*數(shù)學平均成績*/ printf(" <10>English Average:英語平均成績 n"); /*英語平均成績*/ printf(" <11>Computer Average:計算機平均成績 n"); /*計算機平均成績*/ printf(" <12>Quit: 退出 tn"); /*退出*/ /*輸入相關數(shù)據(jù)函數(shù)*/ void cin(stu *p1) printf("n Enter name:n");
12、 scanf("%s",&p1->name); printf("Enter num:n"); scanf("%d",&p1->num); printf("Enter sex:n"); scanf("%s",&p1->sex); printf("Enter scoren"); printf("Enter physic:n"); scanf("%f",&p1->physic); pri
13、ntf("Enter mathematic:n"); scanf("%f",&p1->mathematic); printf("Enter english:n"); scanf("%f",&p1->english); printf("Enter computer:n"); scanf("%f",&p1->computer); /*其他數(shù)據(jù)是否輸入函數(shù)*/ stu *cindata() stu *p1,*p2; int i=1; cha
14、r ch; p1=(stu*)malloc(sizeof(stu); head=p1; while(i) cin(p1); printf("Do you want to continue?Yes or no:n"); fflush(stdin); ch=getchar(); if(ch='n'|ch='N') i=0; p1->next=NULL; else p2=p1; p1=(stu*)malloc(sizeof(stu); p2->next=p1; return(p1->next); /*查看數(shù)據(jù)函數(shù)*/ stu *l
15、ookdata(stu *p1) while(p1!=NULL) printf("Name:%st",p1->name); printf("Num:%dt",p1->num); printf("Sex:%st",p1->sex); printf("n"); printf("Physic:%ft",p1->physic); printf("Math:%ft",p1->mathematic); printf("English:%ft&quo
16、t;,p1->english); printf("Computer:%ft",p1->computer); printf("n"); p1=p1->next; return p1; /*通過比較學號來插入數(shù)據(jù)的函數(shù)*/ void insert() stu *p1,*p3,*p2; p1=head; p3=(stu*)malloc(sizeof(stu); p3->next=NULL; if(head=NULL) head=p3;return; cin(p3); while(p1!=NULL&&(p1->num
17、<p3->num) p2=p1;p1=p1->next; if(p2=head) p3->next=head; head=p3;return; p3->next=p1; p2->next=p3; /*通過姓名來查找的函數(shù)*/ void find(stu *p2) char name20; int b=0; printf("Enter the name of the sutdent you want to find:"); scanf("%s",name); while(p2!=NULL) if(strcmp(name,
18、p2->name)=0) printf(" The data you want has be find "); printf("Name:%st",p2->name); printf("Num:%dt",p2->num); printf("Sex:%st",p2->sex); printf("n"); printf("Physic%ft",p2->physic); printf("Math%ft",p2->mathema
19、tic); printf("English%ft",p2->english); printf("Computer%ft",p2->computer); printf("n"); b=1; else if(b=0) printf("sorry not find data!"); p2=p2->next; if(b=1) print(); printf("Find onen"); else print(); printf("Not findn"); /*求各學生
20、物理平均成績*/void paverage() stu *p1; int i; float max=0.0,min=200.0; float sum=0.0,aver=0; p1=head; if(p1=NULL) printf("not data!"); else for(i=0;p1!=NULL;p1=p1->next) sum+=p1->physic; aver=sum/i; p1=head; for(i=0;p1!=NULL;i+,p1=p1->next) if(max<p1->physic) max=p1->physic; p1
21、=head; for(i=0;p1!=NULL;i+,p1=p1->next) if(min>p1->physic) min=p1->physic; printf("Physic Average:%f ",aver); printf("Physic Max:%f",max); printf("Physic Min:%f",max); /*求各學生數(shù)學平均分 最高和最低分成績的函數(shù)*/void maverage() stu *p1; int i; float max=0.0,min=200.0; float su
22、m=0.0,aver=0; p1=head; if(p1=NULL) printf("not data!"); else for (i=0;p1!=NULL;i+,p1=p1->next) sum+=p1->mathematic; aver=sum/i; p1=head; for(i=0;p1!=NULL;i+,p1=p1->next) if(max<p1->mathematic) max=p1->mathematic; p1=head; for(i=0;p1!=NULL;i+,p1=p1->next) if(min>p1-&
23、gt;mathematic) min=p1->mathematic; printf("Math Average:%f",aver); printf("Math Max:%f",max); printf("Math Min:%f",min); /*求各學生英語平均分 最高和最低分成績的函數(shù)*/void eaverage() stu *p1; int i; float max=0.0,min=200.0; float sum=0.0,aver=0; p1=head; if(p1=NULL) printf("not data
24、!"); else for(i=0;p1!=NULL;i+,p1=p1->next) sum+=p1->english; aver=sum/i; p1=head; for(i=0;p1!=NULL;i+,p1=p1->next) if(max<p1->english) max=p1->english; p1=head; for(i=0;p1!=NULL;i+,p1=p1->next) if(min>p1->english) min=p1->english; printf("English Average:%f&qu
25、ot;,aver);printf("English Max:%f",max);printf("English Min:%f",min); /*求各學生計算機平均成績 最高和最低分*/ void comaverage() stu *p1; int i; float max=0.0,min=200.0; float sum=0.0,aver=0; p1=head; if(p1=NULL) printf("not data!"); else for(i=0;p1!=NULL;i+,p1=p1->next) sum+=p1->co
26、mputer; aver=sum/i; p1=head; for(i=0;p1!=NULL;i+,p1=p1->next) if(max<p1->computer) max=p1->computer; p1=head; for(i=0;p1!=NULL;i+,p1=p1->next) if(min>p1->computer) min=p1->computer; printf("Computer Average:%f",aver); printf("Computer Max:%f",max); printf(
27、"Computer Min:%f",min); /*統(tǒng)計物理平均和總分*/void aver_sum_physic() stu *p1; int i; float sum=0,aver; p1=head; if(p1=NULL) printf("not data!"); else for(i=0;p1!=NULL;i+,p1=p1->next) sum+=p1->physic; aver=sum/i; printf("Physic Average:%f",aver); printf("Physic Sum:%f&
28、quot;,sum);/*統(tǒng)計數(shù)學平均和總分*/void aver_sum_mathematic() stu *p1; int i; float sum=0,aver; p1=head; if(p1=NULL) printf("not data!"); else for(i=0;p1!=NULL;i+,p1=p1->next) sum+=p1->mathematic; aver=sum/i; printf("Mathematic Average:%f",aver); printf("Mathematic Sum:%f",s
29、um);/*統(tǒng)計英語平均和總分*/void aver_sum_english() stu *p1; int i; float sum=0,aver; p1=head; if(p1=NULL) printf("not data!"); else for(i=0;p1!=NULL;i+,p1=p1->next) sum+=p1->english; aver=sum/i; printf("English Average:%f",aver); printf("English Sum:%f",sum);/*統(tǒng)計計算機平均和總分*/v
30、oid aver_sum_computer() stu *p1; int i; float sum=0,aver; p1=head; if(p1=NULL) printf("not data!"); else for(i=0;p1!=NULL;i+,p1=p1->next) sum+=p1->computer; aver=sum/i; printf("Computer Average:%f",aver); printf("Computer Sum:%f",sum);/*統(tǒng)計模塊*/void count() int choi
31、ce;doprintf(" *統(tǒng)計學生平均分和總分*n");printf(" <1>:物理平均和總分n");printf(" <2>:數(shù)學平均和總分n");printf(" <3>:英語平均和總分n");printf(" <4>:計算機平均和總分n");printf(" <0>返回主菜單:n");printf(" 請選擇(04):n");scanf("%d",&choi
32、ce);switch(choice) case 1:aver_sum_physic();break; case 2:aver_sum_mathematic();break; case 3:aver_sum_english();break; case 4:aver_sum_computer();break; case 0:break;while(choice!=0);/*物理成績排序*/*庫存排行*/sort_physic() int i=1,j=1; float min; stu *newh,*newp,*tp1,*tp2,*p; newp=newh=NULL; tp1=tp2=NULL; p
33、=head; do i+; p=p->next; while(p->next); while(head!=NULL) p=head; tp1=tp2=p; min=p->physic; while(p->next!=NULL) if(p->next->physic<min) min=p->next->physic; tp1=p; tp2=p->next; p=p->next; if(newh=NULL) newp=newh=tp2; else newp->next=tp2; newp=tp2; if(tp2=head) h
34、ead=tp2->next; else tp1->next=tp2->next; tp2->next=NULL; head=newh; p=head; for(j=1;j<=i;j+) if(p!=NULL) printf("n 物理成績排行n");printf("-");printf("n 排名 姓名 性別 學號 物理成績n"); printf("n%18d %6s %8s %11d %10fn",j,p->name,p->sex,p->num,p->phys
35、ic); p=p->next; else break; printf("n 按任意鍵返回n"); getch(); /*刪除相關數(shù)據(jù)*/ shanchu() int num; stu *p,*p0; p=head; cin(p); printf("請輸入要刪除的學號:"); scanf("%d",&num); head=p->next; free(p); return 1; p0=p->next; while(p0!=NULL) if(p0->num=num) p->next=p; free(p0
36、); return 1; p=p0; p0=p0->next; return 0;/*修改模塊*/void revise_message(stu *h)int choice,revise_num,flag;stu *p;p=head; doprintf("n 輸入要修改的學生的學號:");scanf("%d",&revise_num);while(p->num!=revise_num) p=p->next; /*查找*/if(p->num=revise_num)printf("n -學生信息-n");p
37、rintf("-n"); printf("學號-姓名-性別-物理成績-數(shù)學成績-英語成績-計算機成績n"); printf("%8s%4d%8s%8f%8f%8f%8f n",p->name,p->num,p->sex,p->physic,p->mathematic,p->english,p->computer); printf("n 您要修改哪一項?n");printf("n 1、姓名n");printf("n 2、學號n"); p
38、rintf("n 3、性別n");printf("n 4 物理成績n");printf("n 5、數(shù)學成績n"); printf("n 6、英語成績n");printf("n 7、計算機成績n");printf("n 請選擇(1-7):");scanf("%d",&choice);switch(choice)case 1:printf("n 輸入修改后的學生姓名:"); scanf("%s",p->na
39、me);break;case 2:printf("n 輸入修改后的學生學號:"); scanf("%d",p->num);break; case 3:printf("n 輸入修改后的性別:"); scanf("%s",&p->sex); case 4:printf("n 輸入修改后的物理成績:"); scanf("%f",&p->physic); case 5:printf("n 輸入修改后的數(shù)學成績:"); scanf(
40、"%f",&p->mathematic); case 6:printf("n 輸入修改后的英語成績:"); scanf("%f",&p->english);break;case 7:printf("n 輸入修改后的計算機成績:"); scanf("%f",&p->computer);break; printf("-n"); printf("學號-姓名-性別-物理成績-數(shù)學成績-英語成績-計算機成績n"); prin
41、tf("%8s%4d%8s%8f%8f%8f%8f n",p->name,p->num,p->sex,p->physic,p->mathematic,p->english,p->computer); break;if(p->next=NULL)printf("n 該學生不存在!");printf("nn 要繼續(xù)嗎?(y/n)");choice=getch();if(choice='y')|(choice='Y')printf("n 繼續(xù)!n&qu
42、ot;);flag=1;else flag=0;while(flag=1);printf("n 按任意鍵返回主菜單!n");/*更新模塊*/void renew_message() int choice; do printf("nn *更新學生信息*nn"); printf(" 1.添加信息nn"); printf(" 2.刪除信息nn"); printf(" 3.修改信息nn"); printf(" 4.返回主菜單nn"); printf(" 請選擇(03):&q
43、uot;); scanf("%d",&choice); switch(choice) case 1: insert();break; case 2: shanchu();break; case 3: revise_message(head);break; case 0:;break; while(choice!=0); /*保留數(shù)據(jù)函數(shù)*/void save(stu *p2) FILE *fp; char file10; printf("Enter file name"); scanf("%s",file); fp=fopen(file,"w"); while(p2!=NULL) fprintf(f
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 服裝商務匯報
- 智能照明布線施工合同
- 借支逾期處理與催收
- 影視行業(yè)招投標與合同管理流程
- 4S店店長招聘合同模板
- 三亞市電動自行車道路施工通告
- 稀土礦場地平整服務協(xié)議
- 在線培訓系統(tǒng)服務器租賃合同
- 化妝品工程水暖系統(tǒng)施工合同
- 汽車制造招投標管理流程
- 簽署勞動合同培訓
- 鋰電池供應商的合作協(xié)議書范文
- 杭州市2025屆高三教學質量檢測(一模) 英語試題卷(含答案解析)
- 2024年商場員工管理制度(四篇)
- 培訓教學課件模板
- 系統(tǒng)架構師論文(經(jīng)典范文6篇)
- 農業(yè)科技園區(qū)發(fā)展規(guī)劃
- 降低患者外出檢查漏檢率-品管圈課件
- JBT 1306-2024 電動單梁起重機(正式版)
- TCALC 003-2023 手術室患者人文關懷管理規(guī)范
- 特別的人歌詞
評論
0/150
提交評論