面向对象实验1

合集下载

面向对象的实验报告

面向对象的实验报告

一、实验目的1. 理解面向对象编程的基本概念,如类、对象、继承、封装、多态等。

2. 掌握面向对象编程的基本语法和常用操作。

3. 通过实验加深对面向对象编程的理解和应用。

二、实验环境1. 操作系统:Windows 102. 开发工具:Visual Studio 20193. 编程语言:C#三、实验内容1. 定义一个简单的类,并创建对象实例。

2. 在类中定义属性和方法,并演示其使用。

3. 使用继承实现类的扩展。

4. 使用封装保护类的内部数据。

5. 使用多态演示不同对象间的动态类型转换。

四、实验步骤1. 定义一个名为“Person”的类,包含以下属性和方法:- 属性:姓名(Name)、年龄(Age)、性别(Gender)- 方法:打印个人信息(PrintInfo)2. 创建“Person”类的对象实例,并演示属性和方法的使用。

3. 定义一个名为“Student”的类,继承自“Person”类,并添加以下属性和方法: - 属性:学号(StudentID)- 方法:打印学生信息(PrintStudentInfo)4. 创建“Student”类的对象实例,并演示属性和方法的使用。

5. 定义一个名为“Employee”的类,继承自“Person”类,并添加以下属性和方法:- 属性:工号(EmployeeID)、职位(Position)- 方法:打印员工信息(PrintEmployeeInfo)6. 创建“Employee”类的对象实例,并演示属性和方法的使用。

7. 定义一个名为“Manager”的类,继承自“Employee”类,并添加以下属性和方法:- 属性:部门(Department)- 方法:打印经理信息(PrintManagerInfo)8. 创建“Manager”类的对象实例,并演示属性和方法的使用。

9. 使用多态演示不同对象间的动态类型转换。

五、实验结果与分析1. 创建“Person”类和对象实例,并演示属性和方法的使用。

.net实验一

.net实验一

武夷学院实验报告课程名称:.Net程序设计项目名称:面向对象程序设计姓名:专业:班级:学号:同组成员无一、实验准备1:实验环境准备:微型计算机Microsoft Visual Studio 2010 实验所需知识点:1注:1、实验准备部分包括实验环境准备和实验所需知识点准备。

2、若是单人单组实验,同组成员填无。

二、实验过程记录2:实验目的:1、理解面向对象编程,熟练掌握类的声明格式,如类的成员定义、构造函数、属性等;2、理解类的继承、多态等基本概念;3、掌握抽象类及抽象方法的应用。

题目:1、设计一个简易成绩管理应用程序,题目要求和说明参见P111,只需做第1,3,4,6小题,可根据需要添加控件,第6小题选做。

2、设计一个控制台应用程序。

要求如下:采用抽象类和抽象方法实现薪水发放系统:某公司有三类员工,经理(manager)、销售员(salesman)、工人(worker),他们的薪水计算方式不同,如下:经理:固定月薪。

销售员:固定月薪加上销售提成(月薪+销售额*提成率)。

工人:计时工资加加班费(每小时工资*小时数+加班时间*1.5*每小时工资)每周额定时长40小时。

雇员类(Employee)作为员工类的基类。

计算薪水的方法为Earning()。

编写测试类。

实现说明:第2题无需考虑输入。

只需在main()方法中,实现三类员工的实例化,并调用Earning方法,验证 Earning()方法的正确调用即可。

题目1解题如下:(1)启动VS 2010。

(2)新建项目。

首先,选择“文件”→“新建”→“项目”菜单命令→弹出“新建项目”对话框后,在左侧列表框中选择“已安装的模板”→Visual C#→Windows,同时在中间列表框中选择“Windows窗体应用程序”。

然后在“名称”文本框中输入应用项目名字“实训4_3”,再点击“确定”按钮。

如下所示:2注:实验过程记录要包含实验步骤,页码不够可自行添加。

(3)在弹出的窗体中添加三个Label,两个TextBox和五个Button控件。

面向对象实验报告

面向对象实验报告

