C++课程设计任务书.docx

上传人:b****7 文档编号:16255353 上传时间:2023-07-12 格式:DOCX 页数:28 大小:135.54KB
下载 相关 举报
C++课程设计任务书.docx_第1页
第1页 / 共28页
C++课程设计任务书.docx_第2页
第2页 / 共28页
C++课程设计任务书.docx_第3页
第3页 / 共28页
C++课程设计任务书.docx_第4页
第4页 / 共28页
C++课程设计任务书.docx_第5页
第5页 / 共28页
C++课程设计任务书.docx_第6页
第6页 / 共28页
C++课程设计任务书.docx_第7页
第7页 / 共28页
C++课程设计任务书.docx_第8页
第8页 / 共28页
C++课程设计任务书.docx_第9页
第9页 / 共28页
C++课程设计任务书.docx_第10页
第10页 / 共28页
C++课程设计任务书.docx_第11页
第11页 / 共28页
C++课程设计任务书.docx_第12页
第12页 / 共28页
C++课程设计任务书.docx_第13页
第13页 / 共28页
C++课程设计任务书.docx_第14页
第14页 / 共28页
C++课程设计任务书.docx_第15页
第15页 / 共28页
C++课程设计任务书.docx_第16页
第16页 / 共28页
C++课程设计任务书.docx_第17页
第17页 / 共28页
C++课程设计任务书.docx_第18页
第18页 / 共28页
C++课程设计任务书.docx_第19页
第19页 / 共28页
C++课程设计任务书.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C++课程设计任务书.docx

《C++课程设计任务书.docx》由会员分享,可在线阅读,更多相关《C++课程设计任务书.docx(28页珍藏版)》请在冰点文库上搜索。

C++课程设计任务书.docx

C++课程设计任务书

 

C++程序设计课程设计说明书

 

题目:

学生成绩管理系统

 

学生姓名:

卢开毅

学号:

201212010127

院(系):

理学院

专业:

数学与应用数学

指导教师:

李勇

2014年7月3日

陕西科技大学

C++程序设计课程设计任务书

理学院应用数学专业数学121班级姓名:

卢开毅学号:

201212010127

题目:

学生成绩管理系统

课程设计从2014年6月16日起到2014年7月4日

1、课程设计的内容和要求(包括原始数据、技术要求、工作要求等):

1)设计内容:

制作学生成绩管理系统,实现数据录入、数据删除、数据浏览以及数据查询等功能。

2)课程设计的要求:

包括系统设计要求,开发环境要求,技术文档要求三部分。

系统设计要求:

a)学生成绩管理系统中不同使用单位(用户)的学生人数事先无法确定。

b)该学生成绩管理系统要求有学生成绩录入,查询,修改,删除,保存文件。

c)系统使用文字菜单,用户通过选择菜单项的编号,实现系统对子模块的调用。

也可用windows界面下的菜单栏、弹出式菜单、下拉菜单。

d)每个班级每门课程的成绩可以从学生的成绩总表提取出子表并存储成一个文本文件。

该文本文件名由班级号和课程名拼音字符串构成。

输入班级号和课程名字符串后自动生成文件名。

如1班,语文,则文件名为:

c1yuwen.txt。

e)每个学生学习的课程有语文,英语,数学,物理,化学,生物。

f)学生的成绩总表结构约定为(学号,姓名,课程名,平时成绩,期末成绩,总评成绩).总评成绩由程序自动计算,总评成绩=平时成绩﹡30%+期末成绩﹡70%。

g)学号是一个9位整数构成的字符串,学号的编码规则:

入学年份+在读年级+在读班级+班内编号;入学年份用4位整数构成字符串,如2013年入学则表示为:

”2013”;在读年级用1位整数构成字符串,如正在1年级读书则表示为:

”1”;在读班级用2位整数构成字符串,如正在1班读书则表示为:

”01”;班内编号用2位整数构成字符串,如在班内编号为23号则表示为:

”23”。

开发环境要求:

软件环境:

windowsXP/windows7,VisualC++

硬件环境:

计算机(Pen4CPU,512MRAM,60G以上硬盘,输入输出设备)

技术文档要求:

按软件工程技术文档要求。

