版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
軟件工程課程設計之——學生成績管理系
統(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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026浙江臺州黃巖區(qū)民政局招聘駕駛員1人備考考試試題附答案解析
- 2026福建南平政和縣勞動人事爭議仲裁院就業(yè)見習崗位招聘3人參考考試試題附答案解析
- 2026廣西防城港市文旅集團有限公司(第1期)招聘5人備考考試試題附答案解析
- 2026山東菏澤學院招聘高層次人才8人(第一批)參考考試試題附答案解析
- 2026山東臨沂羅莊區(qū)部分事業(yè)單位招聘綜合類崗位17人備考考試試題附答案解析
- 2026四川內江市隆昌市黃家鎮(zhèn)人民政府招聘2人備考考試試題附答案解析
- 2026年煙臺棲霞市事業(yè)單位公開招聘工作人員(63人)備考考試試題附答案解析
- 代寫生產(chǎn)運營部規(guī)章制度
- 2026年荊州市公安縣事業(yè)單位人才引進52人參考考試試題附答案解析
- 2026陜西西北工業(yè)大學材料學院功能密封材料團隊招聘1人備考考試試題附答案解析
- 2026年安徽皖信人力資源管理有限公司公開招聘宣城市涇縣某電力外委工作人員筆試備考試題及答案解析
- 2026中國煙草總公司鄭州煙草研究院高校畢業(yè)生招聘19人備考題庫(河南)及1套完整答案詳解
- 陶瓷工藝品彩繪師崗前工作標準化考核試卷含答案
- 居間合同2026年工作協(xié)議
- 醫(yī)療機構信息安全建設與風險評估方案
- 化工設備培訓課件教學
- 供熱運行與安全知識課件
- 婚禮中心工作總結
- 《數(shù)字貿(mào)易學》教學大綱、二維碼試題及答案
- 嚴仁詞人生創(chuàng)作背景考述
- 大鎖孫天宇小品《時間都去哪了》臺詞劇本完整版-一年一度喜劇大賽
評論
0/150
提交評論