面向对象实验报告面向对象实验报告引言:面向对象编程是一种软件开发方法,它将现实世界中的事物抽象成对象,通过定义对象的属性和行为来描述其特征和功能。

本实验旨在通过实际操作,深入理解面向对象编程的概念和原则。

一、实验背景面向对象编程是计算机科学领域的重要概念之一,它具有封装、继承和多态等特性,可以提高代码的可重用性和可维护性。

在本实验中,我们将通过编写一个简单的学生管理系统来探索面向对象编程的实际应用。

二、实验目的1. 理解面向对象编程的基本概念和原则;2. 掌握类的定义、对象的创建和方法的调用;3. 熟悉封装、继承和多态的使用;4. 实践面向对象编程的思维方式和方法论。

三、实验过程1. 类的定义在学生管理系统中,我们首先需要定义一个学生类,包含学生的基本信息,如学号、姓名、年龄等。

通过封装这些属性和定义相应的方法,我们可以实现对学生对象的创建和操作。

2. 对象的创建在主程序中,我们可以通过实例化学生类来创建学生对象。

通过调用构造函数,为学生对象赋予具体的属性值。

例如,创建一个名为Tom的学生对象,可以使用以下代码:Student tom = new Student("001", "Tom", 18);3. 方法的调用定义了学生类后,我们可以为其添加一些方法,如获取学生信息、修改学生信息等。

通过调用这些方法,可以实现对学生对象的操作和管理。

例如,获取Tom的年龄可以使用以下代码:int age = tom.getAge();4. 继承的应用在学生管理系统中,我们可以将学生类作为基类,派生出一些特定类型的学生类,如研究生、本科生等。

通过继承,子类可以继承基类的属性和方法,并可以添加自己特有的属性和方法。

这样,我们可以更好地组织和管理不同类型的学生对象。

5. 多态的实现通过使用多态,我们可以在不同的上下文中使用同一个方法名,实现不同的功能。

例如,在学生管理系统中,我们可以定义一个统一的显示信息方法,然后在不同的学生类中重写该方法,以实现不同类型学生的信息展示。

面向对象原则综合实验实验总结

面向对象原则综合实验实验总结

面向对象原则综合实验实验总结哎,说起来,这次的面向对象原则综合实验,简直是个“大挑战”啊!一开始,我对面向对象编程的理解完全停留在“这好像是个挺复杂的东西”的阶段,根本没有意识到它的“奥秘”就在于那些看似简单的规则。

说实话,刚开始的时候,我就像掉进了一个迷宫,左转右转都找不到出口,心里那个慌乱真的是不言而喻。

但是,经过这次实验之后,我真的是有点恍若大梦初醒的感觉,觉得以前的自己可能真的是“井底之蛙”。

嘿,虽然过程中有点磕磕绊绊,但总算是过来了,自己还是学到了一些真东西。

你知道吗?最让我感触深的就是“封装”这块儿。

说实话,一开始,我总是觉得封装好像就是“把东西藏起来”,有点“躲猫猫”的意思。

但是,做了实验之后,我才真正明白,封装其实就是要把数据和操作数据的代码捆绑在一起,形成一个独立的模块。

听起来是不是有点复杂?其实不然,举个例子吧,就像我们买的手机,外表看起来光鲜亮丽,可是里面的电路板、处理器啥的,都是一堆复杂的东西。

你拿到手里,就能用,什么内部的运作你根本不需要管,它给你提供的只是一个简单而清晰的接口。

这种封装的方式,其实让我们开发代码的时候能更加专注于自己的模块,而不需要去管其他模块的细节,简直就像是隔离了复杂度,让我们能“清心寡欲”地做事。

然后再来说说“继承”吧。

继承,呃,说白了就是“拿来主义”,有点像我们从父母那里遗传了某些优点或者缺点一样。

通过继承,我们可以把已经实现的功能拿来用,而不需要重新发明轮子,这不就太省事了吗?想象一下,如果每次我们都得从头开始写一个新的类,那得累死,效率不说低,程序员的脾气估计也得越来越差。

所以啊,继承就像是给我们提供了一条“捷径”,我们只需要在现有的基础上做改进或者扩展,就能很快搭建起新的功能模块。

