版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
封皮(按学校要求手工填写)
成绩评定表学生姓名:班级学号:专业:通信工程课程设计题目:项目管理系统评语组长签字:成绩日期年月日
课程设计任务书学院信息科学与工程学院专业通信工程学生姓名学号设计题目项目管理系统内容及要求:该系统处理项目的相关信息,项目信息主要包括:项目编号、项目名称、等级、负责人等内容,要求实现以下功能:()建立项目类。()项目信息初始化。()项目信息的添加、修改、删除、查找。()项目信息的输出。()在项目信息中按项目编号、项目名称排序。进度安排:第周:分析题目,查阅课题相关资料,进行类设计、算法设计;第周:程序的设计、调试与实现;第周:程序测试与分析,撰写课程设计报告,进行答辩验收。指导教师(签字):年 月 日学院院长(签字)年 月 日TOC\o"1-5"\h\z需求分析 -1-\o"CurrentDocument"算法基本原理 -1-\o"CurrentDocument"类设计 -2-详细设计 -3-\o"CurrentDocument"类的接口设计 -3类的实现 -6\o"CurrentDocument"主函数设计 -12DOS界面程序运行结果及分析 -13-程序运行结果 -13-\o"CurrentDocument"运行结果分析 -16-\o"CurrentDocument"6基于MFC的图形界面程序开发 -17-基于MFC的图形界面程序设计 -17程序测试 -23MFC程序编写总结 -26-7参考文献 -27---#-coutvv”2.按项目名称排序:\n";coutvv”请输入要进行的操作:“vvendl;cin»choose;if(choose==l)〃冒泡排序法对项目按编号排序|for(j=0,j<=c;j++;)|if(b[j].getnumber()>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)〃冒泡排序法对项目按名称排序|for(i=0;i<=c-l;i++)|for(j=j+l;j<=c;j++)|if(strcmp(b[j].getname(),b[i].getname())>=O)(temp=b[i];b[i]=b[j];b[j]=temp;)}for(i=0;i<=c;i++)8彼<<"项目名称:";cout<<b[i].getname()<<endl;8a<<"项目编号:";cout<<b[i].getnumber()<<endl;8a<<"项目等级:";cout<<b[i].getleval()<<endl;8a<<”项目负责人:";cout<<b[i].getcharge()<<endl;cout<<endl;}}}voidRData::projectdate()//操作函数的定义{charchoice='1';charrname[100];//RData函数中的名称intprojectid;//RData函数中的编号intlev;//RData函数中的等级charcharg[100];//RData函数中的负责人project*r;while(choice!='0'){cout<<”1.添加\n”;cout<<"2.修改\n”;cout<<"3.删除\n";cout<<"4.查找\n";cout<<"5.退出\n”;cin>>choice;switch(choice){case'1':;//执行添加操作system("cls");cout<<"输入项目编号:";cin>>projectid;cout<<”输入项目名称:“;cin>>rname;cout<<”输入项目等级:";cin>>lev;cout<<”输入项目负责人:";cin>>charg;addproject(projectid,rname,lev,charg);break;case'2':;//执行修改操作system("cls");cout<<"输入项目编号:";cin>>projectid;r=equal(projectid);if(r==NULL){cout<<"该项目不存在";break;}8彼<<”输入新的项目编号:“;cin>>projectid;馍彼<<”输入新的项目名称:“;cin>>rname;馍彼^专输入新的项目等级:";cin>>lev;馍彼^专输入新的项目负责人:";cin>>charg;r->setnum(projectid,lev);r->setname(rname,charg);break;case'3':;//执行删除操作system("cls");cout<<"输入项目编号:";cin>>projectid;
r=equal(projectid);if(r==NULL){cout<<”该项目不存在"<<endl;break;}r->del();cout<<"删除成功!”;break;case'4':;//执行查找操作system("cls");cout<<"读入项目编号:";cin>>projectid;r=equal(projectid);if(r=NULL){cout<<”该项目不存在"<<endl;break;}r->output();break;case'5':;cout<<"退出,谢谢使用!";exit(0);default:;cout<<"退出:\n";system("cls");}}}在类实现的过程中,对基类类和}}}在类实现的过程中,对基类类和定义函数用于输出项目信息,虚函数类中声明的函数做了定义,用于项目信息的添加多次重新定义。析构函数定义释放内存,各自基类中声明的数据成员经过公有派生以被保护的形式出现,派生函数可自由进行访问。4.3主函数设计voidmain()//主函数{charchoice;〃选项RDataprojectdb;while(choice!='0'){cout<<"C++课程设计\n";8彼<<"项目管理系统\n";cout<<"1403060325\n";cout<<"请选择操作\n";cout<<"1.项目操作\n";cout<<"0.退出\n”;cin>>choice;switch(choice){case'1':;system("cls");jectdate();//调用操作函数case'0':;?乂让(0);//输入错误直接退出break;default:;cout<<"退出\n";}}}在程序的主函数部分,给出两个选项直接输入1开始程序的调试,输入0则被认为是输入错误,直接结束程序。之后出现主界面,选择对应数字进行操作,每一步操作完成后都会回到主界面等待下一个命令。直至输入数字5执行退出程序。
界面程序运行结果及分析.1程序运行结果程.序运行结果如图1所示。nE:\SWTt6\VisualC++6.0\123123\1\Debug\1.exe"十统.■T-5EJJ-L殳三方2—H十统.■T-5EJJ-L殳三方2—H郢理03置瞽目M择目出、”目03选患C+项14请1.0.图1程序运行结果图2程序运行结果图1为程序开始运行的初始界面,选择1则进行下一步操作,选择0退出。图2为选择1后执行操作函数的界面,选择不同的数字执行不同的操作。2选.择1添.加程序运行的结果如图3所示年出项项项项加改一人入人人港I目年出项项项项加改一人入人人港I目图3程序运行结果图为选择添加程序之后的输入结果,需要调用 函数,添加完成后回到主界面。3.选择2修.改程序运行的结果如图4所示"E:烟(雷下载\UisualC++6.0\123123\1\Debug\1.exenererashscs:5a2l„A口:2塞等负
号目目目目项^改联出
人人入人人醇瞿退图4程序运行结果图4为选择修改程序之后的输入结果,需要先查找之后进行修改,完成修改后返回主界面。4选.择3删除程序运行的结果如图5所示图5程序运行结果图5为选择删除程序之后的运行结果,输入项目编号后可完成对应的项目删除。完成后返回主界面。
.选择4查找程序运行的结果如图6所示项项项项加改取出出出出出箱瞿退负.选择4查找程序运行的结果如图6所示项项项项加改取出出出出出箱瞿退负:25:name:4人图6程序运行结果图6为选择查找程序之后的运行结果,输入项目编号后可完成对应的项目查找并将找到的项目输出。完成后返回主界面。5.运2行结果分析整个程序中的项目存储采用的是动态内存分配的方式。基类用于数据输入提取,公有派生类 用于项目信息的输出,虚函数用于项目信息的添加,除了继承基类的基本特征之外,结合问题的实际需要,增加按编号查找的指针 ,使基类进一步具体化、实用化,使项目信息进行各种处理时更方便快捷。程序的访问控制也是根据问题的需要而设计的。基类 的数据成员的存储、维护着项目信息,这些都是在进行查找,删除等一系列操作所必须访问和使用的。利用保护成员特征,将基类数据成员的访问控制属性设置为保护型,对于其派生类可以自由调用,而对于类外的其余模块,这些数据无法访问。这样,不影响整个程序对数据的实用又能很好的保护项目的信息。在派生过程中,基类的构造函数和析构函数无法继承下来,因此在派生类中需要添加构造函数、析构函数来完成派生类的初始化和最后清理工作。派生类的构造函数通过调用基类的构造函数来对基类数据进行初始化。基于 的图形界面程序开发的图形界面程序设计可在上述类设计的基础上进行改造, 的图形界面程序与 界面程序的主要不同点是: 图形界面程序与 界面程序的输入输出方式不同, 界面程序采用字符交互式实现数据输入输出,主要通过i等 流实现,而 的图形程序界面采用标准 窗口和控件实现输入输出,因此必须在 类的框架下加入上面所设计的矩阵和方程组类,并通过图形界面的输入输出改造来完成。基于 的图形界面程序设计(1)界面设计首先在中建立 工程,名称为 界面,并在向导的中选择 ,即建立基于对话框的应用程序,如下图、图所示。图建立 工程
图8建立基于对话框的应用程序将对话框资源中的默认对话框利用工具箱改造成如下界面,如图9所示。项目名称:项目名称:图9项目信息操作程序界面设计图所示的界面中包含了个 控件,个 控件,和个 控件,控件的基本信息列表如下表所示。
表1控件基本信息控件类别控件ID控件Caption说明StaticTextIDC_STATIC项目名称添加操作使用项目编号项目等级项目负责人需要输入的项目编号修改操作使用项目名称项目编号项目等级项目负责人需要输入的项目编号删除操作使用删除是否成功需要输入的项目编号查找操作使用项目名称项目编号项目等级项目负责人BottonIDC_tianjia执行添加操作IDC_xiugai执行修改操作IDC_shanchu执行删除操作IDC_chazhao执行查找操作IDC_tuichu执行退出操作EditBoxIDC_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)代码设计为了能够将对话框界面上的控件能够与代码联系起来,需要为个控件建立 ,按 键进入 界面,选择选项卡,可显示成员变量设置界面,如图、图所示。图10成员变量设置界面
图11成员变量设置界面通过该界面设置与1个控件对应的成员变量,具体如表2所示。表控件基本信息控件ID成员变量类型成员变量名称IDC_TJnameCStringm_TJnameIDC_TJnumberIntm_TJnumberIDC_TJlevelintIDC_TJlevelIDC_TJchargeCStringm_TJchargeIDC_XGINnumberIntm_XGINnumberIDC_XGnameCStringm_XGnameIDC_XGnumbeIntm_XGnumbeIDC_XGlevelIntm_XGlevelIDC_XGchargeCStringm_XGchargeIDC_SCINnumberIntm_SCINnumberIDC_SCYONCStringm_SCYONIDC_CZINnumberIntm_CZINnumberIDC_CZnameCStringm_CZnameIDC_CZnumberIntm_CZnumberIDC_CZlevelIntm_CZlevelIDC_CZchargeCStringm_CZcharge下面是编写代码的重要阶段,由于自身水平所限,无法应用类。所以选择直接通过按钮实施各项操作,下面是各个按钮的编写代码。voidCMy2020Dlg::Ontianjia()//添加函数按钮代码{UpdateData(true);m_TJname=m_TJname;m_TJnumber=m_TJnumber;m_TJlevel=m_TJlevel;m_TJcharge=m_TJcharge;UpdateData(false);//TODO:Addyourcontrolnotificationhandlercodehere}voidCMy2020Dlg::Onxiugai()//修改函数按钮代码{UpdateData(true);if(m_XGINnumber=m_TJnumber){m_TJname=m_XGname;m_TJlevel=m_XGlevel;m_TJcharge=m_XGcharge;}else{m_XGname='a';m_XGlevel=0;m_XGcharge='b';}UpdateData(false);//TODO:Addyourcontrolnotificationhandlercodehere}voidCMy2020Dlg::Onshanchu()//删除按钮的代码{UpdateData(true);if(m_SCINnumber=m_TJnumber)〃判断是否删除成功m_SCYON='Y';elsem_SCYON='N';UpdateData(false);//TODO:Addyourcontrolnotificationhandlercodehere}voidCMy2020Dlg::Onchazhao()//查找函数的代码{UpdateData(true);if(m_CZINnumber=m_TJnumber){m_CZnumber=m_TJnumber;m_CZname=m_TJname;m_CZlevel=m_TJlevel;m_CZcharge=m_TJcharge;}else{m_CZnumber=0;m_CZname='c';m_CZlevel=0;m_CZcharge='d';}UpdateData(false);//TODO:Addyourcontrolnotificationhandlercodehere}2程序测试运行程序后,首先出现的界面如图12所示。
图12程序初始运行界面在添加一行中输入相应的项目信息,点击添加按钮后如图13所示。图13添加数据后的界面在修改一行中输入需要修改的项目编号,之后输入修改后的结果点击修改按钮。如图14
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024版短期导购员聘用合同书版B版
- 2024版房屋合同范本
- 二零二五年度物业服务合同服务内容与服务质量要求2篇
- 2024珠海智能家居租赁合同
- 2024版房产借名过户交易合同书版B版
- 2024物联网技术研发与应用示范合同
- 二零二五年度数据中心机房UPS电源维护服务合同2篇
- 班车行业营业员工作总结
- 引导学生主动参与数学学习激发个性潜能
- 二零二五年度环保型7.XX打磨技术合作合同
- DB11T 945.1-2023建设工程施工现场安全防护、场容卫生及消防保卫标准 第1部分:通则
- 无犯罪证明申请表
- 2021年校长休业式讲话稿
- GB/T 1621-2023工业氯化铁
- 河道工程护砌(连锁砌块)施工方案
- 2023年一级健康管理师《基础知识》考前冲刺题库资料(含答案)
- 家装工地形象及成品保护验收标准
- 2018年海南公务员考试申论真题
- GB/T 14296-2008空气冷却器与空气加热器
- 2023年新泽西驾照笔试题中英对照139题我中文02
- 危重症患者的血糖管理
评论
0/150
提交评论