学生成绩管理系统程序设计报告doc.docx

上传人:b****6 文档编号:8212245 上传时间:2023-01-29 格式:DOCX 页数:10 大小:59.63KB
下载 相关 举报
学生成绩管理系统程序设计报告doc.docx_第1页
第1页 / 共10页
学生成绩管理系统程序设计报告doc.docx_第2页
第2页 / 共10页
学生成绩管理系统程序设计报告doc.docx_第3页
第3页 / 共10页
学生成绩管理系统程序设计报告doc.docx_第4页
第4页 / 共10页
学生成绩管理系统程序设计报告doc.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

学生成绩管理系统程序设计报告doc.docx

《学生成绩管理系统程序设计报告doc.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统程序设计报告doc.docx(10页珍藏版)》请在冰豆网上搜索。

学生成绩管理系统程序设计报告doc.docx

学生成绩管理系统程序设计报告doc

程序设计报告

(201/201学年第学期)

 

题目:

学生成绩管理系统

 

专业软件工程(NIIT)

学生姓名

班级学号

指导教师成小惠

指导单位计算机软件学院

日期2013.3.26

评分细则

评分项

优秀

良好

中等

遵守机房规章制度

上机时的表现

学习态度

程序准备情况

程序设计能力

团队合作精神

课题功能实现情况

算法设计合理性

用户界面设计

报告书写认真程度

内容详实程度

文字表达熟练程度

回答问题准确度

简短评语

 

教师签名:

年月日

评分等级

备注

评分等级有五种:

优秀、良好、中等、及格、不及格

学生成绩管理系统

一、课题内容和要求

设计一个简化的学生成绩管理系统,并用C或C#语言实现。

对该系统的要求如下:

  1.该系统应实现以下功能

   

(1)按班级按课程从文件中读入相应的平时成绩、期中考试成绩和期末考试成绩。

   

(2)三个成绩对总评成绩的百分比被定义为常数,各占总成绩的30%、30%和40%。

   (3)计算每位学生的总评成绩。

   (4)算该班级本课程的总平均成绩。

(5)算处于优、良、中、及格、不及格的学生人数以及占总人数的百分比。

其中100-90为优,89-80为良,79-70为中,69-60为及格,60分以下为不及格。

   (6)按要求输出成绩在优、良、中、及格、不及格各区间的学生学号。

   2.系统应有以下菜单:

  0.退出

  1.计算每位学生的总评成绩

  2.计算班级本课程总评成绩

  3.统计优、良、中、及格、不及格的学生人数以及所占比例

  4.查询成绩在优、良、中、及格、不及格各区间的学生学号

允许用户不断从这个菜单选择任一功能执行,直到选择退出,才退出整个系统。

二、需求分析

1.系统要从文件中读入相应的平时成绩、期中成绩和期末考试成绩。

这里就用到了C++中的输入输出文件的操作。

在C++语言中进行文件操作的一般步骤为:

(1)为要进行操作的文件定义一个流。

(2)建立(或打开)文件。

(3)进行读/写操作。

(4)关闭文件

另外从文件中读入的数据要在后面进行计算,所以应该把文件中的数据对应到类或者结构体数组上去。

(在这个程序中用的是结构体数组)

2.系统还要有计算的功能,这里的计算包括总评成绩的计算和平均值的计算。

因为要计算多个学生的成绩,所以利用循环语句来进行逐个学生成绩的计算并输出。

(在这个程序中都是用的for循环)

3.统计功能。

需要运用到条件语句,既满足条件就加1,以此来完成计数统计。

4.查询功能。

同样是运用条件语句,判断符合条件就对屏幕输出,达到用户查询的目的。

5.菜单功能。

用简单的菜单函数完成整体的框架,用到switch语句来完成菜单函数的循环。

三、概要设计

 

1.首先用structstudent定义一个结构数组,里面应该包含学号Id、平时成绩ps、期中成绩qz、期末成绩qm、总评成绩all、等级grade。

2.定义函数

(1)读入文件(fs.open),对应到结构体数组中,利用for循环计算总评成绩并用判断语句来判断等级。

(2)调用file函数,把计算的结果输出屏幕,并且按照要求保存到out文件中(ofstreamfout(“out.dat”);)。

(3)调用file函数,计算平均成绩来得到课程的总评成绩。

(4)调用file函数,if判断语句来统计人数并计算比例,然后输出屏幕。

