c++面向对象程序设计大作业

合集下载

西电2022年秋季《面向对象程序设计(c++)》大作业及答案

西电2022年秋季《面向对象程序设计(c++)》大作业及答案

学习中心/函授站姓名学号西安电子科技大学网络与继续教育学院2022 学年下学期《面向对象程序设计(C++)》期末考试试题(综合大作业)考试说明:1、大作业试题公布时间:(1)毕业班:2022 年10 月21 日;(2)正常班:2022 年11 月18 日;2、考试必须独立完成,如发现抄袭、雷同均按零分计;3、答案须用《西安电子科技大学网络与继续教育学院2022 秋期末考试答题纸》(个人专属答题纸)手写完成,要求字迹工整、卷面干净、整齐;4、在线上传时间:(1)毕业班学生于2022 年10 月21 日至2022 年11 月1 日在线上传大作业答卷;(2)正常班学生于2022 年11 月18 日至2022 年12 月5 日在线上传大作业答卷;5、拍照要求完整、清晰,一张图片对应一张个人专属答题纸(A4 纸),正确上传。

一、简答题(10 分)1、运算符 new 和 delete 的功能分别是什么?(3 分)答案:运算符new的功能是创建动态对象;delete的功能是释放由new创建的动态对象。

2、若派生类以 private 方式从一个基类派生,派生类的对象可以访问基类中的哪些成员?派生类的成员函数可以访问基类中的哪些成员?(3 分)答案:若派生类以private方式从一个基类派生,派生类的对象不能访问基类中的任何成员(1分);派生类的成员函数可以访问基类中的public和protected成员(2分)。

3、构造函数的作用是什么?在创建派生类的对象时,应按照怎样的顺序调用构造函数?(4 分)答案:构造函数的作用是创建对象并对其进行必要的初始化。

(1分)构造函数调用顺序:基类构造函数、子对象类构造函数(如果有)、派生类构造函数。

(2分)二、填空题(每空 2 分,共 20 分)1、函数的返回值是通过函数体中的return语句带回的;若被调用函数被定义为 void 类型,则被调用函数不带回任何值。

2、表示逻辑关系“ a 大于等于8 或者 a 小于等于5”的C++表达式是。

C++面向对象程序设计的大作业计算两点之间的距离

C++面向对象程序设计的大作业计算两点之间的距离

武汉轻工大学面向对象程序设计期末大作业专业:电子信息科学与技术班级:电信产业1301班学号:1304100025姓名:肖梦1目的与要求学生能够比较熟练地掌握C++语言的基本语法规则;熟练掌握基本的面向对象的程序设计方法,如类的实现、创建类的实例—对象、实现类的继承等;掌握各种面向对象的程序设计技术,如继承和派生,虚继承、虚函数、抽象类、多态的实现等。

掌握在VC++平台上进行程序设计和调试的方法。

学生利用学到的面向对象的基本原理和C++语言语法以及编程技巧,通过灵活应用Visual C++6.0 集成开发环境进行应用程序和系统的开发设计,掌握可视化程序设计的基本方法和步骤,强化巩固已有编程知识,训练新的设计与编程思路,帮助熟悉程序编写,及时查究错误。

要求学生独立完成完整的用C++语言编写的应用程序,以全面掌握C++面向对象程序设计的基础知识。

2 设计内容2.1计算两点之间的距离用类实现计算两点之间的距离。

(可以定义点类(Point),再定义一个类(Distance)描述两点之间的距离,其数据成员为两个点类对象,两点之间距离的计算可设计由构造函数来实现。

)2.1.1 程序设计方案和原理根据题目要求本题可以用类的组合来实现。

我们可以用一个point类来描述平面上点的的坐标,然后为Distance类添加一个Point类的对象作为其数据成员,用来计算两个点之间的距离。

2.1.2 程序的代码实现#include<iostream.h>#include<math.h>class Point //定义Point类{public:Point(int a=0,int b=0){x=a;y=b;}int xcord(){return x;}int ycord (){return y;}private:int x,y;};class Distance //定义Distance类作为容器类{public:Distance(Point q1,Point q2);float getdist(){return dist;}private:Point p1,p2; //p1,p2是类嵌对象float dist;};Distance::Distance(Point q1,Point q2):p1(q1),p2(q2) /*Distance类的构造函数通过初始化列表向类嵌对象的构造函数赋值*/{float x=float(p1.xcord()-p2.xcord());float y=float(p1.ycord()-p2.ycord());dist=sqrt(x*x+y*y); //两点间距离}void main(){Point p(0,0),q(1,1); //创建Point类对象Distance dis(p,q); //创建Distance类对象cout<<"The distance is: "<<dis.getdist()<<endl;}Distance类为容器类,包含Point类的内嵌对象q1和q2,Distance类的构造函数通过初始化列表向Point类的构造函数传递参数。

面向对象程序设计大作业

面向对象程序设计大作业

《面向对象程序设计》期末大作业一、大作业题目二、要求(1)依照学生人数分成原那么上2至3人(少量4人)一组,各小组选择感爱好的题目,也可自拟题目。

(2)解题要求:现面向对象程序设计语言的特点,程序代码很多于400行;利用技术:表现OOP 的抽象、封装、继承、多态等4种关键技术中的两种或多种;程序结构良好,没有明显错误;依照大作业格式,在课程终止最后两周(1六、17周)上交电子稿。

