学生成绩处理系统的设计与实现的设计说明书.docx

上传人:b****3 文档编号:26590928 上传时间:2023-06-20 格式:DOCX 页数:24 大小:579.67KB
下载 相关 举报
学生成绩处理系统的设计与实现的设计说明书.docx_第1页
第1页 / 共24页
学生成绩处理系统的设计与实现的设计说明书.docx_第2页
第2页 / 共24页
学生成绩处理系统的设计与实现的设计说明书.docx_第3页
第3页 / 共24页
学生成绩处理系统的设计与实现的设计说明书.docx_第4页
第4页 / 共24页
学生成绩处理系统的设计与实现的设计说明书.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

学生成绩处理系统的设计与实现的设计说明书.docx

《学生成绩处理系统的设计与实现的设计说明书.docx》由会员分享,可在线阅读,更多相关《学生成绩处理系统的设计与实现的设计说明书.docx(24页珍藏版)》请在冰豆网上搜索。

学生成绩处理系统的设计与实现的设计说明书.docx

学生成绩处理系统的设计与实现的设计说明书

 

C\C++程序设计课程设计

设计说明书

学生成绩处理系统的设计与实现

学生姓名

学号

班级

成绩

指导教师

 

计算机科学与技术系

2009年7月3日

 

C\C++程序设计课程设计评阅书

题目

学生成绩处理系统的设计与实现

学生姓名

学号

指导教师评语及成绩

 

指导教师签名:

年月日

答辩评语及成绩

 

答辩教师签名:

年月日

教研室意见

总成绩:

室主任签名:

年月日

课程设计任务书

2008—2009学年第二学期

专业:

计算机科学与技术学号:

姓名:

课程设计名称:

软件技术基础课程设计

设计题目:

学生成绩处理系统的设计与实现

完成期限:

自2009年6月22日至2009年7月3日共2周

设计依据、要求及主要内容(可另加附页):

有如下表所示的若干个学生成绩:

学号

姓名

C语言

数学

英语

总分

平均

08001

李强

90

95

80

08002

张兵

68

75

58

08003

刘英

78

80

64

要求用C/C++语言编写一个程序实现学生成绩处理系统,数据的基本存储结构采用结构体数组,指针作为函数的参数。

要求实现如下功能:

1)阐述设计思想,画出流程图;

2)对学生成绩进行录入和修改;

3)横向计算每个学生各门功课的总成绩及平均成绩;纵向计算某门课程的平均分数;

4)采用选择排序、快速排序、归并排序对学生的平均成绩进行排序;

5)统计每门课程中不及格人数、60—70分、70—80分、80—90分以及90分以上人数;

6)说明测试方法,写出完整的运行结果,较好的界面设计;

7)编写课程设计报告。

以上要求中前三个阶段的任务完成后,先将设计说明书的草稿交指导老师面审,审查

合格后方可进入后续阶段的工作。

设计工作结束后,经指导老师验收合格后将设计说明书打印装订,并进行答辩。

最终设计成果形式为:

1.设计好的软件一套;

2.撰写一份课程设计说明书一份,打印并装订成册。

指导教师(签字):

教研室主任(签字):

批准日期:

年月日

摘要

设计了一个学生成绩处理系统软件,该处理系统具有计算每个学生的总成绩、平均成绩以及对学生平均成绩进行排列功能,计算各门课的总成绩和平均成绩功能,统计每门课各分数段的人数以及修改学生信息的功能。

本成绩处理系统采用VC++作为软件开发环境,采用了结构体数组来实现。

操作简单,可适用多个学生的多门成绩处理。

关键词:

成绩处理;函数;VC++

目录

1课题描述…………………………………………………………………………1

2设计过程…………………………………………………………………………2

3程序源代码………………………………………………………………………7

4测试结果与分析…………………………………………………………………13

总结…………………………………………………………………………………17

参考文献……………………………………………………………………………18

1课题描述

学生成绩处理系统可以通过简单的操作,实现对学生成绩平均分的计算,学生成绩的排序,修改,以及对每门课程总分,平均分的计算和各分数段人数的统计。

对所输学生成绩的平均分进行选择排序,选择排序是将一组无序数据按升序排列。

首先比较a[1]和a[2]的值,若a[1]大于a[2]则交换两者的值,否则不变;再比较a[1]和a[3]的值,以此类推,共处理n-1轮后就以升序排列。

对一门课中各个分数段人数进行统计,是用if-else语句实现多分支的方法。

学生成绩处理系统解决了教师处理学生成绩的难题,提高了成绩处理的效率。

在次以VisualC++6.0作为开发工具,编程实现了学生成绩处理的演示系统。

 

2设计过程

本设计采用结构体、数组实现学生成绩的基本处理。

下面给出学生成绩处理系统中学生成绩的输出、平均成绩的计算和排列、各门课程的总分平均分以及各个分数段人数的统计的流程图。

