C++面向对象程序设计2011-2012学年第二学期
Windows程序设计基础教学日历
图书馆查阅参考书
参考书①第4、6章
第10周
理论
2
流程控制语句(选择结构、循环结构)
2
图书馆查阅参考书
参考书①第3章
第11周
理论
2
面向对象程序设计基础(类、对象相关概念)
、方法定义及调用
2
图书馆查阅参考书
参考书①第7、5章
第11周
理论
2
常用组件使用:文本类、按钮类、列表类、Ttimer时钟类
2
课后习题
平时学习检查
参考书名称和章节
时数
内容
检查要求方式
所需时间
第9周
理论
2
程序设计语言和方法概述、Visual Studio .netIDE环境、.NET WinForm开发方法和步骤;
参考书①第1章
第9周
理论
2
C#数据类型、运算符与表达式、变量与常量
2
图书馆查阅参考书
参考书①第2章
第10周
理论
2
复杂数据类型(结构、枚举、数组)
P37:1、2、3
抽查
2Байду номын сангаас
参考书①第9章
第12周
理论
2
对话框、菜单、工具栏和状态栏组件、MDI应用程序设计
2
课后习题
P93:4
抽查
2
参考书①第10章
第12周
理论
2
文件操作
2
课后习题
P140:3、4
抽查
2
参考书①第13章
第13周
理论
2
数据库基础,概述、对象
参考书①第14章
第13周
参考资料:①钱哨编著,《C# WinForm实践开发教程》,中国水利水电出版社
c面向对象程序设计第二版答案
c面向对象程序设计第二版答案面向对象程序设计是一种以对象为中心的编程范式,它将数据和处理数据的方法结合在一起,形成对象。
这种设计方法强调的是数据的封装、继承和多态性。
以下是《面向对象程序设计第二版》的一些常见问题及其答案。
1. 面向对象程序设计的核心概念是什么?面向对象程序设计的核心概念包括:类(Class)、对象(Object)、封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism)。
2. 什么是类?类是现实世界中某些具有共同属性和行为的事物的抽象描述。
它定义了创建对象的蓝图或模板。
3. 什么是对象?对象是根据类创建的实例,具有类定义的属性和方法。
4. 封装是什么?封装是将数据(属性)和操作数据的方法(行为)组合在一起的过程,同时隐藏对象的内部状态和实现细节。
5. 什么是继承?继承是一种机制,允许一个类(子类)继承另一个类(父类或超类)的属性和方法。
6. 多态性是什么?多态性是指允许不同类的对象对同一消息做出响应,但具体的行为会根据对象的实际类型而有所不同。
7. 面向对象程序设计有哪些优点?面向对象程序设计的优点包括代码重用、易于维护、易于扩展、提高代码的可读性等。
8. 如何实现封装?实现封装通常通过使用访问修饰符(如private、protected和public)来控制对类成员的访问。
9. 什么是接口?接口是一种特殊的抽象类,它只包含方法的声明,不包含方法的实现。
它用于定义一个类必须遵循的契约。
10. 什么是抽象类?抽象类是不能被实例化的类,通常包含抽象方法。
它用于定义一个类的基本结构,而具体的实现留给子类。
11. 如何实现多态?多态可以通过方法重载(Overloading)和方法重写(Overriding)来实现。
方法重载是同一个类中具有相同名字但参数不同的方法,而方法重写是子类重写父类的方法。
12. 什么是构造函数?构造函数是一种特殊的方法,用于在创建对象时初始化对象的状态。
历年考试题-2011级C++面向对象程序设计试题A-计算机学院2012夏
2011-2012学年第2学期2011级《C++面向对象程序设计》期末考试试题(A卷)考试时间:2012年6月29日班级学号姓名✧本试卷满分100分;✧请将答案写在答题纸上,写明题号,不必抄题,字迹工整、清晰;✧请在答题纸和试题纸上都写上你的班级,学号和姓名,交卷时请将试题纸、答题纸和草纸一并交上来。
一、单选题(共20分,每题2分)1.关注重要的属性,而忽略非本质的细节被称为:(A) 封装(B) 隐藏(C) 抽象(D) 覆盖2.下列哪个最能体现对象与类的关系:(A)书和图书馆(B) 林肯和总统(C) 母亲和女儿(D) 学生和研究生3.相同的操作,但可能有不同的实现,这一面向对象特征被称为:(A) 复用(B) 继承(C) 多态(D) 名字空间4.如果类C以公有继承方式从类B派生,类B以公有继承方式从类A派生,那么类C的成员函数能访问:(A) 类B和类A中的私有的数据成员(B) 仅类C中公有和保护的数据成员(C) 类B和类A中的保护的数据成员(D) 仅类C与类B中公有和保护的数据成员5.下列哪个类不需要显式定义拷贝构造函数:(A) 一个字符串类,其构造函数中分配了堆中的内存空间,析构函数中进行了释放(B) 一个公司雇员类,其任意两个实例对象不能具有相同的员工编号(C) 一个日志类,其至多只能有一个实例(D) 一个图书馆类,其包含一个书籍对象的数组6.定义类A的静态成员函数A& f(A &a)时,下列不能作为函数返回值的是:(A) a (B) 类A中定义的类型为A的静态数据成员(C) *this (D) 函数f中用语句A& b=a; 定义的量b7.下列关于对象存储的说法,正确的是:(A) 对象中不包含所有静态函数的地址,但包含所有非静态函数的地址(B) 对象中非静态数据成员可能存储在栈区,也可能在堆区,还可能在全局数据区(C) 对象中静态数据成员可能存储在栈区,也可能在堆区,还可能在全局数据区(D) 对象中只存放在本类中定义的所有非静态数据成员8.运行时多态是通过下列哪种机制实现的:(A) 静态联编(B) 虚函数(C) 内联函数(D) 运算符重载9.假设有如下类定义class B{ /*略*/ }; class A{ public: void fun(B&); /*略*/ }; 则类A、B之间最可能的关系是:(A) 依赖关系(B) 聚合关系(C) 组合关系(D) 泛化关系第1页共5页10.下列关于抽象类的描述中,正确的是:(A) 抽象类中的所有成员函数必须声明为纯虚函数(B) 抽象类不能实例化,但可以有数据成员(C) 抽象类没有构造函数,所以自身不能实例化,只能通过派生类实例化(D) 抽象类和其派生类共用一个虚函数表二、判断正误,对于你认为错误的论述,说明原因或举出反例。
c面向对象程序设计(第二版)
c面向对象程序设计(第二版)面向对象程序设计是一种以对象为基本单位的编程范式,它强调数据和方法的封装、继承和多态性。
这种设计方法使得软件更加模块化、易于扩展和维护。
《面向对象程序设计(第二版)》这本书深入探讨了面向对象编程的基本概念、原理和实践,适合初学者和有经验的程序员学习。
第一章:面向对象编程基础面向对象编程(OOP)的核心概念包括类、对象、封装、继承和多态。
类是现实世界中某些具有共同特征的事物的抽象,而对象则是类的实例。
封装是将数据和操作这些数据的方法组合在一起,隐藏内部细节,只提供必要的接口。
继承允许新类从现有类中继承属性和方法,而多态性则允许对象以多种形式表现。
第二章:类与对象类是创建对象的蓝图。
定义类时,需要指定其属性(数据成员)和方法(成员函数)。
对象是类的实例,每个对象都拥有自己的状态和行为。
书中通过实例展示了如何定义类和创建对象,以及如何通过构造函数和析构函数管理对象的生命周期。
第三章:封装封装是OOP中最重要的概念之一。
它涉及到隐藏对象的内部状态,只通过公共接口与外界交互。
封装可以提高代码的安全性和可维护性。
书中详细讨论了访问修饰符(public、private、protected)的用法,以及如何使用它们来控制类成员的访问权限。
第四章:继承继承是面向对象编程中的另一个关键概念,它允许创建新的类来扩展或修改现有类的行为。
通过继承,可以避免代码重复,提高代码的复用性。
书中介绍了单继承和多继承的概念,以及如何使用继承来实现代码的层次结构。
第五章:多态性多态性允许对象以多种形式表现。
在OOP中,多态性主要通过虚函数和抽象类来实现。
虚函数允许子类重写父类的方法,而抽象类则定义了一组接口,但具体实现由子类完成。
书中讨论了多态性的实现机制,以及如何在实际编程中应用多态性。
第六章:接口与抽象类接口定义了一组方法,但不提供实现。
抽象类是包含至少一个纯虚函数的类。
它们都用于定义对象的契约,确保对象实现特定的行为。
江苏大学京江学院2011-2012学年第二学期教学安排(校本部
江苏大学京江学院2011-2012学年第二学期教学安排(校本部)(征求稿)
第 1 页
第 2 页
第 3 页
第 4 页
第 5 页
江苏大学京江学院2011-2012学年第二学期教学安排(校本部)(征求稿)
江苏大学京江学院2011-2012学年第二学期教学安排(校本部)(征求稿)
江苏大学京江学院2011-2012学年第二学期教学安排(校本部)(征求稿)
第8 页
江苏大学京江学院2011-2012学年第二学期教学安排(校本部)(征求稿)
江苏大学京江学院2011-2012学年第二学期教学安排(校本部)(征求稿)
第10 页
江苏大学京江学院2011-2012学年第二学期教学安排(校本部)(征求稿)
江苏大学京江学院2011-2012学年第二学期教学安排(梦溪校区)(征求稿)
第14 页。
厦门理工JAVA考试卷及答案标准试卷A卷
A)private void demo(){...}
B)public int demo(){...}
C)public void demo2(){...}
D)public int demo(int m, float f){...}
9. 在 Java 中不存在的布局方式是______。
A)顺序布局(FlowLayout)
学号
线
栏
姓名
息
订
厦门理工学院试卷
2011-2012 学年 第二学期
课程名称 Java 面向对象程序设计
专业 级 班级
班
试卷 A √□ 卷别 B □
考试 闭卷 □ 方式 开卷 √□
本试卷共 四大题( 6 页),满分 100 分,考试时间 120 分钟。
请在答题纸上作答,在试卷上作答无效。
一、单选题:(本题共 15 小题,每题 2 分,共 30 分)
} public class Son extends Father{
public Son(){ System.out.println(“Son construtor!”);
} public void mySon(){
System.out.print(”MySon!”); } } public class Test{
public static void main(String[] args){
Son son = new Son();
}
}
3. 下列程序的输出结果是什么? public class Example { String str = new String("good"); char[] ch = { 'a', 'b', 'c' }; public static void main(String args[]) { Example ex = new Example (); ex.change(ex.str, ex.ch); System.out.print(ex.str + " and "); System.out.print(ex.ch); }
计算机科学与技术C++样版试卷A
B. 公有继承时基类中的private成员在派生类中仍是private的
C. 保护继承时基类中的private成员在派生类中是protected的
D. 私有继承时基类中的public成员在派生类中是private的
7. 拷贝构造函数的参数是( )
}
~StudentID()
{
cout <<"Destructing id " <<value <<endl;
}
private:
int value;
};
class Student{
public:
Student(char* pName="no name",int ssID=0):id(ssID)
{
cout <<"Constructing student " <<pName <<endl;
C.该数组中的各元素值D.该数组的大小
10.通过指向派生类的基类指针调用虚函数时,C++系统对该调用采用( )。
A.动态联编B.静态联编C.不确定是哪种联编D.函数重载
二
得 分
阅卷教师
二、填空题(每空1分,共20分)
1、面向对象系统的特性是——————、————————、—————————和—————。
5、c++中的模板分为————和————。
6、运算符重载的关键字是————。
7、只有————继承方式,才支持赋值兼容。
8、c++动态创建对象指针使用关键字————,释放对象指针使用关键字————。
南京信息工程大学试卷2011-2012学年第二学期C语言程序设计试卷(理科)及答案-A
南京信息工程大学试卷(理工科)2011 - 2012 学年第 2学期C语言程序设计课程试卷( A 卷) 本试卷共 8 页;考试时间 120分钟;任课教师课程组;出卷时间 2012 年 6月学院专业2011 年级班学号姓名得分一、单项选择题 (每小题 1分,共 15分)1.C语言规定:在一个源程序中,main的位置A)必须在最开始 B)必须在系统调用的库函数后面C)可以任意 D)必须在最后2.下面四个选项中,均是合法的用户标识符的选项的是A) A p_o do B)float lao _AC) b-a goto int D) _123 temp INT3.判断字符型变量c1是否为大写字母的正确表达式为A)’A’<=c1<=’Z’ B)(c1>=A)&&(c1<=Z)C)(‘A’>=c1)||(‘Z’<=c1) D)(c1>=’A’)&&(c1<=’Z’)4.表达式18.0/4*sqrt(4)/8值的数据类型为A)float B)charC)double D)不确定5.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是A)7 B)8 C)6 D)26.若对两个数组a和b进行初始化char a[]="ABCDEF";char b[]={'A', 'B', 'C', 'D', 'E', 'F'};则下列叙述正确的是。
A) a与b数组完全相同B) a与b数组长度相同C) a与b数组都存放字符串 D) 数组a比数组b长度长7.若定义x为长整型变量,则能正确输入x值的语句是。
A)scanf(“%d”,x); B)scanf(“%d”,&x);C)scanf(“%ld”,&x); D)scanf(“%ld”, x);8.以下正确的函数定义是。
c面向对象程序设计课后习题答案
c面向对象程序设计课后习题答案C面向对象程序设计课后习题答案在学习C面向对象程序设计课程的过程中,课后习题是巩固知识、提升能力的重要途径。
通过认真完成习题,我们可以更好地理解课程内容,掌握编程技巧,提高解决问题的能力。
下面我们将针对一些常见的C面向对象程序设计课后习题进行答案解析。
1. 请编写一个C++程序,实现一个简单的学生信息管理系统,包括学生姓名、学号、成绩等信息的录入、查询和修改功能。
答案解析:首先,我们需要定义一个学生类,包括姓名、学号、成绩等属性,并实现相应的方法来实现信息的录入、查询和修改功能。
然后在主函数中创建学生对象,调用相应的方法即可实现学生信息管理系统。
2. 编写一个C++程序,实现一个简单的图书管理系统,包括图书名称、作者、出版社等信息的录入、查询和删除功能。
答案解析:同样地,我们需要定义一个图书类,包括图书名称、作者、出版社等属性,并实现相应的方法来实现信息的录入、查询和删除功能。
在主函数中创建图书对象,调用相应的方法即可实现图书管理系统。
3. 设计一个C++程序,模拟实现一个简单的银行账户管理系统,包括账户余额、存款、取款等功能。
答案解析:在这个问题中,我们需要定义一个银行账户类,包括账户余额、存款、取款等属性,并实现相应的方法来实现账户管理系统。
在主函数中创建账户对象,调用相应的方法即可实现银行账户管理系统。
通过以上习题的解答,我们可以看到C面向对象程序设计的重要性和实际应用。
通过不断地练习和实践,我们可以更好地掌握面向对象程序设计的知识和技能,提高编程能力,为今后的工作和学习打下坚实的基础。
希望同学们能够认真对待课后习题,不断提升自己的编程水平。
《c面向对象程序设计》期末考试试题2012题目
(C)函数重载(D)名字空间2012-2013学年第2学期2012级《C++面向对象程序设计》期末考试试题(A 卷)考试时间:2013年6月26日班级 学号 姓名◊本试卷满分100分;◊请将答案写在答题纸上,写明题号,不必抄题,字迹工整、清晰;◊请在答题纸和试题纸上都写上你的班级,学号和姓名,交卷时请将试题纸、答题纸和草纸 一并交上来。
一、单选题(共12分,每题2分)1.C++中解决命名冲突的机制是:(A)友元(B)虚函数2.下列哪个不应该出现在头文件中:(A) extern int count;(C) void fun() (/* 略 */}3.下列哪个属于函数重载:(B) const int count=10;(D) class Time {/* 略 */};4.5.6.二、1.2.3.4.5.6.7.8.9.10.(A) int fun(); float fun();(C) int fun(int); int fun(const int &);定义类A 的成员函数A*f(Aa)const 时,下列哪个适合作为函数返回值:(A)&a (B)类A 中定义的类型为A*的静态数据成员(C) this (D) dynamic_cast<A *>(&a)不同的对象收到同一消息可以产生完全不同的结果,这一现象称作:(A)继承(B)多态(C)动态绑定 (D)静态绑定若类A 仅在其成员函数fun 中定义并使用了类B 的一个对象,类A 其他部分的代码都不涉及类B,那么类A 与类B 的关系最可能是:(A)依赖(B)继承(C)聚合(D)组合判断正误,对于你认为错误的论述,说明原因或举出反例。
(共20分,每题2分)代码double dval; float *pi = &dval;中会发生隐式类型转换,因此不存在语法错误。
己知类A,且语句const Aa; a.fun();是合法的,则fun()一定是常成员函数。
2011-2012-2课程表(2012.2.27)
英语 数字印刷机操 印刷成本核算 刘春伟 作与维护 北校区1#楼 1#415 北校区1#516 420 崔鹏 宋世杰 1-16周 1-16周
特种印刷 实习工厂 宋世杰 1-16周
信息 Z1101 计算机应用技 术
英语 袁佰清 1#403
数据库应用技 术 3#101D 祁春霞 1-12周
英语 袁佰清 1#402
面向对象技术 北校区1#楼 508多媒体 张开利 1-16周
面向对象技术 北校区3#楼 201AB 张开利 1-16周
微机原理及应 用 北校区3#楼 614机房\8-15 周上\北校区 东阶东阶二 \1-7,16周上 张世庆
脚本程序设计 北校区 3#201AB 杨艳玲 1-16周
数据库应用技 术 北校区1#楼 406多媒体 祁春霞 1-12周
星期五 1-2 3-4 5-6 7-8 1-2
星期六 3-4
信息 Z1007 计算机网络技 术 英语 刘春伟 116周
韩语404
1#404
C/S系统程序 设计 北校区1#楼 508 商务综合(动 商务综合(动 王星峰 态网页技术、 态网页技术、 1-16周单周 商务网站规划 商务网站规划 设计与实施) 设计与实施) 商务综合(动 北校区1#520 北校区1#520 态网页技术、 王毅 王毅 商务网站规划 1-16周 1-16周 设计与实施) 北校区1#520 王毅 1-16周7.8节
星期五 3-4 5-6 7-8
形式与政策 张雅杰 南阶梯 9.11.13.15周
星期六 1-2 3-4
信息 Z1001 计算机应用技 术 COREDRAW 北校区3#楼 614机房 杨艳玲 1-16周 信息 Z1002 计算机应用技 术 智能控制与高 级应用 北校区3#楼 614机房 张俊芳 1-16周
数学学院2011-2012学年第二学期专业课程表(新)
近世代数 3-109 罗家贵
离散数学II 离散数学II 3-603 廖秋明
常微分方程 101单周 1-101单周 徐士河 离散数学II 离散数学II 101双周 1-101双周 廖秋明 常微分方程 101单周 1-101单周 徐士河 离散数学II 离散数学II 101双周 1-101双周 廖秋明
软件系统基 础 实孔丽英
数学分 析续论 2-320 罗群
公司理财 1-209 陈树敏
数学模型 515单周 2-515单周 实-双周 吴晓
2009级信 2009级信 息与计算 科学 彭武建
30
信息论基础 2-320 黄国祥
信息安全理 现代密码学 论 实- 2-320 周方敏 梁亚娜
信息论基础 315双周 高等代数 面向对象的程 算法与数据 1-315双周 续论 序设计 2 结构 黄国祥 2-320 -320 2-320 信息安全理论 孔丽英 钟一兵 徐勇 实-单周 梁亚娜 概率论与数 理统计 1-109 陆庆松 概率论与数 理统计 1-109 陆庆松 离散数学I 离散数学I 1-109 廖秋明 离散数学I 离散数学I 1-109 廖秋明 多媒体技术 1-316 向振兴 多媒体技术 1-316 向振兴
数学与信息科学学院2011-2012学年度第二学期数学专业课程总表( 数学与信息科学学院2011-2012学年度第二学期数学专业课程总表(二) 2011 学年度第二学期数学专业课程总表
星期一 专业班级 人数 1-2节 3-4节 5-6节 7-8节 晚上 1-2节 3-4节 5-6节 7节 晚上 1-2节 3-4节 5-6节 7-8节 晚上 1-2节 3-4节 5-6节 晚上 1-2节 3-4节 5-6节 7节 晚上 星期二 星期三 星期四 星期五
2011~2012学年第二学期C语言期末考试卷答案(A卷)
2011~2012学年第二学期C语言期末考试卷答案(A卷)专业班级:学号:姓名:一、选择题(用铅笔把选中的方格涂黑20×1=20分)1 2 3 45 6 7 89 10 11 1213 14 15 1617 18 19 2021 22 23 2425 26 27 2829 30二、填空题(25×2=50分)1. a-b==b-c2. 1<=x<log(10)3. 14. continue5. 56. 87. 108. 13 11 129. 8 10. 2 2 111. 1 0 0 12. 1 2 013. 3 5 8 14. f(a)*f(b)>015. (a+b) /2 16. f(x)*f(a)或y*f(a)17. cos 18. n%i==0或!(n%i)19. a[k++]=i 20. 021. prime(j) 22. NODE23. p2 24. p2->next25. head三、编程题(10×2=20分)1.编写函数int frinum(long s[][2],long n)实现以下功能:找到2 n范围内的所有亲密数对,将这些亲密数对保存到s指向的二维数组中。
函数返回s数组中存储的亲密数对的对数。
编写函数main实现以下功能:求3000以内的亲密数对并输出。
说明:如果A的全部真因子(包括1,不包括A自身)之和等于B;B的全部真因子之和等于A,则称整数A和B为一对亲密数。
#include <stdio.h>int frinum(long s[][2],long n){ long a,b,m,i,k=0;for(a=2;a<=n;a++){ for(b=0,i=1;i<=a/2;i++)if(!(a%i)) b+=i;for(m=0,i=1;i<=b/2;i++)if(!(b%i)) m+=i;if(m==a&&b>m){ s[k][0]=a; s[k][1]=b; k++; }}return k;}void main(){ int i,j; long n,s[20][2];j=frinum(s,3000);for(i=0;i<j;i++)printf("\n( %ld,%ld )",s[i][0],s[i][1]);}2.编写函数int arms(int ar[])实现以下功能:将所有3、4位Armstrong数存入数组ar中,函数返回这些Armstrong数的个数。
《Java面向对象程序设计》科目考试卷及答案
安徽财贸职业学院2011—2012学年第二学期 《Java 面向对象程序设计》期末试卷(B 卷)适用班级:软件1101一、单选题(每小题1分,共30分)1.在MyEclipse 中,( )视图可以将项目中包含的文件及层次结构展示出来。
A) Package B)Declaration C)Navigator D) Console 2.下列标识符中,正确的是( )。
A)class B) 123_rr C) _lei D) test&12 3.下列的( )选项可以正确用以表示八进制值8。
A )0x8 B )0x10 C )08 D )010 4.以下哪个不是Java 的原始数据类型( ) A) int B) boolean C) float D) Char 5.下列有关Java 布尔类型的描述中,正确的是( ) A)一种基本的数据类型,它的类型名称为boolean B)用int 表示类型C)其值可以赋给int 类型的变量 D)有两个值,1代表真,0代表假6.在Java 中,不属于整数类型变量的是( ) A) double B) long C) int D) byte 7.以下do-while 语句构成的循环执行次数是( )。
int k=0;do { ++k ;}while(k<1);A) 一次也不执行 B) 执行1次 C) 无限次 D) 有语法错误,不能执行8.表达式(1/0<1)&& (12==0) 的值为( )。
A) true B) false C) 0 D) 运行时抛出异常 9.以下( )表达式不可以作为循环条件 A) i=5 B )i<3 C) count==i D) bEqual=str.equals("q") 10.下列数组初始化正确的是( ) A) int score[5] = {90,12,34,77,56}; B) int[5] score = new int[];C) int[] score = new int[5]{90,12,34,77,56};班级_______ 考号________ 姓名______________________________装______订______线____________________________________________________________________________D) int score[] = new int[]{90,12,34,77,56};11.若有定义:byte[] x={11,22,33,-66};其中0≤k≤3,则对x数组元素错误的引用是()A) x[5-3] B) x[k] C) x[k+5] D) x[0]12.以下代码的输出结果是()。
南开大学化学学院第二学期课表
化学院本科生2011—2012学年第二学期课程表
2011级化学专业
化学院本科生2011—2012学年第二学期课程表
2011级材料专业
化学院教学办
化学院本科生2011 —2012 学年第二学期课程表
2011级分子专业
化学院教学办
化学院本科生2011—2012学年第二学期课程表
2010级化学专业
化学院教学办
化学院本科生2011—2012学年第二学期课程表
2010级材料专业
化学院教学办
化学院本科生2011—2012学年第二学期课程表
2010级分子专业
化学院教学办
化学院本科生2011—2012学年第二学期课程表
2009级化学专业
化学院本科生2011—2012学年第二学期课程表
注:09级化学、材料专业同学选课时一定要选实践教学
化学院本科生2011—2012学年第二学期课程表
2009级分子专业
化学院教学办。
《C++面向对象程序设计》
《C++面向对象程序设计》课程设计报告(2011— 2012学年第 2 学期)题目:学校人员信息管理系统专业:计算机科学与技术班级:11计算机科学与技术姓名学号:XX1XX指导教师:XX成绩:计算机科学与技术系2012 年 6 月21 日一、设计目的课程设计是学习C++程序设计的一个重要环节。
通过课程设计的综合训练,可以使学生在学习理论知识并在实验中进行了一系列基本训练的基础上,进一步加强学生对实际问题分析、编程和动手能力的提高,强化综合应用能力,扩充知识,开阔视野。
学生在熟练运用Visual C++ 6.0以后,通过使用Visual C++ 6.0的训练,扩展程序设计的知识面,提高综合应用C++知识能力的要求。
二、设计内容设计一个学校人员信息管理系统,可以实现对学校人事的信息管理。
基本功能要求如下:(1)建立人员信息数据。
包括学号(教工号)、姓名、性别、专业(工作系别部门)、出生时间、年龄。
其中,1)对学生,还包括3门课的成绩(Chinese, English, Mathematics)。
三门课的成绩为int 型数据。
2)对教师,还包括职称(如教授/副教授/讲师),工资(如1432.50)。
工资为double型数据。
(2)使用继承的方法构造3个类,对相应的对象放置10个学生(教师)信息。
P eople类——虚基类S tudent类——派生类T eacher类——派生类(3)数据基本功能:增加数据:AddData()函数。
删除数据:DeleteData()函数。
根据学号(教工号),删除该人员的记录。
修改数据: UpdateData()函数。
对学生,根据学号,能够修改3门课的成绩;对教师,根据教工号,能够修改“职称”和“工资”。
查找功能:1)SearchData()函数。
要求能够根据“学号(教工号)”、“姓名”、“性别”三项实现查询,并能在屏幕上显示满足条件的数据记录。
2)FindMaxData()函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
private:
A* pa;
};
a)现需要以引用计数的方法,重新实现类B,要求பைடு நூலகம்A不得做任何修改。
b)请在a)的基础上,以Copy On Write的方式修改类B的实现,
使得B类对象可以访问成员B类的成员SetData(int);(即可以修改
每个英雄至多可有一匹马作为英雄的坐骑(saddle),初始时,英雄没有坐骑;英雄可以指定某匹马为坐骑。
英雄和其坐骑一起要经常与其它马发生战斗。若失败,则失去原有的坐骑。
战斗中,由英雄一方先发起攻击,然后马再攻击英雄及其坐骑,之后英雄一方再攻击,之后马再攻击英雄一方,。。。。,直到一方胜利。
~B( ) {delete pa;}
B(const B& rhs) {
pa=new A(*rhs.pa);
}
B& operator=(const B& rhs) {
if ( this!=&rhs ) {
一个已婚男人可以其妻子离婚;
一个未婚女人可以和一个未婚男人结婚;
一个已婚女人可以其丈夫离婚;
一个已婚男人可以“知道”其妻子;
一个已婚女人可以“知道”其丈夫;
6.现有类A和类B
class A {
public:
A(int num):mData(num){ }
用例可为:警察局S有警察p1,p2,p3,贼有t1,t2,t3,t4, p1抓或t2,t3,p2抓获t4,p3没抓获任何贼。t1的初始金钱为500,
t2的初始金钱为800,t3的初始金钱为300,t4的初始金钱为1000,S的初始声望为100,警察的初始奖金为0。
输出最终S的声望,每个警察的奖金数。
战斗中,若英雄的生命力减少至0,则英雄失败;若英雄坐骑的生命力减少至0,则英雄一方失败且失去坐骑;若马的生命力减少至0,则表示英雄一方胜利。
英雄每胜利一次,英雄的生命力增加10;
英雄每失败一次,英雄的法力减少1级,至多减少至1级;
无论胜利与失败,战斗后,英雄的其它属性值、坐骑、马的属性值,全部恢复。
~A( ) { }
int GetData( ) const { return mData; }
void SetData(int data) { mData = data; }
private:
int mData;
};
class B {
public:
B(int num=0):pa(new A(num)) { }
B类对象中pa指针指向的A类对象的数据成员。也就是说,使用B类对象时,
对于以只读方式访问A类的成员,使用引用计数;
对于以写方式访问A类的成员,要先进行深赋值,然后再写数据)。
3. 在2的基础上,再加上1中的类,试一试。
4.一个驯马游戏有如下描述:
游戏里有多个英雄(Hero),玩家可以选择其中一个并扮演它,每个英雄有自己的生命力(hitpoint),法力(power);
游戏中还有马(Horse),每匹马有自己的生命力(hitpoint),攻击力(damage),防御力(defense),速度(speed)。
战斗的算法表示如下:
英雄一方攻击马,给马造成的伤害(马的生命力减少值)为:坐骑造成的伤害 + 英雄造成的伤害
坐骑造成的伤害为:坐骑的攻击力*(坐骑的速度+英雄的法力) - 马的防御力*马的速度,且值若小于1,则取1
英雄造成的伤害: 英雄的法力*20
马攻击英雄一方,给英雄一方造成的伤害为:
给英雄和坐骑各造成的伤害: 马的攻击力*马的速度 - 坐骑的防御力*坐骑的速度,且值若小于1,则取1
根据上述描述,定义相应的类,并给出具体实现,最后给出测试用的main函数。
5.用简单双向关联和关联类的形式分别实现男人(Man)和女人(Woman)间的一对一关系。
一个未婚男人可以和一个未婚女人结婚;
delete pa;
pa=new A(*rhs.pa);
}
return *this;
}
A* operator->( ) const {return pa;}
void GetData() const { return pa->GetData();}
类间关联
1. 贼(Thief)偷窃行人,每个行人都有随身带的钱,贼偷窃一个行人,他的钱就增加相应的钱包里的钱数。
请给出Thief类和Walker类。
2. 警察局有多名警察,每个警察抓获一名贼,警察局的声望就增加1点,该警察的奖金就增加100元,贼的金钱减为0。
请实现相关的警察局、警察、贼的类。