軟件工程課程設計之學生成績管理系統(tǒng)_第1頁
軟件工程課程設計之學生成績管理系統(tǒng)_第2頁
軟件工程課程設計之學生成績管理系統(tǒng)_第3頁
軟件工程課程設計之學生成績管理系統(tǒng)_第4頁
軟件工程課程設計之學生成績管理系統(tǒng)_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

付費下載

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

軟件工程課程設計之——學生成績管理系

統(tǒng)

1.題目與要求

1.1問題提出

設計學生成績管理系統(tǒng),有N個學生,每個學生的數(shù)

據(jù)包含學號(不重復卜姓名、三門課的成績及平均成績,

試設計一學生成績管理系統(tǒng)

1.2本系統(tǒng)涉及的知識點

結構體數(shù)組、結構體指針、數(shù)組、循環(huán)、函數(shù)、分

支、指針

1.3功能要求

1、成績錄入:輸入學生的學號、姓名及三門課的成

績;

2、成績查詢:(至少一種查詢方式)。按學號查詢

學生記錄,或查詢不及格學生的記錄;

3、成績統(tǒng)計:計算學生的平均分;根據(jù)學生的平均

分高低,對學生的數(shù)據(jù)進行排序后輸出;對學生單科成績

排序,輸出學生姓名與該科成績;

4、退出系統(tǒng):退出整個系統(tǒng)(即主菜單);

1.4根據(jù)所選菜單編寫相應代碼:

1)輸入學生的信息,利用循環(huán)賦值的方式,給結構

體數(shù)組賦值。

2)輸出平均分函數(shù)ave:首先定義double型數(shù)組,

利用循環(huán)賦值的方式,計算出三門課的成績的平均值放入

數(shù)組中,利用循環(huán)的方式,輸出相關值及平均值。

3)按學號查詢成績函數(shù)search:首先輸入要查詢的

學號,與結構體中的學號進行比較,如果相等輸出這個學

生的信息,另外輸出沒有查到相關結果。

4)按平均分排序后輸出函數(shù)average:首先另外一個

定義結構體數(shù)組、結構體指針變量,計算三門課程的平均

值存到結構體成員aver中,利用循環(huán)的方式,進行平均

分排序,輸出相應的學生信息。

5)對學生單科成績排序后輸出函數(shù)grade:首先另外

一個定義結構體數(shù)組、結構體指針變量,通過選擇k的值

來選擇按分數(shù)幾排序,利用循環(huán)的方式,進行單科成績排

序(從大到?。?,輸出學生姓名及該課的成績。

6)退出程序。

2、附錄:程序清單

#include<stdio.h>

#include<stdlib.h>

typedefstructstudent

(

intnum;

charname[13];

intscore[3];

doubleaver;

}STU;

voidave(STUs[],intn)

{doublea[1000];

inti;

for(i=0;i<n;i++)

H[i]=(s[i].score[0]+s[i].score[l]+s[i].score[2])/3.0;

printf("學號\t姓名\t\t分數(shù)l\t分數(shù)2\t分數(shù)3\t平均分\n");

for(i=0;i<n;i++)

printf(n%d\t%s\t\t%d\t%d\t%d\t%.lt\nH,sli].num,s[,

s[i].score[0],s[i].score[l],s[i].score[2],a[i]);

)

voidsearch(STUs[],intn,inta)

