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頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上學(xué)生成績管理系統(tǒng)實驗報告實驗名稱:學(xué)生成績管理系統(tǒng)實驗?zāi)康模?)利用所學(xué)的三種程序基本結(jié)構(gòu)以及數(shù)組、用戶自定義函數(shù)進(jìn)行一個簡單管理系統(tǒng)的設(shè)計,進(jìn)一步理解和掌握c語言的語法以及三種基本程序結(jié)構(gòu)的綜合應(yīng)用。2)通過程序中設(shè)計到的排序、查找、求和等操作加深對算法、程序設(shè)計思路、常用程序設(shè)計技巧的理解與掌握,逐步培養(yǎng)學(xué)生的程序開發(fā)能力。實驗要求:設(shè)某班有n位同學(xué),每位同學(xué)的數(shù)據(jù)包括一下內(nèi)容:學(xué)號(長整型)、姓名(字符號)、數(shù)學(xué)成績(整型)、程序設(shè)計成績(整型)。設(shè)計程序完成以下5項功能:新建數(shù)據(jù)檔案、添加數(shù)據(jù)、刪除數(shù)據(jù)、對輸入的數(shù)據(jù)進(jìn)行排序和查詢。算法內(nèi)容:程序運行,利用pr

2、intf函數(shù)顯示主菜單,并提示輸入相應(yīng)的數(shù)字來進(jìn)行相關(guān)操作。顯示主菜單如下:1. 新建數(shù)據(jù)2. 添加數(shù)據(jù)3. 刪除數(shù)據(jù)4. 排序5. 查詢6. 退出若輸入1,則進(jìn)入新建數(shù)據(jù)界面。根據(jù)提示依次輸入學(xué)生人數(shù)、學(xué)生的學(xué)號、姓名、數(shù)學(xué)成績和程序設(shè)計程序。S1:輸入學(xué)生人數(shù)n,S2: 0->i,(把0放在變量i中) S3:輸入第i+1個學(xué)生的數(shù)據(jù)(學(xué)號,姓名,學(xué)數(shù)學(xué)成績,程序設(shè)計成績)S4:i+1->iS5:若i<n,返回S2 ,否則繼續(xù)S6:0=<iS7:輸出第i+1個學(xué)生數(shù)據(jù)S8:i+1=i若i<N,返回s6否則結(jié)束算法輸入2,進(jìn)入添加數(shù)據(jù)界面。S1:原有學(xué)生人數(shù)n加1

3、,即n+1=>nS2:輸入學(xué)生數(shù)據(jù)S3:0->iS4:輸出第i+1個學(xué)生的數(shù)據(jù)S5:若i<n返回S4,否則結(jié)束算法輸入3進(jìn)入刪除數(shù)據(jù)界面。S1:輸入要刪除的學(xué)生學(xué)號mS2:0->i,0->jS3:若學(xué)生的學(xué)號stui.num,轉(zhuǎn)到S6,否則繼續(xù)S4:i+1->iS5:若i<n,返回S3,否則輸出“輸出的學(xué)號不存在”算法接速S6:n-1-> nS7: 把要刪除的數(shù)據(jù)覆蓋            stui.num=>stuj.num;=>;

4、60;           stui.math=stuj.math;stui.C=stuj.C;j+;S8:若i<n,返回S7,否則繼續(xù)S9:0->iS10:輸出第i+1個學(xué)生的數(shù)據(jù)S11:若i<n返回S10,否則結(jié)束算法輸入4,進(jìn)入排序界面。按三種方式排序本質(zhì)一樣一下用數(shù)組a50代表S1:0->iS2:i+1->jS3:若ai<aj,第i+1個學(xué)生數(shù)據(jù)與第j+1個學(xué)生數(shù)據(jù)進(jìn)行交換S4:j+1->jS5:若j<n,n為學(xué)生原有人數(shù),返回S3S6:i+1->iS7:若i<n-1,返回S2

