C++课程设计报告.docx

上传人:b****5 文档编号:11647416 上传时间:2023-03-29 格式:DOCX 页数:19 大小:478.15KB
下载 相关 举报
C++课程设计报告.docx_第1页
第1页 / 共19页
C++课程设计报告.docx_第2页
第2页 / 共19页
C++课程设计报告.docx_第3页
第3页 / 共19页
C++课程设计报告.docx_第4页
第4页 / 共19页
C++课程设计报告.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

C++课程设计报告.docx

《C++课程设计报告.docx》由会员分享,可在线阅读,更多相关《C++课程设计报告.docx(19页珍藏版)》请在冰豆网上搜索。

C++课程设计报告.docx

C++课程设计报告

 

《C++程序设计》

课程设计说明书

 

题目

学生成绩管理系统

学号

姓名

指导教师

日期

2013.12.27

内蒙古科技大学课程设计任务书

课程名称

C++面向对象程序设计A课程设计

设计题目

学生成绩管理系统

指导教师

时间

2013.12.27

一、教学要求

1.巩固和加深学生对C++语言课程的基本知识的理解和掌握

2.掌握C++语言编程和程序调试的基本技能

3.利用C++语言进行基本的软件设计

4.掌握书写程序设计说明文档的能力

5.提高运用C++语言解决实际问题的能力

二、设计资料及参数

用C++设计一个程序,能提供下列功能:

(1)录入学生成绩。

按照学号,姓名,语文,数学,英语的格式录入学生的成绩。

(2)查询成绩。

根据学生的学号或姓名查询学生的成绩。

(3)修改。

通过查询找到相应的学生记录进行修改。

(4)统计。

计算学生的总分并排序显示输出。

统计班级学生的每门课程的平均分和总分的平均分并显示;统计得分小于班级总分的学生并显示;显示不及格学生的名单。

三、设计要求及成果

根据系统功能要求,可以将问题解决分为以下步骤:

(1)分析系统中的各个实体之间的关系及其属性和行为;

(2)根据问题描述,设计系统的类层次;

(3)完成类层次中各个类的描述(包括属性和力一法);

(4)完成类中各个成员函数的定义;

(5)完成系统的应用模块;

(6)功能调试;

(7)提交课程设计报告:

完成系统总结报告以及系统使用说明书

内蒙古科技大学课程设计任务书2

第1章需求分析4

第2章总体设计5

第3章类的设计6

3.1学生成绩管理系统类的设计(第一个类)6

第4章详细设计8

4.1工程视图8

4.2类图视图8

4.3主程序流程图9

4.4主要算法的流程图9

第5章测试11

第6章总结15

附录:

程序代码15

第1章需求分析

用C++设计一个程序,能提供下列功能:

(1)录入学生成绩。

按照学号,姓名,语文,数学,英语的格式录入学生的成绩。

(2)查询成绩。

根据学生的学号或姓名查询学生的成绩。

(3)修改。

通过查询找到相应的学生记录进行修改。

(4)统计。

计算学生的总分并排序显示输出。

统计班级学生的每门课程的平均分和总分的平均分并显示;统计得分小于班级总分的学生并显示;显示不及格学生的名单。

 

第2章总体设计

1.用结构框图表示各个功能之间的关系。

主菜单

录入学生信息

显示学生信息

查找并修改

按总分排序

显示得分小于班级总分的人

显示不及格学生

退出

图1功能关系图

2.将框图中系统的各个功能用文字详细的描述。

(1)录入学生信息:

通过选择主菜单中的选项,选择该项,将出现录入学生信息的提示,根据提示录入学生成绩及信息。

(2)显示学生信息:

录入完成输入N,结束录入选择下一项,则显示出已录入学生的信息及各门功课成绩、总分及平均分。

(3)查找并修改:

查找分为按学号查找和按姓名查找,输入你想要的查找方式进行查找,然后是否要进行修改,选择Y/N,对其进行修改操作。

(4)按总分排序:

计算总分并按照由高到低的顺序进行排序。

(5)显示得分小于班级总分的人:

由以上信息中学生的总分与班级总分进行比较,显示出得分小于班级总分的学生。

(6)显示不及格学生:

显示出得分小于60分的学生。

(7)退出:

退出系统。

 

第3章类的设计

3.1学生成绩管理系统类的设计(第一个类)

1.画出类图

表1:

类关系表

类名:

classstudent

stringname;

longid;

数据成员:

floatChinese;

floatmath;

floatEnglish;

floatsum;

floatave;

student();

voidinput();

voidshow();

voidcopy(studenta);

函数成员:

stringNAME();

longID();

floatchi();

floatmat();

floateng();

floatSUM();

floatAVE();

2.对类的函数成员的说明

不用写出代码,用文字描述

函数的首部

//说明:

输入什么参数;

//进行什么操作;

//返回什么结果;

stringNAME();:

获取私有数据成员name。

longID();:

获取私有数据成员id。

floatchi();:

获取私有数据成员Chinese。

floatmat();:

获取私有数据成员math。

floateng();:

获取私有数据成员English。

floatSUM();:

获取私有数据成员sum。

floatAVE();:

获取私有数据成员ave。

student();:

是构造函数,对数据进行初始化。

voidinput();:

无返回值,无需参数,输入数据。

voidshow();:

无返回值,无需参数,输出数据。

voidcopy(studenta);:

无返回值,参数为一个student类型的参数a,操作为一个自定义的拷贝函数。

 

第4章详细设计

4.1工程视图

说明有几个源代码文件,可以截取工程文件视图表示

图2工作区文件视图

4.2类图视图

每个文件包含哪些类和函数,可以截图说明

图3类图视图1图4类图视图2

4.3主程序流程图

