《C++语言程序设计》课程设计报告学生信息查询系统.docx

上传人:b****7 文档编号:25328232 上传时间:2023-06-07 格式:DOCX 页数:18 大小:356.82KB
下载 相关 举报
《C++语言程序设计》课程设计报告学生信息查询系统.docx_第1页
第1页 / 共18页
《C++语言程序设计》课程设计报告学生信息查询系统.docx_第2页
第2页 / 共18页
《C++语言程序设计》课程设计报告学生信息查询系统.docx_第3页
第3页 / 共18页
《C++语言程序设计》课程设计报告学生信息查询系统.docx_第4页
第4页 / 共18页
《C++语言程序设计》课程设计报告学生信息查询系统.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

《C++语言程序设计》课程设计报告学生信息查询系统.docx

《《C++语言程序设计》课程设计报告学生信息查询系统.docx》由会员分享,可在线阅读,更多相关《《C++语言程序设计》课程设计报告学生信息查询系统.docx(18页珍藏版)》请在冰豆网上搜索。

《C++语言程序设计》课程设计报告学生信息查询系统.docx

《C++语言程序设计》课程设计报告学生信息查询系统

《C++语言程序设计》

课题设计报告

 

课题名称:

学生信息查询系统

专业:

电子信息工程

班级:

2班

姓名:

学号:

指导老师:

日期:

2011-05-06

 

仰恩大学计算机系

一、课程序设计目的(根据情况写)

(1)了解面向对象程序设计与结构化程序设计的内在差别;

(2)了解类和对象的概念,学会对数据进行封装处理,灵活应用类的继承关系,学会用构造函数来进行对象的初始化工作,通过重载构造函数来对对象进行更为深入的数据初始化,用析构函数来清理和释放对象所占用的系统资源;

(3)通过对象指针来访问对象,从而完成对对象数据的调用与返还;

(4)利用动态内存分配在程序的运行中根据实际需要申请内存空间,使用结束后释放所占用的内存空间;

(5)通过继承与派生来简化程序代码简化程序设计,有效利用已有的类模块资源。

(6)以学生信息管理为应用背景,用面向对象程序设计建立学生信息管理程序,实现创建班级、添加学生信息、修改学生信息、删除学生信息、打印学生信息、退出六个程序功能。

开发环境

(1)系统环境:

WindowsXP,Windows7

(2)编程环境:

VisualC++.NET,VisualC++6.x,VisualStudio2005,VisualStudio2010……….等。

二、实现过程

(1)C++编程基础知识介绍

数据类型:

对数据类型定义是非常重要的,它可以为数据在内存中分配适合的存储区域、确定数据范围,并且可以规定数据所能进行的有效操作;

1:

对数据类型的分类有:

2:

常量和变量:

变量(variable):

取值在程序的执行过程中可改变值的量;常量(constant):

取值在程序的执行过程中始终保持不变的量。

又分为文字常量(literalconstant)常变量(也称为符号常量)

3:

运算符和表达式:

包括C++运算符、优先级和结合性;基本运算符及其表达式(即算术运算符及算符表达式;赋值运算符与赋值表达式;自增、自减运算;逻辑运算、逻辑表达式及其求值优化;位运算;逗号运算符与逗号表达式;sizeof()运算符);语句(包括表达式语句;表达式;空语句;复合语句{若干语句}流程控制语句:

用来控制或改变程序的执行方向);算术类型转换和赋值类型转换;求值次序与副作用等知识。

程序流程控制

a:

复合语句:

将多个语句组合在一起,用一对花括号将这些语句组合在一起,称为复合语句(主要用到if、for、while、switch)

分支流程If语句If(条件表达式)

语句1

else

语句2

循环流程While语句While(条件表达式1)

{语句1;

if(条件表达式2)

break;

语句2;

}

语句3;

循环流程for语句for(初始化表达式;条件表达式;循环表达式)

{

循环体语句

}

循环流程switch语句switch(条件表达式)

{

case1:

语句1;break;

……

casen:

语句1;break;

}

*【break语句使用:

用在while,do…while,for和switch语句中,在循环语句中,break用来从最近的封闭循环体内跳出,在switch语句中,break用来跳出switch语句。

b:

函数的调用:

调用一个函数就是暂时中断现有程序的运行,转去执行被调用函数,当被调用函数执行结束以后,再返回到中断处继续执行的过程,如下表:

c:

函数的嵌套:

执行过程如下表:

(2)程序的概要设计(流程图)

1:

总体(主函数):

设计学生信息管理系统界面,定义程序功能选择的方式,用switch循环进行程序选择(即程序功能选择);通过构造函数的调用来实现不同函数功能,从而进行程序的使用。

2:

主构造函数:

包括创建班级【Addclass()】、添加学生信息【Addstud()】、修改学生信息【Changestu()】、删除学生信息【Delstu】、打印学生信息【Disstu】五个构造函数。

