C++面向对象程序设计论文设计.docx
- 文档编号:29579876
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:18
- 大小:710.20KB
C++面向对象程序设计论文设计.docx
《C++面向对象程序设计论文设计.docx》由会员分享,可在线阅读,更多相关《C++面向对象程序设计论文设计.docx(18页珍藏版)》请在冰豆网上搜索。
C++面向对象程序设计论文设计
大学课程设计任务书
题目名称
C++面向对象程序设计
一、课程设计的容
1.利用面向对象的方法对业务进展系统分析,形成功能规格说明书;
2.对各个功能模块分析设计抽象并实现对象类;
3.所有数据用文件存储,并通过流类与程序交换;
4.用户界面用基于MFC的设计,最后完成一个可运行的程序
5.五人一个小组,选择一个题目,要求发挥团队合作精神,分工协助
二、课程设计的要求与数据
图书管理信息系统
容包括:
Ø分析整理整个管理信息系统的业务流程,形成功能规格说明书。
Ø包括的功能:
●图书资料;
●读者资料;
●借阅登记;
●归还登记;
●借阅查询等
三、课程设计应完成的工作
1.功能规格说明书〔流程〕
2.分析设计说明书〔类〕
3.界面设计
4.代码实现说明〔选择〕
5.分工协作说明〔具体说明每个人所做的工作〕
6.可执行程序
7.设计总结
四、课程设计进程安排
序号
设计各阶段容
地点
起止日期
1
集中学习
教室
2
资料查阅与学习,讨论
图书馆
3
系统分析设计
宿舍,实验室
4
类的设计和实现
宿舍,实验室
5
界面设计
宿舍,实验室
6
系统实现与测试
宿舍,实验室
7
设计总结
宿舍
8
实验结果提交与验收
实验室
五、应收集的资料与主要参考文献
1.书 名:
《C++语言和面向对象程序设计(第3版)》
作 者:
莉董渊瑞丰
:
清华大学
ISBN:
2.书 名:
《VisualC++开发GIS系统---开发实例剖析》
作 者:
建春
:
电子工业
ISBN:
X
发出任务书日期:
2007年12月31日指导教师签名:
计划完成日期:
2007年1月10日基层教学单位责任人签章:
主管院长签章:
摘要:
本系统使用VisualC++6.0开发工具,包含基于MFC的程序设计。
学生信息管理系统是非常常见的信息管理系统,是学校办公中实现办公自动化的前提和根底。
通过软件过程的各个环节进展系统分析、设计、实现、测试,并相应给出软件规格说明书等制品。
本系统包含的功能有:
学生资料、成绩登记、成绩查询、综合排名等。
本系统成功地将面向对象的程序设计思想应用到数据库应用程序设计中。
关键词:
信息管理VisualC++编辑查询排名
1.功能规格分析说明:
1.1进入系统欢迎界面---------------------------------------------------------6
2.分析设计说明与程序代码分析实现------------------------------------9
1.功能规格说明:
学生成绩管理是学校教学管理的核心之一,科学高效的管理好学生成绩是教育教学管理的重要工作。
本系统围绕着这一工作,从实用出发,从教学一线入手,经反复修改,开发成了这个独具特色的教学管理助手。
学生成绩管理系统共分3个模块:
管理系统主模块、成绩录入模块和成绩查询模
1.1进入系统欢迎界面
图1为本系统运行的欢迎界面,我们可以通过输入工作号和密码来进入系统主界面,默认工作号为8888,密码为
图1.1学生信息管理系统欢迎界面
图1.2输入正确工作号和密码后弹出对话框
图1.3输入错误工作号或错误密码后弹出对话框
图2为本系统主界面,我们可以通过界面上两个模块来选择不同的功能,左侧为查询学生信息,右侧为录入学生信息.
图2管理系统主界面
图3为录入信息的界面,我们可以输入该学生各方面的信息,单击保存后创建数据包,单击返回按键如此回到主界面.
图3.1录入信息界面
图3.1单击保存按键后弹出对话框
图4为查询信息界面,我们可以通过输入要查询学生的和学号来得到该学生的成绩。
图4.1查询信息界面
图4.2输入错误或学号后弹出对话框
2.分析设计说明与程序代码分析实现
本系统通过设计默认的工作号与密码才能登陆使入,而这一功能的实现主要是通过在登陆界面中的两的编辑框分别定义了两个关联变量,intm_code;intm_number;来实现进入时需要输入工作号与密码的功能。
而这一功能的实现又是通过登陆界面中的“确定〞键实现的。
当按下“确定〞键时,该系统会执行以下一段代码:
constintworknumber=8888;
constintworkcode=;
this->UpdateData(true);
if((workcode==this->m_code)&(worknumber==this->m_number))
{
MessageBox("欢迎进入学生信息管理系统!
~~");
//TODO:
Addextravalidationhere
chossen;
n.DoModal();
}
else
{
MessageBox("输入不正确!
!
");
}
this->UpdateData(false);
}
在上面一段代码中,将用户输入的工作号与密码分别存在intm_code;intm_number;并将其它程序中的constintworknumber=8888;constintworkcode=;〔默认工作号,不可改动〕进展比照。
如果输入正确,如此会给出("欢迎进入学生信息管理系统!
~~"的提示,并正入下一个界面,功能选择窗口〔CHOSSE〕,如果输入不正确,便会对用户给出"输入不正确!
!
"的提示。
在这个函数中包括了以下几个头文件:
#include"stdafx.h"
#include"welle.h"
#include"welleDlg.h"
#include"chosse.h"
在功能选择界面中,〔如图2所示〕,设计了“查询学生信息〞与“编辑学生信息〞两个功能。
而这两个功能都是通过按两幅图片的形式来完成的。
在这里我我们主要是在增加的Picture控件中的“属性〞,:
“样式〞中选择了“通知〞这一选项,。
使其具有按如如下图片会选择的功能。
其中进入“查询学生信息〞是通过以下一段代码实现的:
voidchosse:
:
OnStatic1()
{
this->DestroyWindow();
checkmessageoutn;
n.DoModal();
MessageBox("请输入所要查询学生的性名&学号!
!
");
//TODO:
Addyourcontrolnotificationhandlercodehere
}
每当用户进入此功能。
系统就会在下一对话框跳出之前进展对用户的操作提示:
"请输入所要查询学生的性名&学号!
!
"需要说明的是当按下此图片时,系统是通过this->DestroyWindow();来关闭当前窗口,并通过***n;n.DoModal();来实现窗口的的跳动,以下不在术。
而进入“编辑学生信息〞是通过以下一段简单的代码实现:
voidchosse:
:
OnStatic2()
{
this->DestroyWindow();
editmessagen;
n.DoModal();
//TODO:
Addyourcontrolnotificationhandlercodehere
}
此在,在这个别窗口中我们还设计了一个“退出〞按钮,其代码是:
voidchosse:
:
OnOK()
{
//TODO:
Addextravalidationhere
this->OnOK();
}
当用户按下此按扭,将会直接关闭整个学生信息管理系统。
这个对话框中包括的头文件有
#include"stdafx.h"
#include"welle.h"
#include"chosse.h"
#include"checkmessageout.h"
#include"editmessage.h"
在“学生信息编辑〞〔editmessage〕框中,我们设计了解包括学生,学号,高等代数,大学英语,以与C++语言程序设计三科的成绩,还有学生简介的保存框。
〔请参考图3。
1〕
在这个对话框中,为了能够保存用用户所输入的信息,我们设计包括m_edit;floatm_scorehight;floatm_scoreenglish;floatm_scorecpp;CStringm_Nnumber;CStringm_Nname在的关联函数。
对于数据的保存是在用户在按下“保存〞以后实现的这一功能的代码如下:
structstuInfostu;
this->UpdateData(true);
strcpy(stu.nname,m_Nname);
strcpy(stu.nnumber,m_Nnumber);
strcpy(stu.edit,m_edit);
stu.score[0]=m_scorehight;
stu.score[1]=m_scoreenglish;
stu.score[2]=m_scorecpp;
ofstreamos("data.txt",ios:
:
app);
os.write((char*)&stu,sizeof(stu));
os.close();
MessageBox("保存成功!
");
}
在这里我们调用一个MFC的系统函数fstream以与我们在此之
前写好的一个函数,其具体容如下:
structstuInfo
{
charnname[20];
charnnumber[200];
floatscore[3];
charedit[20];
};
以与一个MFC的系统函数fstream
通过这两个函数,我们将用户所要保存的信息保存到了一个被我们命名为“〞的文件中。
用户每保存组数据后,系统不用自己动更新,而是需要用户手机改变之前所输入的数据,输入完毕后,用户可以通过按“退出〞跳回chosse对话框。
“退出〞所执行的代码如下:
voideditmessage:
:
OnOk2()
{
this->DestroyWindow();
chossen;
n.DoModal();
}
这个对话框中的函数所包括的头文件有:
#include"stdafx.h"
#include"welle.h"
#include"editmessage.h"
#include"chosse.h"
#include"fstream.h"
#include"stu.h"
通过按下“查询学生信息〞这一键。
我们可以进入到一个名为“checkmessageout〞对话框。
在这个对话框中我们为了能够显示用户所保存的信息,我们构造了
m_Nname=_T("");
m_Nnumber=_T("");
m_scorehight=0.0f;
m_scoreenglish=0.0f;
m_scorecpp=0.0f;
m_rankhight=0;
m_rankenglish=0;
m_rankcpp=0;
m_Edit=_T("");
这些关联变量,对了达到,只有当用户输入正确的学生性名和学号时系统才会调出学生的具体信息这一功能,我们在写代码时,写入一如此一和代码:
if((sName==this->m_Nname)&(sNumber==this->m_Nnumber))
当用户输入正确的性名与学号,并按下“显示〞才能将用户所保存在“〞中的容调出来。
这个按里面的代码是实现查询功能的关键具体代码如下:
voidcheckmessageout:
:
OnOK()
{
intfindFlag=0;
this->UpdateData(true);
structstuInfostu;
ifstreamis("data.txt");
while(is.eof()==0)
{
is.read((char*)&stu,sizeof(stu));
CStringsName;
sName.Format("%s",stu.nname);
CStringsNumber;
sNumber.Format("%s",stu.nnumber);
if((sName==this->m_Nname)&(sNumber==this->m_Nnumber))
{
findFlag=1;
break;
}
}
is.close();
if(findFlag==1)
{
m_Nname=stu.nname;
m_Nnumber=stu.nnumber;
m_Edit=stu.edit;
m_scorehight=stu.score[0];
m_scoreenglish=stu.score[1];
m_scorecpp=stu.score[2];
}
else
{
this->MessageBox("此数据不存在!
");
m_Nname="";
m_Nnumber="0";
}
this->UpdateData(false);
}
在这个代码中,我们通过while语句,来实现循环来断定要调出用户所输出的数据,当找到与之对应的数据时,就把他们的值相应的赋给对应的框,。
最后显示在窗口;
voidcheckmessageout:
:
OnOk2()
{
this->DestroyWindow();
//TODO:
Addextravalidationhere//
chossen;
n.DoModal();
}
以上是“退出〞按扭所对应的代码。
这个对话框中对应该需要的头文件包括:
#include"stdafx.h"
#include"welle.h"
#include"checkmessageout.h"
#include"chosse.h"
#include"stu.h"
#include"fstream.h"
3.1本系统优点:
1.欢迎界面与其它各界面都是是结合了PS2技术创作的,具有特色,并贴有我们06信安2班的班徽,总的来说就是将基于MFC的C++编程与PS2相结合,创建独具特色的软件。
2.设计人性化,具有录入成绩与成绩查询的功能,使用简单,容易上手。
由于对知识的掌握不足,很遗憾没能完全实现成绩排名的功能。
时间飞梭,又是两个星期过去了,不过,在这两个星期,我过得比拟充实,学到了不少东西,至少我在课堂学到的东西,终于可以用到实际了。
我发现c++这门课程学懂了以后是非常有意思的,在弄系统,编程序的时候,当我们组每攻克一个问题的时候,我觉得特别有成就感,看着自己的作品,心里特别高兴。
通过这次的C++课程设计,学会了将所学的C++知识运用在现实中,掌握了一些之前没有能掌握的知识,并更深刻的体会了之前已经掌握的之识。
对C++中类的使用,进一步的了解。
这次的课程设计,我们设计的主题是,将C++结合MFC初步的学会创建简单的系统——学生信息管理系统。
同时通过,去图书管查找资料,参考书中的实例,网上查询与C++相关的视频。
通过这一系列的学习,掌据了要制作一个系统所需的最根本的知识。
比如,创建一个最根本的原始对话框,在对话框中添加各相对校简单的控件,如,按钮,编辑框,Pictrue控件,等一些比拟简单的控件。
并能进展各窗口听跳转,以与,附上一些比拟根底的功能,比如保存数据,读取数据这两个重要的知识。
当然,通过这次的课程设计除了增广了认识外,对一个软件的设计有了新的认识,同时认识到,能够用C++写出的程序,而一个软件设计中就并不是那么的简单了。
软件的设计并不是简单的程序的累加,他还要经过科学的规划。
它也不是简单的写好就能了事的,其中我们还要不得不考虑到,它的唯护,修改,以与以后的加强。
当然,如果能够做到,以最简的程序实现具有同样功能的才是最好的。
这次设计中,除了应用了C++课本上的知识外,还引用了课外的知识,利用PhotoShop处理各个窗口的界面,使我们整个系统的界面别具一格,与众不同。
众观整一个课程设计的过程,除了对一些具体知识能有新的认识外,同时也认识到了利用这些根底方法创建一个系统的重要性。
通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够结实。
刚刚做好的C++课程设计,自己对于这个模拟软件开发的模式还是了解不足,但可以总结到以下几点:
(一)收获到的:
1在做课程设计的过程中,自己也大量地翻阅了课本,这样不仅把之前的知识巩固了,还把之前很多没有弄懂的知识学会了,让我更好地掌握C++面向对象程序设计的根本特性。
2在做课程设计的过程中,不仅眼用到课本,还要到图书馆借阅到其他相关的书籍,这样让我大大扩大自己的视野,让我更多地了解当前常用的软件开发工具〔VisualC++〕,更多熟练掌握基于MFC的程序设计,培养解决实际问题的能力。
3在做课程设计的过程中,经常运用到了VisualC++软件开发工具,大大提高了自己的编程能力和动手能力。
(二)课程设计中的不足:
1不能够足够地掌握VisualC++软件开发工具中的各项功能,对MFC的程序设计认识不够透彻。
2小组分工不够明确,自己所做的局部也不足,并没有能够很好体验到一个软件开发小组所表现出来的气氛。
(三)学习展望:
1通过这次的课程设计,我既学到了关于软件开发的很多知识,提高了自己对这门课程的兴趣;又认识到了自己的很多不足,这就在客观上要求自己在以后的学习过程中要更加努力。
2为了在以后的学习中更好地掌握和运用VisualC++软件开发工具,必须到图书馆查阅更多的相关书籍,扩大自己的知识储藏。
小组总结:
做课设不仅让我们修补了以前学习的漏洞,也让我们知道一个道理:
编程需要兴趣和实际动手。
善于总结,也是学习能力的一种表现,每次完成一段代码,都应当有目的的跟踪该程序的应用状况,随时总结,找到自己的不足,这样所编写的程序才能逐步提高,
通过实际动手做,我们才真正领略到“艰辛奋斗〞这一词的真正含义,我们想说,编程确实有些辛苦,但苦中也有乐,在这个团队的任务中,一起的工作可以让我们有说有笑,相互帮助,配合默契。
对我们而言,知识上的收获重要,精神上的丰收更是让人喜悦。
挫折是一份财富,经历是一份拥有。
这次实际操作必将成为我们人生旅途上一个非常美好的回忆!
分工说明:
〔此系统的设计与实现是小组共同开发研究、所有工作组员对每一个局部的设计和实现均有参与〕
粗略分工如下:
(1)、ISBN7-302-08456-4莉董渊瑞丰《C++语言程序设计〔第3版〕》清华大学
(2)、ISBN7-5053-5955-X建春《VisualC++开发GIS系统---开发实例剖析》电子工业
致
成绩评定
容
评分
功能规格说明
分析设计说明
界面设计
软件设计与编程
论文总结
设计期间表现
总评
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 面向 对象 程序设计 论文 设计