这个过程看似简单,实际上大大提升了开发效率。

嘿,说不定你就能像超级英雄一样,轻松地用“遗传”能力打怪升级,毫不费力。

不过呢,光有封装和继承还不够,接下来就得说说“多态”了。

面向对象程序设计(C++)实验一--类和对象

面向对象程序设计(C++)实验一--类和对象

实验一类和对象一、实验目的:掌握类的设计和对象的创建及相关知识点如对象数组、类聚合、友元函数、静态成员。

二、实验内容: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;}运行结果:。

面向对象程序设计实验报告1

面向对象程序设计实验报告1
看看这些字符的10进制ascii码哦ascii码一样同一种字符字符怎么参加了数学运算哦是字符对应的ascii码整数2006年级20061719号姓名同组姓名实验日期2010看看这个字符是什么
实验一
实验名称:实验一Visual C++环境
实验目的:
⒈熟悉VC++的集成开发环境,学习运行一个C++程序的步骤。
y=fun(x);
if(y==0)
cout<<"they input num is sushu"<<endl;
else
cout<<"they input num is not sushu"<iostream.h>
#include<math.h>
float fun(float a,float b,float c,float d)
return 0;
3. #include<iostream.h>
void main()
{inta,b,c,d,e;
double score;
a=b=c=d=0;
cin>>score;
while(score>=0)
{
if(score>=90)
a++;
else
if(score>=80)
b++;
else
if(score>=70)
do{
*p=*(--p);
}while( p>s+n);
(*p)=c;
}
return s;
}
int main()

设计模式实验1报告

设计模式实验1报告
在该图形库中每个图形类的init方法用于初始化所创建的图形setcolor方法用于给图形设置边框颜色fill方法用于给图形设置填充颜色setsize方法用于设置图形的大小display方法用于显示图形
实验报告
系别
班级
学号
姓名
时间
地点
计科
13:40-15:20
实验楼C106
课程名称
设计模式
实验名称
面向对象设计原则
实验过程
一.实验目的与要求
1、熟练使用面向对象设计原则
二.实验设备
微型计
迪米特法则定义:不要和“陌生人”说话。或只与你的直接朋友通信。其中,我们称出现成员变量、方法参数、方法返回值中的类为直接的朋友,而出现在局部变量中的类则不是直接的朋友。也就是说,陌生的类最好不要作为局部变量的形式出现在类的内部。
现需要根据面向对象设计原则对系统进行重构,画类图。需求如下:
隔离图形的创建和使用,将图形的创建过程封装在专门的类中,客户类在使用时无须直接创建图形对象,甚至不需要关心具体图形类类名。
客户类能够方便地更换图形或使用新增图形,无须针对具体图形类编程,符合开闭原则。
3、体育老师让体委清点全班女生人数,类图如下:
代码如下:
老师不应该执行任何与女学生相关的操作,显然违反了迪米特法则。重新设计类图,编码实现,符合迪米塔法则。
四.实验结果
1.类图:
2.代码:
3.类图、代码:
五.实验总结
2、某图形库API中提供了多种矢量图模板,用户可以基于这些矢量图创建不同的显示图形,图形库设计人员设计的初始类图如图所示。
在该图形库中,每个图形类的init()方法用于初始化所创建的图形,setColor()方法用于给图形设置边框颜色,fill()方法用于给图形设置填充颜色,setSize()方法用于设置图形的大小,display()方法用于显示图形。

面向对象程序设计实验一及实验报告样式

面向对象程序设计实验一及实验报告样式

《面向对象程序设计》实验一实验报告1 实验目的:(1)了解在VC++、C-free中如何编辑、编译、连接和运行一个C++程序;(2)掌握声明类的方法,类和类的成员的概念以及定义对象的方法(3)了解多文件的C++程序结构2 实验任务(1)输入两个整数,将它们按由大到小的顺序输出。

要求使用变量的引用;(2)编写一个程序,将两个字符串连接起来,结果取代第一个字符串;(3)声明Animal 类,数据成员有age,成员函数有SetAge()等。