5、 s8:輸出學(xué)生數(shù)據(jù),算法結(jié)束輸入5,進(jìn)入查詢界面。1)按學(xué)號和名字方法一樣(以按學(xué)號為例)S1:輸入要查詢的學(xué)生的學(xué)號置于a10中 S2:0->iS3:若stui.num=a10,輸出該生數(shù)據(jù)并結(jié)束S4:i+1->iS5:若i<n返回 S3否則輸出“學(xué)號不存在”,算法結(jié)束(2)按數(shù)學(xué)、程序設(shè)計、總分查詢(以數(shù)學(xué)為例)S1:輸入最低分?jǐn)?shù)線mS2:0->i,0->jS3:若stdi.math=m,轉(zhuǎn)到S6S4:i+1->iS5:若i<n,返回S3S6:strcpy(ej,stui.num);strcpy(bj,);cj=stui.mat

6、h;dj=stui.C;    (其中數(shù)組e,b,c,d 是二維數(shù)組)S7:j+1->j,返回S3S8:0->iS9:輸出學(xué)生數(shù)據(jù)S10:i+1->iS11:i<j,返回S9,否則算法結(jié)束輸入6,結(jié)束,退出程序程序清單#include<string.h>#include<stdio.h># define N 50int n;struct student char num10; char name20; int math,C,sum;stuN;void put1() void put2(); put2(); printf(&qu

7、ot;tttt學(xué) 生 成 績 管 理 系 統(tǒng)ntttt-n"); printf("tttt | 1. 新建數(shù)據(jù) |n"); printf("tttt | 2. 添加數(shù)據(jù) |n"); printf("tttt | 3. 刪除數(shù)據(jù) |n"); printf("tttt | 4. 排序 |n"); printf("tttt | 5. 查詢 |n"); printf("tttt | 6. 退出 |n"); put2(); printf("n");void

8、 put2() printf("*n");void put3() printf("學(xué)號 姓名 數(shù)學(xué) 程序設(shè)計 總分n");void put4()printf("操作結(jié)果如下:n");void get(int i) printf("ttt請輸入學(xué)號:");scanf("%s",stui.num ); printf("ttt請輸入姓名:");scanf("%s", ); printf("ttt請輸入數(shù)學(xué)成績:"); sca

9、nf("%d",&stui.math); printf("ttt請輸入程序設(shè)計成績:"); scanf("%d",&stui.C);printf("n");void build() printf("n ttt 新建數(shù)據(jù)n"); int i; printf("nttt請輸入學(xué)生人數(shù):"); scanf("%d",&n);printf("n"); for(i=0;i<n;i+) get(i);printf(&q

10、uot;n"); put4();put2();put3(); for(i=0;i<n;i+) printf("%-6s%-6s%4d%8d%8dn",stui.num,,stui.math,stui.C,stui.math+stui.C); put2();void add() printf("n ttt 添加數(shù)據(jù)nn"); int i; n=n+1; get(n-1);put4(); put2();put3(); for(i=0;i<n;i+) printf("%-6s%-6s%4d%8d%8dn&quo

11、t;,stui.num,,stui.math,stui.C,stui.math+stui.C); put2();void delet() char str10;int i,j=0,k=0;printf("n ttt 刪除數(shù)據(jù)nn"); printf("ttt請輸入要刪除的學(xué)生的學(xué)號:"); scanf("%s",str); for(i=0;i<n;i+) if(strcmp(str,stui.num)=0)k+; else stuj.num=stui.num;=; stuj.

