课程设计报告书之课外小组之河北联合大学.docx

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

课程设计报告书之课外小组之河北联合大学.docx

《课程设计报告书之课外小组之河北联合大学.docx》由会员分享,可在线阅读,更多相关《课程设计报告书之课外小组之河北联合大学.docx(23页珍藏版)》请在冰点文库上搜索。

课程设计报告书之课外小组之河北联合大学.docx

课程设计报告书之课外小组之河北联合大学

河北联合大学

2012-2013第2学期

《软件设计基础-C++》

课程设计报告

设计名称:

课外小组

姓名

学号

专业班级

学院

设计时间

设计地点

 

指导教师评语:

教师评定:

自评成绩:

 

指导教师签字:

年月日

目录

1.课程设计目的

2.课程设计任务与要求

3.课程设计说明书

4.课程设计成果

5.程序调试过程

6.设计问题的不足和改进方案

7.课程设计心得

8.参考文献

1.课程设计目的

《软件设计基础-C++》课程设计是这门课程的实践性教学环节之一,本次设计结合实际应用的要求,使课程设计既覆盖C++的知识点,又接近工程实际需要。

目的是通过课程设计的综合训练,培养学生实际分析问题、解决问题的能力,以及编程和动手能力,最终目标是通过课程设计这种形式,帮助学生系统掌握C++这门课程的主要内容,养成良好的编程习惯,更好的完成教学任务。

2.课程设计任务与要求:

要求:

本次课程设计利用《软件设计基础-C++》课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,独立完成所布置的任务。

要求:

1、对系统进行功能需求分析

2、设计合理的数据结构和系统框架

3、编程简练,程序功能齐全,能正确运行

4、说明书、流程图要清楚

5、课题完成后必须按要求提交课程设计报告

任务:

1.问题描述:

实现学号,姓名,性别,爱好等内容的输入和输出(显示在屏幕上)实现存储兴趣小组的信息(以文本文件形式),并且可以根据姓名或爱好查询,也就是输入姓名可以显示该同学的兴趣等信息。

2.问题的解决方案:

最好将学生设计成一个类,兴趣做成一个类。

(建议采用链表实现)采用面向对象的程序设计方法实现。

四、主要技术问题的描述:

(1)建立学生类、兴趣类、兴趣类型类

(2)学生、兴趣、兴趣类型信息的初始化

(3)学生、兴趣、兴趣类型信息的添加、修改、删除、查找

(4)学生兴趣信息的输出

(5)将学生兴趣信息保存为文件

3.课程设计说明书

概要设计

通过Main函数将这五个模块联系起来。

而while控制循环语句则实现了五个模块的多次使用。

模块说明:

在我设计的程序中一共包括了六个模块,分别是:

添加学生兴趣信息、修改学生兴趣信息、删除学生兴趣信息、查询学生兴趣信息、显示学生兴趣信息、退出系统模块。

这六个模块中都是独立分开作为子函数的。

通过Main函数将这六个模块联系起来。

而while控制循环语句则实现了六个模块的多次使用。

模块结构图:

 

 

详细设计

总体流程图:

各功能模块流程图:

 

 

 

 

 

 

 

保存和显示比较简单,此处不附流程图

 

4.课程设计成果

程序源代码

#include

#include

#include

#include

//学生类

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:

:

~Student()

{

delete[]name;

delete[]sex;

}

//兴趣类

classIntrest:

