欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    664524442《基于C++的面向对象程序设计实例》课程设计报告高校人员信息管理系统.doc

    • 资源ID:2384207       资源大小:300KB        全文页数:45页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    664524442《基于C++的面向对象程序设计实例》课程设计报告高校人员信息管理系统.doc

    北 华 航 天 工 业 学 院基于C+的面向对象程序设计实例课程设计报告报告题目: 高校人员信息管理系统 作者所在系部: 计算机科学与工程系 作者所在专业: 计算机科学与技术专业 作者所在班级: 作 者 姓 名 : 指导教师姓名: 完 成 时 间 : 北华航天工业学院教务处制摘 要当今教育事业备受关注,如何高效方便的对高校人员进行管理是一个问题。本文利用C+面向对象的程序设计实现了这一功能。本系统主要有七个功能模块:新增、更改、删除、查找、显示、全删、统计,实现了对领导、教师、学生信息的管理。本程序已经过全面的系统测试,能够很好的运行,达到预期的效果。关键词:信息管理 系统设计 面向对象摘 要2第一章 绪论211 课程设计的目的212 课程设计的背景和意义2121 课程设计的背景21. 理论研究基础22. 技术层面的支持2122 课程设计的意义213 课程设计环境3第二章 需求分析321 问题描述322 功能要求323 问题的解决方案3第三章 系统设计431 数据设计4311 类设计4312 类之间的关系4313 函数设计532 结构设计5321 系统流程图5322 界面设计6第四章 系统实现741 类实现742 函数实现943 主函数实现15第五章 系统测试1651 模块测试1652 课程设计过程中遇到的问题19总 结19致 谢20参考文献20附 录21第一章 绪论11 课程设计的目的 课程设计是课程教学必不可缺的一个重要环节,可加深学生对该课程所学内容的进一步的了解与巩固,是将计算机课程与实际问题相连接的关键步骤。此次程序设计综合运用所学知识解决实际问题,将课堂的书本知识有效的在程序中体现出来,让学生更理解了C+功能之强大,进一步让学生对面向对象的方法以及C+的编程思想有了较好了解和认识。12 课程设计的背景和意义121 课程设计的背景本次课程设计,主要研究类的继承、抽象类、多态、虚基类以及对文件进行各项操作(如添加、修改、删除、查询、显示等)。通过这次课程设计掌握面向对象的程序设计思路,着重掌握在C+中对文件进行查找、删除、修改等操作。1. 理论研究基础(1)C+面向对象程序设计中类与对象的使用(2)类的封装性和继承性。(3)C+ I/O流库的处理,二进制文件的创建与保存。2. 技术层面的支持(1)定义基类与派生类,将数据成员与成员函数封装在类中。(2)定义指向对象的指针,设计删除、查询、更改的算法。(3)C+异常处理的功能与输入输出流。122 课程设计的意义(1)通过课程设计的综合训练,培养了学生分析解决实际问题和编程等实际动手能力。帮助了同学系统的掌握C+课程的主要内容。(2)通过详细的实例分析,循环渐进的描述,启发学生顺利的完成设计。课程设计将设计要求、需求分析、算法设计、编程和实例测试运行分开,为学生创造分析问题、独立思考的条件。(3)通过编写一个较长的程序,实现了对人员信息的管理,激发了学生学习编程的兴趣。13 课程设计环境在Microsoft Visual C+ 6.0开发平台上编写程序源代码,修改,增加功能,通过编译、连接,直到完全无误,最终执行程序,反复输入新的数据进行验证并进一步完善。第二章 需求分析21 问题描述某高校,主要人员有:领导、教师和学生,共有的信息包括:编号、姓名、性别、年龄。其中领导还应包含的信息有:任职部门(学院、各系部)、职称;教师还应包含的信息有:职称、任职时间、专业;学生还应包含的信息有:所在班级、所在宿舍等。22 功能要求对各类人员信息完成的基本功能有:1) 添加功能:程序能够添加相应的记录;2) 查询功能:能根据编号和姓名进行查询,并显示相应的记录信息;3) 编辑功能:根据查询结果对相应的记录进行修改;4) 统计功能:能根据多种参数进行人员的统计;5)删除功能:根据查找结果,完成具体记录的删除;6)保存功能:将对高校人员信息进行的添加、删除、修改结果保存到文本文件中。23 问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤: 1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;2)分析系统中的各个实体及它们之间的关系; 3)根据问题描述,设计系统的类层次; 4)完成类层次中各个类的描述; 5)完成类中各个成员函数的定义; 6)完成系统的应用模块; 7)功能调试; 8)完成系统总结报告。第三章 系统设计31 数据设计311 类设计人员有共同的信息编号number、姓名neme、性别sex、年龄age,所以设计一个基类people,在此基础上派生出leader类(添加数据成员任职部门bumen,职称zhicheng),teacher类(添加数据成员职称zhicheng,任职时间time,专业project),student类(添加数据成员班级banji,宿舍sushe)。基类people中包含设置成员值的set函数,添加成员的add函数。在派生类leader,teacher,student中对set和add进行重新定义。为了对信息进行添加、删除、查找等功能,定义leaderbase,teacher,student类,分别定义对象数组,定义指向对象的指针,以leaderbase类为例,int top; 人数leader readMaxr;领导类数组;leaderbase()将领导信息从leader.txt读取到read中,void delnu(int u)编号删除,void delname(char*na)姓名删除,void clear()删除所有,void disp() 领导信息显示,void data()领导维护,leaderbase() 将read中的信息读入到leader.txt中。312 类之间的关系由people类派生出leader,teacher,student类,leaderbase类调用leader类,teacherbase类调用了teacher类,studentbase类调用了student类.。派生类对基类的成员进行继承。继承是面向对象程序设计中软件重用的关键技术。继承机制使用已经定义的类作为基础建立新的类定义,新的类是原有类的数据、操作和新类所添加的数据、操作的组合。新的类把原有类作为基类引用,而不需要修改原有类的定义。313 函数设计leaderbase()将领导信息从leader.txt读取到read中,void delnu (int n)编号删除,void delname(char*na)姓名删除,void clear()删除所有,void disp() 领导信息显示,void data()领导数据维护,实现领导信息的添加、删除、查询、显示、统计、更改功能。leaderbase() 将read中的信息读如到leader.txt中。当删除和查找时调用两个函数leader *query(int n),leader *query1(char *na),看删除或查找的领导是否存在,若存在,返回指向leader类的指针,若不存在,返回空指针。 32 结构设计321 系统流程图Main 函数领导数据操作教师数据操作学生数据操作void leaderbase:date()void teacherbase:date()void studentbase:base()322 界面设计登入高校管理系统界面如图3-2所示图3-2界面菜单设计程序开始运行,通过主函数进入系统主界面(如上图所示),操作员可键入数字信息选择系统的各个功能或退出系统。每种功能的界面都有相应的提示(以输入领导为例):在添加信息功能中系统提示“请输入领导的性别为男或女,如果输入错误,会输出“输入性别错误,请重新输入”在新增时系统会同时计算输入男女领导的人数;在更改中系统提供了按姓名或编号修改,在修改前系统会输出该领导的全部信息,修改时系统会输出是否更改;删除中系统提供了按编号或姓名删除,删除前系统会再次提醒使用者是否确定删除;在查找中亦提供了按编号或姓名查找;在输入完毕后按0返回主菜单。,以便操作员更方便地使用该系统注:各子菜单项均有重新显示,并顺利返回到主菜单。如果要保存信息的数据,必须退出到主菜单,系统会自动保存;System(“cls”)清除以前的内容,界面重新显示。System(“color 23”)设置当前的窗口和输出字体的颜色第四章 系统实现41 类实现class people/人员基类protected:int number;/编号char name20;/姓名char sex4;/性别int age;/年龄public:void show()cout<<"编号"<<setw(10)<<"姓名"<<setw(10)<<"性别"<<setw(10)<<"年龄"<<endl;cout<<number<<setw(10)<<name<<setw(10)<<sex<<setw(10)<<age<<endl;void set() cout<<"请输入编号:"<<endl; cin>>number; cout<<"请输入姓名:"<<endl; cin>>name; cout<<"请输入性别:"<<endl; cin>>sex; cout<<"请输入年龄:"<<endl; cin>>age;char *getname() return name; /获取名字 int getno() return number;/获取编号 int getage() return age; /获取年龄 char* getsex()return sex; /获取性别void ren(int n) cout<<n<<endl; void add(int n,char *na,int ag,char *se)number=n;age=ag;strcpy(name,na);strcpy(sex,se);class leader: public people/领导类private:char bumen20;char zhicheng20;public:void set1()set();cout<<"请输入任职部门:"<<endl;cin>>bumen; cout<<"请输入职称:"<<endl;cin>>zhicheng;void setbu(char bu)strcpy(bumen,bu);void setzhi(char zhi)strcpy(zhicheng,zhi);void show1() show();cout<<"部门"<<setw(10)<<"职称"<<endl;cout<<bumen<<setw(10)<<zhicheng<<endl;void add1(int n,char *na,int ag,char *se,char *bu,char *zhi)add( n, na, ag, se);strcpy(bumen,bu);strcpy(zhicheng,zhi);char *getbu()return bumen;/获取部门char *getzhi()return zhicheng;/获取职称;类似的,在people类的基础上派生出student类,teacher类。42 函数实现 void leaderbase:data()/定义领导维护 int choice=1; int b=1;/标记变量 char x; int nan=0;/男领导 int nv=0; /女领导 char name20; /姓名 int number;/编号 int age;/年龄 char zhi20; /职称 char sex4;/性别 char bu20;/系部 leader *r; while (choice!=0) cout<<"领导维护 1:新增 2:更改 3:删除 4:查找 5:显示 6:全删 7:统计 0:退出=>" cin>>choice; switch (choice) case 1: /新增 system("color 17"); /颜色 system("cls");/清屏 cout<<"输入领导编号:" cin>>number; cout<<"输入领导姓名:" cin>>name; cout<<"输入领导年龄: " cin>>age; cout<<"输入领导性别(male or f):"cin>>sex; if(strcmp("male",sex)!=0&&strcmp("f",sex)!=0) while(b) cout<<"输入性别有误,请重新输入:"<<endl; cin>>sex; if(strcmp("male",sex)=0|strcmp("f",sex)=0) b=0; if(strcmp("male",sex)=0) nan+;/统计男女领导的人数 else nv+; cout<<"输入领导所在系部:" cin>>bu; cout<<"输入领导的职称:" cin>>zhi; add(number,name,age,sex,bu,zhi); break; case 2: /根据查询结果更改 system("color f4"); /颜色 system("cls"); cout<<" 按编号更改1"<<endl; cout<<" 按姓名更改2"<<endl; cout<<" 返回 0"<<endl; cin>>b; while(b) switch(b) case 1: cout<<"输入领导编号:" cin>>number; r=query(number); if (r=NULL) cout<<"该领导不存在"<<endl; break; r->show1(); cout<<"是否确认更改任职部门?(Y/N)"<<endl; cin>>x; if(x='Y'|x='y') cout<<"输入新的任职部门:"<<endl; cin>>bu; r->setbu(bu); add(number,name,age,sex,bu,zhi); cout<<"是否确认更改职称?(Y/N)"<<endl; cin>>x; if(x='Y'|x='y') cout<<"请输入新的职称"<<endl; cin>>zhi; r->setzhi(zhi); add(number,name,age,sex,bu,zhi); r->show1(); break; case 2: cout<<"输入领导姓名:" cin>>name; r=query1(name); if (r=NULL) cout<<"该领导不存在"<<endl; break; r->show1(); cout<<"是否确认更改任职部门?(Y/N)"<<endl; cin>>x; if(x='Y'|x='y') cout<<"输入新的任职部门:"<<endl; cin>>bu; r->setbu(bu); add(number,name,age,sex,bu,zhi); cout<<"是否确认更改职称?(Y/N)"<<endl; cin>>x; if(x='Y'|x='y') cout<<"请输入新的职称"<<endl; cin>>zhi; r->setzhi(zhi); add(number,name,age,sex,bu,zhi); r->show1(); break; case 3:break; break; break; case 3:/删除 system("color f1"); /颜色 同样是调用doc system("cls"); cout<<" 按编号删除 1"<<endl; cout<<" 按姓名删除 2"<<endl; cout<<" 返回 0"<<endl; cin>>b; while(b!=0)switch(b) case 1: cout<<"输入领导编号:" cin>>number; r=query(number); if (r=NULL) cout<<"该领导不存在"<<endl; break; delnu(number); b=0; break; case 2: cout<<"输入领导姓名:"<<endl; cin>>name; r=query1(name); if (r=NULL) cout<<"该领导不存在"<<endl; break; delname(name);b=0; break; case 3:break; break; break; case 4: /查找 system("color 07"); /颜色 system("cls"); cout<<" 按编号查找 1"<<endl; cout<<" 按姓名查找 2"<<endl; cout<<" 返回 0"<<endl; cin>>b; while(b!=0) switch(b) case 1: cout<<"输入领导编号:" cin>>number; r=query(number); if (r=NULL) cout<<"该领导不存在"<<endl; break; r->show1(); break; case 2: cout<<"输入领导姓名 :"cin>>name; r=query1(name); if (r=NULL) cout<<"该领导不存在"<<endl; break; r->show1(); break; case 3: break; break; break; case 5:/显示信息 system("color fa"); /颜色 system("cls"); disp(); break; case 6: system("color fd"); /颜色 system("cls"); clear(); break; case 7: system("color 48"); /颜色 system("cls"); cout<<" 统计男领导人数 1"<<endl; cout<<" 统计女领导人数2"<<endl; cout<<" 返回 0"<<endl; cin>>b; while(b!=0) switch(b) case 1: cout<<"该高校男领导人数"<<endl; r->ren(nan); b=0; break; case 2: cout<<"该高校女领导人数"<<endl; r->ren(nv); b=0; break; case 3:break; break; 类似的,定义teacherbase类与studentbase类的数据维护data函数,实现对人员信息的新增、更改、删除 、查找 、显示、全删 、统计功能。43 主函数实现int main() A: int choice=1; leaderbase l; teacherbase t; studentbase s;while(choice!=0) cout<<"*"<<endl; cout<<endl; cout<<endl; cout<<setw(20)<<"*欢迎使用高校人员管理系统*"<<endl; cout<<endl; cout<<endl; cout<<setw(50)<<" -n" cout<<setw(50)<<" 请选择您所需的操作 n" cout<<setw(50)<<" n" cout<<setw(50)<<" 操作 1,领导信息管理n" cout<<setw(50)<<" n" cout<<setw(50)<<" 操作 2,教师信息管理 n" cout<<setw(50)<<" n" cout<<setw(50)<<" 操作 3,学生信息管理 n" cout<<setw(50)<<" n" cout<<setw(50)<<" 操作 0,退出信息管理系统 n" cout<<setw(50)<<" -n" cin>>choice; switch(choice) case 1: while(1) cout<<setw(20); l.data(); goto A; case 2: while(1) cout<<setw(20); t.data(); goto A; case 3: while(1) cout<<setw(20); s.data(); goto A; break; return 0;第五章 系统测试51 模块测试以管理领导信息为例进行说明。(1)选择对领导信息进行添加 ,见图51 图51(2)添加界面如图52 图52(3)可以按编号和姓名进行更改,见图53 图53(4)按编号更改如图54 图54(5)按姓名删除如图55 图55(6)可以按姓名、编号进行查找,如图56 图56(7)按姓名进行查找,如图57 图57(8)对领导信息进行显示,如图58 图58(9)可以对人员信息进行统计,如图59 图59 (10)对男领导人数进行统计,如图510 图51052 课程设计过程中遇到的问题(1)程序实现七个功能,怎样选择何种功能。解决方法:应用switch语句,分多种情况进行选择。(2)系统在输入过程中不能自动保存,必须退出时才能自动保存。用的是析构函数保存。(3)窗口中内容太多,显得杂乱,颜色只有黑色。从网上搜索到了清屏函数system(”cls”),使屏幕干净、整洁。并有system(”color 2F”)颜色设置,告别了单一的画面总 结通过本程序设计掌握了类对象、类数组、继承、派生、重载、输入输出流的定义和使用,对使用C+语言编码有了更深层次的理解,也认识到了自己还有许多不足之处,达到了实验目的。本系统基本完成了题目的功能要求,并且还在一定程度上进行了优化,具体如下:优点:删除时可以重新选择;对无效数据的输入进行了有效的判断;在删除和查询时既可以按编号也可以按姓名;每次删除后自动将人员信息显示出来。缺点:对于重名的人员系统照旧可以添加,没有提醒;人员的编号可以重复。可以改进的地方:在添加成员时进行验证,看所输姓名和编号是否重复,若重复进行重新输入;在实现七个功能的地方添加exit函数,一旦操作失误,不想继续进行,则系统跳转会主界面进行新的操作选择。致 谢在课程设计过程中遇到了很多问题,不过在老师和和同学们的帮助下大部分都得以解决,首先要对他们表示感谢。同时,我们也要感谢学校为我们提供了大量的图书,通过看书我们也学到了很多课堂上学不到的东西。通过此次课程设计我最大的收获是学会了自主学习,也增加了与老师和同学们的交往、增进了相互之间的感情。由于自己水平和能力有限,其中有不足和疏漏之处,恳求老师批评指正。参考文献1张军安.C+设计教程.西安:西北工业大学出版社 20062 周霭如 .林伟健. C+程序设计基础 .北京:电子工业出版社 20023 李岩 Visual C+实用教程 北京:科学教育出版社 20034 徐晓梅 高丽 Visual C+程序设计 北京:电子工业出版社 20045 陈伟柱 C+代码设计与重用 北京:人民邮电出版社 2002附 录#include<iostream.h>#include<fstream.h>#include<string.h>#include <iomanip.h>#include<windows.h>const int Maxr=100; class people/人员基类protected:int number;/编号char name20;/姓名char sex4;/性别int age;/年龄public:void show()cout<<"编号"<<setw(10)<<"姓名"<<setw(10)<<"性别"<<setw(10)<<"年龄"<<endl;cout<<number<<setw(10)<<name<<setw(10)<<sex<<setw(10)<<age<<endl;void set() cout<<"请输入编号:"<<endl; cin>>number; cout<<"请输入姓名:"<<endl; ci

    注意事项

    本文(664524442《基于C++的面向对象程序设计实例》课程设计报告高校人员信息管理系统.doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开