首先把数据成员声明为公有的,在main()函数中访问,再把它改为私有的,指出在main()函数中访问会出现怎样的情况,如何避免?该程序需要在同一个文件中分别给出类的声明、类的实现、类的演示每部分的代码。

(4)声明日期类,数据成员有year、month、day,成员函数有输出日期、加一天等。

练习使用多文件结构来组织程序。

3 程序清单实验一:#include"iostream"using namespace std;int main(){int i,j;cout<<"input two number"<<endl;cin>>i>>j;swap(i,j);cout<<i<<","<<j<<endl;return 0;}void swap(int &a,int &b){int temp;temp=a;a=b;b=temp;}实验二:#include"iostream"#include"string"using namespace std;int main(){string string1,string2;cout<<"please input two string:";cin>>string1>>string2;string1=string1+string2;cout<<string1<<endl;return 0;}实验三:4 运行结果图1.1 任务一运行结果图2.1任务二运行结果5 总结或感悟(对运行结果所作的分析以及本次调试程序所取得的经验。

《面向对象程序设计》实验指导书 (1-6个实验,含参考代码)要点

《面向对象程序设计》实验指导书 (1-6个实验,含参考代码)要点

面向对象程序设计实验指导书(适用:电子信息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)删除中间的节点,再顺序输出学生信息。

(实验一)类建模

(实验一)类建模

《面向对象分析与设计实验指导手册》实验1 类建模一、实验目的1、学习建模类图和对象图;2、学习建模链接和关联;3、学习建模泛化和继承;4、实验工具软件建议采用starUML二、教材对应关系本实验主要对应教材“第三章类设计”以及补充知识部分;三、实验内容与步骤1、根据图E3-4的对象图,绘制出类图。

2、图E3-6显示了部分完成的空中运输系统的类图,其中略去了多重性。

请在图中添加多重性。

掩饰多重性决策如何依赖于你对世界的感知。

3、为下面的每一组类绘制一个类图。

每个图至少要增加10种关系(关联和泛化)。

如有需要,可以使用关联名和关联终端名。

也可以使用限定关联,并显示多重性。

不需要显示属性或操作。

在绘制图时,可以增加类。

要求必须能解释图。

(1)汽车(automobile)、引擎(engine)、车轮(wheel)、刹车(brake)、刹车灯(brake light)、车门(door)、电池(battery)、消声器(muffler)、排气尾管(tail pipe)(2)文件系统(file system)、文件(file)、ASCII文件(ASCII file)、二进制文件(binary file)、目录文件(directory file)、磁盘(disk)、驱动器(drive)、磁道(track)、扇区(sector) (3)表达式(expression)、常量(constant)、变量(variable)、函数(function)、参数列表(argument list)、关系操作符(relation operator)、术语(term)、因数(factor)、算术运算符(arithmetic operator)、语句(statement)、计算机程序(computer program)四、实验材料的提交与成绩评定1、本实验要求学生自己建立文件夹一个,名字为[学号]+[姓名];如“2000134101张三”。

实验报告1--用例和用例图

实验报告1--用例和用例图

中北大学软件学院实验报告
专业:软件工程
方向:软件开发与测试
课程名称: UML
班级:
学号:
姓名:
辅导教师:井超
2017年3月制
4.用例图如下所示
1).系统参与者
系统角色
2).图书管理
图书管理用例图3).图书借阅和还书用例图
图书的借阅和归还用例4).图书管理系统的整体用例图
图书管理系统的整体用例图
5.实验结论及心得
通过本次实验,我掌握了在课堂上学习的用例图等。

加深了对书本知识的认识和记忆。

在实验中我学会了去如何操作ro se工具图。

通过ro se工具图,可以去清晰的去展示一个关系等。

使用非常方便。

面向对象程序设计实验

面向对象程序设计实验

实验一 C++基础1.1 实验目的1.了解并熟悉开发环境,学会调试程序;2.熟悉C++中简单的标准输入输出函数的使用方法;3.理解const修饰符的作用并学会应用;4.理解内联函数的优缺点并学会其使用场合;5.理解并学会函数重载;6.理解并熟练掌握使用new和delete来分配内存;7.理解并熟练掌握引用的使用方法。

