欢迎来到天天文库
浏览记录
ID:40156709
大小:92.51 KB
页数:13页
时间:2019-07-23
《C++程序设计报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、中国地质大学(北京)C++程序设计结课报告课程班别名:0401042任课教师:陈春丽(主讲教师)学院:信息工程学院专业:电气工程及其自动化学生姓名:xxxxxxxx学号:xxxxxxxxxxxx2009.12.13C++程序设计结课报告内容摘要:C++语言是从C语言的基础上发展而来的功能齐全、移植性较好、面向对象的中级程序设计语言。运用以掌握的C++方面的知识,如类、类的继承、类的组合等。编写一个简单的学校人员信息管理程序,实现一些简单的浏览、增加、查询输出到文件和其他一些功能。关键字:C++语言学校人员信息类纯虚函数调试正文:一.需求分析与概要设计:A
2、).问题简述:学校人员信息管理程序,管理学生和教师的基本信息。程序完成功能:(1)分类浏览 (2)增加 (3)查询 (4)输出到文件(5)其他要求:1、定义一个学生类Student。需要存储每个学生的姓名、学号、性别等信息。定义教师类Teacher,存储每个教师的编号、姓名、性别、职称等信息。定义抽象类Person,保存人员的基本信息,如姓名、性别等。定义一个班级类Class,每个学生在一个班级中学习,每个教师负责多个班级的教学辅导。2、定义各类的成员函数:分别实现获取、修改信息等相关操作。3、通过在基类Person建立纯虚函数,实现按姓名
3、输出教师或学生的信息。4、重载流提取运算符,使能对Student类的对象进行输出操作。5、根据需要,适当添加其他必要的数据成员和成员函数,如构造函数、拷贝构造函数、析构函数、运算符重载,按学号或姓名排序等。B).问题分析:由要求可知,设计一个C++程序,可以实现学校信息的分类浏览、增加、查询、传输和其他一些功能。为此,可以将程序依据要求划分为为五个功能模块。分别对应实现教师和学生信息的浏览、增加、查询、输出到文件和其他功能。为此,可以通过按功能编写代码来实现。二.程序类的说明与实现:由于信息分为学生、教师和班级,所以分别建立Student、Teacher
4、两个基本类,来实现信息的输入,处理和调用,由于学生和教师同处于一个班级,所以再建立一个Class类,由Student类和Teacher类组合而成。另外,由于可以从学生学生和教师中抽象出身份证号、姓名、年龄、性别、地址等共同的特性,为此可以在建立一个Person类,作为基类,让Student、Teacher、Class三个类作为派生类,继承于此基类。在Person类中,需要定义纯虚拟函数Accept实现信息输入,并定义其他一些信息输出函数,如用于实现输出姓名、性别、地址、年龄等等基本信息的函数。而在Student和Teacher中则主要定义一些输出学生和教
5、师特有的信息的函数。由于Class类是由学生类和教师类组合而成的,因此,要多定义一个Postgraduate类,实现班级信息的输入输出等功能。一.模块分析(带核心源代码):A).功能一:增加:intmain(){ofstreamoutObj("SchoolInforSystem.txt");Person*ptr;//定义基类指针ptr.while(1){Found:cout<<"你想往系统写入信息吗?(Y/N)"<>c;if(c=='N'
6、
7、c=='n'){cout<<"输入系统退出"<8、。}elseif(c=='Y'9、10、c=='y'){}else{cout<<"输入有误,请重新输入。"<>cc;if(cc=='1'){//注意这里的'1'是字符型数据,而不是整型数据1.ptr=newStudent;//指向学生类,用n11、ew指针。ptr->Accept();ptr->Display();outObj.write((char*)ptr,sizeof(Student));deleteptr;}elseif(cc=='2'){ptr=newTeacher;//指向教师类。ptr->Accept();ptr->Display();outObj.write((char*)ptr,sizeof(Teacher));deleteptr;}elseif(cc=='3'){ptr=newPostgraduate;ptr->Accept();ptr->Display();outObj.wr12、ite((char*)ptr,sizeof(Postgraduate));del
8、。}elseif(c=='Y'
9、
10、c=='y'){}else{cout<<"输入有误,请重新输入。"<>cc;if(cc=='1'){//注意这里的'1'是字符型数据,而不是整型数据1.ptr=newStudent;//指向学生类,用n
11、ew指针。ptr->Accept();ptr->Display();outObj.write((char*)ptr,sizeof(Student));deleteptr;}elseif(cc=='2'){ptr=newTeacher;//指向教师类。ptr->Accept();ptr->Display();outObj.write((char*)ptr,sizeof(Teacher));deleteptr;}elseif(cc=='3'){ptr=newPostgraduate;ptr->Accept();ptr->Display();outObj.wr
12、ite((char*)ptr,sizeof(Postgraduate));del
此文档下载收益归作者所有