(5)if判断语句,把符合用户输入等级的学生的学号输出到屏幕。

四、详细设计

#include/*输入输出的头文件*/

#include/*对文件的操作*/

#include/*定义字符串变量*/

#include

structstudent/*定义一个结构数组*/

{

public:

charId[10];

floatps;

floatqz;

floatqm;

floatall;

chargrade;

}stu[20];

fstreamfs;

intnum;

charstr5[100]="学生学号";

charstr6[100]="总评成绩";

charstr7[100]="成绩等级";

voidfile()/*定义一个函数,方便后面的调用*/

{

fs.open("note.dat",ios:

:

in|ios:

:

out);/*对文件读入的操作,文件以输入输出方式打开*/

fs>>num;

for(inti=0;i

{

fs>>stu[i].Id>>stu[i].ps>>stu[i].qz>>stu[i].qm;/*把文件中得数值对应到结构数组中*/

}

for(i=0;i

{

stu[i].all=stu[i].ps*0.3+stu[i].qz*0.3+stu[i].qm*0.4;

if((stu[i].all<=100)&&(stu[i].all>=90))

stu[i].grade='A';

if((stu[i].all<90)&&(stu[i].all>=80))

stu[i].grade='B';

if((stu[i].all<80)&&(stu[i].all>=70))

stu[i].grade='C';

if((stu[i].all<70)&&(stu[i].all>=60))

stu[i].grade='D';

if((stu[i].all<60)&&(stu[i].all>=0))

stu[i].grade='E';

}

}

voidreadall()/*对选项1的实现,后面调用*/

{file();

inti;

ofstreamfout("out.dat");/*输出保存到out文件中*/

if(!

fout)/*如果文件打开失败*/

{

cout<<"Cannotopenthefile!

"<

}

fout<

cout<

for(i=0;i

{

fout<

cout<

}

}

voidreadaverage()/*对选项2的实现,后面调用*/

{

cout<<"本课程的总评成绩:

";

file();

inti;

floata[20],p;

for(i=0;i

{

a[i]=stu[i].all;

}

for(i=1;i

{

a[i]=a[i]+a[i-1];

}

p=a[num-1]/num;

cout<

}

voidreadgrade()/*对选项3的实现,后面调用*/

{inti;

intj=0;

intk=0;

intx=0;

inty=0;

intz=0;

file();

for(i=0;i

{

if(stu[i].grade==65)

j++;

if(stu[i].grade==66)

k++;

if(stu[i].grade==67)

x++;

if(stu[i].grade==68)

y++;

if(stu[i].grade==69)

z++;

}

cout<<"成绩为优的学生人数:

";

cout<

cout<<"成绩为良的学生人数:

";

cout<

cout<<"成绩为中等的学生人数:

";

cout<

cout<<"成绩为及格的学生人数:

";

cout<

cout<<"成绩为不及格的学生人数:

";

cout<

floatn;

cout<<"成绩为优的学生百分比:

";

n=float(j)/num;

cout<

cout<<"成绩为良的学生百分比:

";

n=float(k)/num;

cout<

cout<<"成绩为中等的学生百分比:

";

n=float(x)/num;

cout<

cout<<"成绩为及格的学生百分比:

";

n=float(y)/num;

cout<

cout<<"成绩为不及格的学生百分比:

";

n=float(z)/num;

cout<

}

voidreadABCDE()/*对选项4的实现,后面调用*/

{charm[10];

cout<<"请输入你需要查询学生的成绩等级:

";

cin>>m;

if((m[0]!

=65)&&(m[0]!

=66)&&(m[0]!

=67)&&(m[0]!

=68)&&(m[0]!

=69))

cout<<"Inputerror"<

if(m[0]==65)

{cout<

for(inti=0;i

{if(stu[i].grade=='A')

cout<

}

}

if(m[0]==66)

{cout<

for(inti=0;i

{if(stu[i].grade=='B')

cout<

}

}

if(m[0]==67)

{cout<

for(inti=0;i

{if(stu[i].grade=='C')

cout<

}

}

if(m[0]==68)

{cout<

for(inti=0;i

{if(stu[i].grade=='D')

cout<

}

}

if(m[0]==69)

{cout<

for(inti=0;i

{if(stu[i].grade=='E')

cout<

}

}

cout<

}

voidmain()/*菜单函数,整体框架*/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1