C++课程设计 30Word文档格式.docx
- 文档编号:22532585
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:28
- 大小:225.63KB
C++课程设计 30Word文档格式.docx
《C++课程设计 30Word文档格式.docx》由会员分享,可在线阅读,更多相关《C++课程设计 30Word文档格式.docx(28页珍藏版)》请在冰豆网上搜索。
指导教师签字:
2011年9月9日
《面向对象程序设计(A)课程设计》任务书
一、课程设计任务及要求:
任务:
为了解决中高学校信息混乱不易查找、减轻相关工作压力等问题。
本次课程设计开发了这套稳定可靠、操作简单、相对安全的在校学生C++成绩管理系统。
该系统将对学生成绩信息进行管理,输入N个学生的成绩,包括学号,姓名,成绩,通过插入、删除、修改、输出优秀成绩人数等操作对系统进行操作。
要求:
(1)根据软件系统开发的一般原则,完成相应系统的功能设计,完成主要功能模块的程序实现并进行测试训练,给出代码运行结果和相应的设计文档。
可以分组进行,但所有学生必须经历整个系统的开发全过程,以便加深对系统开发全过程的认识。
(2)提交课程设计报告。
(3)指标:
要求完成课程设计报告3000字以上(约二十页);
完成所设计的题目,设计题目的语句行数在200行语句以上。
二、工作量
2周(10个工作日)时间
三、计划安排
第1个工作日:
查找相关资料、书籍,阅读示例文档,选择题目。
第2个工作日-第3个工作日:
设计程序结构、模块图。
第4个工作日-第9个工作日:
完成程序的编码,并且自己调试、测试。
穿插进行课程设计报告的撰写。
第10个工作日:
上交课程设计报告,由教师检查软件测试效果、检查课程设计报告,给出学生成绩。
2011年8月29日
目 录
1 需求分析1
2 概要设计2
3 详细设计3
3.1 主函数流程图3
3.2 类的设计3
3.3 函数的设计3
4 编码4
4.1 功能函数代码4
4.2 程序运行环境7
5 调试分析9
6 测试结果及运行效果10
7 系统开发所用到的技术14
参考文献15
课程设计实践总结16
附 录17
1 需求分析
用链表数据结构完成一个学生C++成绩管理系统,此系统具体功能如下:
(1)学生成绩输入功能
用户从键盘输入每个学生的信息:
学号、姓名、C++成绩。
(2)文件保存功能
a学生成绩等信息存为一个数据文件,数据文件可在程序中打开、修改和重新保存。
b用户输入学生成绩可随时保存数据文件。
(3)文件打开功能
a程序只能对当前打开的数据文件进行编辑。
(4)查询功能
a浏览所有学生成绩;
b按学号查询学生成绩;
c查询某个学生成绩;
d查询及格学生个数和优秀成绩学生个数。
(5)修改功能
对已经存在的学生成绩进行修改,并保存。
(6)报表输出功能
a按学号输出一个学生信息:
学号、姓名、C++成绩,到屏幕和文件。
2 概要设计
图2-1 函数的功能设计图
设计思路:
1.宏定义N,因为题目要求输入多个学生信息,在程序过程中比较繁琐。
而使用宏定义可以大大减轻负担。
2.定义一个学生结构体,声明结构体类型Student。
包括一个数组num,可以容纳6个字符,包括6个整型变量。
3.定义Student类型的数组stu和数组stud。
struct结构体名
{
成员表列
};
4.构建各个模块:
输入模块,统计优秀成绩模块,删除模块,修改模块,查找模块,菜单模块。
5.调试验证,运行修改程序,及时查漏补缺。
3 详细设计
3.1 主函数流程图
图3-1 主函数流程图
3.2 类的设计
类:
Student
数据成员:
编号、学生姓名、C++成绩
3.3 函数的设计
函数:
inputData(输入成绩)
searchScore(查询成绩)
modifyScore(修改成绩)
outputData(打印成绩)
count(统计及格人数和优秀成绩人数)
exitSys(退出系统)
4 编码
4.1 功能函数代码
(1)输入成绩代码:
voidinputData(LinkList*head)//输入成绩
intscore;
charname[20];
intstuNo;
cout<
<
"
请输入姓名:
endl;
cin>
>
name;
请输入C++成绩:
score;
请输入编号:
stuNo;
insertLinkList(head,name,score,stuNo);
}
(2)查询成绩代码:
voidsearchScore(LinkList*head)//查询成绩。
LinkList*p=NULL;
p=head->
next;
while(p&
&
p->
Data.stuNo!
=stuNo)
p=p->
if(!
p)
NORESULT!
elseif(p->
Data.stuNo==stuNo)
stuNO"
name"
score"
p->
Data.stuNo<
"
Data.name<
Data.score<
(3)修改程序代码:
voidmodifyScore(LinkList*head)//修改成绩。
cin.get();
请输入成绩:
Data.score=score;
改后的信息:
voidoutputData(LinkList*head)//打印成绩。
LinkList*p=NULL;
p=head->
while(p)
4.2 程序运行环境
本系统是有VC++6.0中文版本编译的,首先创建了一个Student的工程。
图4-1 在VC++中创建一个student工程
其次,在Student工程中创建一个Student的类,在student类中的student.cpp中进行编译。
图4-2 在student.cpp中对程序进行编译
图4-3 编译成功,弹出cmd
5 调试分析
此次c++课程设计,在指导教师的教导下,我学会了如何用C++编写一个简单的应用程序。
首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。
程序实现上,设计了简单的查询界面,将各个功能集中出来按照程序编写原则,便于查询。
根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序;
进一步加深对C++语言的理解和掌握。
理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。
我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。
尽管大家很认真了,但仍有些许不足之处,这也正暴露了我们学习中的诸多漏洞,在今后仍得继续努力,踏踏实实的学好基础知识。
由于对C++知识的了解不够透彻以及时间问题,本程序没有能够实现排序功能,在今后我会继续努力不断完善本程序功能。
6 测试结果及运行效果
图6-1 程序的主页面
图6-2 程序的第一个功能:
输入学生信息及成绩
图6-3 程序的第二个功能:
查询功能
图6-4 程序的第三个功能:
输出所有学生的成绩
图6-5 修改功能界面
图6-6退出系统界面
图6-7 输出优秀成绩和及格人数功能
7 系统开发所用到的技术
本程序是使用C++语言编写的。
通过VC++6.0进行编译的,是通过cmd运行的。
VisualC++6.0简称VC或VC6.0,是微软推出的一款C++编辑器,将“高级语言”翻译成“机器语言(低级语言)”的程序。
VisualC++6.0开发环境是基于windows操作系统的可视化、面向对象的集成开发环境(IntegratedDevelopmentEnvironment,IDE)。
在该环境下用户可以开发有关C和C++的各种应用程序,应用程序包括建立、编辑、浏览、保存、编译、链接和调试等操作,这些操作都可以通过单击菜单选项或工具栏按钮来完成,使用方便、快捷。
它还提供了项目工作区(WorkSpace)、应用程序向导(AppWizard)、类操作向导(ClassWizard)和WizardBar等实用编辑工具。
VisualC++6.0的最大优点就是提供了功能强大的MFC类库,MFC是一个很大的C++类层次结构,其中封装了大量的类及其函数,很多windows程序所共有的标准内容可以由MFC的类来提供,MFC类为这些内容提供了用户接口的标准实现方法,程序员所需要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。
命令提示符窗口(cmd.exe)是Windows的“标配”组件,它可以实现用户与操作系统的直接交流,并负责用户输入的所有命令的解释和支持。
参考文献
[1]谭浩强.C++面向对象程序设计.北京:
清华大学出版社.2006
[2]谭浩强.C程序设计(第三版).北京:
清华大学出版社.2005
[3]谭浩强编著.C程序设计题解与上机指导(第三版).北京:
[4]StanleyB.Lippman,JoseeLaijoie等.C++primer(中文版).人民邮电出版.
[5]夏云庆,VisualC++6.0数据库高级编程.北京:
希望电子出版社.2002
[6]Dcoder编著.C/C++程序设计.北京:
中国铁道出版社.2002
课程设计总结
课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼解决实践能力的重要环节,是对学生实际工作能力的具体训练和考察的重要环节,是对学生实际工作能力的具体训练和考察过程。
回顾此次课程设计,至今我感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整两个星期的日子里,可以学到很多在书本上没有学到的知识,而且巩固了以前学过的知识。
通过这次课程设计是我懂得了理论与实践相结合时很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践结合起来,从理论中得出结论,才能真正提高自己的实际动手能力。
在此,感谢这两个星期里老师对我的悉心指导,帮我分析代码,解决问题。
附 录
1主函数部分代码
#include<
iostream>
string.h>
stdlib.h>
usingnamespacestd;
structstudentstr
//这里假设为整型,其实为实数比较妥当
typedefstructlink
structstudentstrData;
structlink*next;
}LinkList;
intlinkListLen(LinkList*head)//返回链表长度,这样可以很容易计算学生编号
intlen=0;
p=head->
len++;
p=p->
returnlen;
LinkList*createLinkList(LinkList*head)
head=newLinkList;
head->
Data.stuNo=-1;
next=NULL;
returnhead;
intcalcStuNo(LinkList*head)
return1000+linkListLen(head);
//设置学号的一个起始值
voidinsertLinkList(LinkList*head,char*name,intscore,intstuNo)
LinkList*p=NULL;
LinkList*q=NULL;
p=newLinkList;
Data.stuNo=calcStuNo(head);
strcpy(p->
Data.name,name);
q=head;
while(q->
next)
q=q->
q->
next=p;
intmenu()
好学生C++成绩管理系统"
**************************************"
*******1--输入成绩********************"
*******2--查询成绩********************"
*******3--修改成绩********************"
*******4--输出所有学生成绩************"
*******5--统计及格和优秀人数**********"
*******6--退出系统********************"
intinnum;
while
(1)
请输入你的选择:
innum;
if(innum>
=1&
innum<
=6)
break;
else
输入有误!
returninnum;
2输入成绩部分代码
3查询成绩部分代码
voidsearchScore(LinkList*head)//查询成绩
4修改成绩部分代码
voidmodifyScore(LinkList*head)//修改成绩
voidoutputData(LinkList*head)//打印成绩
5统计输出部分代码
voidcount(LinkList*head)//统计及格和优秀成绩人数。
intjige=0;
intyouxiu=0;
if(p->
Data.score>
=60)
jige++;
=90)//假设大于等于90为优秀。
youxiu++;
及格人数为:
jige<
优秀人数为:
youxiu<
voidexitSys()//退出系统。
chartemp;
Ifyouwanttoexit?
(y/n)\n"
;
temp;
if(temp=='
y'
||temp=='
Y'
)
exitsuccess!
\n"
BYEBYE\n"
exit(0);
return;
intmain()
intselectnum;
LinkList*head=NULL;
head=createLinkList(head);
selectnum=menu();
switch(selectnum)
case1:
inputData(head);
case2:
searchScore(head);
case3:
modifyScore(head);
case4:
outputData(head);
case5:
count(head);
case6:
exitSys();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+课程设计 30 C+ 课程设计