实验5 类和对象
- 格式:doc
- 大小:26.50 KB
- 文档页数:1
高中物理五大实验类型实验总结在高中物理学习中,实验是一项非常重要的环节,通过实验可以帮助学生巩固理论知识,提高动手实践能力,培养科学精神和创新意识。
本文从物理实验的分类和特点出发,总结了高中物理学习中常见的五大实验类型及其相关知识。
物理实验分类按照物理学规律的不同,物理实验可以分为以下五大类型:1.等比实验: 在实验中变量之间的比例关系不变。
2.反比实验: 在实验中变量之间的比例关系为反比关系。
3.等差实验: 在实验中变量之间的差值关系不变。
4.反馈实验: 在实验中留下影响自身的反馈信息,对自身进行修正。
5.综合实验: 在实验中同时涉及到以上多个类型的关系。
以上实验类型旨在通过不同的方式,探究物理学的不同性质和规律,展现物理学的多样性和丰富性,增加实验的趣味性和创新性。
五大实验类型下面针对不同类型的实验,总结实验的特点和重点。
1. 等比实验等比实验是一种变量比例不变而变化实验,常用于研究物理量的函数关系。
其特点是同样的变化量在实验不同阶段中都是等比变化的,因此需要注意在实验过程中保持变化量的比例关系不变。
例如在研究弹簧的胡克定律关系时,需要保证弹簧拉伸长度与所受拉力成正比,这就是一个等比实验。
2. 反比实验反比实验是一种变量比例呈反比关系而变化实验。
其特点是变量存在着互为倒数的关系,因此需要注意对变量的量纲和单位的选择。
例如在研究牛顿定律中质量与重力的反比关系时,需要保持质量与重力除法的结果不变,即所受重力和质量之比保持不变。
3. 等差实验等差实验是一种变量之间的差值保持不变而变化的实验,其特点是变量之间的关系可以用等差数列的形式表示。
例如在研究匀变速直线运动时,可以通过测量相同时间间隔内运动物体发生的位移变化量,来确定运动物体的速度和加速度。
4. 反馈实验反馈实验是一种在实验过程中留下对实验自身进行修正的反馈信息的实验。
例如在研究摩擦力时,只有检测到实验中发生的摩擦力,引起运动状态的变化,才能对实验进行修正和调整。
从实验内容和目的来划分,可以将化学实验分为哪几类实验?
陕西省安康市汉滨区建民初中吕娟娟
初中化学实验目的分类:
1、验证性实验:如物质在氧气中的燃烧;二氧化碳的性质
等
2、探究性实验:蜡烛在空气中的燃烧,吸入呼出气体
3、感知性实验:酸碱度的测定;CO的性质
4、兴趣性实验:魔棒点灯;烧不坏的手帕
5、制取类实验:氧气制取;二氧化碳制取;指导剂的制取
等
初中化学实验内容分类:
(一)分离提纯类,如工业制氧气、水的净化、粗盐提纯;
(二)物质转化类:
①物质制备实验,如氧气的制取、二氧化碳的制取等;
②物质性质实验,如氧气性质实验、二氧化碳性质实验、金属性质实验、酸、碱性质实验等;
③测量数据类实验,如拉瓦锡测定空气组成、酸碱度测量(pH 测定)实验均属于数据测量类实验;
(三)物质的鉴定和鉴别类,如氧气的检验方法,二氧化碳的检验方法,酸碱性溶液的检验等。
(四)家庭小实验:指导剂的制取
实验形式分类:
演示实验;分组实验;探究性实验。
实验5:Java类与对象一、实验目的(1)使用类来封装对象的属性和功能;(2)掌握Java类的定义。
(3)java对象的使用二、实验任务(1)按要求编写一个Java程序。
(2)按要求完善一个Java程序,编译、运行这个程序,并写出运行结果。
三、实验内容1.编写一个Java程序片断,以定义一个表示学生的类Student。
这个类的属性有“学号”、“班号”、“姓名”、“性别”、“年龄”,方法有“获得学号”、“获得班号”、“获得性别”、“获得姓名”、“获得年龄”、“获得年龄”。
2.为类Student增加一个方法public String toString( ),该方法把Student类的对象的所有属性信息组合成一个字符串以便输出显示。
编写一个Java Application程序,创建Student类的对象,并验证新增加的功能。
class Student{long studentID;int classID;String name;String sex;int age;public Student(long studentID,int classID,String name,String sex,int age){ this.studentID=studentID;this.classID=classID;=name;this.sex=sex;this.age=age;}public long getStudentID(){return studentID;}public int getClassID(){return classID;}public String getName(){return name;}public String getSex(){return sex;}public int getAge(){return age;}public String toString(){return "学号:"+getStudentID()+"\n班号:"+getClassID()+"\n姓名:"+getName()+"\n性别:"+getSex()+"\n年龄:"+getAge();}}public class StudentDemo{public static void main(String[] args){Student s1=new Student(90221,2,"Tom","male",20);System.out.println(s1.toString());}}运行结果:学号:90221班号:2姓名:Tom性别:male年龄:202.程序填空,程序中包含以下内容:一个学生类(Student),包含:属性:学号s_No,姓名s_Name,性别s_Sex,年龄s_Age。
实验一类和对象一、实验目的:掌握类的设计和对象的创建及相关知识点如对象数组、类聚合、友元函数、静态成员。
二、实验内容:1、设计圆类,求两个圆的位置关系;2、设计圆类和直线类,求直线与圆的位置关系;3、设计学生类,求某班学生成绩的最高分、最低分及平均分;4、设计部门类和教师类,其中部门类成员为教师类的子对象;5、设计家庭银行账户类,其中账户资金为静态数据成员,为家庭成员共享;6、设计复数类,友元函数实现复数的加减。
三、实验过程:1、根据实验题目确定需要设计哪些类、各类中包含哪些数据成员和函数成员,设计各成员的访问权限,设计数据成员的数据类型,设计函数成员的函数原型;2、给出类设计的程序实现,特别要注意重载构造函数的实现;3、在主函数中完成题目中的逻辑,一般情况下需要创建相关类的对象,通过对象对成员函数的调用或者通过对象指针对成员函数的调用完成相应的功能。
四、参考程序代码:1、设计圆类,求两个圆的位置关系#include <iostream>#include <math.h>using namespace std;class Circle{private:float a,b,r;public:Circle(float c,float d,float e){a=c;b=d; r=e;}friend void position(Circle &,Circle &);};void position(Circle &c1,Circle &c2){float n,m,p;p=sqrt((c1.a-c2.a)*(c1.a-c2.a)+(c1.b-c2.b)*(c1.b-c2.b)); n=fabs(c1.r-c2.r);m=c1.r+c2.r;if(p>m)cout << "相离";if(p==m)cout << "相切";if(p<m)cout << "相交";}int main(){float a,b,c,d,e,f;cin >> a >> b >> c >> d >> e >> f ;Circle c1(a,b,c),c2(d,e,f);position(c1,c2);return 0;}运行结果:2、设计圆类和直线类,求直线与圆的位置关系#include<iostream>#include<math.h>using namespace std;class Circle//圆类{private:float x,y,r;public:Circle(float a,float b,float c) {x=a;y=b;r=c;}float getx(){return x;}float gety(){return y;}float getr(){return r;}};class Line//直线类{private:float a,b,c;public:Line(float x,float y,float z){a=x;b=y;c=z;}void position(Circle c1){float d=fabs(a*c1.getx()+b*c1.gety()+c)/sqrt(a*a+b*b) ;//圆心到直线的距离if(d<c1.getr())cout << "相交";if((d-c1.getr())<0.000001)cout << "相切";cout << "相离";}};int main(){Line l1(3,3,4);//创建直线对象Circle c1(-23,3,7);//创建圆对象l1.position(c1);return 0;}运行结果:3、设计学生类,求某班学生成绩的最高分、最低分及平均分#include <iostream>#include <string.h>using namespace std;class Student{private:char name[20],xuehao[20];float math;public:Student(){}Student(char *na,char *xu,float ma):math(ma) {strcpy(name,na);strcpy(xuehao,xu);}void set(char *na,char *xu,float ma){math=ma;strcpy(name,na);strcpy(xuehao,xu);}char *get_name(){return name;}char *get_xuehao(){return xuehao;float get_math(){return math;}};void max_min(Student stu[],int n){Student max,min;max=min=stu[0];for(int i;i<n;i++){if(stu[i].get_math()>max.get_math())max=stu[i];if(stu[i].get_math()<min.get_math())min=stu[i];}cout << "学生成绩最高:" << max.get_name() << "," << max.get_xuehao() << "," << max.get_math() << endl;cout << "学生成绩最低:" << min.get_name() << "," << min.get_xuehao() << "," << min.get_math() << endl;}void ave(Student stu[],int n){float sum=0;for(int i=0;i<n;i++){sum=sum+stu[i].get_math();cout << "ave=" << sum/n;}int main(){char na[20],xu[20];float ma;Student stu[20];int n;cout << "请输入学生总人数"; cin >> n;for(int i=0;i<n;i++){cin >> na >> xu >> ma ; stu[i].set(na,xu,ma); }max_min(stu,n);ave(stu,n);return 0;}运行结果:4、设计部门类和教师类,其中部门类成员为教师类的子对象#include <iostream>#include <string.h>using namespace std;class Department{private:int dep_num;char dep_master[20];char dep_name[20];public:Department(){}Department(int num,char *ma,char *na){dep_num=num;strcpy(dep_master,ma);strcpy(dep_name,na);}void show(){cout << dep_num << "," << dep_master << "," << dep_name ; }};class Teacher{private:char name[20];char haoma[20];Department dep;public:Teacher(char *n,char *nu,int num,char *ma,char *na):dep(num,ma,na) {strcpy(name,n);strcpy(haoma,nu);}void show(){dep.show();cout << "," << name << "," << haoma << endl;}};int main(){Teacher hp("wanghai","12345",6,"kiki","computer");hp.show();return 0;}运行结果:5、设计家庭银行账户类,其中账户为静态数据成员,为家庭成员共享#include <iostream>#include <string.h>using namespace std;class Familymember//家庭成员类{private:char membername[10];//成员名public:static float account;//共享账户资金 Familymember(char *name);static void save(float money);//存钱 static void pay(float money);//支出 static void show(); //显示账户余额};float Familymember::account=0;Familymember::Familymember(char *name) {strcpy(membername,name);}void Familymember:: save(float money) {account= account+money;}void Familymember:: pay(float money){account= account-money;}void Familymember:: show(){cout<<account<<endl;}int main()//主函数{ Familymember husband("wang"),wife("Li"); husband.save(10000);wife.pay(3000);wife.save(5000);wife.show();husband. show();}运行结果:6、设计复数类,友元函数实现复数的加减#include <iostream>using namespace std;class Fushu{private:float ss,xs;public:Fushu(){}Fushu(float a,float b){ss=a;xs=b;}friend Fushu jiafa(Fushu &f1,Fushu &f2){return Fushu((f1.ss+f2.ss),(f1.xs+f2.xs)); }friend Fushu jian(Fushu &f1,Fushu &f2){return Fushu((f1.ss-f2.ss),(f1.xs-f2.xs)); }void show(){cout << ss << " + " << xs << "i" << endl; }};int main(){Fushu f1(2,3),f2(4,5);Fushu f3,f4;f3=jiafa(f1,f2);f4=jian(f1,f2);f3.show();f4.show();return 0;}运行结果:。
面向对象程序设计实验指导书(适用:电子信息11级)彭召意陶立新编写计算机与通信学院2014.9目录实验一 C++基础的应用 (1)实验二类和对象的应用 (3)实验三类的构造函数、析构函数的应用 (4)实验四友员和运算符重载 (5)实验五类的继承与派生 (6)实验六类的多态性与虚函数 (7)附录:各实验的程序代码 (8)实验一 C++基础的应用(实验课时:2 实验性质:设计)实验名称: C++基础的应用实验目的: (1)进一步学习VC++6.0开发环境及程序调试方法。
(2)练习C++函数的定义及使用;(3)练习C++数组的定义及使用;(4)练习C++指针的定义及使用;(5)练习C++结构体的定义及使用;(6)练习多文件的程序的编译和运行方法;实验设备:(1)硬件:个人微机(配置不低于:CPU为P4,主频1.6G,内存256MB,硬盘40GB);(2)软件:操作系统为WindowsXP(或2000、server2003等),工具软件为Visual C++6.0。
实验内容: (1)熟悉Visual C++6.0编译系统的常用功能,特别是debug调试功能;(2)编程1:编写一个程序c1.cpp,用来求2个或3个整数的最大数。
要求:用重载函数的方法来求最大数;函数原型:int max( int a, int b) 和int max( int a, int b,int c)。
(3)编程2:编写一个程序c2.cpp,求:a!+ b! + c!的值。
要求:使用递归函数。
主程序和函数分开到两个源程序文件中,分别进行编译后,再运行;(4)编程3:有一个3*4的矩阵,要求编程求出其中值最大的那个元素的值,以及其所在的行号和列号;(5)编程4:建立一个动态链表并进行输出和删除管理。
链表的每个节点为学生信息,包括:学号,姓名,性别,下一学生信息的指针。
程序的工作:(a)建立三个学生信息的节点,然后顺序输出该三个学生信息;(b)删除中间的节点,再顺序输出学生信息。
《程序设计语言(Java)》上机实验及综合设计评分标准一、实验总体安排《程序设计语言(Java)》课程面向全校非计算机专业理工类本科生,是程序设计语言类必修的公共基础课之一。
该课程重点介绍Java语言的基本语法和面向对象编程方法。
为配合课堂教学,本课程安排了32学时的课内上机和10学时的学生课外自主上机,实验内容由3个基本单元和综合设计共4个单元组成,各实习单元的具体内容和学时安排(包括自主上机的10学时)如下:第一单元(10学时):Java编程基础,包括课堂教学的第1,2,3章。
主要涉及JDK开发工具的使用、Java基本语法和流程控制语句的使用。
第二单元(10学时):Java编程提高,包括课堂教学的第4,5,6章。
主要涉及数组、向量和字符串、类和对象的创建和使用以及Java异常处理。
第三单元(12学时):Java编程进阶,包括课堂教学的第7,8,9,10章,主要涉及Java图形界面设计和Swing组件的使用、Applet程序涉及以及数据流方面的知识。
第四单元(10学时):综合设计。
根据教师所给出的参考课题或自选课题,综合应用所学的Java编程知识和面向对象程序设计方法,设计一个相对完整的Java应用程序或Java Applet小应用程序。
说明:每次上机实习,学生应按实验要求认真完成实习内容。
教师应认真指导学生进行上机实习,检查实验情况,把好上机实习关。
学生完成前三个基本单元的实习内容后,需填写相应的《上机实验报告》,综合设计单元需按要求提交相关设计的电子文档和相应的《综合实践报告》,教师则根据完成情况按下述评分标准给出成绩。
二、上机实验评分标准《程序设计语言(Java)》实验课为独立设课,课程的考核和成绩记载方式请参见该课程的考核要求。
对于3个基本实验单元,每个单元均由一定数量的相关实验组成,各单元的评分标准如表1所示。
表1 上机实验评分标准说明:每个学生需提交上述单元的《上机实验报告》,共1个。
[实验报告]类和对象
一、实验目的
通过本次实验,了解抽象的一种程序设计概念“类”和“对象”,理解类之间的继承与多态性,以及封装对对象的各种属性和行为,实现软件对象模型与真实世界对象间的映射。
二、实验内容
1.定义类与对象
(1)类是代表一类实体的抽象。
它包含了一个共同拥有的结构和行为。
类是面向对象程序设计的基本元素。
(2)对象是一个实例。
它拥有一个特定于其类型的属性,并表现出对应的行为。
对象是程序中实际的可操作的元素。
2.类的成员
(1)类的成员可以是变量,函数,常量等等。
(2)变量:类的成员变量可以存储数据成员和提供给类的方法,这些变量被称为实例变量;类变量存储类及其对象的信息。
(3)函数:类的成员函数用于封装一定的行为或对对象的设置,它可以访问实例变量和类变量的值,以及实现一定的功能。
多态性是指一个类可以根据不同环境要求而采用不同的行为。
接口就是把数据和逻辑封装在一起的内部接口。
实验报告学院工学院课程名称C++程序设计第 1 次实验实验名称:类和对象进一步讨论专业班级姓名学号成绩指导老师签字实验时间2015年10月30日学生实验室守则一、按教学安排准时到实验室上实验课,不得迟到、早退和旷课。
二、进入实验室必须遵守实验室的各项规章制度,保持室内安静、整洁,不准在室内打闹、喧哗、吸烟、吃食物、随地吐痰、乱扔杂物,不准做与实验内容无关的事,非实验用品一律不准带进实验室。
三、实验前必须做好预习(或按要求写好预习报告),未做预习者不准参加实验。
四、实验必须服从教师的安排和指导,认真按规程操作,未经教师允许不得擅自动用仪器设备,特别是与本实验无关的仪器设备和设施,如擅自动用或违反操作规程造成损坏,应按规定赔偿,严重者给予纪律处分。
五、实验中要节约水、电、气及其它消耗材料。
六、细心观察、如实记录实验现象和结果,不得抄袭或随意更改原始记录和数据,不得擅离操作岗位和干扰他人实验。
七、使用易燃、易爆、腐蚀性、有毒有害物品或接触带电设备进行实验,应特别注意规范操作,注意防护;若发生意外,要保持冷静,并及时向指导教师和管理人员报告,不得自行处理。
仪器设备发生故障和损坏,应立即停止实验,并主动向指导教师报告,不得自行拆卸查看和拼装。
八、实验完毕,应清理好实验仪器设备并放回原位,清扫好实验现场,经指导教师检查认可并将实验记录交指导教师检查签字后方可离去。
九、无故不参加实验者,应写出检查,提出申请并经批准后,方可补做。
十、自选实验,应事先预约,拟订出实验方案,经实验室负责人同意后,在指导教师或实验技术人员的指导下进行。
十一、实验室内一切物品未经允许严禁带出室外,确需带出,必须经过批准并办理手续。
预习报告实验基本原理与设计(包括实验方案设计、实验手段的确定、电路原理图设计或算法描述)1、考察类的对象数组:建立一个对象数组,内放5个学生的数据(学号,成绩),用指针指向数组首元素,输出第1,3,5个学生的数据。
类和对象的实验报告类和对象的实验报告引言:在计算机科学领域,类和对象是面向对象编程(Object-Oriented Programming,简称OOP)的核心概念。
通过类和对象的使用,可以更好地组织和管理代码,提高代码的可重用性和可维护性。
本实验旨在通过实际操作,深入理解类和对象的概念以及它们在程序设计中的应用。
实验目的:1. 掌握类和对象的基本概念;2. 理解类的属性和方法的定义与使用;3. 熟悉对象的创建和使用过程;4. 学会通过类和对象实现程序的模块化和代码的重用。
实验过程:1. 定义类:首先,我们需要定义一个类来描述某个具体事物的属性和行为。
以“动物”为例,我们可以定义一个名为“Animal”的类,其中包含属性(如名称、年龄)和方法(如叫声、移动)。
2. 创建对象:在类的基础上,我们可以创建一个或多个对象,每个对象都是类的一个实例。
例如,我们可以创建一个名为“cat”的对象,代表一只猫。
3. 访问对象的属性和方法:通过对象,我们可以访问和修改类中定义的属性,并调用类中定义的方法。
例如,我们可以通过“”来获取猫的名称,通过“cat.age”来获取猫的年龄,通过“cat.meow()”来让猫发出叫声。
4. 类的继承:在某些情况下,我们可以创建一个新的类,该类继承了已有类的属性和方法,并可以在此基础上进行扩展。
例如,我们可以创建一个名为“Dog”的类,它继承了“Animal”类的属性和方法,并增加了额外的方法“bark()”。
实验结果:通过本次实验,我们成功地定义了“Animal”类和“Dog”类,并创建了相应的对象。
我们可以通过对象访问类中定义的属性和方法,实现了对动物的描述和操作。
此外,我们还学会了如何使用类的继承,提高了代码的重用性和可维护性。
实验总结:通过本次实验,我们深入理解了类和对象的概念,并掌握了它们在程序设计中的应用。
类和对象的使用可以更好地组织和管理代码,提高代码的可重用性和可维护性。
第一题.目的:验证内部类对象总与创建它的外部类对象关联 (1)第二题.定义一个Father类 (1)第三题.修改BankAccount (2)第四题.拷贝自身重要数据 (3)第五题.连锁店问题 (4)第六题.修改外围类对象数据,影响内部类行为 (4)第七题.迭代器的局部类实现 (6)第一题参考答案 (7)第二题参考答案 (7)第三题参考答案 (8)第四题参考答案 (10)第五题参考答案 (10)第六题参考答案 (11)第七题参考答案 (11)实验五. 内部类,局部类,匿名类背景知识内部类内部类对象的创建局部类匿名类实验目的1.掌握内部类,局部类,匿名类概念2.学习定义内部类,局部类,匿名类。
3.学习创建内部类,局部类,匿名类对象。
实验内容和步骤第一题.目的:验证内部类对象总与创建它的外部类对象关联1.定义一个类A,它有一个内部类B.2.定义B的方法g,它访问A的数据成员。
3.定义A的方法f,它访问B的数据成员,注意必须指明那个内部类对象的数据成员。
4.确保类A有方法修改A的域。
5.确保类B有方法print,输出A的域。
6.定义类C,它只有一个main方法。
在main方法体内创建A类对象a。
a作为外围对象创建B类对象b;7.验证:每个内部类对象,都有一个相关联的外部类对象,就是创建它的外部类对象。
方法:首先对象b调用print,打印a的域,然后修改a的域,最后b再次调用print,打印a的域,打印结果应该与对a的修改一致,从而说明b与a相关联。
第二题.定义一个Father类它包括:1.内部类Son,表示儿子的类,包括a)数据域phone,表示儿子电话号。
b)内部类构造方法c)CallFather方法,给父亲打电话,打印“xxx给yyy打电话”即可,xxx是儿子电话号,yyy是父亲电话号。
2.数据域phone,表示父亲电话号。
3.Son数组,保存儿子。
4.count,保存儿子个数5.构造函数。
6.给儿子打电话的方法CallSon,打印“给xxx打电话”即可,xxx是儿子电话号。
实验5 类和对象(二)实验目的:1.进一步理解类和对象的概念;2.进一步理解类的成员的访问控制的含义,公有和私有成员的区别;3.掌握构造函数和析构函数的含义与作用、定义方式和实现;4.能够根据给定的要求定义类并实现类的成员函数;5.了解C++面向对象程序设计的基本思想、基本方法和基本步骤;6.掌握MS Visual C++6.0调试C++程序的基本方法、基本步骤。
实验内容:一、基础题:1、输入下列程序,按要求进行实验,并记录实验的结果。
#include <iostream>using namespace std;class Coordinate{public:Coordinate(int x1, int y1){x=x1; y=y1;}Coordinate(Coordinate &p);~Coordinate(){cout<<"Destructor is called."<<endl;}int getx(){return x;}int gety(){return y;}private:int x, y;};Coordinate::Coordinate(Coordinate &p){x=p.x; y=p.y;cout<<"Copy initianization constructor is called."<<endl;}int main(){Coordinate p1(3,4);Coordinate p2(p1);Coordinate p3=p2;cout<<"p3=("<<p3.getx()<<","<<p3.gety()<<")"<<endl;return 0;}(1)记录程序的运行结果(2)将Coordinate类中带有两个参数的构造函数进行修改,在函数体内增加如下语句:cout<<”Constructor is called.”<<endl;重新记录程序的运行结果,并解释输出结果。
浙江理工大学信息学院面向对象程序设计实验报告实验名称:类的定义与使用学时安排:3实验类别:设计性实验实验要求:1人1组姓名:邵旸珂学号:2016329621068 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄一、实验目的1)掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装性;2)掌握类对象的定义;3)理解类的成员的访问控制的含义,公有、私有和保护成员的区别;4)掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。
能够根据给定的要求定义类并实现类的成员函数;二、实验原理介绍通过建立类及对象,用类的成员函数和对象访问类的成员;利用建立类的构造函数,完成类的成员的初始化工作;三、实验设备介绍软件需求: windows或linux下的c++编译器硬件需求: 对于硬件方面的要求,建议配置是Pentium III 450以上的CPU 处理器,64MB以上的内存,200MB的自由硬盘空间、CD-ROM驱动器、能支持24位真彩色的显示卡、彩色显示器、打印机。
四、实验内容编写一个程序,模拟电梯的功能。
功能接口包括电梯上行按钮、下行按钮、楼层选择和电梯在行驶过程中的楼层显示。
要求:1.由用户选择按上行按钮还是下行按钮,选择操作后再由用户输入要进入的楼层,进而电梯开始运行,显示所到的每一楼层层数。
2.如果是上行,则选择输入的楼层号不能比当前楼层号小,否则应给出不合法提示。
3. 如果是下行,则选择输入的楼层号不能比当前楼层号大,否则应给出不合法提示。
4.电梯一旦开始运作就会始终运行,直到窗口关闭。
5.电梯在经过不同楼层时,最好每个楼层的显示之间能有延迟,最终停靠的楼层的输出形式能更加醒目。
如果可以,在电梯最初开始运行时,能在电梯由内部显示当前日期(提示:实现这些功能时,需要调用系统api,实现时间显示功能可以使用CDate类)。
五程序清单#include <iostream>#include <ctime>#include <windows.h>using namespace std;int n,floorNumber;class Elevator{private:int floor; //电梯总的楼层数bool up; //是否上行,bool为布尔类型,可取值true或falsebool down; //是否下行int currentFloor; //当前所在楼层public:Elevator(int floor);void setUpButton(); //按下上行按钮void setDownButton(); //按下下行按钮void setFloorNumber(int floorNumber); //根据要进入的楼层电梯开始运行,并逐层显示经过的楼层int getCurrentFloor();//获得当前所在楼层void charge();int choice();};Elevator::Elevator(int f){floor =f;up=false;down=false;currentFloor=1;};void Elevator::setUpButton(){if(currentFloor>floorNumber){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED|FOREGROUND_GREEN);cout<<"您不能上行!"<<endl<<endl;}else if(floorNumber>floor){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED|FOREGROUND_GREEN);cout<<"没这一层!太高啦!您想上天?!"<<endl<<endl;}else up=true;}void Elevator::setDownButton(){if(currentFloor<floorNumber){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED|FOREGROUND_GREEN);cout<<"您不能下行!"<<endl<<endl;}else if(floorNumber<1){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED|FOREGROUND_GREEN);cout<<"没这一层!太低啦!您想入地?!"<<endl<<endl;}else down=true;}void Elevator::setFloorNumber(int floorNumber){if(up){for(;currentFloor<floorNumber;currentFloor++){ cout<<"--"<<currentFloor<<"--"<<endl;Sleep(2000);}SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED);cout<<"第"<<currentFloor<<"层到了"<<endl<<endl;up=false;}if(down){for(;currentFloor>floorNumber;currentFloor--){ cout<<"--"<<currentFloor<<"--"<<endl;Sleep(2000);}SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED);cout<<"第"<<currentFloor<<"层到了"<<endl<<endl;down=false;}}int Elevator::getCurrentFloor(){return currentFloor;}int Elevator::choice(){cin>>n;if(n==2&&getCurrentFloor()==1){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED|FOREGROUND_GREEN);cout<<"您已经在第一层了!除非您自己打洞,不然我是不会带你下去的!"<<endl<<endl;return 0;}switch(n){case 1:cout<<"请输入要进入的楼层"<<endl;cin>>floorNumber;setUpButton();setFloorNumber(floorNumber); break;case 2:cout<<"请输入要进入的楼层"<<endl;cin>>floorNumber;setDownButton();setFloorNumber(floorNumber); break;case 3:return -1;default:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREG ROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);cout<<"只能选上升和下降!您难道还想玩电梯漂移?!"<<endl<<endl; break;}SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);cout<<"当前电梯停在"<<getCurrentFloor()<<"层"<<endl;}void Elevator::charge(){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);cout<<"---请选择操作---"<<endl;cout<<"| 1.上升 |"<<endl;cout<<"| 2.下降 |"<<endl;cout<<"| 3.退出 |"<<endl;cout<<"|--------------|"<<endl;}int main(){long a;time(&a);int floor;cout<<"告诉我总共有几层"<<endl;cin>>floor;Elevator el(floor);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);cout<<ctime(&a)<<endl;cout<<"本电梯共"<<floor<<"层,欢迎您的使用"<<endl<<endl;精选文档while(1){int i=0;el.charge();i=el.choice();if(i==-1) break;}return 0;}六运行结果七实验心得实验很有趣,让我初步体会了程序猿的感受。
一、实验名称实验一用例图二、实验目的1.熟悉用例图的基本功能和使用方法。
2.掌握如何使用建模工具绘制用例图方法。
三、实验内容分析微商管理系统的需求建模,进行用例图的绘制。
四、实验步骤1.书写“用户登录购买商品信息”和“管理员管理商品”的书面用例1.1. (1)用户登录后,查找想要购买的商品;1.1. (2) “用户接口”组件数据库中,查找待购买的商品名;1.1. (3)如果不存在,则显示错误信息,返回步骤 (1),如果存在则继续;1.1. (4) “用户接口”组件判断“待购买商品”是否可以购买;1.1. (5)如果不可以,则显示出错误信息,返回步骤 (8),如果可以则继续;1.1. (6)在数据库中,添加商品订单;1.1. (7)显示购买成功信息;1.1. (8)结束1.2. (1)管理员登录后,查找的商品;1.2. (2) “业务对象”组件数据库中,查找待管理的商品名;1.2. (3)如果不存在,则显示错误信息,返回步骤 (1),如果存在则继续;1.2. (4) “业务对象”组件判断“待管理商品”是否可以管理;1.2. (5)如果不可以,则显示出错误信息,返回步骤 (8),如果可以则继续;1.2. (6)在数据库中,添加、删除或修改商品;1.2. (7)显示管理成功信息;1.2. (8)结束分析:在微商管理系统中,管理员首先登陆系统,系统验证过后,管理方可向系统查询数据,在查询后,系统会给出提示,有没有相关的数据,管理员根据系统查询的返回结果,进行下一步的操作,就是管理商品,在管理过程中,系统会对查询得到的结果判断是否可以对商品进行管理,若可以,则给管理提示,如不可以,也给相关的提示信息。
而用户则通过管理员所设置的商品信息进行查询,如果查询到相关信息,则系统给出用户可以进行购买操作的提示,如果未查询到相关信息,也给相关的提示信息。
2.1.根据实验指导书画出用户的用例图。
(1)添加一个用户用例(2)设置用户的属性:姓名,性别和用户 ID(3)设置用户的方法:选择商品和购买商品(4)绘制出用户所能进行的活动,并绘制他们之间的关系2. (1)添加一个管理员用例(2)设置管理员的属性:姓名,性别和管理员 ID(3)设置管理员的方法添加商品,删除商品和修改商品(4)绘制出用户所能进行的活动,并绘制他们之间的关系五、实验结论通过本次试验我学会了如何绘制出各个需求关系的用例图,掌握了基本的用例图使用方法。
实验5类和对象类和对象一、实验目的1、掌握类的定义和对象的创建;2、掌握构造方法的作用、格式及重载;3、掌握修饰词对成员存取权限的限制。
4、掌握实例成员、类成员的定义和使用方法。
二、实验内容1、定义储蓄账户类,并创建对象模拟银行基本操作。
2、两游戏角色决斗。
给定二个不同的角色,判定交手的胜负关系。
(选做)3、设计学生类、学校类、录取类,根据学生成绩和学校分数线,判断是否录取。
三、实验步骤说明:请将第3题代码写入实验报告实验步骤处。
1、模拟银行账户功能。
编写程序,模拟银行账户功能。
要求如下:属性:账号、姓名、地址、存款余额、最小余额。
方法:存款、取款、查询。
根据用户操作显示储户相关信息。
如存款操作后,显示储户原有余额、今日存款数额及最终存款余额。
取款时,若取款成功,显示信息提示;若最后余额小于最小余额,拒绝取款,并显示信息提示。
具体显示信息可据方便性原则自拟。
2、两游戏角色决斗。
(选做)角色1交手次数+1,生命值-1,经验值+2;角色2交手次数+1,生命值-2,经验值+3。
经验值每增加50时,生命值+1;生命值<0判为负。
生命值初始为1000,经验值初始为0。
给定二个不同的角色,判定交手的胜负关系。
提示:step1:建立角色类,给出相应的成员,并能以生命值、经验值初始化角色对象。
step2:建立fight方法,接收二个角色类型的参数,返回胜者。
step3:初始化二角色,调用fight方法。
3、根据分数录取学生。
设计一个学校类,其中包含成员变量line(录取分数线)和对该变量值进行设置和获取的方法。
编写一个学生类,它的成员变量有考生的name(姓名)、id(考号)、total(综合成绩)、sports(体育成绩)。
它还有获取学生的综合成绩和体育成绩的方法。
编写一个录取类,它的一个方法用于判断学生是否符合录取条件。
其中录取条件为:综合成绩在录取分数线之上,或体育成绩在96以上并且综合成绩大于300。
实验5 类和对象(二)实验目的及要求综合运用类的基本知识,包括:类对象的定义、公有、私有和保护成员的含义、构造函数和析构函数的作用、定义方式等;设计并使用一个类。
实验内容1.定义一个学生类,其中有3个数据成员有学号、姓名、年龄,以及若干成员函数。
同时编写主函数使用这个类,实现对学生数据的赋值和输出。
2.定义日期类型Date。
要求有以下面成员:(1)可以设置日期;(2)日期加一天操作;(3)输出函数,输出格式为“XXXX年XX月XX日”。
主要仪器设备电脑一台,安装Visual C++ 6.0实验步骤1.运行Visual C++ 6.0,创建Win32 Console Application。
2.使用Insert | Class Wizard…创建类。
3.在Class View的类名称上点击右键,从弹出菜单中选择Add Member Function…和Add Member Variable…,设计类的成员函数和成员变量。
4.在File View中,选择文件,对类进行修改。
5.在File View中,添加一个main.cpp文件,编写主函数,测试刚才设计的类的各个成员函数。
6.编译、调试、运行程序。
1.定义一个学生类,其中有3个数据成员有学号、姓名、年龄,以及若干成员函数。
同时编写主函数使用这个类,实现对学生数据的赋值和输出。
程序代码参考如下:#include<iostream>#include<string>using namespace std;class student{private:string number;string name;int age;public:void input();void output();};void student::input(){ cout<<"please intput student information:"<<endl;cout<<"学生学号:";cin>>number;cout<<"姓名:";cin>>name;cout<<"年龄:";cin>>age;}void student::output(){cout<<"学生学号:"<<number<<endl<<"姓名:"<<name<<endl<<"年龄:"<<age<<endl; }int main(){student information;information.input();information.output();}2.定义日期类型Date。
类和对象
一、实验目的
1、掌握类的定义和对象的创建;
2、掌握构造方法的作用、格式及重载;
3、掌握修饰词对成员存取权限的限制。
4、掌握实例成员、类成员的定义和使用方法。
二、实验内容
1、定义储蓄账户类,并创建对象模拟银行基本操作。
2、两游戏角色决斗。
给定二个不同的角色,判定交手的胜负关系。
(选做)
3、设计学生类、学校类、录取类,根据学生成绩和学校分数线,判断是否录取。
三、实验步骤
说明:请将第3题代码写入实验报告实验步骤处。
1、模拟银行账户功能。
编写程序,模拟银行账户功能。
要求如下:
属性:账号、姓名、地址、存款余额、最小余额。
方法:存款、取款、查询。
根据用户操作显示储户相关信息。
如存款操作后,显示储户原有余额、今日存款数额及最终存款余额。
取款时,若取款成功,显示信息提示;若最后余额小于最小余额,拒绝取款,并显示信息提示。
具体显示信息可据方便性原则自拟。
2、两游戏角色决斗。
(选做)
角色1交手次数+1,生命值-1,经验值+2;角色2交手次数+1,生命值-2,经验值+3。
经验值每增加50时,生命值+1;生命值<0判为负。
生命值初始为1000,经验值初始为0。
给定二个不同的角色,判定交手的胜负关系。
提示:
step1:建立角色类,给出相应的成员,并能以生命值、经验值初始化角色对象。
step2:建立fight方法,接收二个角色类型的参数,返回胜者。
step3:初始化二角色,调用fight方法。
3、根据分数录取学生。
设计一个学校类,其中包含成员变量line(录取分数线)和对该变量值进行设置和获取的方法。
编写一个学生类,它的成员变量有考生的name(姓名)、id(考号)、total(综合成绩)、sports(体育成绩)。
它还有获取学生的综合成绩和体育成绩的方法。
编写一个录取类,它的一个方法用于判断学生是否符合录取条件。
其中录取条件为:综合成绩在录取分数线之上,或体育成绩在96以上并且综合成绩大于300。
在该类的main()方法中,建立若干个学生对象,对符合录取条件的学生,输出其信息及“被录取”。
四、实验记录与分析(可自拟或选择)
1、重载的构造方法具有不同个数或不同类型的参数,编译器就可以根据这一点判断出用new 关键字产生对象时,该调用哪个构造方法了。
2、每个对象拥有各自的实例成员变量,而所有对象共享一个类成员变量。
3、实例成员变量通过对象引用,类成员变量通过类或对象名访问。