c++课设报告.docx
- 文档编号:24187712
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:13
- 大小:20.35KB
c++课设报告.docx
《c++课设报告.docx》由会员分享,可在线阅读,更多相关《c++课设报告.docx(13页珍藏版)》请在冰豆网上搜索。
c++课设报告
封皮
(按学校要求手工填写)
成绩评定表
学生姓名:
班级学号:
专业:
通信工程
课程设计题目:
项目管理系统
评
语
组长签字:
成绩
日期
年月日
课程设计任务书
学院
信息科学与工程学院
专业
通信工程
学生姓名
学号
设计题目
项目管理系统
内容及要求:
该系统处理项目的相关信息,项目信息主要包括:
项目编号、项目名称、等级、负责人等内容,要求实现以下功能:
(1)建立项目类。
(2)项目信息初始化。
(3)项目信息的添加、修改、删除、查找。
(4)项目信息的输出。
(5)在项目信息中按项目编号、项目名称排序。
进度安排:
第17周:
分析题目,查阅课题相关资料,进行类设计、算法设计;
第18周:
程序的设计、调试与实现;
第19周:
程序测试与分析,撰写课程设计报告,进行答辩验收。
指导教师(签字):
年月日
学院院长(签字)
年月日
1需求分析
该系统处理项目的相关信息,项目信息主要包括:
项目编号、项目名称、等级、负责人等内容,要求实现以下功能:
(1)建立项目类。
(2)项目信息初始化。
(3)项目信息的添加、修改、删除、查找。
(4)项目信息的输出。
(5)在项目信息中按项目编号、项目名称排序。
随着信息化的普及一个企业按传统做法,设定一个项目后,参与的会有很多部门,彼此信息统计需要太多时间影响效率。
项目管理系统可对项目的全部工作进行高效的管理,便于项目经理对项目信息进行临时调整和修改,转入转出资料、制作报表、计算预算值并对时间利用、成本、人员分配、质量、风险的多种因素进行综合考虑,制定计划从而充分的实现高运营效率。
项目管理系统还可同时处理多个子项目,对项目实施跟踪和监督针,对各种情况做出假设制定应对策略且文件项目的保密程度高,实用型高。
2算法基本原理
设有4个项目分别是:
(1)项目编号:
8;项目名称:
a;项目等级:
4级;负责人:
john;
(2)项目编号:
9;项目名称:
b;项目等级:
3级;负责人:
lin;
(3)项目编号:
7;项目名称:
c;项目等级:
6级;负责人:
sheng;
(4)项目编号:
4;项目名称:
d;项目等级:
7级;负责人:
hong;
此时需要的操作为:
(1)加入项目:
编号:
3;名称:
e;等级:
2;负责人:
ming。
(2)修改:
修改项目4。
。
(3)查找等级为2级的项目。
(4)删除项目7
(5)按编号和名称排序。
第一步,添加过程。
运行添加程序,输入(编号:
3;名称:
e;等级:
2;负责人:
ming。
)
会将项目3加入列表。
此时共有五个项目。
第二步,修改过程。
运行修改程序,输入项目编号(如4)之后输入新的4号项目的名称、等级、负责人等信息。
第三步,查找过程。
运行查找程序,输入按等级查找,查找等级为2的项目。
输出结果为3号项目。
第四步,删除过程。
运行删除程序,输入删除项目的编号(如输入7)会将7号项目删除此时剩余4个项目。
第五步,排序过程。
选择按编号排序,则输出次序为3号、4号、8号、9号。
选择按名称排序,则输出次序为a项目、b项目、d项目、e项目。
3类设计
从算法分析可以看出,本设计面临的关键问题是对各个项目信息的输入,删除,修改,查找。
可定义一个项目类project、一个新数据类Rdata作为基类。
然后由项目类继承出提取名称(getname)、提取项目总数(gettag)、提取编号(getnumber)、提取负责人(getcharge)、提取等级(getlevel)、输入名称和负责人(setname)、输入编号和等级(setnum)、删除类(del)。
派生出虚函数添加项目类(addproject)和输出类(output)。
新数据类Rdata声明其构造函数、输出函数(output)、排序函数(sort)、操作函数(projectdate)、重新定义项目添加函数(addproject)和析构函数(~RData)。
定义初始化函数(clear)、按编号查找函数(equal)。
其中,项目类project中的getname、gettag、getnumber、getcharge、getlevel、setname、setnum负责输入和提取信息,del负责删除信息,派生出的虚函数output负责对项目信息的输出,addproject负责新项目的添加。
新数据类Rdata类中的output负责最终信息的输出,sort负责对项目信息的按名称排序和按序号排序,projectdate负责对项目信息进行添加、删除、修改、查找等操作。
clear负责清空当前的所有信息,equal负责按编号查找项目,被重新定义的addproject负责添加项目信息,析构函数用来释放内存。
4详细设计
整个程序分为三个独立的文档,project文件中包括addproject、del、getcharge、getleval、getname、getnumber、gettag、output、project、setname、setnum的声明,RData文件中包括addproject、clear、equal、output、projectdate、RData、~RData、sort函数的声明用于具体步骤的实现。
Globals文件包括程序的主函数。
类的接口设计
#include
#include<>
#include
usingnamespacestd;
#definem100
#defineM10
classprojectetnumber())projectid&&pro[i].gettag()==0;
{
return&pro[i];
}
returnNULL;
}
voidoutput();ettag()==0)utput();
}
intRData:
:
addproject(intn,char*na,intnn,char*nb)ddproject(n,na,nn,nb);项目编号排序:
\n";
cout<<"2.按项目名称排序:
\n";
cout<<"请输入要进行的操作:
"< cin>>choose; if(choose==1)etnumber()>b[i].getnumber()) { temp=b[i]; b[i]=b[j]; b[j]=temp; } } } for(i=0;i<=c;i++) { b[i].output(); } if(choose==2)etname(),b[i].getname())>=0) { temp=b[i]; b[i]=b[j]; b[j]=temp; } } } for(i=0;i<=c;i++) { cout<<"项目名称: "; cout< cout<<"项目编号: "; cout< cout<<"项目等级: "; cout< cout<<"项目负责人: "; cout< cout< } } } voidRData: : projectdate()加\n"; cout<<"2.修改\n"; cout<<"3.删除\n"; cout<<"4.查找\n"; cout<<"5.退出\n"; cin>>choice; switch(choice) { case'1': ;del目操作\n"; cout<<"0.退出\n"; cin>>choice; switch(choice) { case'1': ; system("cls"); ();序运行结果如图1所示。 图1程序运行结果 图2程序运行结果 图1为程序开始运行的初始界面,选择1则进行下一步操作,选择0退出。 图2为选择1后执行操作函数的界面,选择不同的数字执行不同的操作。 2.选择1.添加程序运行的结果如图3所示 图3程序运行结果 图3为选择添加程序之后的输入结果,需要调用output函数,添加完成后回到主界面。 3.选择2.修改程序运行的结果如图4所示 图4程序运行结果 图4为选择修改程序之后的输入结果,需要先查找之后进行修改,完成修改后返回主界面。 4.选择3删除程序运行的结果如图5所示 图5程序运行结果 图5为选择删除程序之后的运行结果,输入项目编号后可完成对应的项目删除。 完成后返回主界面。 5.选择4查找程序运行的结果如图6所示 图6程序运行结果 图6为选择查找程序之后的运行结果,输入项目编号后可完成对应的项目查找并将找到的项目输出。 完成后返回主界面。 运行结果分析 整个程序中的项目存储采用的是动态内存分配的方式。 基类用于数据输入提取,公有派生类output用于项目信息的输出,虚函数addproject用于项目信息的添加,除了继承基类的基本特征之外,结合问题的实际需要,增加按编号查找的指针equal,使基类进一步具体化、实用化,使项目信息进行各种处理时更方便快捷。 程序的访问控制也是根据问题的需要而设计的。 基类project的数据成员的存储、维护着项目信息,这些都是在进行查找,删除等一系列操作所必须访问和使用的。 利用保护成员特征,将基类数据成员的访问控制属性设置为保护型,对于其派生类可以自由调用,而对于类外的其余模块,这些数据无法访问。 这样,不影响整个程序对数据的实用又能很好的保护项目的信息。 在派生过程中,基类的构造函数和析构函数无法继承下来,因此在派生类中需要添加构造函数、析构函数来完成派生类的初始化和最后清理工作。 派生类的构造函数通过调用基类的构造函数来对基类数据进行初始化。 6基于MFC的图形界面程序开发 MFC的图形界面程序设计可在上述类设计的基础上进行改造,MFC的图形界面程序与DOS界面程序的主要不同点是: MFC图形界面程序与DOS界面程序的输入输出方式不同,DOS界面程序采用字符交互式实现数据输入输出,主要通过cin,cout等I/O流实现,而MFC的图形程序界面采用标准Windows窗口和控件实现输入输出,因此必须在MFC类的框架下加入上面所设计的矩阵和方程组类,并通过图形界面的输入输出改造来完成。 基于MFC的图形界面程序设计 (1)界面设计 首先在VC中建立MFCAppWizard(exe)工程,名称为MFC界面,并在向导的Step1中选择Dialogbased,即建立基于对话框的应用程序,如下图7、图8所示。 图7建立MFCAppWizard(exe)工程 图8建立基于对话框的应用程序 将对话框资源中的默认对话框利用工具箱改造成如下界面,如图9所示。 图9项目信息操作程序界面设计 图9所示的界面中包含了16个StaticText控件,5个Button控件,和16个EditBox控件,控件的基本信息列表如下表1所示。 表1控件基本信息 控件类别 控件ID 控件Caption 说明 StaticText IDC_STATIC 项目名称 添加操作使用 项目编号 项目等级 项目负责人 需要输入的项目编号 修改操作使用 项目名称 项目编号 项目等级 项目负责人 需要输入的项目编号 删除操作使用 删除是否成功 需要输入的项目编号 查找操作使用 项目名称 项目编号 项目等级 项目负责人 Botton IDC_tianjia 执行添加操作 IDC_xiugai 执行修改操作 IDC_shanchu 执行删除操作 IDC_chazhao 执行查找操作 IDC_tuichu 执行退出操作 EditBox IDC_TJname 名称 添加使用 IDC_TJnumber 编号 IDC_TJlevel 等级 IDC_TJcharge 负责人 IDC_XGINnumber 输入编号 修改使用 IDC_XGname 名称 IDC_XGnumber 编号 IDC_XGlevel 等级 IDC_XGcharge 负责人 IDC_SCINnumber 输入编号 删除使用 IDC_SCYON 是否成功 IDC_CZINnumber 出入编号 查找使用 IDC_CZname 名称 IDC_CZnumber 编号 IDC_CZlevel 等级 IDC_CZcharge 负责人 (2)代码设计 为了能够将对话框界面上的控件能够与代码联系起来,需要为16个EditBox控件建立MemberVariables,按Ctrl+w键进入MFCClassWizard界面,选择MemberVariables选项卡,可显示成员变量设置界面,如图10、图11所示。 图10成员变量设置界面 图11成员变量设置界面 通过该界面设置与16个EditBox控件对应的成员变量,具体如表2所示。 表2控件基本信息 控件ID 成员变量类型 成员变量名称 IDC_TJname CString m_TJname IDC_TJnumber Int m_TJnumber IDC_TJlevel int IDC_TJlevel IDC_TJcharge CString m_TJcharge IDC_XGINnumber Int m_XGINnumber IDC_XGname CString m_XGname IDC_XGnumbe Int m_XGnumbe IDC_XGlevel Int m_XGlevel IDC_XGcharge CString m_XGcharge IDC_SCINnumber Int m_SCINnumber IDC_SCYON CString m_SCYON IDC_CZINnumber Int m_CZINnumber IDC_CZname CString m_CZname IDC_CZnumber Int m_CZnumber IDC_CZlevel Int m_CZlevel IDC_CZcharge CString m_CZcharge 下面是编写代码的重要阶段,由于自身水平所限,无法应用类。 所以选择直接通过按钮实施各项操作,下面是各个按钮的编写代码。 voidCMy2020Dlg: : Ontianjia()C++面向对象程序设计.北京: 清华大学出版社,2006版 [2]谭浩强.C语言程序设计.北京.清华大学出版社.2010版 [3]郑莉,董渊,张瑞丰.C++语言程序设计(第3版).北京: 清华大学出版社,2007版 [4]钱能.C++程序设计教程(第二版).北京: 清华大学出版社,2007版 [5]陈志泊,王春玲.面向对象的程序设计语言—C++.北京: 人民邮电出版社,2002版 [6]任美璇.基于校园网的学生信息管理系统(C++版)(第2版).北京: 机械工业出版社,2011版 [7]帕罗赛斯MFCWINDOWS程序设计清华大学出版社2007版
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 报告