C語言學(xué)生管理系統(tǒng)綜合實驗報告_第1頁
C語言學(xué)生管理系統(tǒng)綜合實驗報告_第2頁
C語言學(xué)生管理系統(tǒng)綜合實驗報告_第3頁
C語言學(xué)生管理系統(tǒng)綜合實驗報告_第4頁
C語言學(xué)生管理系統(tǒng)綜合實驗報告_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、佛山科學(xué)技術(shù)學(xué)院實驗報告實驗名稱 小型學(xué)生信息管理系統(tǒng) 實驗項目 編寫一學(xué)生信息管理系統(tǒng),用來管理學(xué)生基本信息及成績信息專業(yè)班級 姓名 XXX 學(xué)號 指導(dǎo)教師 成績 日期 一、 試驗?zāi)康谋緦嶒灋閷W(xué)生提供了一個既動手又動腦,上機實踐的機會。學(xué)生通過分析和解決該實驗,將課本上的理論知識和實際有機地結(jié)合起來,鍛煉學(xué)生分析、解決較復(fù)雜問題的能力,提高學(xué)生編寫綜合系統(tǒng)程序的能力。二、 實驗內(nèi)容編寫一個學(xué)生信息管理系統(tǒng),主要用來管理學(xué)生基本信息及成績信息。系統(tǒng)功能模塊如下圖:顯 示主菜單數(shù)據(jù)輸入數(shù)據(jù)修改數(shù)據(jù)輸出退出數(shù)據(jù)處理查詢排序統(tǒng)計平均分不及格科 目具體要求為:1. 建立學(xué)生信息,每個學(xué)生的信息應(yīng)包括:

2、學(xué)號、姓名、性別、班級、至少3門課程的成績;2. 數(shù)據(jù)輸入:輸入學(xué)生的各項信息;3. 數(shù)據(jù)修改:根據(jù)輸入學(xué)生的學(xué)號可以選擇修改該學(xué)生的信息;4. 數(shù)據(jù)處理:可以選擇處理方式為:排序、查詢、統(tǒng)計。其中:a) 排序:按學(xué)號排序b) 查詢:根據(jù)學(xué)號查詢成績c) 統(tǒng)計:可以選擇統(tǒng)計各學(xué)生的平均成績或統(tǒng)計所有存在不及格科目的學(xué)生;5. 數(shù)據(jù)輸出:輸出學(xué)生的相應(yīng)結(jié)果信息;6. 退出:退出整個學(xué)生信息管理系統(tǒng)。7. 輸出結(jié)果截屏的第一條記錄一定要反映出你自己的真實信息。三、 程序組織結(jié)構(gòu)圖、函數(shù)調(diào)用關(guān)系圖四、 程序清單#include<stdio.h>#include<iostream.h

3、>#include<string.h>struct studentchar num10;char name10;char sex4;char clas20;int yw,sx,yy;float ave;stu100;int i,j;void InputData()char x;while(1)printf("t學(xué)號:");scanf("%s",stui.num); printf("t姓名:"); scanf("%s",); printf("t性別:"); sc

4、anf("%s",stui.sex); printf("t班級:"); scanf("%s",stui.clas); printf("t語文:"); scanf("%d",&stui.yw); printf("t數(shù)學(xué):"); scanf("%d",&stui.sx); printf("t英語:"); scanf("%d",&stui.yy);stui.ave=float(stui.yw+stu

5、i.sx+stui.yy)/3.0);i+;printf("t是否繼續(xù)輸入數(shù)據(jù)(Y.N)");cin>>x;if(x='n'|x='N') break;void EditData()int count=0;char str10;printf("n請輸入學(xué)生學(xué)號:");cin>>str;while (count<i)if(strcmp(str,stucount.num)=0)printf("學(xué)號 姓名 性別 班級 語文 數(shù)學(xué) 英語n");printf("-n&quo

6、t;);printf("%-11s",stucount.num); printf("%-13s",); printf("%-8s",stucount.sex); printf("%-16s",stucount.clas); printf("%-6d",stucount.yw); printf("%-6d",stucount.sx); printf("%-4d",stucount.yy);printf("n");