12、math=stui.math;stuj.C=stui.C;j+; if(k=0)printf("ttt輸入的學(xué)號不存在n"); else put4();put2();put3();n=n-1; for(i=0;i<n;i+) printf("%-6s%-6s%4d%8d%8dn",stui.num,,stui.math,stui.C,stui.math+stui.C); put2(); void sort_1(int a) int i,j,k,m,t;char str20; for(i=0;i<n-1;i+) for(j=i

13、+1;j<n;j+) if(ai<aj) strcpy(str,stui.num);strcpy(stui.num,stuj.num);strcpy(stuj.num,str); strcpy(str,);strcpy(,);strcpy(,str); t=stui.math;stui.math=stuj.math;stuj.math=t; t=stui.C;stui.C=stuj.C;stuj.C=t; put4();put2();put3(); for(i=0;i<n;i+) printf("

14、;%-6s%-6s%4d%8d%8dn",stui.num,,stui.math,stui.C,stui.math+stui.C); put2();void sort() int i,q;int matN,cN,suN; loot:for(i=0;i<n;i+) mati=stui.math;ci=stui.C;sui=stui.math+stui.C; printf("n ttt 成績排序nn"); put2(); printf("ttt1.數(shù)學(xué)成績排序nttt2.程序設(shè)計排序nttt3.總分排序nttt4.返回主菜單n&quo

15、t;); put2(); printf("ttt請選擇排序方式序號1-4:"); scanf("%d",&q); if(q=1)sort_1(mat);printf("tttnn");goto loot; else if (q=2)sort_1(c);printf("tttnn"); goto loot; else if (q=3)sort_1(su);printf("tttnn");goto loot; else if(q=4);void seek_num() char str10;i

16、nt i, k=0; printf("ttt請輸入學(xué)號:"); scanf("%s",str); for(i=0;i<n;i+) if(strcmp(str,stui.num)=0) put4();put2();put3(); printf("%-6s%-6s%4d%8d%8dn",stui.num,,stui.math,stui.C,stui.math+stui.C); put2();break; if(i=n)printf("ttt輸入的學(xué)號不存在");void seek_name()

17、char str10;int i, k=0; printf("ttt請輸入姓名:"); scanf("%s",str); for(i=0;i<n;i+) if(strcmp(str,)=0) put4();put2();put3(); printf("%-6s%-6s%4d%8d%8dn",stui.num,,stui.math,stui.C,stui.math+stui.C); put2();break; if(i=n)printf("ttt輸入的姓名不存在");void

18、 seek_1(int aN) int i,m,j=0,k;char e5050,b5050;int c50,d50; printf("ttt請輸入分?jǐn)?shù)下線:"); scanf("%d",&m); for(i=0;i<n;i+) if(ai>=m) strcpy(ej,stui.num); strcpy(bj,); cj=stui.math; dj=stui.C;j+; put4();put2();put3(); for(i=0;i<j;i+) printf("%-6s%-6s%4d%8d%8dn&q

19、uot;,ei,bi,ci,di,ci+di); put2();void seek() int i,q;int matN,cN,suN; for(i=0;i<n;i+) mati=stui.math;ci=stui.C;sui=stui.math+stui.C; looa:printf("n ttt 成績查詢nn"); put2(); printf("ttt1.學(xué)號查詢n2.姓名查詢n3.數(shù)學(xué)成績查詢n4.程序設(shè)計查詢n5.總分排序查詢n6.返回主菜單n"); put2();printf("ttt請選擇查詢方式1-6:"); s

20、canf("%d",&q); if(q=1)seek_num();printf("nn");goto looa; else if (q=2)seek_name();printf("nn");goto looa; else if (q=3)seek_1(mat);printf("nn");goto looa; else if(q=4)seek_1(c);printf("nn");goto looa; else if(q=5)seek_1(su);printf("nn")

21、;goto looa; else if (q=6);void main() int i,q;int matN,cN,suN; for(i=0;i<n;i+) mati=stui.math;ci=stui.C;sui=stui.math+stui.C;loop:put1();printf("ttt如果還沒新建數(shù)據(jù),請先新建數(shù)據(jù)nn"); printf("ttt請選擇要操作步驟的序號1-6:"); scanf("%d",&q); if(q=1) build();printf("nn");goto loop; else if(q=2) add();printf("nn");goto loop; else if(q=3) delet();printf("nn");goto loop; else if(q=4) sort();printf(&

溫馨提示

  • 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

提交評論