c++课程设计报告Word格式.docx
《c++课程设计报告Word格式.docx》由会员分享,可在线阅读,更多相关《c++课程设计报告Word格式.docx(18页珍藏版)》请在冰豆网上搜索。
1.1功能需求分析---------------------------------------------1
1.2环境需求分析---------------------------------------------1
1.3方法需求分析---------------------------------------------1
2.概要设计-------------------------------------2
2.1系统功能模块图-------------------------------------------2
2.2采用的主要数据结构类型-----------------------------------2
2.3设计思想-------------------------------------------------2
3.详细设计-------------------------------------2
3.1设计原理-------------------------------------------------2
3.2主要流程图-----------------------------------------------3
3.3系统界面-------------------------------------------------5
4.调试与操作说明-------------------------------6
5.心得体会总结---------------------------------10
6.参考文献-------------------------------------10
7.附录-----------------------------------------11
7.1源程序文件清单-------------------------------------------11
7.2源程序代码-----------------------------------------------11
·
1需求分析
1.1功能需求分析
本学生成绩信息管理系统主要有六大模块:
学生成绩从文件读入和保存,学生成绩的添加和删除,学生成绩信息的显示,学生成绩信息的查询,学生成绩按总分的排序,学生成绩信息的修改。
1.11学生成绩的读入和保存模块
主要功能是读出要管理的成绩文档,保存修改后的成绩文档。
本系统中成绩文件采用了txt的文档格式保存,保存在sort.txt文档中。
1.12学生成绩的添加和删除模块
主要功能是添加、删除学生成绩信息的操作。
添加操作是用户第一次进入本系统必须操作的,需要输入学生成绩信息,使其存于sort.txt文档中。
用户可以通过输入要删除学生的姓名来删除学生的信息。
1.13学生成绩信息的显示模块
主要功能是显示学生成绩信息,并且将学生成绩的平均分和总分也相应的显示出来。
1.14学生成绩信息的查询模块
主要功能是按照用户的要求查询学生的成绩。
其中用户可以选择通过学生的姓名或者是学生的学号来进行查询学生成绩信息,成绩查询中包括学生的总分和平均分。
1.15学生成绩按总分的排序模块
主要功能是按照总分的升序进行排序,通过显示模块检查是否排序成功。
1.16学生成绩信息的修改模块
主要功能是修改学生成绩信息,用户通过输入学生的姓名来修改学生的成绩信息。
1.2环境需求分析
操作系统:
WindowsXP
开发软件:
VisualC++6.0
1.3方法需求分析
由于数组存放数据的时候要先确定数组的规模,不能动态的分配内存空间,而单链表是非连续存放的,可以对内存空间进行动态分配,本系统是用单链表完成的,然后定义链表的结点类型为结构就可以实现对学生学号、姓名、成绩等保存。
每次只要返回头指针,就可以对整个链表进行操作,因此选链表来存放学生成绩信息。
2概要设计
2.1系统功能模块图
2.2采用的主要数据结构类型
包含的库函数有:
#include<
iostream.h>
iomanip.h>
voidinput();
//声明7个函数
voidoutput();
voidpaixu();
voidchazhao();
voidcharu();
voidshanchu();
voidtongji();
2.3设计思想
学生成绩信息管理系统是用面向对象的方法设计,由于数组的存放是连续的,而单链表是非连续存放的,是动态分配内存空间,因此本系统采用单链表来完成,各个功能模块的实现主要转变到对单链表的遍历,添加和删除结点。
3详细设计
3.1设计原理
学生成绩信息管理系统以菜单选择,通过调用各个函数,对单链表的遍历,实现不同的功能,不同函数处理后返回的只是一个头结点,但是通过头结点可以找到所有链表中的信息,只要有函数,找到头指针就能进行相应的操作,所以模块化的程序方便以后添加或者删除某些功能,程序中通过system(“cls”)清屏函数实现界面的转换,主函数中的循环保证程序不会退出,一个循环和一个清屏函数实现了主菜单和各子画面的切换(子函数)。
这样的话各个子函数都可以调用一开始输入的数据,这样就实现了各个不同函数调用时都能使用整个系统连续起来了。
3.2主要流程图
1)学生成绩信息的删除
2)学生成绩信息的查找
3)学生成绩信息的修改
3.3系统界面
欢迎界面图:
系统主菜单列出了该程序的所有功能,学生个人的总分、平均分在输入创建链表是就计算好并储存好了,同时显示学生成绩信息是就一起显示出来了。
4调试与操作说明
因为是新的系统,所以初次进入必须输入学生成绩信息,按下图操作重复几次即可。
待输入完学生成绩信息后,显示所有输入信息。
按照学生成绩的总分进行排序,并再次调用显示模块。
进行查询学生成绩信息,选择按学生姓名或学生学号。
按学生学号进行查询
删除学生成绩信息,通过输入学生姓名进行查找删除,调用显示模块查看删除结果
删除后学生成绩信息
插入后学生成绩信息
统计分数
退出系统功能
5心得体会总结
本次课程设计,使我对《C++程序设计语言》这门课程有了更深入的理解。
《C++程序设计语言》是一门实践性较强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。
一个人的力量是有限的,要想把课程设计做的更好,就要学会参考一定的资料,吸取别人的经验,让自己和别人的思想有机的结合起来,得出属于你自己的灵感。
在本课程设计中,我明白了理论与实际应用相结合的重要性,并提高了自己编写大型程序的能力。
培养了基本的、良好的程序设计技能以及合作能力。
这次课程设计同样提高了我的综合运用所学知识的能力。
程序的编写需要有耐心,有些事情看起来很复杂,但问题需要一点一点去解决,分析问题,把问题一个一个划分,划分成小块以后就逐个去解决。
再总体解决大的问题。
这样做起来不仅有条理也使问题得到了轻松的解决。
通过这段时间的课程设计,我认识到《C++课程设计语言》是一门比较难的课程。
需要多花时间上机练习。
这次的程序训练培养了我实际分析问题、编程和动手能力,使我掌握了程序设计的基本技能,提高了我适应实际,实践编程的能力。
这次的课程设计我对于专业课的学习有了更加深刻的认识,以为现在学的知识用不上就加以怠慢,等到想用的时候却发现自己的学习原来是那么的不扎实。
以后努力学好每门专业课,让自己拥有更多的知识,才能解决更多的问题!
总的来说,这次课程设计让我获益匪浅,对C++程序设计语言也有了进一步的理解和认识。
6参考文献
C++程序设计语言(特别版)(美)BjarneStroustrup著裘宗燕译
程序设计基础-C++实验指导与课程设计刘玉芳张怡芳杨庆王涛伟著
C++程序设计技术(习题解答与实验指导)湛为芳著
7附录
7.1源程序文件清单
student.cpp
7.2源程序代码
structStudent//结构体
{
intnum;
charname[12];
floatmath;
floateng;
floatcom;
floatsum;
floatave;
};
Studentx[30];
intN=0;
voidmain()
intm;
do
{//开场效果
cout<
<
endl;
"
***********************"
*欢迎使用学生成绩管理系统*"
*1.输入信息2.输出信息*"
*3.总分排序4.查找信息*"
*5.插入信息6.删除信息*"
*7.统计分数8.退出系统*"
*Madeby高伟*"
**********************"
请选择需要的服务:
cin>
>
m;
switch(m)
{
case1:
input();
break;
//选择七个函数。
。
case2:
output();
case3:
paixu();
case4:
chazhao();
case5:
charu();
case6:
shanchu();
case7:
tongji();
case8:
谢谢使用!
default:
请输入正确数字(1--8)"
}
}while(m!
=8);
}
voidinput()//输入信息
charm;
do
intn=0;
intz=N,t=0;
do{
t=0;
请输入学号:
x[N].num;
for(n=0;
n<
z;
n++)
if(x[N].num==x[n].num)
该学号已存在!
!
t++;
break;
}while(t==1);
请输入姓名:
x[N].nam