要求流程图绘制规范,模块功能描述清晰,数据字典齐全。

2、对课程设计成果的要求〔包括图表、实物等硬件要求〕:

1)提交课程设计报告

按照系统设计要求,用VisualC++设计和开发一个应用程序—学生成绩管理系统,提交由需求分析;系统设计说明(包括主菜单、子菜单、模块功能简介、数据字典、系统结构图);系统技术文档(包括系统各模块主要流程图,软件总体测试方案与测试记录、局部测试方案与测试记录、软件调试和修改记录、测试结论、运行情况记录),系统使用说明书,源程序代码为附录构成的课程设计报告。

2)课程设计报告版式要求

打印版面要求:

A4纸,页边距:

上2cm,下2cm,左2.5cm、右2cm;字体:

正文宋体、小四号;行距:

固定值20;页眉1.5cm,页脚1.75cm;页码位于页脚居中打印;奇数页页眉“C++程序设计课程设计”,偶数页页眉“学生成绩管理系统”,页眉宋体小5号;段落及层次要求:

每节标题以四号黑体左起打印(段前段后各0.5行),节下为小节,以小四号黑体左起打印(段前段后各0.5行)。

换行后以小四号宋体打印正文。

节、小节分别以1、1.1、1.1.1依次标出,空一字符后接各部分的标题。

当论文结构复杂,小节以下的标题,左起顶格书写,编号依次用

(1)、

(2)……顺序表示。

字体为小四号宋体。

对条文内容采用分行并叙时,其编号用a)、b)……顺序表示,如果编号及其后内容新起一个段落,则编号前空两个中文字符。

3)设计报告装订顺序与规范

封面-C++程序设计课程设计任务书-目录-C++程序设计设计课程设计报告正文-设计体会及今后的改进意见-参考文献(资料)。

要求左边缘装订

3、课程设计工作进度计划:

时间

设计任务及要求

第17周

需求分析、功能分解并深入学习动态链表知识

第18周

编写程序代码(教师指导1周)

第19周

调试、完善、测试程序,完成课程设计报告

1系统需求分析

学生成绩管理系统,可以实现数据录入、数据删除、数据浏览、数据查询、修改、删除、注销以及保存文件等功能。

每个班级每门课程的成绩可以从学生的成绩总表提取出子表并存储成一个文本文件。

每个学生学习的课程有语文,英语,数学,物理,化学,生物。

学生的成绩总表结构约定为(学号,姓名,课程名,平时成绩,期末成绩,总评成绩)。

总评成绩由程序自动计算,总评成绩=平时成绩*30%+期末成绩*70%。

开发环境的要求为软件环境:

windows98/windowsXP/windows2000,VisualC++;硬件环境:

计算机(Pen4CPU,256MRAM,60G以上硬盘,输入输出设备)。

2系统模块设计

“学生成绩管理信息系统”包括七个模块:

成绩创建,成绩查询,成绩修改,成绩统计,成绩注销,保存成绩,以及退出程序。

这几个模块既相互联系又相互独立,其中成绩查询,成绩修改,成绩统计,成绩显示,保存成绩这五个模块必须以信息载入或信息创建为基础。

2.1成绩录入:

输入录入学生的人数,并对学生的成绩进行录入,系统会自动保存信息,结束可返回主界面;

2.2成绩查询:

通过输入学生姓名,对学生的成绩进行查询,可以同时查询多名学生的成绩;

2.3成绩修改:

通过输入学生姓名,对所需学生的成绩进行修改;

2.4成绩统计:

在成绩载入和成绩创建的基础上,对学生的相关成绩进行统计,输出总评成绩及排名;

2.5成绩注销:

通过输入学生姓名,注销系统学生的成绩;

2.6保存成绩:

在成绩载入和成绩创建的基础上,对学生的成绩进行必要的编辑后,保存所需的文件;

2.7退出程序:

退出该程序。

3系统函数

该函数用来建立系统,如果想建立系统,选择1即进入建立系统界面中。

分别建立不同类型的类实现不同的功能,以此来完成增加学生数据的功能。

3.1注销学生信息函数

该函数用来删除指定学号的信息,调用一次就完成删除一学生信息的功能,删除后系统中就没有了此学生的任何信息。