a:

创建班级【Addclass()】

b:

添加加学生信息【Addstu()】:

d:

修改学生信息【Changestu()】:

c:

删除学生信息【Delstu()】:

f:

打印学生信息【Dispstu()】

(2)程序的详细设计

a:

创建班级

voidCClass:

:

Addclass(char*ClassName,int*CStudent)

{

intn=0;

intClaccName;

if(n!

=10)

{

cout<<"输入班级名称"<

cin>>ClassName;

clas=newClass(ClassName);

n++;

cout<<"添加成功"<

returntrue;

}

elsecout<<"班级数超额"<

}

b:

添加学生信息

voidCClass:

Addstu()

{

if(clas==NULL)未创建班级

……

else已创建班级

{

……定义数据类型

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

";

cin>>studno;

while(clas->find(studno)!

=-1)查找该学号学生

{存在该学号学生

…………重新输入学号

};

…………完成数据定义

if(clas->count<50)未超数

{

clas->student[clas->sum]=newCStudent(studno,idno,name,addr,tel);开辟内存

clas->student[clas->sum]->setMath(math);

clas->student[clas->sum]->setEnglish(english);完成数据添加存储

this->clas->count++;计数添加学生数

}

……

else超数情况

…………

}

}

c:

修改学生信息

voidCclass:

:

Changestu(){

if(cc==NULL)未创建班级

……

else已创建班级

{

…………数据定义

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

";

cin>>studno;

if(clas->find(studno)!

=-1)找到该学生

{

……打印该学生信息

……输入修改信息

cc->student[m]->setAddr(addr);

cc->student[m]->setTel(tel);

cc->student[m]->setMath(math);

cc->student[m]->setEnglish(english);

cc->student[m]->setAverage(math,english);储存修改后数据

}

else未找到该学生

……

}

}

d:

删除学生信息

voidCclass:

:

Delstu(){

if(this->clas==NULL)班级未创建

……

else班级已创建

{

intStudno;

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

";

cin>>Studno;

inti=clas>find(Studno);

if(clas>find(Studno)==-1)未找到该学生

……

else

{

for(intj=i;i<50;i++)

{

……student[i]后指针向前移动一位,且最后一位数组内容置空,学生数减1

}

cout<<"学生删除成功!

"<

}

}

}

e:

打印学生信息

voidCclass:

:

Dispstu()

{

if(cc==NULL)未创建班级

……

else已创建班级

{

cout<<"班级名称:

"<getClassname()<

for(inti=0;i<50;i++)for循环完成数据整体输出

{

if(class->student[i]!

=NULL)student数组不为空

{

………………打印学生信息

}

}

}

}

(4)测试用例(针对每个功能设计测试方案,包括输入数据、输出数据)

针对每个功能设计一组(最少一个)测试用例,用来验证程序的正确性。

1:

创建班级

2:

添加学生信息

3:

删除学生信息

删除123号学生数据:

删除123号学生后所有数据:

4:

修改学生信息

修改123号数据:

修改123号学生后数据;

5:

打印学生信息

三、课题总结

1陈述遇到的问题及解决办法:

a:

问题:

没办法对对象内数据进行获取及处理

解决方法:

构建一个get**()构造函数来获取对象内数据,用set**()构造函数来处理对象内数据,以便进行数据的输入及修改;

b:

问题:

对类的指针数组使用比较生疏

解决方法:

深入了解面向对象数据与结构数据的区别,用->运算符来移动指针实现数据的存入与调用

c:

问题:

在添加、修改、删除都要进行学生查找在程序中出现代码重复利用,代码复杂

解决方法:

构建构造函数find(studeno)来完成查找工作,这样只需在需要时调用构造函数,无需重复输入查找功能代码,从而大大简化代码

2:

有何收获

a:

熟悉掌握了类得创建及对象的处理调用;

b.熟悉掌握了面向对象数据的添加,修改,删除,打印;

c.纠正对break用法的错误理解,break只用在两个地方,一个是case,一个是循环的跳出,对于最后程序的退出应使用exit(0);

d.熟悉循环在程序中的应用,在添加,修改,删除,打印以及界面的显示等都用到了循环。

e.学会应用面向对象构造函数的调用,以及主函数中用switch函数做多分支选择,先进行类得封装,再对具体对象进行处理及应用类与类之间的继承关系,充分利用面向对象数据处理优势大大简化程序代码;

f.不足之处:

没有对数据进行存盘处理,没有异常处理导致输入错误代码就会出现死循环,程序不能正常运行。

四、使用说明书

1、用MicrosoftVisualStudio2005打开该程序文件;

2、编译运行程序;

3、根据页面提示及查询需要对应选择操作类型,进入子程序操作;

五、教师评阅

 

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

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1