版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、實驗題目:學生成績管理系統(tǒng)一、 實驗目的1. 熟悉c語言的編譯連接和運行過程。2. 掌握c語言的數(shù)據(jù)類型,熟悉整型、實型、字符型變量的定義方式及如何給它們賦值。3. 掌握if語句及switch語句的運用方法及嵌套應用方法。4. 掌握實現(xiàn)循環(huán)結構的三種語句while、 do-while.、for 的使用。5. 掌握函數(shù)的定義方法和調(diào)用方法。6. 能夠采用模塊化思想調(diào)試程序。二實驗內(nèi)容1. 編寫程序并進行調(diào)試運行。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)建的內(nèi)存空間,再退出次程序。流程圖如下六 調(diào)試情況及運行結果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)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024上海市高壓供用電合同
- 2024安徽省集體合同條例
- 2024個人之間借款合同參考范本
- 2024【挖機轉(zhuǎn)讓協(xié)議合同范本】出租車轉(zhuǎn)讓協(xié)議合同范本
- 2024小區(qū)門衛(wèi)勞動合同范本
- 深圳大學《游戲發(fā)行的商業(yè)實戰(zhàn)》2021-2022學年第一學期期末試卷
- 寫字樓物業(yè)停電應急預案(9篇)
- 關于新學期學習計劃范文集合七篇
- 眼鏡店開荒保潔施工合同
- 體育學校租賃協(xié)議
- 單元主題-生物體的結構層次教學設計
- 外研版英語2024七年級上冊全冊單元知識清單(默寫版)
- 三年級數(shù)學(上)計算題專項練習附答案集錦
- 2024公安機關人民警察高級執(zhí)法資格考試題(解析版)
- 2024年國家公務員考試行測真題及答案(完整版)
- 17難忘的潑水節(jié)第一課時公開課一等獎創(chuàng)新教學設計
- 大一統(tǒng)王朝的鞏固(課件) 2024-2025學年七年級歷史上冊同步教學課件(統(tǒng)編版2024)
- 課件第一章第1節(jié)動量定理(16張)
- 2024年銀行合規(guī)心得體會(五篇)
- 水生產(chǎn)企業(yè)(自來水公司)水務安全生產(chǎn)三項制度(安全生產(chǎn)責任制、制度、操作規(guī)程)匯編
- 加強學校食堂管理提高食品安全意識(培訓課件)
評論
0/150
提交評論