publicStudent{//派生类

public:

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:

:

~Intrest()

{

delete[]style;

}

//兴趣类型类

classKind:

publicIntrest{

public:

Kind(intstu_no1=-1,char*name1="",char*sex1="",

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<<"学生学号:

"<

cin>>stu_no;

cout<<"学生姓名:

"<

cin>>name;

cout<<"学生性别:

"<

cin>>sex;

cout<<"兴趣编号:

"<

cin>>num;

cout<<"兴趣类型:

"<

cin>>style;

count++;

}

voidKind:

:

modify()//修改函数的实现

{

cout<<"+++++请选择要进行的修改:

"<

cout<<"1...修改学号"<

cout<<"2...修改姓名"<

cout<<"3...修改性别"<

cout<<"4...修改编号"<

cout<<"5...修改类型"<

cout<<"其它数字键..退出"<

inta;

cin>>a;

switch(a)//switch函数选择

{

case1:

cout<<"输入新的学号:

"<

cin>>stu_no;

break;

case2:

cout<<"输入新的姓名:

"<

cin>>name;

break;

case3:

cout<<"输入新的性别:

"<

cin>>sex;

break;

case4:

cout<<"输入新的编号:

"<

cin>>num;

break;

case5:

cout<<"输入新的类型:

"<

cin>>style;

break;

default:

return;

}

}

voidKind:

:

del()//删除函数的实现

{

stu_no=-1;

name="";

sex="";

num=-1;

style="";

count--;

}

voidsearch()//查询函数的实现

{

cout<<"输入要查询的学生的学号:

"<

intr,o=1;

cin>>r;

for(inti=0;i

:

count;i++)//for语句和if语句结合找到想要查询的信息

{

if(stu[i].stu_no==r)

{

cout<

:

left)<

:

left)<

:

left)<

<

:

left)<

:

left)<

:

left)\

<

stu[i].show();

o=0;

}

}

if(o==1)//用if函数可以考虑到没有此学号的情况

cout<<"没有该学号,查询失败"<

}

voidKind:

:

show()

{

cout<

:

left)<

<

:

left)<

<

:

left)<

<

:

left)<

<

:

left)<

<

:

left)\

<

}

voidpri()//保存函数

{

ofstreamfout("学生兴趣小组管理.txt");//用ofstreamfout打开或者创建学生兴趣小组.txt

if(!

fout)//如果打开失败

{

cout<<"cannotopenoutputfile"<

}

fout<

:

left)<

:

left)<

:

left)<

<

:

left)<

:

left)<

:

left)\

<

for(inti=0;i

:

count;i++)

{

fout<

:

left)<

<

:

left)<

<

:

left)<

<

:

left)<

<

:

left)<

<

:

left)\

<

}

fout.close();

cout<<"保存成功!

"<

return;

}

voidmenu()

{

cout<<"===========学生兴趣小组管理============"<

cout<<"1---添加学生兴趣信息"<

cout<<"2---修改学生兴趣信息"<

cout<<"3---删除学生兴趣信息"<

cout<<"4---查询学生兴趣信息"<

cout<<"5---显示学生兴趣信息"<

cout<<"6---保存数据!

!

!

"<

cout<<"其它数字键------退出"<

}

voidmain()

{

for(;;)

{

menu();

cout<<"请选择您要进行的处理:

"<

inti;

cin>>i;

switch(i)//switch函数选择所需要的命令

{

case1:

cout<<"请输入要添加的学生的人数:

"<

inti,n;

cin>>n;

for(i=0;i

{

stu[Kind:

:

count].insert();//当for循环结束时,Kind:

:

count的数值和n相等

}

if(n==0)//当输入人数为0和不为0时的情况

cout<<"无输入!

!

!

"<

else

cout<<"输入完毕!

!

!

"<

break;

case2:

cout<<"输入要修改的学生的学号:

"<

intp;

cin>>p;

for(i=0;i

:

count;i++)

{

if(stu[i].stu_no==p)

{

stu[i].modify();//调用

cout<<"修改成功!

!

!

"<

}

}

break;

case3:

cout<<"输入要删除的学生的学号:

"<

intq;

cin>>q;

for(i=0;i

:

count;i++)

{

if(stu[i].stu_no==q)

{

stu[i].del();//调用

}

}

for(;i

:

count;i++)//for循环

{Kindtemp;//创建一个对象

temp=stu[i];

stu[i]=stu[i+1];

stu[i+1]=stu[i];

}

break;

case4:

search();

break;

case5:

cout<

:

left)<

:

left)<

:

left)<

<

:

left)<

:

left)<

:

left)\

<

for(i=0;i

:

count;i++)

stu[i].show();

break;

case6:

pri();

break;

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

 

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

当前位置:首页 > 人文社科 > 法律资料

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

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