实验2 类和对象的定义与使用
- 格式:docx
- 大小:15.48 KB
- 文档页数:1
《面向对象与UML》实验报告姓名:陈万全学号:132852班级:软件131实验一UML建模基础一、实验目的1.熟悉UML建模工具Rational rose的可视化环境。
2.掌握利用Rational rose进行建模的步骤。
二、实验内容1.熟悉Rational rose建模环境2.建模基本步骤3.结合日常生活中实际使用的系统,模仿2中的用例模型绘制用例图,并保存模型,熟悉利用Rational rose的建模过程,要求绘制的用例图中用例与2中的用例图不相同。
实验二用例图一、实验目的1.熟悉UML用例图的基本图形元素。
2.掌握用例与用例之间的各种关系。
3.熟悉针对具体场景使用例图进行软件建模的方法。
4.掌握用例规格说明的概念和基本结构,以及用例规格说明的作用。
二、实验内容1.根据实验一建模实例,熟悉利用Raional rose软件绘制用例图的基本方法。
2.通过对“学生信息管理系统”的需求描述,确定系统用例图:“学生信息管理系统”的需求描述如下:•在每个新学年开始都会有新生入学,这时系统的管理人员可以通过系统将这些新生的学籍、年龄、家庭住址、性别、身高、学生证号、身份证号等基本信息存入数据库,每个新生都对应一个唯一的编号,此编号可以是学生,在日程管理中,系统管理员还可以对所有学生的基本信息进行查询、修改和删除等操作;同时校领导可以查询、修改全校所有学生的基本信息。
•学校领导可以通过本系统了解每个班的任课教师、辅导员、学生姓名、学生人数、专业等班级基本信息。
系统管理员可以进行查询班级基本信息、添加班级、修改班级基本信息、删除班级等操作。
•在考试结束以后,教师可以将学生的考试成绩录入系统,还可以对学生的成绩进行查询和修改。
学生可以通过本系统进行成绩的查询。
•学生还可以在网上选择自己选修的课程(必修课必须上,所以不用选),学生通过本系统可以看到有哪些课程可以选以及课程的基本信息。
课程的基本信息包括:课程号、所属专业、课程名称、开课学期、学时数、学分、任课教师等。
java对象的创建和使用Java是一种面向对象的编程语言,其中对象是它的特别之处。
在Java中,对象包含数据和方法,它们被封装在一起,以便程序可以操作它们。
那么,如何创建和使用Java对象呢?这是本文的主题。
1. 创建Java对象在Java中,我们可以通过new关键字来创建对象。
如下所示:``` Person p = new Person(); ```上面这行代码创建了一个Person类型的对象并将其赋值给变量p。
在这里,new运算符告诉Java在堆上创建一个新的Person对象,并返回该对象的引用。
变量p保存了该引用。
Java编译器会根据类定义来创建对象。
Java类通常定义了对象的状态和行为。
对象状态是由成员变量表示的。
成员变量是在类中定义的变量。
成员变量存储了对象的状态。
对象行为是由方法表示的。
方法是在类中定义的函数。
方法执行操作并返回结果。
2. 访问对象的成员变量和方法创建对象后,我们可以通过引用变量来访问对象的成员变量和方法。
如下所示:``` Person p = new Person(); = "Tom"; p.age = 20; System.out.println();System.out.println(p.age); p.sayHello(); ```上面这段代码访问了Person对象的name、age成员变量和sayHello方法。
我们可以通过点运算符来访问对象的成员变量和方法。
在这里, = "Tom"将字符串值“Tom”存储在Person对象的name成员变量中。
p.age = 20将整数值20存储在Person对象的age成员变量中。
System.out.println()和System.out.println(p.age)分别打印出Person对象的name和age成员变量的值。
p.sayHello()调用了Person对象的sayHello方法。
实验一实验内容:设计银行账户类及存取款、账户查询等操作方法。
实验目的:综合掌握类和对象(类的声明与对象的使用),掌握面向对象技术的编程方法。
具体包括:从实体中抽象类的方法;如何声明类、创建类的实例;类和成员对象的修饰符的使用;类的构造函数的使用方法等。
实验要求:使用JA V A语言实现一个可无误运行的完整程序,完成银行账户类的设计及存取款、查询等操作。
实验内容具体要求:1,编写一个类实现银行账户(bank account)的概念。
银行账户的属性包括“账号Ac_id”、“储户姓名Ac_name”、“储户身份证号Ac_card”、“日期Ac_date[]”、“金额Ac_money[]”、“存款余额Ac_rest[]”,以及“操作次数Max”、“账目管理指针top”和“累计余额Ac_sum”;银行账户的方法包括“存款”、“取款”、“查询”等。
2,编写一个带有默认构造函数(没有任何参数)的类,在其中显示一些信息,然后为此类产生一些对象。
3,使用刚才定义的类创建几个实例,然后通过实例来访问其中的变量和方法来完成一定的功能。
4,编写一个具有public, private, final, static等数据成员和方法的类,然后为该类产生一个对象,尝试调用类中的所有成员。
实验步骤:1. 复习巩固教材相关的基础知识和相关内容;2. 认真理解实验要求;3. 完成系统程序开发全过程;4. 提交程序源代码及实验报告。
实验二实验内容:构建计算机类及其子类-笔记本电脑类,描述属性及状态,掌握继承及重载。
实验目的:全面理解OOP的基本思想和核心特征,灵活掌握继承和重载的程序实现。
具体包括:掌握类继承(属性与方法的继承)的规律;掌握构造函数继承的规律;掌握子类的对象就是父类的对象的规律等等。
实验要求:假设笔记本电脑是整个计算机类的一个子类,试编写一段java 程序实现计算机类及这个子类。
计算机:属性——品牌、颜色、CPU型号、内存容量、硬盘容量、价格、工作状态;方法——打开、关闭、挂起。
实验报告 实践报告□课程名称:面向对象程序设计基础R实验、实践名称:面向对象程序设计基础R 实验、实践地点:逸夫楼201专业班级:软件1601 学号:学生姓名:指导教师:宋春花2017年4月17 日// 实验1-2.cpp : 定义控制台应用程序的入口点。
//#include"stdafx.h"#include "iostream"using namespace std;const double pi = 3.14;class Circle {public:double area() { return x*x*pi; }Circle(double a) :x(a) { }private:double x;};class Rectangle {public:Rectangle(double x,double y):len(x),wid(y){}//写出矩形类的构造函数double area() { return len*wid; }//写出计算矩形面积函数private:double len, wid;};class Square {public:Square(double x) :len(x) { }//写出正方形类的构造函数double area() { return len*len; }//写出计算正方形面积函数private:double len;};3. #include"stdafx.h"#include"iostream"using namespace std;class Complex{public:Complex(double a,double b):real(a),image(b){};Complex(Complex &c);void Dispaly();private :double real;double image;};Complex::Complex(Complex & c){real = c.real;image = c.image;}void Complex::Dispaly(){cout <<"(" <<real << "+" << image << "i"<<")"<< endl;}int main(){Complex c1(20,40);Complex c2(0, 0);Complex c3(c1);c1.Dispaly();c2.Dispaly();c3.Dispaly();system("pause");}4. #include"stdafx.h"#include"iostream"#include"math.h"using namespace std;class Rectangle{protected:double Left,Top,Right,Bottom;public:Rectangle(double a,double b,double c,double d):Left(a),Top(b),Right(c),Bottom(d){};void Show(Rectangle &d);double Diagonal(Rectangle &c);};double Rectangle::Diagonal(Rectangle &c){double x=c.Right-c.Left;double y=c.Top-c.Bottom;double d=sqrt((x*x+y*y));return d;}void Rectangle::Show(Rectangle &d){cout<<"左上角 "<<"("<<Left<<","<<Top<<")"<<endl;cout<<"右下角 "<<"("<<Right<<","<<Bottom<<")"<<endl; cout<<"斜角线长度¨¨"<<d.Diagonal(d)<<endl;}int main(){Rectangle *r1=new Rectangle(10,10,20,20);r1->Show(*r1);delete r1;system("pause");return 0;}stu4.StudentInformation ();Student stu5(1999,"王小明",77.);stu5.StudentInformation ();Student::Output ();system("pause");return 0;}Student::Student (int no_,char *name_,double score_){ no=no_;strcpy(name,name_);score=score_;totalNumber++;totalScore+=score;if (score>highestScore)highestScore=score;if (score<lowestScore)lowestScore=score;}void Student::StudentInformation (){ cout<<"学号"<<no<<" "<<"姓名 "<<name<<" "<<"成绩:"<<score<<endl;}void Student::Output (){ cout<<"学总数 "<<totalNumber<<" "<<"总成绩 "<<totalScore<<" "<<endl;cout<<"平均成绩"<<totalScore/totalNumber<<" "<<"最高成绩 "<<highestScore<<" "<<"最低成绩"<<lowestScore<<" "<<endl;}{wage = pay;}void HourlyWorker::setHours(int hour){hours = hour;}double HourlyWorker::earnings(){return wage*hours;}void HourlyWorker::print(){cout <<"计时员编号:"<< number <<"计时员月薪"<< wage*hours << endl;}PieceWorker::PieceWorker(int nu_, const char*name_, double pay, int piece):Employee(nu_,name_), wagePerPiece(pay), quantity(piece){}void PieceWorker::setWage(double pay){wagePerPiece = pay;}void PieceWorker::setQuantity(int piece){quantity = piece;}double PieceWorker::earnings(){return wagePerPiece*quantity;}void PieceWorker::print(){cout <<"计件员编号"<< number <<"计件员计件薪"<< wagePerPiece*quantity << endl;}。
使用对象的步骤使用对象的步骤在软件开发中,对象是一种重要的概念。
使用对象可以使程序更加模块化,易于维护和扩展。
在本文中,我们将介绍如何使用对象来编写程序。
以下是使用对象的步骤。
第一步:定义类定义类是使用对象的第一步。
类是一种数据类型,它定义了一组属性和方法。
属性表示类的状态,方法表示类的行为。
在定义类时,需要考虑以下问题:- 类名:类名应该能够清楚地表达类的含义。
- 属性:属性应该能够描述类的状态。
- 方法:方法应该能够描述类的行为。
例如,我们可以定义一个名为Person的类来表示人:```class Person {String name;int age;public void sayHello() {System.out.println("Hello, my name is " + name + ", and I am " + age + " years old.");}}```在上面的代码中,我们定义了一个Person类,并声明了两个属性name和age以及一个方法sayHello。
第二步:创建对象创建对象是使用对象的第二步。
对象是根据类创建出来的实例。
要创建一个对象,需要执行以下步骤:- 使用new关键字创建一个新的实例。
- 调用构造函数初始化实例。
例如,在上面Person类中,我们可以创建一个Person实例:Person p = new Person(); = "Tom";p.age = 20;p.sayHello();```在上面的代码中,我们创建了一个Person实例,并设置了name和age属性,最后调用了sayHello方法。
第三步:访问对象的属性和方法访问对象的属性和方法是使用对象的第三步。
要访问对象的属性和方法,需要使用点号(.)操作符。
例如,在上面的Person类中,我们可以访问name和age属性:```System.out.println();System.out.println(p.age);```我们也可以调用sayHello方法:p.sayHello();```在上面的代码中,我们通过点号(.)操作符来访问对象的属性和方法。
中南民族大学管理学院学生实验报告课程名称:UML面向对象分析与设计教程年级:专业:信息管理与信息系统学号:姓名:指导教师:实验地点:管理学院综合实验室2013 学年至2014 学年度第2 学期目录实验一UML建模基础实验二用例图实验三UML类图实验四对象图实验五包图实验六动态模型图实验(一)UML建模基础实验时间:实验目的1.熟悉UML建模工具Rational Rose的基本菜单及操作。
2.掌握UML的三大组成部分及各部分作用。
3.掌握UML的可见性规则和构造型的作用。
实验内容1.练习使用建模工具建立各种UML图形,并对图形进行相应编辑和修改。
2.认识各种UML关系及可见性符号,并用工具表示出来。
答:各种UML关系如下:分析与讨论1.总结UML在软件工程中的作用以及使用UML建模的必要性。
答:统一建模语言(UML)是用来对软件密集系统进行可视化建模的一种语言,也是为面向对象开发系统的产品进行说明、可视化、构造和编制文档的一种语言。
UML作为一种模型语言,它使开发人员专注于建立产品的模型和结构,而不是选用什么程序语言和算法实现。
当模型建立之后,模型可以被UML工具转化成指定的程序语言代码。
UML可以贯穿软件开发周期中的每一个阶段,最适于数据建模、业务建模、对象建模、组件建模。
UML展现了一系列最佳工程实践,这些最佳实践在对大规模、复杂系统进行建模方面,特别是在软件架构层次方面已经被验证有效。
UML是一种功能强大的,面向对象的可视化系统分析的建模语言,它的各个模型可以帮助开发人员更好地理解业务流程,建立更可靠,更完善的系统模型,从而使用户和开发人员对问题的描述达到相同的理解,以减少语义差异,保障分析的正确性。
指导教师批阅:实验(二)用例图实验时间:实验目的1.掌握用例的概念、UML用例图的组成、作用以及使用场合。
2.掌握用例与用例之间的各种关系。
3.用Rational Rose工具练习教材中的用例图。
实验2 类和对象的定义与使用
1、实验目的
(1)掌握类与对象的定义;
(2)掌握构造函数和析构函数的实现方法;
(3)掌握静态成员函数和友元函数的使用方法;
(4)掌握类对象作为成员的使用方法。
2、实验学时:8学时(第5-8周)
3、实验内容
(1)声明一个CPU类,在该类中包括数据成员rank(等级)、frequency(频
率)、voltage(电压)。其中,rank为字符型,可以取等级A、B、C、D。frequency
为整型(单位MHz),voltage为浮点型;还包括成员函数GetRank( )、
GetFrequency( )、GetVoltage( )用来获取等级、频率、电压的值。SetRank( )、
SetFrequency( )、SetVoltage( )用来设置等级、频率、电压的值。Run( )、Stop( )
中Run( )要求输出“CPU开始运行!”,Stop( )要求输出“CPU停止运行!”。构造
函数需要输出“构造一个CPU”,析构函数需要输出“析构一个CPU”。观察构
造函数和析构函数的调用顺序。编写主函数使用这个类,实现对CPU数据的赋
值和输出。
(2)声明一个Student类,在该类中包括两个数据成员name(姓名)和score
(分数)、两个静态数据成员total_score(总分)和count(学生人数);还包括
两个成员函数show()用于输出学生的姓名、成绩和account( )用于设置分数、累
计学生的成绩之和、累计学生人数,一个静态成员函数sum( )用于返回学生的成
绩之和,另一个静态成员函数average( )用于求全班成绩的平均值。在main( )函
数中,输入某班同学的姓名和成绩,输出所有学生的姓名和成绩,并调用上述函
数求出全班学生的成绩之和和平均值。
(3)声明一个Car类,在该类中包括数据成员color(颜色)、speed(速度)
和成员函数Input( )用于输入color和speed,利用友元函数Output()输出Car类对
象数据。
(4)声明日期Date类,包含数据成员year(年)、month(月)、day(日);
人员Person类,包含数据成员id(编号)、name(姓名)、sex(性别)、birthday
(出生日期),其中birthday定义为Date类内嵌子对象。用成员函数实现对人员
信息的录入和显示。