7、printf("-n");break;count+;if(count>=i)printf("n查無此人");elseprintf("nt修改數(shù)據(jù):n"); printf("t學(xué)號:");scanf("%s",stui.num); printf("t姓名:"); scanf("%s",); printf("t性別:"); scanf("%s",stui.sex); printf("t班

8、級:"); scanf("%s",stui.clas); printf("t語文:"); scanf("%d",&stui.yw); printf("t數(shù)學(xué):"); scanf("%d",&stui.sx); printf("t英語:"); scanf("%d",&stui.yy);stucount.ave=float(stucount.yw+stucount.sx+stucount.yy)/3.0); void sx()

9、struct student temp;int a,b,c;for(a=0;a<i-1;a+)c=a;for(b=a+1;b<i;b+)if(stub.ave>stuc.ave)c=b;temp=stub;stub=stuc;stuc=temp;printf("排序后結(jié)果為:n"); printf("學(xué)號 姓名 性別 班級 語文 數(shù)學(xué) 英語n"); printf("-n");for(c=0;c<i;c+)printf("%-11s",stuc.num); printf("%-13s

10、",); printf("%-8s",stuc.sex); printf("%-16s",stuc.clas); printf("%-6d",stuc.yw); printf("%-6d",stuc.sx); printf("%-4d",stuc.yy);printf("n");printf("-n");void cx() int count=0;char str10;printf("n請輸入要查詢的學(xué)生學(xué)號:&quo

11、t;);cin>>str;while (count<i) if(strcmp(str,stucount.num)=0)printf("學(xué)號 姓名 性別 班級 語文 數(shù)學(xué) 英語n");printf("-n");printf("%-11s",stucount.num); printf("%-13s",); printf("%-8s",stucount.sex); printf("%-16s",stucount.clas); printf

12、("%-6d",stucount.yw); printf("%-6d",stucount.sx); printf("%-4d",stucount.yy);printf("n");printf("-n");break;count+;if(count>=i)printf("n無該學(xué)號學(xué)生");elseprintf("n");void tjpjf() int count=0; stui.ave=float(stui.yw+stui.sx+stui.yy)/

13、3.0); printf("學(xué)號 姓名 平均分 n");printf("-n"); for(j=0;j<i;j+)while(count<i) for(j=0;j<i;j+) printf("%-21s",stucount.num); printf("%-21s",);printf("%-6.2f",stucount.ave);count+; printf("n");printf("-n"); void tjbh

14、grs() int j,count=0;printf("有不及格科目的學(xué)生是:n");printf("學(xué)號 姓名 性別 班級 語文 數(shù)學(xué) 英語n");printf("-n");for(j=0;j<i;j+)if(stuj.yw<60|stuj.sx<60|stuj.yy<60) printf("%-11s",stucount.num); printf("%-13s",); printf("%-8s",stucount.sex)

15、; printf("%-16s",stucount.clas); printf("%-6d",stucount.yw); printf("%-6d",stucount.sx); printf("%-4d",stucount.yy); printf("n");count+; printf("-n");void tj()char x;while(1)printf("tn");printf("t 1.統(tǒng)計平均分 2.統(tǒng)計不及格學(xué)生信息 3.返回 n&q

16、uot;); printf("tn");printf("nt請選擇具體的統(tǒng)計內(nèi)容:");cin>>x;printf("n"); switch(x) case '1':tjpjf();break; case '2':tjbhgrs();break; case '3':break;if(x='3')break;printf("n");void DataProc()char x;while(1)printf("t n"); p