其中图2.1为学生成绩输出流程图:

图2.1学生成绩输出流程图

 

图2.2为对学生平均成绩进行排序流程图:

图2.2对学生平均成绩进行排序(选择排序)的流程图

图2.3为计算一门课的总成绩和平均分的流程图:

图2.3计算一门课的总成绩和平均分的流程图

图2.4为修改学生成绩信息的流程图:

图2.4修改学生成绩信息的流程图

 

图2.5为计算一门课各个分数段人数的流程图修改学生成绩信息的流程图:

图2.5计算一门课各个分数段人数的流程图修改学生成绩信息的流程图

 

3程序源代码

#include/*引用库函数*/

#include

#include

#include

#include

typedefstruct

{

charname[10];

intnum;

floatCprogram;

floatEnglish;

floatMath;

floatSum;

floataverage;

}Student;

Studentstu[5];/*结构体数组变量*/

intmenu()/*菜单函数*/

{

charc;

do

{

cout<<"******************学生成绩管理系统*******************"<

cout<<"1:

输入学生成绩"<

cout<<"2:

输出学生成绩"<

cout<<"3:

用选择排列法排列学生平均成绩"<

cout<<"4:

纵向计算三门课的成绩"<

cout<<"5:

修改一组学生成绩"<

cout<<"6:

统计三门课程各分数段的成绩"<

cout<<"0:

退出程序"<

cout<<"请选择操作(0到6):

"<

c=getchar();/*读入选择*/

}

while(c<'0'||c>'6');

return(c-'0');

}

intInput(Studentstud[],intn)

{

inti=0;

charsign;

while(sign!

='n'&&sign!

='N')/*判断*/

{

cout<<"请输入学生的姓名:

";

cin>>stud[i].name;

cout<<"请输入学生的学号:

";

cin>>stud[i].num;

cout<<"请输入该C语言该学生的成绩:

";

cin>>stud[i].Cprogram;

cout<<"请输入该学生数学的成绩:

";

cin>>stud[i].Math;

cout<<"请输入该学生英语的成绩:

";

cin>>stud[i].English;

cout<<"=====>提示:

继续写入成绩?

(Y/N)";

cin>>sign;/*输入判断*/

i++;

}

returni;

}

voidOutput(Studentstud[],intn)/*输出学生成绩*/