1.2 实验内容1.2.1 程序阅读1.理解下面的程序并运行,然后回答问题。

#include <iostream.h>int max_def(int x, int y){return (x>y?x:y);}int max_def(int x, int y, int z){int temp = 0;return (temp=(x>y?x:y))>z?temp:z;}double max_def(double x, double y){return (x>y?x:y);}int main()int x1 = 0;int x2 = 0;double d1 = 0.0;double d2 = 0.0;x1 = max_def(5,6);x2 = max_def(2,3,4);d1 = max_def(2.1,5.6);d2 =max_def(12.3,3.4,7.8);-----------------------------------------------------①cout<<"x1="<<x1<<endl;cout<<"x2="<<x2<<endl;cout<<"d1="<<d1<<endl;cout<<"d2="<<d2<<endl;--------------------------------------------------------②return 1;}问题一:上述程序的输出结果是什么?问题二:用的是哪个函数?答:调用的函数是int max_def(int x, int y, int z){int temp = 0;return (temp=(x>y?x:y))>z?temp:z;}问题三:②处的输出结果为什么是d2=12,而不是d2=12.3?答:因为①处调用的是整型函数,d2在此函数中被转换为整型,小数点后面被删除。

《面向对象的系统分析与设计(UML)》实验1 用例建模 (1)

《面向对象的系统分析与设计(UML)》实验1 用例建模 (1)
[ 实验总结 ]
① 对重点实验结果进行分析; ② 实验中的问题和提高:对自己的分析或设计进行评价,指出合理和不足之处,提出改进的方案。 ③ 收获与体会:用例分级的要点,绘制用例图的要点。
附录 1:实验报告格式 封面:
2014-2015(1)《面向对象的系统分析与设计(UML)》实验报告
学:用例之间的关系有:一般关联关系(用上述无方向实线箭头或单向实线箭头);包含关系、扩展 关系(可以理解成依赖,所以用与依赖一样的线【虚线箭头】);泛化关系(空心三角实线箭头)
对于依赖关系,如果能确定是包含(include)或扩展(entend),则需要修改关联的版型(Stereotyp)。绝大多数“模型属 性”都可以通过右击图标,选 Open Specification 打开属性设置对话框进行修改,如 name、type、Stereotype 等,但涉 及到字体、颜色等“非模型属性”除外。右击上述依赖线,选 Open Specification,可以选择版型。对于自定义版型, 可以在选择框中直接输入,如输入“依赖”(其实虚线箭头就是依赖,没有必要特别说明,以下便如此。)
可以在文档窗口为每个模型元素加入注释。
设置用例属性(也可以在添加用例时就修改):双击用例(或右击选 Open Specification),可以修改其 name、Stereotype, rank,Document 等。因为是顶级用例图,其中的用例级别均为 1。
通用的注释窗并不适合书写用例的文字描述,因此在此写出用例的 word 文档名称。与已完成的用例文档的连接可以在 File 标签中 insert file。
理”为主线,完成附录 2 中的操作过程(亦可选择“企业综合信息管理系统” -> “进销存管理”子系统 -> “库存管 理” -> “原材料出库” ->“领料单处理”主线) [ 实验结果 ]

面向对象与设计-实验指导书[1]讲解

面向对象与设计-实验指导书[1]讲解

高等学校实践教材计算机科学与技术面向对象分析与设计实验指导书孔磊编著徐州工程学院2015年8月目录实验一用例建模实验3实验二动态建模实验9实验三分析类建模实验16实验四开发类建模实验22实验一用例建模实验【实验目的】1. 熟悉Rational Rose 进行建模的一些基本操作;2. 学会使用Use Case视图与Use Case 框图;3. 学习使用Use Case、角色与关系。

【实验性质】设计性实验。

【实验要求】实验设备和器材:Pentium II以上微机,Windows2000以上操作系统,Rational Rose2003安装光盘一张。

【实验内容】1.对项目进行需求描述,用文字说明其业务流程。

2.使用业务用例图创建业务用例模型。

3.选择其中一个业务用例,使用业务用例规约详细描述。

4.使用系统用例图对该业务进行系统用例建模。