开始

Select=0?

输入菜单选项Select

输入数据

输出并查询学生信息

显示得分小于班级总分且不及格的学生

结束

显示菜单

Case1:

Case2:

Switch(select)

Case3:

Case4:

排序

图5主程序流程图

Y

N

4.4主要算法的流程图

第5章测试

主菜单:

图7学生成绩管理系统主菜单

录入学生成绩:

图8录入学生成绩

查询成绩:

图9按学号查找

图10按姓名查找

修改成绩:

图11修改学生成绩

按总分排序:

图12按总分排序

显示平均分小于班级总平均分且不及格的学生:

图13均分小于班级总平均分且不及格的学生

 

第6章总结

这个学生成绩管理系统存在着很多不足之处,由于自己本身编程能力的问题,这个系统可以实现的功能非常有限。

只能实现学生管理系统最基本的功能,可以进行简单的输入、输出学生资料,查询和修改学生信息。

课程设计不仅让我们巩固了所学的知识,还使得我们学习到了更多平时所忽略的,最重要的是,它磨砺了我们,让我们在大学的下一个阶段能更好的成长。

我要将C++学好,在将来能为我的就业加分。

附录:

程序代码

#include

#include

usingnamespacestd;

classstudent{

private:

stringname;

longid;

floatChinese;

floatmath;

floatEnglish;

floatsum;

floatave;

public:

student();

voidinput();

voidshow();

voidcopy(studenta);

stringNAME(){returnname;}

longID(){returnid;}

floatchi(){returnChinese;}

floatmat(){returnmath;}

floateng(){returnEnglish;}

floatSUM(){returnsum;}

floatAVE(){returnave;}

};

voidstudent:

:

input(){

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

";

cin>>name;

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

";

cin>>id;

cout<<"\t\t请输入语文成绩:

";

cin>>Chinese;

cout<<"\t\t请输入数学成绩:

";

cin>>math;

cout<<"\t\t请输入英语成绩:

";

cin>>English;

sum=Chinese+math+English;

ave=sum/3;

}

student:

:

student()

{

name="noname";

id=0;

Chinese=0;

math=0;

English=0;

sum=0;

ave=0;

}

voidstudent:

:

show()

{

cout<<"姓名:

"<

"<

"<

<<"数学:

"<

"<

"<

"<

}

voidstudent:

:

copy(studenta)

{

name=a.NAME();

id=a.ID();

Chinese=a.chi();

math=a.mat();

English=a.eng();

sum=a.SUM();

ave=a.AVE();

}

shortshowmenu()

{

shortselect;

cout<<"****************************************************************"<

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

cout<<"****************************************************************"<

cout<<"1.录入学生成绩"<

cout<<"2.查询、修改学生成绩"<

cout<<"3.按总分排序"<

cout<<"4.班级总分"<

cout<<"0.安全退出系统"<

cout<<"****************************************************************"<

cout<<"\t\t请选择:

";

cin>>select;

returnselect;

}

voidfind(studentstu[]){

stringk;

shorti,j;

longn;

shortm;

charq='n';

cout<<"*****************************************************************\n";

cout<<"*\t\t\t1.按学号查找\t\t\t\t*\n";

cout<<"*\t\t\t2.按姓名查找\t\t\t\t*\n";

cout<<"*****************************************************************\n";

cin>>m;

if(m==1)

{

cout<<"请输入学号:

";

while

(1)

{

cin>>n;

if(n>1&&n<12)

{

cout<<"输入有误!

请重新输入:

";

}

else

break;

}

for(i=0;stu[i].ID()!

=0;i++)

{

if(n==stu[i].ID())

stu[i].show();

j=i;

}

}

elseif(m==2)

{

cout<<"请输入姓名:

";

cin>>k;

for(i=0;stu[i].ID()!

=0;i++)

{

if(k==stu[i].NAME())

stu[i].show();

j=i;

}

}

else

cout<<"输入的选项有误!

";

cout<<"是否修改(Y/N):

";

cin>>q;

if(q=='y'||q=='Y')

{

stu[j].input();

}

}

voidarrange(studentstu[])

{

studenttemp;

shorti,j;

for(i=0;stu[i].ID()!

=0;i++)

{

for(j=i+1;stu[j].ID()!

=0;j++)

{

if(stu[i].SUM()

{

temp.copy(stu[i]);

stu[i].copy(stu[j]);

stu[j].copy(temp);

}

}

}

for(i=0;stu[i].ID()!

=0;i++)

{

stu[i].show();

}

}

voidclassave(studentstu[])

{

floatcla=0,a;

shorti;

for(i=0;stu[i].ID()!

=0;i++)

{

cla+=stu[i].SUM();

}

a=cla/i;

cout<<"班级总分是:

"<

cout<<"不及格的人是:

"<

for(i=0;stu[i].ID()!

=0;i++)

{

if(stu[i].AVE()<60)

stu[i].show();

}

a/=3;

cout<<"显示平均分小于班级总平均分的学生:

"<

for(i=0;stu[i].ID()!

=0;i++)

{

if(stu[i].AVE()<=a)

stu[i].show();

}

}

voidmain()

{

studentstu[100];

shorti;

chartemp='Y';

shortselect;

for(;select=showmenu();)

{

switch(select)

{

case1:

for(i=0;i<100&&(temp!

='N'&&temp!

='n');i++)

{

stu[i].input();

cout<<"是否继续(Y/N):

"<

cin>>temp;

}break;

case2:

find(stu);

break;

case3:

arrange(stu);

break;

case4:

classave(stu);

break;

}

cout<<"按任意键继续!

"<

getchar();

getchar();

system("cls");

}

}

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

当前位置:首页 > 求职职场 > 简历

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

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