3.2添加学生信息函数

本函数用来增加系统的人数,调用一次就完成增加一学生信息的功能,插入后系统中就将新增学生的信息插入到指定的位置。

3.3修改学生信息函数

本函数用来修改学生信息,比如说该学生某一门的成绩,调用一次就完成修改一个学生数据的功能,修改后系统中就更新了该学生的信息。

实现过程是这样的,新输入的成绩会覆盖掉原成绩。

3.4提取学生信息函数

本函数用来从学生成绩总表中提取某个班级某门课程的成绩表并将其保存到文本文件中,文件名由用户自己命名。

实现过程是这样的:

首先用输入文件流将存储在学生信息表中的学生信息转入到内存中。

在内存中完成提取学生信息的功能。

然后用输出文件流将提取后的学生数据输出到学生信息表中。

3.5查询课程成绩

本函数用来查询课程成绩,通过在控制台窗口输入课程名,使得这一课程的相关信息存储在文本文件中,文件名由用户自己命名。

实现过程是这样的:

首先用输入文件流将存储在学生信息表中的信息转入到内存中。

在内存中完成查询课程成绩的功能,然后用输出文件流将要查询的课程信息输出到由用户自己设定的文本文档中。

4调试分析

4.1系统编译无错误后开始尝试运行

 

图4-1用户登录界面

4.2主界面

输入学生成绩管理系统的程序,运行程序得主菜单界面如图4-2所示:

 

图4-2主菜单界面

4.3成绩录入界面

在主菜单界面中输入成绩录入相应的数字序号“1”可进行成绩录入,成绩录入结束后返回主菜单界面。

成绩录入界面如图4-3所示:

图4-3成绩录入界面

4.4查询界面

在主菜单中输入查询所对应的数字序号“3”即可进行学生成绩查询,得查询界面如图4-4所示:

图4-4查询界面

学生的各个科目的排名情况及成绩显示如图4-5所示:

 

图4-5查询界面

 

4.5修改界面

在主菜单界面中输入修改所对应的数字序号“4”进入修改界面,再在修改界面中输入所要修改的具体项目的数字序号,即可进行修改,修改完后返回主菜单界面。

修改界面如图4-6及4-7所示:

 

图4-6修改界面

 

图4-7修改界面

4.6注销界面

在主菜单界面中输入删除所对应的数字序号“5”进入删除界面,再在删除界面中输入所要删除的具体项目的数字序号,即可进行删除,删除完后返回主菜单界面。

删除界面如图4-8所示:

图4-8修改界面

若不注销又再次输入的话会保存两次的成绩,如图4-9所示:

图4-9查询界面

4.7添加成绩界面

可以新增学生的成绩及其他信息,如图4-10所示:

图4-10添加界面

5设计体会及总结

这次课程是一个综合性设计,是将所学知识的全面而又比较细致的运用到实践中的一次体会,运用所学知识编写系统,程序中最主要运用到的是for循环、while循环、switch循环等相关知识并要求能够恰当运用这些方法实现特定的功能,程序中很巧妙的运用到了类,通过编写不同的函数来实现不同的功能,并且很少用到指针等比较难懂的程序,程序简明易懂,并且不容易崩溃,每个函数都很全面地考虑过用户的各种不常规的输入情况。

这次程序设计,让我对C++编程有了新的体会.程序的各个代码之间是相互联系的,同时各个模块之间也是相对独立的,严密的逻辑思维是很重要的,以后的编程中应当注重此方面的锻炼,并且应该要注意到程序能运行并不代表程序就一定很好,好的程序除了能够正常,还必须经得住各个方面的考验,最主要的是面对任何情况,系统都能很满意的完成任务而不轻易崩溃,程序的设计要全面,要考虑到各个方面的情况。

 

参考文献

[1]谭浩强编.C++程序设计.[M].北京:

清华大学出版社,2005

[2]谭浩强主编.C程序设计题解与上机指导(第二版)[M].北京:

清华大学出版社,2005

 

附录

程序代码如下:

#include

#include

#include

usingnamespacestd;

intj;//全局变量

structfenshu//用于存放学生成绩