5.选择其中一个系统用例,使用系统用例规约详细描述。

【实验步骤】1.需求流程描述某企业人力资源招聘业务流程:(1)用人部门主管向人力资源部提出用人申请(2)人力资源部主管定编调查、审核(3)总经理批准(4)人力资源部制定招聘计划、费用预算(5)总经理批准(6)向社会或内部发出招聘信息(7)人力资源部主管收集应聘材料(8)人力资源部门初试(9)人力资源部主管整理求职材料(10)进行面试(11)应聘材料真实性核对与经历评估(12)各项智力、技能测验(13)人力资源部建议录用(14)第二次面试(顶头上司的面试)(15)人力资源部下达正式录用通知。

2.在Rose中创建模型包,用于管理各个建模过程以及模型中的UML图。

(1)在用例视图(Use Case View)中创建参与者包,其中包括业务参与者和系统参与者两个子包,分别用于用例图中参与者建模。

(2)在用例视图(Use Case View)中创建业务用例模型包,用于业务用例建模,对项目整体功能和流程进行粗粒度的业务建模。

(3)在用例视图(Use Case View)中创建系统用例模型包,用于对每一个业务用例,建立其系统用例图,因此,在系统用例模型包中,创建数量与业务用例图中业务用例相同,名称与业务用例名称相同的子包。

面向对象程序设计实验报告

面向对象程序设计实验报告

面向对象程序设计实验报告面向对象程序设计实验报告一、引言面向对象程序设计(Object-Oriented Programming,简称OOP)是一种广泛应用于软件开发的编程范式。

本实验旨在通过实践,加深对面向对象程序设计的理解,并掌握其基本概念和技巧。

二、实验目的1. 理解面向对象程序设计的基本概念和思想;2. 掌握类、对象、继承、封装、多态等面向对象的核心概念;3. 运用面向对象的思想设计和实现一个简单的程序。

三、实验过程1. 设计类和对象在本次实验中,我们选择实现一个简单的学生管理系统。

首先,我们需要设计一个学生类(Student),包括学生的姓名、年龄、学号等属性,并定义相关的方法,如获取学生信息、修改学生信息等。

然后,我们创建多个学生对象,模拟学生管理系统中的多个学生。

2. 继承和多态为了进一步理解继承和多态的概念,我们可以设计一个教师类(Teacher),继承自学生类。

教师类除了继承学生类的属性和方法外,还可以定义自己特有的属性和方法。

通过创建教师对象,我们可以看到继承和多态的效果。

3. 封装和访问控制在面向对象程序设计中,封装是一个重要的概念。

我们可以将学生类的属性设置为私有(private),并通过公有(public)的方法来访问和修改属性。

这样做的好处是可以保护属性的安全性,同时提供统一的接口供外部使用。

四、实验结果通过实验,我们成功地实现了一个简单的学生管理系统。

我们可以创建学生对象,并通过调用相关方法来获取和修改学生的信息。

同时,我们还实现了教师类,通过继承和多态的特性,我们可以灵活地使用学生和教师对象。

五、实验总结通过本次实验,我们深入了解了面向对象程序设计的基本概念和思想。

通过设计和实现一个简单的程序,我们掌握了类、对象、继承、封装、多态等核心概念,并学会了如何运用这些概念来设计和实现面向对象的程序。

面向对象程序设计具有很多优点,如代码的可重用性、可维护性、可扩展性等。

通过合理地设计类和对象,我们可以更好地组织和管理代码,提高开发效率和代码质量。

(修正版)《面向对象》实验指导书

(修正版)《面向对象》实验指导书

《面向对象程序设计》实验指导书林煜明应用科技学院实验一简单C++程序的设计1、实验目的熟悉VC6.0的运行环境,通过编写简单的C++程序,学会在VC6.0中编辑、编译、运行和调试程序。

2、实验内容以下内容(1)和(2)必做,(3)可根据具体情况选做。

(1)编写程序,实现输入两个整数,计算并输出其结果,要求显示相应的交互信息。

(2)将(1)中的功能使用函数实现,并在main函数中要求由用户确定是否继续。