(3)最终提交。

●大作业报告依照原有的系统设计,编码时期的工作,整理书写实验报告,内容包括:①系统说明②实验分析与结论③收成与体会④附程序代码●最后提交材料:①大作业报告(打印稿和电子稿)②源程序代码(CPP文件),执行文件(EXE)③小组内分工说明(人员名单(不超过4人)、学号、角色分工)三、说明假设两人和多人程序大体相同或撰写的报告大体相同的情形下,经认真比较查证属彼此剽窃的,剽窃者和被剽窃者均按“0”分计。

大作业报告样式如下:(1) 大作业的页面设置为上、下、左、右页边距都为厘米,格式段落中行距为固定值20磅。

(2) 中文字体为宋体小四号,英文字体为Times New Roman小四。

补充说明:关于大作业中的程序、类或函数必然要有详细的注释,如下例所示。

关于类包括:类的成员变量说明,类的成员函数说明,功能,基类、继承类、实现进程等等。

/********************************************************************类名:私有成员:公有成员:功能:作为下面要概念派生类的基类实现步骤:(1)概念类名(2)声明私有成员(3)声明必要的函数作为公有成员,其中狗狗找函数用来分派存储空间,对私有对象进行初始化(4)对类进行封装/********************************************************************关于函数包括:先对函数及各参数进行说明,函数功能说明,实现原理及步骤说明,函数中的关键部位也需要进行说明。

面向对象程序设计作业

面向对象程序设计作业

A. pa是一个指向数组的指针,所指向的数组是5个int型元
素;
B. pa是一个指向某数组中第5个元素的指针,该元素是int型
变量;
C. pa是一个具有5个元素的指针数组,每个元素是一个int型
指针;
D. pa[5]表示某个数组的第5个元素的值。
10. 下面程序使用new与delete命令:
#include <iostream.h>
如:
Time s(12,34,16),s1;
s1=s+100;//从12点34分16秒后,再过100秒,即加100秒
s1.show();
第三次作业
1、 选择题(在A、B、C、D四个答案中选择一个正确的填入后面 的括号中)
1.下面( )是对类ttt的声明。 A. void class ttt; B. class int ttt; C. class ttt( ); D. class ttt;
(1) 建立一个三角形类tri,有三个私有数据a,b,c,设计一 个缺省的3参数构造函数,缺省值分别为3,3,3,再设 计一个成员函数showarea,当参数能组成三角形时输出 面积值,否则输出-1。
(2) 建立一个类book,有二个私有的数据成员qu和price,建 立一个有5个元素的数组对象,将qu初始化为1,2,3, 4,5,将price初始化为qu的10倍,并设计一个成员函数 disp,输出每个对象的qu*pricer的值。
(3) 有一个向量类vector,包括一个点的坐标位置x和y,设计 二个友元函数,实现两个向量的加法和减法运算。
(4) 编写一个程序,设计一个类score,用于统计一个班的学 生成绩,其中使用一个静态数据成员sumfs存储总分和一 个静态成员函数rsumf()返回该总分。

《面向对象程序设计》大作业

《面向对象程序设计》大作业

《面向对象程序设计》大作业项目名称基于C#的一款扫雷游戏班级7B1551组员李豪雄曹启李宁一、开发环境开发环境:vs2010开发语言:C#二、系统功能设计1.创建项目功能实现创建项目,找图片素材2.界面设计介绍关于扫雷游戏界面的设计提出希望在对应级别(初级、中级、高级、自定义)的按钮的显示勾,以表示目前的游戏等级。

3.雷区绘制界面中雷区的绘制方法4.菜单操作有两个时候需要对它进行操作,一个是加载上次游戏设置的时候,一个是在游戏过程中进行设置的时候,设计菜单中的相关方法5.内部实现内部埋雷,放雷,标旗子,标问号的方法6.整体完善写游戏的胜利条件,自定义游戏的初始化及相关调试任务三、实现1、创建项目功能实现玩过扫雷的读者应该知道,扫雷需要用到三种图片素材——地雷、红旗、问号。

当右击一个方块的时候,会插上红旗,表示游戏者认为该方块内有地雷;再次右击该方块,会变成问号,表示不确定该方块内是否有地雷;第三次右击该方块,问号消失,恢复到初始的状态。

我们前往Iconfinder寻找合适的图标,并且通过Photoshop或者Illustrator的处理得到我们所需要的图标。

文章中含有下载地址的图标资源可以使用右键—目标另存为进行下载。

通过一定的搜索以及图片的处理,得到了下面一组素材图标,下载地址:Doubbt、Flag、Mine。

除了这些素材以外,我们还需要找一个图标,使得整个程序看上去更加正式一点,这里使用图标如下,注意程序图标的后缀为ico,下载地址:favicon接下来,我们打开Visual Studio 2013开始创建工程,界面如下:创建好的项目如下图所示。

我们需要对这个窗口的几项属性进行修改,首先通过Text属性将它的标题修改为“Minesweeper”;通过FormBorderStyle属性将它的大小设置为“FixedSingle”,即为不可调节窗口大小;通过MaximizeBox属性将它的最大化按钮设置为“False”,即最大化按钮失效;通过Name属性将它的名称修改为“Form_Main”,修改这个属性主要用于后面书写代码的方便;通过BackColor属性将它的背景修改为“White”。

吉林大学2020-2021学年第一学期期末考试《面向对象程序设计》大作业参考答案

吉林大学2020-2021学年第一学期期末考试《面向对象程序设计》大作业参考答案

2020-2021学年第一学期期末考试《面向对象程序设计》大作业一名词解释题 (共10题,总分值30分 )1. 全局变量(3 分):变量分为局部与全局,局部变量又可称之为内部变量。

由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用。

2. 菜单(3 分):实际是一种树型结构,为软件的大多数功能提供功能入口。

3. 图标(3 分):通常用来做广告宣传的商标或特定标志。

4. main函数(3 分):又称主函数,是程序执行的起点,main是相对来说的,如同音学理论之主调于泛音,泛音即程序中的除main之外的其他函数,迎合人们的思考方式而生成的而非必定的模式。

有主有次,执行起来条清缕析,既可将程序模块化又实现了一个闭合的整体。

5. 控件(3 分):Windows设计了一些具有图形外观的程序实体,这些程序实体在鼠标或键盘的作用下会使程序出现不同的响应,这些可以接收或者产生事件的程序实体就叫做控件。

6. 继承(3 分):指一个类(即称子类)因承袭而具有另一个类(或称父类)的能力和特征的机制或关系。

7. 宏(3 分):计算机科学里的宏是一种抽象(Abstraction),它根据一系列预定义的规则替换一定的文本模式。

解释器或编译器在遇到宏时会自动进行这一模式替换。

8. 用户界面(3 分):信息系统中需要用户交互的输入和输出部分。

9. 窗口(3 分):计算机图形学中的窗口是用户坐标系中需要进行观察和处理的一个坐标区域。

10. 数据成员(3 分):包含与非叶成员直接相关的值,该值独立于由该成员的后代计算得到的汇总值。

二简答题 (共5题,总分值40分 )11. While语句的形式为while(<表达式> ) <语句> ;当表达式满足什么条件时可以执行语句的内容?(8 分)答:以下是while语句的基本形式: while(表达式)语句:其中“表达式”可以是任意合法的表达式。

《面向对象程序设计(C++)大作业报告模板

《面向对象程序设计(C++)大作业报告模板

《面向对象程序设计(C++)》课程大作业大作业名称年级专业项目成员指导教师2010 年6月1日目录1 需求分析 (1)1.1 开发背景 (1)1.2 项目目标 (1)1.3 运行环境 (1)2 程序分析 (1)2.1 技术要点 (1)2.2 项目任务书 (1)3 技术路线 (1)3.1 总体方案 (1)3.1.1 软件及开发平台 (1)3.1.2 总体方案 (1)3.2 详细设计 (2)4 工程进度 (2)5 测试报告 (2)5.1 阶段性测试 (2)5.2 总体测试 (2)6 个人小结 (2)参考文献 (2)附录程序源代码 (2)1 需求分析1.1 开发背景1.2 项目目标1.3 运行环境2 程序分析2.1 技术要点2.2 项目任务书3 技术路线3.1 总体方案3.1.1 软件及开发平台3.1.2 总体方案3.2 详细设计4 工程进度5 测试报告5.1 阶段性测试5.2 总体测试6 个人小结参考文献[1] 薛华成. 管理信息系统. 第二版. 北京: 清华大学出版社, 1993[2] R K 霍斯尼. 谷物科学与工艺学原理. 李庆龙译. 第2版. 北京: 中国食品出版社, 1989[3] 赵秀珍, 王崇文. 关于计算机学科中几个量和单位用法的建议. 见: 科技编辑学论文集.北京: 北京师范大学出版社, 1997. 125-129附录程序源代码正文文字采用宋体小四,行间距20磅。

正文所有的图表都必须在文中进行引用,图表中的字体用宋体五号,图标号在图的下方,表标号在表的上方,图标号与表标号均采用宋体五号。

图标号。

所有的图按章顺序编号,如第2章的第4个图的编号为“图2-4”,并将图的编号和名称标在图的下方(图中文字、图名称均为宋体五号字),如:图2-4 计算机与数据库表标号。

所有的表按章顺序编号,如第3章的第1个表的编号为“表3-1”,并将表的编号和名称标在表的上方(表中文字、表名称均为宋体五号字),如:所有的数字和字母都采用Times New Roman ,每段段首缩进两格。

《面向对象程序设计C》课程大作业_1-1

《面向对象程序设计C》课程大作业_1-1
3.在date类中定义成员函数,用于处理月、日的进位的改变问题,特别注意不同月份天数的问题,判断闰年问题。
4.在date类中重载+或-,++或--运算符.设计一个双计时器界面,提供人工设定起始日期,人工加、减日期操作,测试date类中各成员函数是否能正确运行,并给出测试结果的运行截图。
15分
5分
5分
5分
20分
扣5分
成绩评定
基本1
基本2
基本3
基本4
基本5
基本6
提高1
提高2
报告
延期提交
合计
标准分数
10分
5分
15分
20分
15分
5分
5分
5分
20分
扣5分
100分
实际完成情况
教师签名:
2020年月日
报告正文
【注】:
(1)请根据“基本要求”和“提高要求”中列出的项目撰写对应的内容。
(2)请将完整的源码作为附录放在报告正文的最后。
6.对本大作业进行总结(存在的不足、问题、经验等)。
二、提高要求
1.通过继承方式设计出时间类(类名为DateTime)(包含年、月、日、时、分、秒),给出类DateTime的定义和实现,描述设计思路。
2.给出设完整的日历表类(类名为CDate)设计,描述设计思路。
三、其他要求
1.运用课堂所学的知识,按题目的要求独立完成大作业及报告。
2.被认定为抄袭或被抄袭者,本课程最终成绩作不及格处理。
3.在网络教学平台上提交:(最后截止日期为:2020年7月12日)
(1)大作业报告(word版和pdf版各一份)
(2)源代码(仅提交.h和.cpp文件)

面向对象程序设计大作业要求

面向对象程序设计大作业要求

面向对象程序设计大作业
姓名:
班级:
学号:
一、论述(20分)
面向对象程序设计思想的优缺点,并详细举例说明其与C语言程序编程的不同。

答:
二、程序设计(80分)
参考实际生活中图书管理、商品销售、餐饮管理、客房管理、工资管理、人事考勤管理系统、文档管理系统,选取其中之一进行程序设计。

要求:按照选取得系统设计相应的类,设计的类至少包括添加、删除、查看(添加信息、删除信息)、退出四个,每个类至少包括四种数据成员,三种成员函数,实现的功能按照对应类设计,可按照自己设计再酌情添加相关类,同时可保存为文件。

(提示:作业重点是四个类的设计,并在设计作业中说明这四个类应该如何使用,程序具备的功能。


时间要求:截至12月5日前完成大作业,作业分纸质报告和程序电子文档。

纸质文档要求:1. 针对所编写的程序设计,重点要求分条(至少三条)写明所采用的课程中概念和思想,及具体使用方法。

2.(1)类的主要功能描述(1页左右),(2)重点函数实现方法描述(1页左右),(3)有简单应用示例(至少四张图),(4)类代码(五号新罗马字体,单倍行间距,建议分栏排版和双面打印,以内容整齐为准,学生自行掌握);
电子文档要求:(1)由类代码文件、main()函数文件及cpp、obj、exe文件组成的文件夹,(2)应用示例(各功能运行结果截图),每人一个文件夹(命名方式:学号_19x班_姓名),班长收齐,集中上交。

大作业程序设计如下:。

面向对象程序设计(C++)大作业任务书

面向对象程序设计(C++)大作业任务书

《面向对象程序设计(C++)》大作业任务书一、题目每组同学(3人一组)可从下列给出的参考题目中任选一题完成,不可以重复。

(1)消费卡支付管理系统(2)驾校学员管理系统(3)网吧上网管理系统(4)超市管理系统(5)网上购物管理系统(6)校园一卡通管理系统(7)家族族谱管理系统(8)银行管理系统(9)个人财务管理系统(10)图书馆管理系统(11)学生成绩管理系统(12)药店进销存管理系统(13) 学生选课管理系统(14)高校招生管理系统(15)公交一卡通管理系统(16)食品安全管理系统(17)机场汽车出入管理系统(18)个人电话簿管理系统(19)建筑公司承包管理系统(20)餐馆营业管理系统其余题目略。

二、对象本学期“面向对象程序设计(C++)”选课班全体同学。

三、目的(1)掌握面向对象程序设计(OOP)的思想,区别传统的过程式程序设计思想,能够使用面向对象的程序设计思想解决实际问题;(2)掌握在Visual C++集成开发环境下编辑、编译、链接和运行一个C++程序的基本方法;(3)独立完成每个程序设计和编码,能够灵活运用各种调试命令修改源程序中可能出现的错误,并能根据问题进行学习、拓广、深化。

(4)学会科学地撰写总结报告,加深对所学知识的理解和掌握,答辩中考察学生的技能,并培养学生的表达和思辨能力。

四、要求(1)根据学生人数分成原则上3人(少量4人)一组,各小组选择感兴趣的题目,在课外完成查找资料、选题、拟大纲、小组讨论、研究写作等各环节;每一环节完成后,在课堂上进行小组之间的讨论、教师点评,最后确定解决问题的方案。

(2)问题规模:体现面向对象程序设计语言的特点,程序代码不少于400行;使用技术:体现OOP的抽象、封装、继承、多态等4种关键技术中的两种或多种;程序结构良好,没有明显错误;按照大作业格式,在课程结束前一周交电子稿和打印稿。

五、内容(1)系统说明书内容包括:①问题描述②类体系设计和程序流程图③各类定义的基本功能,即主要数据和函数功能描述④拟采用开发平台(Visual C++,Borland C++等)(2)大作业报告根据原有的系统设计,编码阶段的工作,整理书写实验报告,内容包括:①系统说明②实验分析与结论③收获与体会④附程序代码(3)最后提交材料:①大作业报告(打印稿和电子稿)②源程序代码(CPP文件),执行文件(EXE)六、评分本次大作业占期末考试总成绩的20%,满分20分。

c程序设计大作业

c程序设计大作业

c程序设计大作业C程序设计大作业C程序设计是一门实践性很强的课程,大作业是检验学生对C语言掌握程度的重要方式。

本次大作业的目的在于通过实际编程练习,加深对C 语言基础语法、数据结构、算法设计和程序调试等方面的理解,同时培养学生的编程思维和解决实际问题的能力。

一、大作业要求1. 题目选择:学生可以从以下题目中任选一题完成:- 学生信息管理系统- 图书馆管理系统- 简易计算器- 字符串处理工具- 图形界面的五子棋游戏2. 功能实现:每个题目都应实现基本功能,例如:- 学生信息管理系统:添加、删除、修改、查询学生信息。

- 图书馆管理系统:图书借阅、归还、查询等。

- 简易计算器:实现基本的加减乘除运算。

- 字符串处理工具:实现字符串的复制、连接、查找、替换等操作。

- 图形界面的五子棋游戏:实现基本的下棋逻辑和胜负判断。

3. 代码规范:代码应遵循良好的编程规范,包括但不限于:- 明确的函数分工,每个函数应有简短的注释说明其功能。

- 变量命名应清晰,避免使用无意义的缩写。

- 代码结构清晰,逻辑性强。

4. 文档编写:提交的作业应包括:- 程序设计说明书:介绍程序的功能、设计思路、实现过程等。

- 源代码:按照题目要求编写的C语言代码。

- 用户手册:简要说明如何使用程序。

5. 提交方式:所有材料应以电子文档形式提交,包括设计说明书、源代码和用户手册。

二、大作业流程1. 选题:学生在教师的指导下选择适合自己能力的题目。

2. 需求分析:明确程序需要实现的功能和性能要求。

3. 设计:设计程序的总体结构和各个模块的详细设计。

4. 编码:根据设计文档编写程序代码。

5. 测试:对编写的程序进行测试,确保功能正确无误。

6. 调试:根据测试结果进行必要的调试,修正程序中的错误。

7. 文档编写:编写程序设计说明书和用户手册。

8. 提交:按照要求提交所有材料。

三、评分标准1. 功能实现:程序是否实现了题目要求的所有功能。

2. 代码质量:代码是否规范、清晰、易读。

面向对象程序设计大作业参考题目及要求

面向对象程序设计大作业参考题目及要求

面向对象程序设计大作业参考题目1、学生信息管理(1)问题描述学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。

试设计一学生信息管理系统,使之能提供以下功能:●系统以菜单方式工作●学生信息录入功能(学生信息用文件保存)---输入●学生信息浏览功能——输出●查询、排序功能——算法1、按学号查询2、按姓名查询●学生信息的删除与修改(可选项)(2)功能要求●界面简单明了;●有一定的容错能力,比如输入的成绩不在0~100之间,就提示不合法,要求重新输入;●最好用链表的方式实现。

(3)算法分析首先,一个学生包括这么多的属性,应该考虑定义一个结构,其次,我们应该考虑数据的存储形式:是定义一个数组来存储,还是定义一个链表呢?在这里假如我们以数组的方式来存储,当然可以,但是我们知道,假如我们定义一个数组的话,我们首先必须知道学生人数大概是多少,以便我们确定数组的大小,但是题目中没有给出,而且题目要求中有大量的删除、插入操作,所以用链表的方式比较方便。

对于菜单的实现,其实也比较简单,首先我们用printf语句把程序的功能列出来,然后等待用户输入而执行不同的函数,执行完了一个功能后又回到菜单。

文件的读写操作大家参照书中的有关文件的章节。

2、学生综合测评系统每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。

考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。

A、学生信息处理(1) 输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。

提示:学生信息可先输入到数组中,排序后可写到文件中。

(2) 插入(修改)同学信息:提示:先输入将插入的同学信息,然后再打开源文件并建立新文件,把源文件和输入的信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容,(3) 删除同学信息:提示:输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除将删除后的信息写到文件中。

C面向对象程序设计大作业

C面向对象程序设计大作业

学号:《C++面向对象程序设计》大作业题目学院专业信息工程班级姓名王继文指导教师2015 年11 月15 日目录一大作业的目的 (1)二大作业的内容 (1)三大作业的要求与数据 (2)四大作业应完成的工作 (2)五总体设计(包含几大功能模块) (2)六详细设计(各功能模块的具体实现算法——流程图) (3)七调试分析(包含各模块的测试用例,及测试结果) (5)八总结 (18)九参考资料 (19)一大作业的目的《面向对象程序设计》是一门实践性很强的课程,通过大作业不仅可以全方位检验学生知识掌握程度和综合能力,而且还可以进一步加深、巩固所学课程的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。

更好地掌握运用C++语言独立地编写、调试应用程序和进行其它相关设计的技能。

二大作业的内容(1) 初始化输入:N-参赛院系总数,M-男子竞赛项目数,W-女子竞赛项目数;(2) 各项目名次取法有如下几种:取前5名:第1名得分7,第2名得分5,第3名得分3,第4名得分2,第5名得分1;(3) 由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息。

(4) 所有信息记录完毕后,用户可以查询各个院系或个人的比赛成绩,生成团体总分报表,查看参赛院系信息、获奖运动员、比赛项目信息等。

三大作业的要求与数据1、用C++语言实现系统;2、由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息。

所有信息记录完毕后,用户可以查询各个院系或个人的比赛成绩,生成团体总分报表,查看参赛院系信息、获奖运动员、比赛项目信息等。

3、各项目名次取法有如下几种:取前5名:第1名得分 7,第2名得分 5,第3名得分3,第4名得分2,第5名得分 1。

四大作业应完成的工作(1)编写算法;(2)算法测试,并有具体的测试结果和结果分析;(3)撰写大作业报告。

内容包括:1)封面扉页2)设计任务书3)目录4)总体设计方案(包括流程图)5)使用说明及运行实例(包括界面)6)成员设计内容简介7)项目源程序代码(注意注释的使用)8)指导教师评语五总体设计(包含几大功能模块)本文研究开发的运动会管理系统用于支持用于查询各个学校在运动会中的成绩。

C++面向对象程序设计大作业

C++面向对象程序设计大作业

C++面向对象程序设计大作业C++面向对象程序设计大作业利用虚函数实现多态:(1)设计Person类,要求具有用于表示姓名的保护数据成员:string szName;实现信息打印的公有成员函数:void Print()。

其中,Print函数设计为虚函数,输出的信息格式为:“Person 姓名”。

(2)从Person类派生Student类,添加用于表示学号的保护数据成员:int iNumber;重定义用于信息打印的公有成员函数:void Print()。

其中,Print函数输出的信息格式为:“Student 姓名学号”。

(3)从Person类派生Teacher类,添加用于表示教龄的保护数据成员:int iYear;重定义用于信息打印的公有成员函数:void Print()。

其中,Print函数输出的信息格式为:“Teacher 姓名教龄”。

(4)从Student类派生Graduate类,添加用于表示研究方向的保护数据成员:string szResearch;重定义用于信息打印的公有成员函数:void Print()。

其中,Print 函数输出的信息格式为:“Graduate 姓名研究方向”在main函数中根据用输入的整数动态创建一个Person类的对象指针数组。

用户依次输入对象信息(对象类别及其相应的数据成员值),根据对象类别动态创建相应的对象并赋给相应的对象指针数组元素。

全部录入后,根据用户输入要显示的对象信息在数组中的位置,调用Print函数在屏幕上打印出相应对象的信息。

如果用户输入“exit”,则退出。

输入:对象指针数组的长度;对象类型及对象信息(输入方式见输入样例);要显示的对象在数组中的位置;exit。

输出:用户要求显示的对象信息。

输入样例:4Person ZhangStudent Zhao 200905Graduate Li 200905 DataMiningTeacher Luo 102exit输出样例:Person ZhangGraduate Li 200905 DataMining程序:#include#include#includeusing namespace std;class Person{public:Person(const string& name);virtual void Print() const;protected:string szName;};Person::Person(const string& name):szName(name) {}void Person::Print() const{cout <<"Person "<< szName << endl;}class Student : public Person{public:Student(const string& name, int number);void Print() const;protected:int iNumber;};Student::Student(const string& name, int number):Person(name),iNumber(number) {}void Student::Print() const{cout <<"Student "<< szName <<""<< iNumber << endl;}class Teacher : public Person{public:Teacher(const string& name, int year);void Print() const;protected:int iYear;};Teacher::Teacher(const string& name, int year):Person(name),iYear(year){}void Teacher::Print() const{cout <<"Teacher "<< szName <<""<< iYear << endl;}class Graduate : public Student{public:Graduate(const string& name, int number, string major);void Print() const;protected:string szResearch;};Graduate::Graduate(const string& name, int number, string major):Student(name, number), szResearch(major){}void Graduate::Print() const{cout <<"Graduate "<< szName <<""<< iNumber <<""<< szResearch << endl; }int main(){// 对象指针数组长度int psNum;cin >> psNum;// 对象指针数组Person* *psArr = new Person*[psNum];// 对象类型、姓名、学号、教龄、研究方向string szType, szName, szMajor;int iNumber, iYear;// 根据输入的对象信息创建不同类型的对象for(int i=0; i<="" p="">{cin >> szType;if(szType == "Person"){cin >> szName;psArr[i] = new Person(szName) ;}else if(szType == "Student"){cin >> szName >> iNumber;psArr[i] = new Student(szName, iNumber);}else if(szType == "Teacher"){cin >> szName >> iYear;psArr[i] = new Teacher(szName, iYear);}else if(szType == "Graduate"){cin >> szName >> iNumber >> szMajor;psArr[i] = new Graduate(szName, iNumber, szMajor); }else{}}// 需要打印信息的对象下标string szIdx;int objIdx;cin >> szIdx;while(szIdx != "exit"){// 对象下标objIdx = atoi(szIdx.c_str());objIdx = max(0, min(objIdx, psNum)); // 输出对象信息psArr[objIdx]->Print();cin >> szIdx;}// 释放对象内存for(int i=0; i<="" p="">{if(psArr[i]) delete psArr[i];}// 释放对象指针数组delete[] psArr;return 0;}。

面向对象程序设计大作业(C++)

面向对象程序设计大作业(C++)

面向对象程序设计大作业(C++)面向对象分析/设计课程大作业银行业务处理系统13级软件学院测试班1367004029曾丹1.需求分析随着社会经济的发展,信息化程度的不断深入,银行的传统业务己愈来愈不能满足银行客户的需要。

现今,人们的金融意识、科技意识己经有了很大的提高,在紧张忙碌的生活中,己越来越来不习惯每月奔忙于各银行营业柜台之问去排队缴各种各样的费用了;同时,各种经营单位如电信、移动、供电、煤气、自来水、证券等等一是为了提高服务质量、方便客户,二是为了减轻自己日趋繁重的工作量,纷纷委托银行为其开展代收代付业务:同时,随着我国加入世贸组织的日益临近,我国的银行业将面临更加激烈的同业竞争,如何提供更多的金融产品和更优质的服务,如何吸引更多的客户,如何利用计算机技术加强银行帐户信息管理、进行银行业务再造,提高银行的工作效率和业务竟争能力是摆在各家银行面前的一个迫切需要解诀的问题。

近几年来,各商业银行加快了与社会各业的合作,利用自身的网点优势和业务特点,为其提供各种高效、快捷的代收代付业务,也就是中间代理业务,目前以与广大人民群众生活密切相关的各项缴费业务如水电费、电话费、手机费等代收业务为主,这些业务开展方式多种多样,但一般都离不开计算机的高效管理支持。

随着代理业务不断发展,业务品种越来越多,各项业务做法互有差异,这就对银行的电子化水平和相应的管理水平提出了更高的要求。

如何利用电子化的手段构建一个高效统一的、通用灵活的系统来管理各种各样的业务,是每个商业银行所要研究的课题。

支持决策系统的,需要在数据库的基础上,进行联机分析处理,每次处理的数据量大,响应时间长。

特别是银行每天要处理大量的存取款事件,做好存取款是银行工作重要的环节,然而要有效处理必须要有良好的程序和数据管理系统来建立一个良好的软件系统来实现快速、有效、准确、安全的处理银行事物。

主要用于银行的储蓄卡管理系统,它可以帮助我们有效、准确、并且高效实现的完成存取事件。

c语言程序设计大作业

c语言程序设计大作业

C语言程序设计大作业一、引言C语言是一种高级编程语言,广泛应用于计算机科学和软件开发领域。

在C语言程序设计大作业中,学生需要设计和实现一个完整的C语言程序,以展示对C语言的理解和掌握程度。

本文将深入探讨C语言程序设计大作业的要求和技巧,帮助读者更好地完成这一任务。

二、任务要求C语言程序设计大作业有以下要求:1.设计和实现一个功能完整的C语言程序。

2.程序应具备良好的用户交互性。

3.程序应包括错误处理和异常处理机制。

4.程序代码应遵循良好的编程规范和代码风格。

三、程序设计思路完成C语言程序设计大作业需要进行以下步骤:1. 确定程序主题首先,需要确定程序的主题和功能。

可以根据个人兴趣和实际需求选择一个合适的主题,如学生管理系统、图书管理系统等。

2. 分析需求在确定程序主题后,需要详细分析程序的需求,包括功能需求和性能需求。

功能需求指程序需要实现的功能,性能需求指程序需要满足的性能指标,如响应时间、并发处理等。

3. 设计程序架构在分析需求后,需要设计程序的架构。

程序架构应包括模块组织结构、数据结构和算法等。

可以使用面向对象的方法进行设计,将程序拆分为多个模块,并建立模块之间的关联关系。

4. 实现程序根据程序设计思路,开始编写程序代码。

编写过程中应注意代码的可读性和可维护性,遵循良好的编程规范和代码风格。

5. 测试和调试完成程序编写后,需要进行测试和调试工作。

通过测试,确保程序能够正常运行,并满足需求。

四、关键技巧完成C语言程序设计大作业需要掌握以下关键技巧:1. 理解C语言基础知识在C语言程序设计中,需要掌握C语言的基础知识,包括数据类型、流程控制、函数等。

只有理解这些基础知识,才能进行程序设计和实现。

2. 熟悉常用库函数C语言提供了丰富的库函数,如输入输出函数、字符串处理函数等。

熟悉常用库函数的使用方法,可以提高程序的开发效率。

3. 错误处理和异常处理在程序设计过程中,要考虑错误处理和异常处理机制。

面向对象程序设计(大作业)

面向对象程序设计(大作业)

一、名词解释(每题4分,共40分)1.面向对象面向对象:相对于面向过程而言的,所谓面向对象就是不在追求其操作的过程而是去实现其中的方法。

2.对象对象:对象就是用来描述客观事物的一个实体,有一组属性和方法构成的。

3.构造函数构造函数:主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new 运算符一起使用在创建对象的语句中,也是一种特殊的方法。

4.析构函数析构函数:是与构造函数相反,当对象结束其生命周期时,系统自动执析构函数。

其主要作用是用delete释放建立对象用new开辟内存空间。

5.继承继承:继承是指一个对象直接使用另一对象的属性和方法6.多态多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性7.引用引用:使用它指向了一个A对象,也可以说它引用了一个A对象8.友元友元:指某些虽然不是类成员却能够访问类的所有成员的函数。

9.模板模板:某种事物所依照的样本10.异常处理异常处理:是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况。

二、综合回答题(每小题15分,共60分)1.请介绍运算符重载的意义。

答:所谓重载,就是重新赋予新的含义。

运算符函数重载就是对原有元算符进行赋予新的含义从而实现运算符的重载.可以实现运算符重载的包括:算术运算符:+,-,*,/,%,++,--;位操作运算符:&,,~,^,<<,>>逻辑运算符:!,&&,;比较运算符:<,>,>=,<=,==,!=;赋值运算符:=,+=,-=,*=,/=,%=,&=,=,^=,<<=,>>=;其他运算符:[],(),->,,(逗号运算符),new,delete,new[],delete[],->*不能实现运算符重载的运算符包括:.,.*,::,?:2.谈谈多态的意义。

答:封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了代码重用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{
if (it->ID==tID)
{
cout<<"----查找到,该学生信息如下:-----"<<endl;
it->print();
lst.erase(it);
cout<<"删除完毕!"<<endl;
flag=true;
break;
}
}
if (flag==false)
{
cout<<"未找到!"<<endl;
三 大作业的要求与数据
1、用C++语言实现系统;
2、对学生信息(包括学号、姓名、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出.
3、学生信息包括:其内容较多,为了简化讨论,要求设计的管理系统能够完成以下功能:
(1)每一条记录包括一个学生的学号、姓名、3门课成绩
四 大作业应完成的工作
(1)编写算法;
(2)算法测试,并有具体的测试结果和结果分析;
(3)撰写大作业报告。内容包括:
1)封面扉页
2)设计任务书
3)目录
4)总体设计方案(包括流程图)
5)使用说明及运行实例(包括界面)
6)成员设计内容简介
7)项目源程序代码(注意注释的使用)
8)指导教师评语
五总体设计(包含几大功能模块)
{
name=pName;
ID=pID;
grade=pgrade;
}
//显示学生的信息
void print()
{
cout << name <<"\t" <<ID << "\t" << grade << endl;
}
};
list<Student> lst;//学生链表,用于存放学生数据
void print(list<Student> lst)//显示链表中所有的学生
}
}
void screenA()//显示屏幕操作A
{
cout<<"****************************************"<<endl;
cout<<" 1--------------查询"<<endl;
cout<<" 2--------------插入"<<endl;
cout<<" 3--------------删除"<<endl;
八总结………………………………………………………………...8
十 参考资料…………………………………………………………….9
一 大作业的目的
《面向对象程序设计》是一门实践性很强的课程,通过大作业不仅可以全方位检验学生知识掌握程度和综合能力,而且还可以进一步加深、巩固所学课程的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。更好地掌握运用C++语言独立地编写、调试应用程序和进行其它相关设计的技能。
二 大作业的内容
对学生信息(包括学号、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出.将学生的成绩信息进行记录,信息内容包含:(1)学生的学号(2)学生的姓名(3)学生的成绩。假设,现收集到了一个班学生的所有成绩信息,要求用C语言编写一个简单的成绩管理系统,可进行录入、查询、修改和浏览等功能。学习相关开发工具和应用软件,熟悉系统建设过程。
{
list<Student>::iterator it;
cout <<"tname\tID\tgrade"<< endl;
for(it = lst.begin(); it != lst.end(); ++it)
it->print();
cout << endl;
}
void insertStudent()//插入一个学生
1、成绩录入功能
2、成绩输出功能
3、成绩查询功能
4、删除模块
5、排序功能
6、统计功能
7、退出系统
六 详细设计(各功能模块的具体实现算法——流程图)
6.1各函数的功能和实现
1、输入初始的学生信息:输入信息包括学生的姓名、学号以及学生的成绩等相关信息;可用函数void input(STUDENT *data, int *len)来实现此操作。
(2)、成绩信息录入功能:(成绩信息用文件保存,可以一次完成若干条记录的输入。)
(3)、成绩信息显示浏览功能:完成全部学生记录的显示。
(4)、查询功能:完成按姓名查找学生记录,并显示。
(5)成绩信息的删除:按学号进行删除某学生的成绩.
(6)、排序功能:按学生平均成绩进行排序。
(7)、应提供一个界面来调用各 tname;
cin>>tname;
bool flag=false;
list<Student>::iterator it;
for(it = lst.begin(); it != lst.end(); ++it)
{
if (it->name==tname)
{
cout<<"----查找到,该学生信息如下:-----"<<endl;
break;
case '2'://插入学生
insertStudent();
break;
case '3'://删除学生
deleteStudent();
break;
case '4'://显示当前信息
cout<<"---------当前数据列表如下"<<endl;
print(lst);
break;
case '5'://退出
cout<<" 4--------------显示"<<endl;
cout<<" 5--------------退出"<<endl;
cout<<"****************************************"<<endl;
}
void searchByName()//按名字查找
{
cout<<"-------请输入姓名:"<<endl;
return 0;
}
system("pause");
system("cls");
screenA();
}
cout<<"系统退出"<<endl;
return 0;
}
7.2.2主要程序运行结果
运行开始(如图7.1)
图7.1
选择1输入成绩(7.2)
图7.2
选择3按平均分排序 再按2输出成绩(如图7.3)
图7.3
{
system("cls");
cout<<"-------请输入要删除学生的学号ID:"<<endl;
string tID;
cin>>tID;
bool flag=false;
list<Student>::iterator it;
for(it = lst.begin(); it != lst.end(); ++it)
八 总结
通过这次大作业使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。本
{
system("cls");
cout<<"-------请输入学号ID"<<endl;
string tID;
cin>>tID;
cout<<"-------请输入姓名:"<<endl;
string tname;
cin>>tname;
cout<<"-------请输入分数:"<<endl;
int tgrade;
6、统计功能能:用函数void stat(STUDENT *data, int len)来实现
7、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。
如图6.1
图6.1
七 调试分析(包含各模块的测试用例,及测试结果)
7.1源程序
#include <iostream>
2、成绩输出模块:输出学生的信息以及成绩void output(STUDENT *data, int len):通过学生的姓名来查看学生的相关成绩,同时也可以分别通过caverage() 、maverage() 、eaverage() 和comaverage() 来输出成绩的平均分数、最高和最低分数。
四大作业应完成的工作.................. ................4
相关文档
最新文档