软件工程课程设计之学生成绩管理系统_第1页
软件工程课程设计之学生成绩管理系统_第2页
软件工程课程设计之学生成绩管理系统_第3页
软件工程课程设计之学生成绩管理系统_第4页
软件工程课程设计之学生成绩管理系统_第5页
已阅读5页,还剩5页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程课程设计之——学生成绩管理系

1.题目与要求

1.1问题提出

设计学生成绩管理系统,有N个学生,每个学生的数

据包含学号(不重复卜姓名、三门课的成绩及平均成绩,

试设计一学生成绩管理系统

1.2本系统涉及的知识点

结构体数组、结构体指针、数组、循环、函数、分

支、指针

1.3功能要求

1、成绩录入:输入学生的学号、姓名及三门课的成

绩;

2、成绩查询:(至少一种查询方式)。按学号查询

学生记录,或查询不及格学生的记录;

3、成绩统计:计算学生的平均分;根据学生的平均

分高低,对学生的数据进行排序后输出;对学生单科成绩

排序,输出学生姓名与该科成绩;

4、退出系统:退出整个系统(即主菜单);

1.4根据所选菜单编写相应代码:

1)输入学生的信息,利用循环赋值的方式,给结构

体数组赋值。

2)输出平均分函数ave:首先定义double型数组,

利用循环赋值的方式,计算出三门课的成绩的平均值放入

数组中,利用循环的方式,输出相关值及平均值。

3)按学号查询成绩函数search:首先输入要查询的

学号,与结构体中的学号进行比较,如果相等输出这个学

生的信息,另外输出没有查到相关结果。

4)按平均分排序后输出函数average:首先另外一个

定义结构体数组、结构体指针变量,计算三门课程的平均

值存到结构体成员aver中,利用循环的方式,进行平均

分排序,输出相应的学生信息。

5)对学生单科成绩排序后输出函数grade:首先另外

一个定义结构体数组、结构体指针变量,通过选择k的值

来选择按分数几排序,利用循环的方式,进行单科成绩排

序(从大到小),输出学生姓名及该课的成绩。

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分数l\t分数2\t分数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分数l\t分数2\t分数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时按分数1,k=l时按分

数2,k=2时按分数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分数\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(”请输入学生个数

scanf("%d”,&N);

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

(

printf("请输入学号姓名分数1分数2分数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("*************学生成绩管理系统

*************\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”入学弓姓名分数1分数2分数3

311fan987856

忸轴入学号姓名分数】分数2分数3

322li906545

M修入学号姓匕分败1分败2分数3

333sons706768

砧修人孝号的名分数1分数2分数3

chen5710083

,学生成绩管理系统

1-------输出干均分

2-------按学弓畲沏成^

5-------按不均分抻序储输出

5-------月学生仇科成绩掉序后输出

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

M输入菜单号:

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

修涔弓姓分散】分数2分数3

4chen5710083

学生成纳管局系统*»»♦«♦»»•♦*•♦

输出平均分

按学号住询成境

按平均分9I序后看出

对学生单科成愤挎序后输出

退出死序

,输入菜冷弓:1此

均分

分/X3

姓名783

11fan98655677g.7

2211:

90oA453

33song6868.

70A1O

34chen57008380.

依人菜单丹:

学生成绩料理系统》»**««♦*»♦•

输出平均分

按学”件询成靖

按平均分折序元修出

对学生单科成结排序6*出

退出程序

谓抬入菜小耳:1分

均分

分tP

t2

学号姓名3

311fan9878t5677.7

90654566.3

70676868,O

57)0()08380.

请修入翼单号:2

诂输入要仔询的学,:333

学号姓幺分数1分数2分故3

333song706768

请也入菜单耳:

;^^UsefsMenovoXDesktopVDebugV^nexe'-□

1--------输出平均分

2--------按学学A制或演

按平均分指序筋*出

对学生单科成"HI序后程出

退出程序

。轴入菜小耳

:1分

均分

/数2

姓名78T-3

illfan986^5677.7

122li9004566.3

bM7

33song701O»6868.0

34chen578380.

力修入菜单”:2

4轴入要自询的学号:333分

学号姓名分数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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论