{

floatchinese[3];//存放语文成绩

floatmath[3];//存放数学成绩

floatenglish[3];//存放英语成绩

floatphysic[3];//存放物理成绩

floatchemistry[3];//存放化学成绩

floatbiology[3];//存放生物成绩

floattotal1;//存放平时总成绩

floattotal2;//存放期末总成绩

floatzongji;//存放总评成绩=30%平时成绩+70%期末成绩

};

structstudent//用于存放学生所有信息

{

charxingming[20];//存放学生姓名

intxuehao;//存放学生学号

fenshuz;//学生成绩封装结构体

};

classprogram//类实现学生成绩的各种功能

{

public:

voidsetname();//学生成绩注册

voidgetname();//学生成绩查询

voidxiugai();//学生成绩修改

voidtianjia();//学生成绩添加

voidshanchu();//学生成绩注销

voidpaiming();//学生成绩排名函数

private:

studenta[100];//用于存放学生的各种信息

};

voidprogram:

:

setname()//学生注册函数

{

floatdx,ex,fx,d1x,e1x,f1x,dy,ey,fy,d1y,e1y,f1y;

cout<

cout<<"请输入注册学生的人数"<

cin>>j;

charnamestr[20];

intnumber;

for(inti=0;i

{

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

";

cin>>namestr;//学生姓名输入

strcpy(a[i].xingming,namestr);//输入的学生姓名赋值给结构体保存

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

";

cin>>number;

a[i].xuehao=number;//输入学生学号

cout<<"平时语文期末语文:

";

cin>>dx>>dy;

cout<<"平时数学期末数学:

";

cin>>ex>>ey;

cout<<"平时英语期末英语:

";

cin>>fx>>fy;

cout<<"平时物理期末物理:

";

cin>>d1x>>d1y;

cout<<"平时化学期末化学:

";

cin>>e1x>>e1y;

cout<<"平时生物期末生物:

";

cin>>f1x>>f1y;

a[i].z.chinese[1]=dx;a[i].z.chinese[2]=dy;//给学生成绩赋值

a[i].z.english[1]=fx;a[i].z.english[2]=fy;

a[i].z.math[1]=ex;a[i].z.math[2]=ey;

a[i].z.physic[1]=d1x;a[i].z.physic[2]=d1y;

a[i].z.chemistry[1]=f1x;a[i].z.chemistry[2]=f1y;

a[i].z.biology[1]=e1x;a[i].z.biology[2]=e1y;

a[i].z.total1=a[i].z.chinese[1]+a[i].z.english[1]+a[i].z.math[1]+

a[i].z.physic[1]+a[i].z.chemistry[1]+a[i].z.biology[1];

a[i].z.total2=a[i].z.chinese[2]+a[i].z.english[2]+a[i].z.math[2]+

a[i].z.physic[2]+a[i].z.chemistry[2]+a[i].z.biology[2];

a[i].z.zongji=0.3*a[i].z.total1+0.7*a[i].z.total2;

}

charwo;

cout<

cout<<"★★★★★★★★★★★★★"<<"按0返回上层"<<"★★★★★★★★★★★★★★★★★★"<

cin>>wo;

}

voidprogram:

:

getname()//学生成绩查询函数

{

cout<

cout<<"请输入查询同学的姓名:

"<

charname[20];

cin>>name;

for(intk=0;k

{

if(strcmp(a[k].xingming,name)==0)//学生姓名查询是否对应

{//对应则输出学生信息否则不执行

cout<<"学号:

"<

cout<<"语文:

"<

cout<<"数学:

"<

cout<<"英语:

"<

cout<<"物理:

"<

cout<<"化学:

"<

cout<<"生物:

"<

cout<<"综合:

"<

cout<<"总评=30%平时成绩+70%期末成绩:

"<

}

}

charwo;

cout<

cout<<"★★★★★★★★★★★★★"<<"按0返回上层"<<"★★★★★★★★★★★★★★★★★★"<

cin>>wo;

}

voidprogram:

:

xiugai()//学生成绩修改函数

{

cout<

floatxx,yx,zx,x1x,y1x,z1x,xy,yy,zy,x1y,y1y,z1y;

cout<<"请输入需要修改的学生的姓名:

";

charnames[20];

cin>>names;

for(intl=0;l

{

if(strcmp(a[l].xingming,names)==0)//学生姓名查询是否对应

{

cout<<"请重新输入该生的成绩!

"<

cout<<"平时语文期末语文:

";

cin>>xx>>xy;

cout<<"平时数学期末数学:

";

cin>>yx>>yy;

cout<<"平时英语期末英语:

";

cin>>zx>>zy;

cout<<"平时物理期末物理:

";

cin>>x1x>>x1y;

cout<<"平时化学期末化学:

";

cin>>y1x>>y1y;

cout<<"平时生物期末生物:

";

cin>>z1x>>z1y;

a[l].z.chinese[1]=xx;a[l].z.chinese[2]=xy;//给学生成绩赋值

a[l].z.english[1]=yx;a[l].z.english[2]=yy;

a[l].z.math[1]=zx;a[l].z.math[2]=zy;

a[l].z.physic[1]=x1x;a[l].z.physic[2]=x1y;

a[l].z.chemistry[1]=y1x;a[l].z.chemistry[2]=y1y;

a[l].z.biology[1]=z1x;a[l].z.biology[2]=z1y;

a[l].z.total1=a[l].z.chinese[1]+a[l].z.english[1]+a[l].z.math[1]+

a[l].z.physic[1]+a[l].z.chemistry[1]+a[l].z.biology[1];

a[l].z.total2=a[l].z.chinese[2]+a[l].z.english[2]+a[l].z.math[2]+

a[l].z.physic[2]+a[l].z.chemistry[2]+a[l].z.biology[2];

a[l].z.zongji=0.3*a[l].z.total1+0.7*a[l].z.total2;

}

}

charwo;

cout<

cout<<"★★★★★★★★★★★★★"<<"按0返回上层"<<"★★★★★★★★★★★★★★★★★★"<

cin>>wo;

}

voidprogram:

:

tianjia()//新学生注册函数

{

cout<

++j;//全局变量

charnames[20];

cout<<"输入新增学生姓名:

";

cin>>names;

strcpy(a[j-1].xingming,names);

cout<<"输入新增学生学号:

";

inti;

cin>>i;

a[j-1].xuehao=i;//J减一与数组对应

cout<<"输入新增学生成绩:

"<

floatmx,nx,rx,m1x,n1x,r1x,my,ny,ry,m1y,n1y,r1y;

cout<<"平时语文期末语文:

";

cin>>mx>>my;

cout<<"平时数学期末数学:

";

cin>>nx>>ny;

cout<<"平时英语期末英语:

";

cin>>rx>>ry;

cout<<"平时物理期末物理:

";

cin>>m1x>>m1y;

cout<<"平时化学期末化学:

";

cin>>n1x>>n1y;

cout<<"平时生物期末生物:

";

cin>>r1x>>r1y;

a[j-1].z.chinese[1]=mx;a[j-1].z.chinese[2]=my;//给学生成绩赋值

a[j-1].z.english[1]=nx;a[j-1].z.english[2]=ny;

a[j-1].z.math[1]=rx;a[j-1].z.math[2]=ry;

a[j-1].z.physic[1]=m1x;a[j-1].z.physic[2]=m1y;

a[j-1].z.chemistry[1]=n1x;a[j-1].z.chemistry[2]=m1y;

a[j-1].z.biology[1]=r1x;a[j-1].z.biology[2]=r1y;

a[j-1].z.total1=a[j-1].z.chinese[1]+a[j-1].z.english[1]+a[j-1].z.math[1]+

a[j-1].z.physic[1]+a[j-1].z.chemistry[1]+a[j-1].z.biology[1];

a[j-1].z.total2=a[j-1].z.chinese[2]+a[j-1].z.english[2]+a[j-1].z.math[2]+

a[j-1].z.physic[2]+a[j-1].z.chemistry[2]+a[j-1].z.biology[2];

a[j-1].z.zongji=0.3*a[j-1].z.total1+0.7*a[j-1].z.total2;

charwo;

cout<

cout<<"★★★★★★★★★★★★★"<<"按0返回上层"<<"★★★★★★★★★★★★★★★★★★"<

cin>>wo;

}

voidprogram:

:

shanchu()//学生成绩注销函数

{

cout<

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

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2