提示:每计算完一次,提示用户输入Y/N,输入Y则继续调用,输入N则推出程序。

(3)编写一个有助于小学生学习乘法的程序,利用rand函数生成两个一位的正整数。

随后,函数输入如下所示的问题:How much is 6×7?然后学生输入答案。

由程序检查学生的答案。

如果正确,就打印“Very good!”;如果答案错误,就打印“Error!Please try again。

”让学生再次输入答案,直到正确为止。

注:rand函数包含在stdlib.h头文件中。

3、实验要求(1)独立完成实验。

(2)实验前需先完成预习报告,报告中应预先编写好源程序。

(3)实验过程中尽量独立思考,培养分析问题和解决问题的能力。

(4)实验完毕后书写实验报告,实验报告内容包括实验目的、实验内容、结果分析以及本次实验的心得体会。

要求将程序源码和运行时的输入/输出数据情况书写在实验内容部分,并对程序的输出结果进行分析,说明为什么能得出相应的结果(如果不能输出预期结果,需要分析说明其原因)。

实验二函数模板和带有缺省参数的函数1、实验目的掌握函数模板和带有缺省参数的函数的定义,理解函数模板的作用,此外还应注意对带有缺省参数的函数进行调用时的具体情况。

2、实验内容以下内容中可根据具体情况(1)和(2)选一,(3)和(4)选一。

(1)设计一个函数模板,它返回三个值中的较大值,并用int、char、double 型的值进行验证。

(2)编写程序,在主函数中输入两个值,然后将这两个值交换。

面向对象分析与设计UML实验报告

面向对象分析与设计UML实验报告

(此文档为word格式,下载后您可任意编辑修改!)《面向对象分析与设计UML》实验报告实验及作业一一、实验目的了解软件工程等基础知识,为后续的统一建模语言UML知识的学习做好准备工作。

二、实验设备与环境装有Visio、RationalRose的计算机。

三、实验内容1、复习阐述“软件工程开发模型”的相关概念,并分析各种模型的优缺点,写成实验报告。

2、熟悉UML软件设计工具Visio、Rational Rose的安装及环境四、实验过程及结果经过上网搜索相关信息进行了解软件工程开发模型的相关概念与优缺点一,什么是软件工程概念模型模型就是抽象,就是有意识地忽略事物的某些特征。

抽象带来的好处是能够反映模型中元素之间的关系,清晰把握大局。

概念模型是模型的一种,简单说就是抽象程度极高的一种模型。

软件工程概念模型是对软件工程领域进行抽象描述的模型,它能够使我们对软件工程有一个完整把握。

二,软件工程开发模型的种类以及优缺点瀑布模型由W.Royce于1970年首先提出。

根据软件工程生存周期各个阶段的任务,瀑布模型从可行性研究开始,逐步进行阶段性变换,直至通过确认测试并得到用户确认的软件产品为止。

瀑布模型上一阶段的变换结果是下一阶段变换的输入,相邻两个阶段具有因果关系,紧密联系。

一个阶段的失误将蔓延到以后的各个阶段。

为了保障软件开发的正确性,每一阶段任务完成后,都必须对它的阶段性产品进行评审,确认之后再转入下一阶段的工作。

评审过程发现错误和疏漏后,应该及时反馈到前面的有关阶段修正错误或弥补疏漏,然后再重复前面的工作,直至某一阶段通过评审后再进入下一阶段。

瀑布模型如图1.1所示。

瀑布模型有许多优点,如可强迫开发人员采用规范的方法;严格规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证等。

但瀑布模型也存在缺点,其主要表现在:①在软件开发的初始阶段指明软件系统的全部需求是困难的,有时甚至是不现实的。

面向对象程序设计实验报告