(

inti,k=0;

for(i=0;i<n;i++)

if(s[ij.num==a)

{printf("學號\t姓名\t分數(shù)l\t分數(shù)2\t分數(shù)3\t\nn);

printf(n%d\t%s\t%d\t%d\t%d\nn,s[i].num,s[i].name,s[i].sco

re[0],s[i].score[l],s[i].score[2]);

k=k+l;

break;

)

)

if(k==O)

printf(n\t沒有查詢到相關信息)

)

voidaverage(STUs[],intn)

(血i,j;

STUss[10000];

STU*p=ss;

for(i=0;ivn;i++)

s[iJ.aver=(s[i].score[0J+s[i].score[l]+s[i].score[2])/3.0;

for(i=0;i<n;i++)

ss[i]=s[i];

fbr(i=O;i<n-l;i++)

for(j=i+l;j<n;j++)

if(ss[i].aver<ss[j].aver)

(

STUtemp=*(p+i);

*(p+i)=*(p+j);

*(p+j)=temp;

)

)

)

printf(”學號\t姓名\t平均分\n”);

for(i=0;i<n;i++)

printf(,,%d\t%s\t%.lf\n,,,(p+i)->num,(p+i)->name,(p4-i)->a

ver);

)

voidgrade(STUs[J,intn)

{intij,k;

STUss[10000];

STU*p=ss;

for(i=0;i<n;i++)

ss[i]=s[i];

printf("請輸入k的值查詢,k=0時按分數(shù)1,k=l時按分

數(shù)2,k=2時按分數(shù)3:”);

scanf("%d”,&k);

for(i=0;i<n-l;i++)

(

fbr(j=i+l;j<n;j++)

(

if(ss[i].score[k]<ssfj].scorefk])

(

STUtemp=*(p+i);

*(p+i)=*(p+j);

*(p+j)=temp;

printf("姓名\t分數(shù)\n)

for(i=0;i<n;i++)

printf(M%s\t%d\nH,(p+i)->name,(P-i)->score[kJ);

)

main()

{intN,i;

STUs[10000];

intnuml;

intmenu;

printf(”請輸入學生個數(shù)

scanf("%d”,&N);

for(i=0;i<N;i++)

(

printf("請輸入學號姓名分數(shù)1分數(shù)2分數(shù)3\n”);

scanf(n%d%s%d%d%dn,&s[i].num,s[i].name,&sfil.score[0

],&s[i].score[1],&s[i].score[2]);

)

printf(H\n\nH);

printf("*************學生成績管理系統(tǒng)

*************\n\n”)?

printf(n1-------輸出平均分\n”);

printf(u2-------按學號查詢成績\n");

printf(n3-------按平均分排序后輸出");

printf(”4——對學生單科成績排序后輸出\n)

printf(u5-------退出程序\n");

printf(n\n\nn);

while(l)

(

printf(n\n請輸入菜單號:");

scanf(”%d”,&menu);

switch(menu)

case1:ave(s,N);break;

case2:printf("請輸入要查詢的學號

scanf("%d",&num1);

search(s,N,numl);

break;

case3:average(s,N);break;

case4:grade(s,N);break;

case5:exit(O);

default:

printf("菜單號輸入錯誤\n");

break;

)

)

■?CAU$en\lenovo\Desktop\Debug\hn.exf*□

iff”入學弓姓名分數(shù)1分數(shù)2分數(shù)3

311fan987856

忸軸入學號姓名分數(shù)】分數(shù)2分數(shù)3

322li906545

M修入學號姓匕分敗1分敗2分數(shù)3

333sons706768

砧修人孝號的名分數(shù)1分數(shù)2分數(shù)3

chen5710083

,學生成績管理系統(tǒng)

1-------輸出干均分

2-------按學弓畬沏成^

5-------按不均分抻序儲輸出

5-------月學生仇科成績掉序后輸出

s------------退出程序

M輸入菜單號:

■"CAU$er$\lenovo\De$ktop\(>ebug\f*n.exe-□

修涔弓姓分散】分數(shù)2分數(shù)3

4chen5710083

學生成納管局系統(tǒng)*?????????*??

輸出平均分

按學號住詢成境

按平均分9I序后看出

對學生單科成憤挎序后輸出

退出死序

,輸入菜冷弓:1此

均分

分/X3

姓名783

11fan98655677g.7

2211:

90oA453

33song6868.

70A1O

34chen57008380.

依人菜單丹:

學生成績料理系統(tǒng)》?**???*???

輸出平均分

按學”件詢成靖

按平均分折序元修出

對學生單科成結排序6*出

退出程序

謂抬入菜小耳:1分

均分

分tP

t2

學號姓名3

311fan9878t5677.7

90654566.3

70676868,O

57)0()08380.

請修入翼單號:2

詁輸入要仔詢的學,:333

學號姓幺分數(shù)1分數(shù)2分故3

333song706768

請也入菜單耳:

;^^UsefsMenovoXDesktopVDebugV^nexe'-□

1--------輸出平均分

2--------按學學A制或演

按平均分指序筋*出

對學生單科成"HI序后程出

退出程序

。軸入菜小耳

:1分

均分

/數(shù)2

姓名78T-3

illfan986^5677.7

122li9004566.3

bM7

33song701O?6868.0

34chen578380.

力修入菜單”:2

4軸入要自詢的學號:333分

學號姓名分數(shù)1分故2

133song706768

。輸入菜單號:3

X號姓名0

;34chen8o.3

41fan77.3

33song68g.7

修入第

■'X:\Usefi\te<K>vo\De$ktop\DebugV<m.exe,□

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論