c++课设报告.docx

上传人:b****2 文档编号:24187712 上传时间:2023-05-25 格式:DOCX 页数:13 大小:20.35KB
下载 相关 举报
c++课设报告.docx_第1页
第1页 / 共13页
c++课设报告.docx_第2页
第2页 / 共13页
c++课设报告.docx_第3页
第3页 / 共13页
c++课设报告.docx_第4页
第4页 / 共13页
c++课设报告.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

c++课设报告.docx

《c++课设报告.docx》由会员分享,可在线阅读,更多相关《c++课设报告.docx(13页珍藏版)》请在冰豆网上搜索。

c++课设报告.docx

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版

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

当前位置:首页 > 工程科技 > 环境科学食品科学

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

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