17、rintf("t 處 理 數(shù) 據(jù) n"); printf("t n"); printf("t n"); printf("t 1.按學(xué)號排序 n"); printf("t 2.查詢 n"); printf("t 3.統(tǒng)計 n"); printf("t 4.返回主菜單 n"); printf("t n"); printf("t n"); printf("nt請選擇具體的處理內(nèi)容:");cin>&

18、gt;x; printf("n");switch(x) case '1':sx();break; case '2':cx();break; case '3':tj();break; case '4':break;if(x='4')break;printf("n");void DataOutput() int count=0; printf("學(xué)號 姓名 性別 班級 語文 數(shù)學(xué) 英語n");printf("-n");while(count

19、<i) printf("%-11s",stucount.num); printf("%-13s",); printf("%-8s",stucount.sex); printf("%-16s",stucount.clas); printf("%-6d",stucount.yw); printf("%-6d",stucount.sx); printf("%-6d",stucount.yy);count+; printf(&quo

20、t;n");printf("-n");void main()char x; while(1) printf("t*n"); printf("t* *n"); printf("t* 學(xué) 生 信 息 管 理 系 統(tǒng) *n"); printf("t*-*n"); printf("t* 1.輸入數(shù)據(jù) *n"); printf("t* 2.修改數(shù)據(jù) *n"); printf("t* 3.處理數(shù)據(jù) *n"); printf("t

21、* 4.輸出數(shù)據(jù) *n"); printf("t* 5.退出 *n"); printf("t* *n"); printf("t*n"); printf("nt請選擇需要進(jìn)行的操作:"); cin>>x; printf("n"); switch (x) case '1':InputData();break; case '2':EditData();break; case '3':DataProc();break; case &#

22、39;4':DataOutput();break; case '5':printf("謝謝使用!n");break; if(x='s') break; printf("n");五、 運行結(jié)果六、 實驗總結(jié)(調(diào)試分析、體會、致謝)從這一次的綜合實驗中,我感觸很深可以這么說,為了這個實驗花費比較的功夫。就我個人來說,其實我很害怕與電腦,程序有關(guān)的東西,可能因為一直以來很少接觸電腦吧,對于相關(guān)的東西比較難理解。很認(rèn)真去學(xué),還是感覺很吃力。每次上課或做實驗,發(fā)現(xiàn)自己在這方面很跟上大家的腳步。比如說,我去做了題,但是不能理解

23、,也記不住。但是,這次的綜合實驗二做起來相對之前,我發(fā)現(xiàn)自己有了進(jìn)步。從開始著手做,我就發(fā)現(xiàn)這個實驗所需要的知識在前面的實驗已經(jīng)做過了。特別是綜合實驗一。我是像做實驗一那樣去完成這個實驗的。首先把整個函數(shù)的結(jié)構(gòu),關(guān)系圖先寫出來。在把程序?qū)懗鰜頃r,先寫主函數(shù),然后把第一層函數(shù)的空函數(shù)寫出來,調(diào)試主函數(shù)與第一層的空函數(shù)。第二步就是按照主菜單的順序,把第一層函數(shù)寫出來,輸入數(shù)據(jù)的函數(shù)很快就寫好,調(diào)試也沒有任何問題。在寫修改數(shù)據(jù)的函數(shù)就沒那么容易,我參照了老師的程序,但是很奇怪,調(diào)試沒問題,可當(dāng)我輸入數(shù)據(jù)后,進(jìn)行第二的修改數(shù)據(jù)時,出現(xiàn)的數(shù)據(jù)一直是學(xué)號為1的學(xué)生的數(shù)據(jù)。我找了一天是哪的問題,卻完全沒頭緒,然后我就求助舍友了,舍友幫我看了很久,她也找不到。等我返回去看流程圖,才發(fā)現(xiàn)原來少了“if(strcmp(str,stucount.num)=0)”這條件。接下來就是處理數(shù)據(jù)的函數(shù),我個人感覺這里,既簡單又比較難的。這個函數(shù)里面又包含里按學(xué)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論