面向对象程序设计实验报告
using System;
namespace _1
{
class Program
{
static void Main(string[] args)
{
int[][] jagArray=new int[2][]{new int[5],new int[3]};
for (int i = 0; i < jagArray.GetLength(0); i++)
(2)在代码编辑窗口内的Main()方法中添加如下代码:
using System;
namess HelloWorld
{
public static void Main()
{
Console.WriteLine("Hello world!");
}
}
}
(1)选择“调试” “启动调试”命令,或按【F5】键,或单击工具栏上的 按钮,运行程序,查看运行结果。
}
for (int i = 0; i < 5; i++)
{
for (int j = 0; j <= i;j++ )
Console.WriteLine("{0}\t", a[i, j]);
Console.WriteLine();
}
Console.Read();
}
}
}
(10)分析程序,写出程序的运行结果,并上机进行验证。
Console.Write("{0,-3}",jagArray[k][m]);
Console.WriteLine();
}
Console.Read();
}
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《面向对象程序设计》实验一
实验报告
班级学号姓名
1实验目的
(1)了解在VC++、C-free中如何编辑、编译、连接和运行一个C++程序;
(2)掌握C++程序结构
(3)掌握C++基本语法
2 实验任务
某次考试成绩如下,编写程序计算每位同学的平均分以及每科的最高分和最低分。

要求编写以下函数,使程序输出结果的形式与图1相同。

(1)输入函数,姓名和各科成绩从键盘输入并分别存入相应的二维数组中;
(2)输出函数,要求完成学生信息(姓名和各科成绩)的输出,以及学生成绩平均分,各科最高分和最低分的求解并输出;
(3)主函数,调用输入和输出函数,完成如下图所示效果。

3 程序清单
#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int i=1,j=1,k=1, n;
string name[100];
int E[100],M[100],C[100],P[100];
float ave[100];
int MAX(int x[],int n)
{
int max=x[1];
for(k=2;k<=n;k++)
{
if(max<x[k])
max=x[k];
}
return max;
}
int MIN(int y[],int n)
{
int min=y[1];
for(k=2;k<=n;k++)
{
if(min>y[k])
min=y[k];
}
return min;
}
void input()
{
cout<<"请输入学生数量:";cin>>n;
for(i=1;i<=n;i++)
{
cout<<"输入第"<<i<<"位同学的成绩:"<<endl;
cout<<"姓名:";cin>>name[i];
cout<<"英语:";cin>>E[i];
cout<<"数学:";cin>>M[i];
cout<<"化学:";cin>>C[i];
cout<<"物理:";cin>>P[i];
ave[i]=(E[i]+M[i]+C[i]+P[i])/4;
}
}
void output()
{
cout<<setiosflags(ios::left);
cout<<setw(8)<<"姓名"<<setw(8)<<"英语"<<setw(8)<<"数学"<<setw(8)<<"化学
"<<setw(8)<<"物理"<<setw(8)<<"平均分"<<endl;
while(j<=n)
{
cout<<setiosflags(ios::left);
cout<<setw(8)<<name[j]<<setw(8)<<E[j]<<setw(8)<<M[j]<<setw(8)<<C[j]<<setw(8)<<P[j]<<s etw(8)<<ave[j]<<endl;
j++;
}
cout<<setw(8)<<"最高分:
"<<setw(8)<<MAX(E,n)<<setw(8)<<MAX(M,n)<<setw(8)<<MAX(C,n)<<setw(8)<<MAX(P,n) <<endl;
cout<<setw(8)<<"最低分:
"<<setw(8)<<MIN(E,n)<<setw(8)<<MIN(M,n)<<setw(8)<<MIN(C,n)<<setw(8)<<MIN(P,n)<<e
ndl;
}
int main(int argc, char** argv) {
input();
output();
return 0;
}
4 运行结果
5 总结或感悟
通过对这一程序编程的练习,我对C++环境进行了深一步的了解,并逐渐开始熟练C++环境的工作界面,以及C++和C在格式编写上有很多的不同。

总体上而言,C++比C更加模块化更加的简洁明了。

在设计的过程中遇到问题,在求最大值和最小值时,最终结果会出现乱码出错等问题,操作多次后,最后通过一个中间变量和将求取最大值和最小值用一个函数封装实现了了最终的代码。

用一个函数封装方便主函数的编写,整体看上去更加的简洁,也有助于寻找错误。

这毕竟经过一个暑假第一次做的,之前C的内容有一些遗忘,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,我把前面所学过C 的知识又重新温故了一遍。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

相关文档
最新文档