课程设计报告书之课外小组之河北联合大学Word文档下载推荐.docx
- 文档编号:18500011
- 上传时间:2022-12-17
- 格式:DOCX
- 页数:23
- 大小:395.52KB
课程设计报告书之课外小组之河北联合大学Word文档下载推荐.docx
《课程设计报告书之课外小组之河北联合大学Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《课程设计报告书之课外小组之河北联合大学Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。
3、编程简练,程序功能齐全,能正确运行
4、说明书、流程图要清楚
5、课题完成后必须按要求提交课程设计报告
任务:
1.问题描述:
实现学号,姓名,性别,爱好等内容的输入和输出(显示在屏幕上)实现存储兴趣小组的信息(以文本文件形式),并且可以根据姓名或爱好查询,也就是输入姓名可以显示该同学的兴趣等信息。
2.问题的解决方案:
最好将学生设计成一个类,兴趣做成一个类。
(建议采用链表实现)采用面向对象的程序设计方法实现。
四、主要技术问题的描述:
(1)建立学生类、兴趣类、兴趣类型类
(2)学生、兴趣、兴趣类型信息的初始化
(3)学生、兴趣、兴趣类型信息的添加、修改、删除、查找
(4)学生兴趣信息的输出
(5)将学生兴趣信息保存为文件
3.课程设计说明书
概要设计
通过Main函数将这五个模块联系起来。
而while控制循环语句则实现了五个模块的多次使用。
模块说明:
在我设计的程序中一共包括了六个模块,分别是:
添加学生兴趣信息、修改学生兴趣信息、删除学生兴趣信息、查询学生兴趣信息、显示学生兴趣信息、退出系统模块。
这六个模块中都是独立分开作为子函数的。
通过Main函数将这六个模块联系起来。
而while控制循环语句则实现了六个模块的多次使用。
模块结构图:
详细设计
总体流程图:
各功能模块流程图:
保存和显示比较简单,此处不附流程图
4.课程设计成果
程序源代码
#include<
iostream.h>
string.h>
iomanip.h>
fstream.h>
//学生类
classStudent{
public:
Student(intstu_no1=-1,char*name1="
"
char*sex1="
);
//构造函数
~Student();
//析构函数
intstu_no;
char*name;
//成员
char*sex;
};
Student:
:
Student(intstu_no1,char*name1,char*sex1)//构造函数的实现
{
stu_no=stu_no1;
name=newchar[strlen(name1)+1];
//先申请name1长度+1的内存再把name1的内容拷贝到name中
strcpy(name,name1);
sex=newchar[strlen(sex1)+1];
//先申请sex1长度+1的内存再把name1的内容拷贝到name中
strcpy(sex,sex1);
}
~Student()
delete[]name;
delete[]sex;
//兴趣类
classIntrest:
publicStudent{//派生类
Intrest(intstu_no1,char*name1,char*sex1,intnum1=-1,char*style1="
~Intrest();
intnum;
//新的成员
char*style;
Intrest:
Intrest(intstu_no1,char*name1,char*sex1,intnum1,
char*style1):
Student(stu_no1,name1,sex1)
num=num1;
style=newchar[strlen(style1)+1];
strcpy(style,style1);
~Intrest()
delete[]style;
//兴趣类型类
classKind:
publicIntrest{
Kind(intstu_no1=-1,char*name1="
intnum1=-1,char*style1="
):
Intrest(stu_no1,name1,sex1,num1,style1)
{}
voidinsert();
//添加函数
voidmodify();
//修改函数
voiddel();
//删除函数
voidshow();
//查询函数
voidsetstu(intstu_no1)
{
stu_no=stu_no1;
}
voidsetname(char*name1)
name=newchar[strlen(name1)+1];
strcpy(name,name1);
voidsetsex(char*sex1)
sex=newchar[strlen(sex1)+1];
strcpy(sex,sex1);
voidsetnum(intnum1)
num=num1;
voidsetstyle(char*style1)
style=newchar[strlen(style1)+1];
strcpy(style,style1);
staticintcount;
}stu[100];
intKind:
count=0;
voidKind:
insert()//添加函数的实现
cout<
<
"
学生学号:
endl;
cin>
>
stu_no;
学生姓名:
name;
学生性别:
sex;
兴趣编号:
num;
兴趣类型:
style;
count++;
modify()//修改函数的实现
+++++请选择要进行的修改:
1...修改学号"
2...修改姓名"
3...修改性别"
4...修改编号"
5...修改类型"
其它数字键..退出"
inta;
a;
switch(a)//switch函数选择
case1:
cout<
输入新的学号:
cin>
break;
case2:
输入新的姓名:
case3:
输入新的性别:
case4:
输入新的编号:
case5:
输入新的类型:
default:
return;
del()//删除函数的实现
stu_no=-1;
name="
;
sex="
num=-1;
style="
count--;
voidsearch()//查询函数的实现
输入要查询的学生的学号:
intr,o=1;
r;
for(inti=0;
i<
Kind:
count;
i++)//for语句和if语句结合找到想要查询的信息
if(stu[i].stu_no==r)
{
cout<
setiosflags(ios:
left)<
setw(15)<
学号"
setw(10)<
姓名"
setw(10)\
<
性别"
兴趣编号"
left)\
兴趣类型"
stu[i].show();
o=0;
}
if(o==1)//用if函数可以考虑到没有此学号的情况
没有该学号,查询失败"
show()
setw(15)
stu_no<
setw(10)
name<
<
sex<
num<
style<
voidpri()//保存函数
ofstreamfout("
学生兴趣小组管理.txt"
//用ofstreamfout打开或者创建学生兴趣小组.txt
if(!
fout)//如果打开失败
cannotopenoutputfile"
fout<
i++)
fout<
stu[i].stu_no
stu[i].name
stu[i].sex
stu[i].num
stu[i].style<
}
fout.close();
保存成功!
return;
voidmenu()
===========学生兴趣小组管理============"
1---添加学生兴趣信息"
2---修改学生兴趣信息"
3---删除学生兴趣信息"
4---查询学生兴趣信息"
5---显示学生兴趣信息"
6---保存数据!
!
其它数字键------退出"
voidmain()
for(;
)
menu();
请选择您要进行的处理:
inti;
i;
switch(i)//switch函数选择所需要的命令
case1:
请输入要添加的学生的人数:
inti,n;
cin>
n;
for(i=0;
{
stu[Kind:
count].insert();
//当for循环结束时,Kind:
count的数值和n相等
}
if(n==0)//当输入人数为0和不为0时的情况
cout<
无输入!
else
输入完毕!
break;
case2:
输入要修改的学生的学号:
intp;
p;
if(stu[i].stu_no==p)
{
stu[i].modify();
//调用
cout<
修改成功!
case3:
输入要删除的学生的学号:
intq;
q;
if(stu[i].stu_no==q)
stu[i].del();
//调用
for(;
i++)//for循环
{Kindtemp;
//创建一个对象
temp=stu[i];
stu[i]=stu[i+1];
stu[i+1]=stu[i];
break;
case4:
search();
case5:
for(i=0;
stu[i].show();
break;
case6:
pri();
default:
return;
5.程序调试过程
1.编译,检查是否有语法错误,如果有,则点击错处,就会在程序中指出,根据提示进行修改。
没有的话进行链接,如此时出现错误很有可能是算法的错误,如若没有,则运行程序。
2.运行,根据提示输入课外兴趣小组的成员学号,姓名,性别,兴趣类型和编号等。
然后进行添加,修改,删除和查询。
3.有些编码没有很好定义,造成运行错误。
6.设计问题的不足和改进方案
1.在编写过程中,if函数和while函数的区别不清。
2.如果能够把人员姓名和性别,兴趣的类别都用汉字显示会更好。
3.没有一个更为简洁的方案
★改进方案
还没有找到办法。
7.课程设计心得
(1)培养我们综合利用C++语言进行程序设计的能力。
(2)提高我们建立程序文档、归纳总结的能力。
(3)提高我们自学能力。
更好的利用图书馆资料解答问题。
(4)知道要积极的去对待自己的任务。
遇到困难不再是等待别人来找自己。
给自己解决。
而要自己积极的去找别人解决
(5)写实验报告让我明白不只是单单能够把程序运行结束就可以,还要求我们能明白每一步的意义。
深化我们学习c++的课程内容
经过两周的课程设计,我认识到把课堂上老师讲的知识运用到实际操作中的重要性。
我这次课程设计的题目是课外兴趣习小组,在开始阶段,根本无从下手,后来通过查阅一些相关资料和老师的耐心讲解,最终成功完成整个程序的设计。
通过这次课设我对C++语言中的类的定义、对象等知识有了进一步的理解,对流程图的画法更加熟练,对程序的开发思路有了一定的理解,我想这在以后的学习和工作中都会有帮助的,更使我意识到了学习C++语言的重要性。
8.参考文献
1.杨学明,刘加海,,余建军,面向对象的程序设计c++实训教程,北京:
科学出版社,2003
2.宗大华,c语言程序设计教程北京:
人民邮电出版社,2004
3.谭浩强,c程序设计北京:
清华大学出版社,2005
4.陈文宇,张松梅编著,C++语言教程,电子科技大学出版社,2004
5.张凯主编,付兴宏主审,VC++程序设计,大连理工大学出版社,2002
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告书 课外 小组 河北 联合 大学