{

inti;

cout<<"姓名学号C语言数学英语总分平均分"<

for(i=1;i

{

stud[i-1].Sum=stud[i-1].Cprogram+stud[i-1].Math+stud[i-1].English;

stud[i-1].average=stud[i-1].Sum/3;

cout<

}

}

voidSwap(Studentstud[],intn)/*按平均分排序*/

{

inti,j;

Studenttemp;

for(i=0;i

for(j=i+1;j

{

if(stud[i].average

{

temp=stud[i];

stud[i]=stud[j];

stud[j]=temp;

}

}

cout<<"-------------------输入学生的信息---------------"<

cout<<"姓名学号C语言数学英语总分平均分"<

for(i=0;i

{

stud[i].Sum=stud[i].Cprogram+stud[i].Math+stud[i].English;

stud[i].average=stud[i].Sum/3;

cout<

}

}

voidAverage(Studentstud[],intn)/*计算各门课的总分和平均分*/

{

inti;

floataver1,aver2,aver3;

floatsum1=stud[0].Cprogram;

floatsum2=stud[0].Math;

floatsum3=stud[0].English;

for(i=1;i

{

sum1+=stud[i].Cprogram;

sum2+=stud[i].Math;

sum3+=stud[i].English;

aver1=sum1/n;

aver2=sum2/n;

aver3=sum3/n;

}

cout<<"-------------------输入学生的信息-------------------"<

cout<<"姓名学号C语言数学英语总分平均分"<

for(i=0;i

{

stud[i].Sum=stud[i].Cprogram+stud[i].Math+stud[i].English;

stud[i].average=stud[i].Sum/3;

cout<

cout<<"C语言课程的总分,平均分:

"<

cout<<"数学课程的总分,平均分:

"<

cout<<"英语课程的总分,平均分:

"<

}

}

voidModify(Studentstud[],intn)/*按学号查找,修改学生成绩*/

{

ints;

inti=0;

cout<<"输入需要修改成绩学生的学号:

"<

cin>>s;

while((stud[i].num-s)!

=0&&i

i++;/*查找判断*/

if(i==n)

{

cout<<"=====>提示:

对不起,无该学生的成绩……"<

return;

}

cout<<"----------------该学生的信息-------------"<

cout<<"姓名学号C语言数学英语总分平均分"<

cout<

cout<<"---------------------------------------------------------------"<

cout<<"请输入学生的姓名:

";

cin>>stud[i].name;

cout<<"请输入学生的学号:

";

cin>>stud[i].num;

cout<<"请输入该C语言该学生的成绩:

";

cin>>stud[i].Cprogram;

cout<<"请输入该学生数学的成绩:

";

cin>>stud[i].Math;

cout<<"请输入该学生英语的成绩:

";

cin>>stud[i].English;

stud[i].Sum=stud[i].Cprogram+stud[i].Math+stud[i].English;

stud[i].average=stud[i].Sum/3;

cout<<"该学生修改后的成绩信息为:

"<

cout<

}

voidcprogram(Studentstud[],intn)/*统计C语言各个分数段的人数*/

{

inti;

intk=0,h=0,m=0,p=0,l=0;

for(i=0;i

{

if(stud[i].Cprogram>=90)

k++;

elseif(stud[i].Cprogram>=80)

h++;

elseif(stud[i].Cprogram>=70)

m++;

elseif(stud[i].Cprogram>=60)

p++;

else

l++;

}

cout<<"C语言中90分以上的人数:

"<

"<

"<

"<

"<

}

voidmath(Studentstud[],intn)/*统计数学各个分数段的人数*/

{

inti;

intk=0,h=0,m=0,p=0,l=0;

for(i=0;i

{

if(stud[i].Math>=90)

k++;

elseif(stud[i].Math>=80)

h++;

elseif(stud[i].Math>=70)

m++;

elseif(stud[i].Math>=60)

p++;

else

l++;

}

cout<<"数学中90分以上的人数:

"<

"<

"<

"<

"<

voidenglish(Studentstud[],intn)/*统计英语各个分数段的人数*/

{

inti;

intk=0,h=0,m=0,p=0,l=0;

for(i=0;i

{

if(stud[i].English>=90)

k++;

elseif(stud[i].English>=80)

h++;

elseif(stud[i].English>=70)

m++;

elseif(stud[i].English>=60)

p++;

else

l++;

}

cout<<"英语中90分以上的人数:

"<

"<

"<

"<

"<

}

voidmain()/*主函数*/

{

intn;

for(;;)

{

switch(menu())/*选择判断*/

{

case1:

cout<>输入成绩<<===="<

n=Input(stu,n);

break;

case2:

cout<>输出学生成绩信息<<===="<

Output(stu,n);

break;

case3:

cout<>学生成绩选择排列<<===="<

Swap(stu,n);

break;

case4:

cout<>纵向计算三门课的成绩<<===="<

Average(stu,n);

break;

case5:

cout<>修改一组成绩<<===="<

Modify(stu,n);/*查找并显示一个记录*/

break;

case6:

cout<>对三门课各分数段成绩人数进行统计<<===="<

cprogram(stu,n);

math(stu,n);

english(stu,n);

break;

case0:

cout<>退出<<===="<

exit(0);

}

}

}

4测试结果及分析

运行程序,按要求输入学生成绩得到运行结果,如图4.1所示:

图4.1输入学生成绩

选择功能2,输出学生成绩信息,如图4.2所示:

图4.2输出学生成绩

选择功能3,对学生平均成绩进行排列,如图4.3所示:

图4.3对学生平均成绩进行排列

选择功能4,纵向计算三门课成绩的总分以及平均分,如图4.4所示:

图4.4纵向计算三门课的总成绩和平均成绩

 

选择功能5,根据学号修改学生的成绩信息,如图4.5所示:

图4.5输入要修改的学生学号

如果输入学号错误,如图4.6所示:

图4.6输入错误学号

选择功能6,统计三门课个分数段人数,如图4.7所示:

图4.7对学生三门课各分数段成绩人数进行统计

选择功能0,退出,如图4.8所示:

图4.8退出

 

总结

课程设计的过程是非常不容易的,但对我却有很大的启发。

这次课程设计我主要是应用以前所学的C语言以及本学期的VC,综合起来才完成了这个学生成绩处理系统的软件,比平常上机实验所编程序要复杂,锻炼了我自己。

首先,C/C++程序设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更进一步的理解和认识;再次,我在课程设计中碰到了很多的问题,通过查阅相关资料以及上网查询进行解决,同时曹老师对我也进行了指导,指出了课程设计流程中的错误,提出了建议。

越来越多的人们开始依靠计算机来解决日常生活中的问题,计算机可以明显提高速度和准确率。

我所设计的成绩处理系统可以对学生成绩进行处理。

当然,通过这次课程设计,我也发现了自身的很多不足之处,在以后的学习中,我会不断的完善自我,不断进取,能使自己在C/C++编程这方面有一个大的发展。

参考文献

[1]严蔚敏,吴伟民.数据结构(C语言版)[M].北京:

清华大学出版社,2002

[2]刘斌,王忠.面向对象程序设计VisualC++[M].北京:

清华大学出版社,2003

[3]何钦铭,颜辉.C语言程序设计[M].北京:

高等教育出版社,2008

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

当前位置:首页 > 高中教育 > 数学

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

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