c++课程设计说明书.docx
《c++课程设计说明书.docx》由会员分享,可在线阅读,更多相关《c++课程设计说明书.docx(17页珍藏版)》请在冰豆网上搜索。
![c++课程设计说明书.docx](https://file1.bdocx.com/fileroot1/2023-2/17/2c63ee8a-bc7a-47b0-a81f-8ce90eb53c21/2c63ee8a-bc7a-47b0-a81f-8ce90eb53c211.gif)
c++课程设计说明书
学校代码:
10128
学号:
200920201069
课程设计说明书
题目:
学生信息管理系统
学生姓名:
董婷婷
学院:
信息工程学院
班级:
计09-2班
指导教师:
邢红梅讲师
吕岩讲师
关玉欣讲师
2011年7月8日
内蒙古工业大学课程设计(论文)任务书
课程名称:
面向对象程序设计课程设计学院:
信息工程学院班级:
计算机09-2班
学生姓名:
董婷婷___学号:
200920201069
指导教师:
邢红梅、吕岩、关玉欣
一、题目
学生信息管理系统
二、目的与意义
《面向对象程序设计课程设计》课程设计是计算机科学与技术专业实践性环节之一,通过课程设计的综合训练可以使学生进一步理解和掌握面向对象程序设计课程的基本知识;掌握面向对象程序设计的思路和方法;基本具有利用面向对象的方法以及C++的编程思想来完成系统设计的能力。
三、要求(包括原始数据、技术参数、设计要求、图纸量、工作量要求等)
1.要求利用面向对象的方法以及C++的编程思想来完成系统的设计;
2.要求在设计的过程中,建立清晰的类层次;
3.在系统中至少要定义一个类,类中要有各自的属性和方法;
4.在系统的设计中,至少要用到面向对象的一种机制。
四、工作内容、进度安排
1.根据课程设计的要求,确定设计题目;(0.5天)
2.查找相关资料,进行应用程序总体结构、使用功能的设计;(0.5天)
3.进行应用程序的界面设计和源程序代码的编写;(2.5天)
4.设计说明书的撰写、答辩(1.5天)
五、主要参考文献
[1]《C++语言程序设计(第三版)》,郑莉,清华大学出版社,2004
[2]《C++程序设计教程》,钱能主编,清华大学出版社,1999.4
[3]《C++程序设计课程设计》,刘振安,机械工业出版社,2004.8
审核意见
系(教研室)主任(签字)
指导教师下达时间2011年7月4日
指导教师签字:
_______________
目录
第一章总体功能介绍3
1.1功能介绍3
1.11总体设计方案4
1.12功能图5
1.2类的设计5
第二章各功能模块的具体实现6
2.1创建学生信息6
2.2添加学生信息7
2.3删除学生信息8
2.4修改学生信息9
2.5查询学生信息10
2.51按学号查询学生信息10
2.52按姓名查询学生信息10
2.6显示学生信息11
2.7保存学生信息11
2.8导入学生信息12
第三章调试及运行结果12
3.1创建学生信息12
3.2添加学生信息13
3.3删除学生信息14
3.4修改学生信息14
3.5查询学生信息15
第四章总结16
参考文献17
第一章总体功能介绍
1.1功能介绍
在该C++课程设计中我选择的课题是学生信息管理系统,编写一个学生信息管理程序,学生信息的组成部分应该有学号、姓名、性别、政治面貌和家庭住址等,该系统应该实现学生消息的创建、添加、删除、修改、多种模式查询、显示信息、及数据的导入与保存等功能。
并应用了类实现函数。
在学生信息系统上实现学生信息的创建,我主要的是创建学生的姓名、性别、政治面貌、家庭住址,学生学号以自动生成实现
学生信息的添加功能以for循环实现了学生信息的添加。
学生信息删除模块上,我使用了for循环和if语句实现了学生信息的删除,在该模块中需要注意数组的使用,以为数组是从零开始的。
学生信息的修改功能,通过for循环找到要修改的学生信息,并用if语句实现了修改。
学生信息的查询功能,在该功能上我用了两种查询方法:
1.按学号查询2.按姓名查询,但是两种查询方式的思想是一样的,倒是通过for循环找到所要的信息。
学生信息的显示,通过for循环调用output函数实现。
学生信息的调入与保存,在该模块上应用ofstream及ifstream实现在文件中的保存及导入。
1.11总体设计方案
1.12功能图
1.2类的设计
Student
-sex:
char
-id[5]:
char
-politic[6]:
char
+name[20]:
char
+num:
int
+Student()
+Student(p:
Student&)
+input():
void
+output():
void
+addstu():
void
+revise():
void
图1.2学生信息管理系统的Student类的UML图
第二章各功能模块的具体实现
2.1创建学生信息
voidStudent:
:
input(){//创建学生信息函数的实现
cout<<"姓名:
";
cin>>name;
cout<<"性别:
";
cin>>sex;
cout<<"街道地址:
";
cin>>id;
cout<<"政治面貌:
";
cin>>politic;
}
Voidmain()
{Studentb[100];
intn,i,stunum;
cout<<"录入学生信息:
"<cout<<"录入学生的人数:
"<cin>>n;
b[0].num=1;
b[0].input();
cout<<"\n\n学生信息"<b[0].output();
if(n>1)
{
for(i=1;i{
b[i].num=b[i-1].num+1;
b[i].input();
cout<<"\n\n学生信息"<b[i].output();
}
}
2.2添加学生信息
case1:
{intaddstu;
cout<<"添加学生的人数:
"<cin>>addstu;
stunum=n+addstu;
for(i=n;i{
b[i].num=b[i-1].num+1;
b[i].addstu();
cout<<"\n\n学生信息"<b[i].output();
}
}break;
2.3删除学生信息
cout<<"请输入您要删除的学生学号"<inta,m,o;
cin>>a;
cout<<"\n\n学生信息"<b[a-1].output();
point3:
cout<<"是否删除?
?
\n1.是2.否"<intr;
cin>>r;
if(r==1)
{stunum--;
a--;
for(m=a;m<=stunum;m++)
{
b[m]=b[m+1];
}
for(o=a;o<=stunum;o++)
{
b[o].num--;
}
cout<<"已删除"<}
elseif(r==2)
cout<<"没有修改"<else
{
cout<<"输入有误"<gotopoint3;
}
}break;
2.4修改学生信息
intrevisenum;
cout<<"请输入您要修改同学的学号"<cin>>revisenum;
for(i=0;i{
if(revisenum==b[i].num)
{
cout<<"\n\n学生信息"<b[i].output();break;
}
}
point2:
cout<<"是否修改?
?
\n1.是2.否"<intr;
cin>>r;
if(r==1)
b[i].revise();
elseif(r==2)
cout<<"没有修改"<else
{
cout<<"输入有误"<gotopoint2;
}
}break;
2.5查询学生信息
在该程序中实现学生的查找的采用了两种查询方式:
按学号查找、按姓名查找。
2.51按学号查询学生信息
intu;
cout<<"请输入您要查询的学号"<cin>>u;
i=0;
for(;i{
if(u==b[i].num)
{
cout<<"\n\n学生信息"<b[i].output();
break;
}
}
if(i==stunum)
cout<<"该同学不存在!
"<}break;
2.52按姓名查询学生信息
tringfindstuname;
cout<<"请输入您要查询的学生姓名"<cin>>findstuname;
for(i=0;i{
if(findstuname==b[i].name)
{
cout<<"\n\n学生信息"<b[i].output();
break;
}
}
if(i==stunum)
cout<<"该同学不存在!
"<}break;
2.6显示学生信息
inti=0;
for(;i{
cout<<"第"<
b[i].output();
}
}break;
2.7保存学生信息
ofstreamos("DTT.txt",ios_base:
:
out|ios_base:
:
binary);
for(i=0;i<=stunum;i++)
{
os.write(reinterpret_cast(&b[i]),sizeof(Student));
}
os.close();
break;
2.8导入学生信息
ifstreamis("DTT.txt",ios_base:
:
in|ios_base:
:
binary);
for(i=0;i<=stunum;i++)
{
is.read(reinterpret_cast(&b[i]),sizeof(Student));
}
is.close();
break;
第三章调试及运行结果
3.1创建学生信息
图4.11创建学生信息
图4.12显示创建的学生信息
3.2添加学生信息
图4.21添加学生信息
图4.22显示添加之后的学生信息表
3.3删除学生信息
图4.31删除选中的学生信息
图4.32删除之后的信息表
3.4修改学生信息
图4.41选中并修改学生的信息
图4.12修改之后的显示
3.5查询学生信息
图4.51通过学号查询
图4.52通过姓名查询
第四章总结
在学生信息的创建上我实现了学号的自动添加排序,在编写的过程中最大的困难就是实现学生学号的自动编排,第一次在类中定义了属性学号,但是在调用的时候出现了问题,每次学生的学号都是一,不能实现学号的自动加一,可能是在每次调用之后系统自动初始化的结构,后来改用了主函数里通过定义stunum及不断的尝试实现了学号的添加问题。
在学生信息的添加问题的实现上在解决了学号的自动添加的基础上没有遇到太大的问题,通过for循环实现了多个学生信息的添加问题。
在学生信息的删除操作上用for及if语句实现了学生信息的删除,在该模块中需要注意数组的使用,因为数组时从零开始的。
在学生信息的修改功能模块上,于学生信息删除模块相类似通过调用for循环以及if语句实现了对学生信息的删除操作。
在学生信息的查询模块上我选用了两种查询模式即按姓名和学号去实现我所要的操作。
通过这次课程设计的实训,增加了我学习软件技术的兴趣,从C++语言这门课程开始,已发现程序设计的乐趣,在学习C++语言的过程中也学到了许多计算机应用基础知识,对计算机的机体也有了一个大体的了解。
在实际操作过程中犯的一些错误还会有意外的收获,在具体操作中对这学期所学的C++语言的理论知识得到巩固,达到设计的基本目的,也发现自己的不足之出,在以后的上机中应更加注意,同时体会到C++语言具有的语句简洁,使用灵活,执行效率高等特点。
发现上机实训的重要作用,特别是对数组、循环和类的定义有了深刻的理解。
通过实际操作,学会C++语言程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。
深刻体会到“没有做不到的,只有想不到的”,“实践是检验真理的标准”……的寓意。
计时在此希望以后应多进行这样的课程设计,培养学生独立思考问题的能力,提高实际操作水平。
参考文献
1.郑莉董渊何江舟编著.C++语言程序设计(第四版).北京:
清华大学出版社,2010
2.谭浩强编著C程序设计(第三版).北京:
清华大学出版社,2004
3.谭浩强编著C程序设计(第二版).北京:
清华大学出版社,1999