文档库 最新最全的文档下载
当前位置:文档库 › 面向对象纸牌游戏实验报告

面向对象纸牌游戏实验报告

面向对象纸牌游戏实验报告
面向对象纸牌游戏实验报告

面向对象纸牌游戏实验报告

实验题目

solitaire纸牌游戏

实验目的

设计一个简单的CardGames程序,运用面向对象封装、继承、抽象类、抽象方法、多态、动态绑定等概念。

实验目标就要求

参考windows的纸牌游戏

使用Java语音

实验内容

单人纸牌游戏,牌桌上有7个堆共28张牌,第一堆1张牌,第二堆2张,。。。第7堆7张,每一堆的第一张牌朝上,其他朝下。牌桌上还有4个suitpiles,一个deck card堆和一个discard card堆,布局如下

程序总体设计

纸牌游戏中对于类的设计

共有Card,CardPile,DeckPail,DiscardPail,SuitPile,TablePail,Solitare 七个类。

简单地UML 图如下:

1,Card 类:

Card 类主要用于建立纸牌,共有以下几个属性,

Card(int, int)

rank()

suit()

faceUp()

flip()

color()

draw(Graphics, int, int)

width : int

height : int

red : int

CardPile Card

SuitPile DiscardPai TablePail Solitare

DeckPail

black : int

heart : int

spade : int

diamond : int

club : int

faceup : boolean

r : int

s : int

link : Card

它主要定义了一个纸牌的属性,如颜色,长度,宽度,花色,是否背面朝上等。2,CardPile类:

这是个牌堆类,主要是作为基类,供各个堆来继承使用,它含有以下几个函数

CardPile(int, int)

top()

empty()

pop()

includes(int, int)

select(int, int)

addCard(Card)

display(Graphics)

canTake(Card)

3,Solitare类主要用于图形界面的显示

x : int

y : int

firstCard : Card

它的每个属性和操作在子类中都会有重新定义。其中x,y表示每个堆左上角的坐标位置。top(),pop(),isEmpty(),这三个类函数通过stack类所提供的成员函数来操纵纸牌列表。

另外还定义了5中虚拟函数:

1,includes 看给定的坐标位置是否在派对边界之内。

2,canTake 返回该牌堆是否可以取走特定纸牌。

3,addCard 增加一张纸牌到该牌堆

4,display 显示整幅牌堆

5,select 执行响应鼠标单击的行为

3,DeckPile,DiscardPile,SuitPile,TablePile分别继承于CardPile类,并对某些函数进行重写,以生成自己的牌堆。

代码分析

1.发配算法

该算法先创建52张纸牌(Card)对象,并放置allCard(ArrayList)中,然后模拟现实当中的洗牌操作,主要是利用java的Random来打乱allCard里牌的排列顺序,然后初始化各个牌堆类: deckPile, discardPile, tablePile, suitPile, moveCard。此外还建了一个数组allPiles(CardPile[]),用于存储所有的牌堆类。最后将allCard中的纸牌牌(Card)对象分发至各个堆里。

2.select方法

传给该函数坐标用于判断点中该牌堆中的某张纸牌,其中因为TablePile要支持选中多张纸牌,要改写CardPile的方法。

CardPile的select方法:

public int select (int tx, int ty) {

if(includes(tx,ty)){

if(isEmpty())

return -2;

else

return thePile.size() - 1;

}

else

return -1;

}

TablePile的select方法:

public int select(int tx, int ty) {

// TODO Auto-generated method stub

if(!(isEmpty())){

int beginX,beginY,endX,endY;

//System.out.println(notFlipNum+" "+cardNum);

beginX = x ;

beginY = y + unFlipCardSeparation * notFlipNum;

endX = x + Card.width;

endY = beginY + unFlipCardSeparation * notFlipNum + separation * (thePile.size() - 1 - notFlipNum) + Card.height;

boolean flip_include = beginX <= tx && tx <= endX && beginY <= ty && ty <= endY;

//System.out.println(beginY+" "+endY);

if(flip_include){

int c = (ty - beginY)/separation + notFlipNum;

if(c >= thePile.size()){

c = thePile.size() - 1;

}

return c;//从零开始

}

else

return -1;

}

else

return -1;

}

3.isCAnAdd方法

用于判断某张纸牌是否可以放于SuitePile或TablePile

CardPile类

Public boolean isCanAdd( Card card){

Return falase;

}

SuitePile类

Public boolean isCanAdd( Card card){

// TODO Auto-generated method stub

if (isEmpty())

return card.getNum() == 0;

Card topCard = top();

return (card.getType() == topCard.getType()) &&

(card.getNum() == topCard.getNum() + 1);

}

Tablepile类:

public boolean isCanAdd(Card card){

// TODO Auto-generated method stub

if ( isEmpty())

return card.getNum() == 12;

Card topCard = top();

return (card.getColor() != topCard.getColor()) &&

(card.getNum() == topCard.getNum()-1 );

}

4.refreshTablePile

用于刷新Tablepile,主要处理走TablePile中的纸牌是剩余纸牌都是背面的时候将最上面的纸牌反过来。

public static void refreshTablePile(){

// System.out.println("refreshTablePile");

for(int i=0;i<7;i++){

if(tablePile[i].top() != null)

if(!(tablePile[i].top().isFaceup())){

tablePile[i].top().setFaceup(true);

tablePile[i].setNotFlipNum(tablePile[i].getNotFlipNum()-1);

}

}

}

试验中的截图:

实验总结

实验基本实现了部分基本功能,但是比较与windows上的纸牌游戏功能有所欠缺,比如没有后退和提示功能,没有单击右键的功能,显的更加简陋。由于类

图画的比较麻烦,只是将类及其属性列举了出来,UML图画的比较简陋。

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

一、实验目的及内容 目的:掌握和巩固Java面向对象程序设计的概念、方法。 内容: 1.设计一个Java程序,该程序运行后,说明:一个类的所有对象共享同一个类成员变量;一个类 的多个对象拥有各自的实例成员变量。 2.编写一个表示人的类Person,该类满足以下要求: ●有两个private成员变量:name(名字)、age(年龄);在Person类外访问这两个成员变量均通 过接口器函数(getXXX,setXXX)。 ●该类具有一个有两个参数的构造函数,这两个参数分别用来初始化name和age成员变量。 ●该类包含一个方法public boolean older(Person r),用于比较当前对象年纪是否比参数r的年纪大, 若是,则返回true,否则,返回false。 编写另外一个类:TestPerson,该类包含下面函数: public static void sortPerson(Person[] personList),在该函数中利用Person类的older方法实现对数组personList按年龄从小到大排序。main函数位于该类中。在main函数中 (1)创建Person类的10个对象,并保存到一个数组中,创建10个对象时,每个对象的年龄为0~100的一个随机数(用Math.random()函数得到)。 (2)输出这个数组中每个对象的名字、年龄。 (3)调用sortPerson方法,对这个数组中的10个Person对象按年龄排序。 (4)输出排序后数组中每个对象的名字、年龄。 二、要求 1.给出上述程序的中涉及到的类的类图(可用visio画)、解决上述问题的思路、代码 和测试结果。 1.设计一个Java程序,该程序运行后,说明:一个类的所有对象共享同一个类成员变量;一个类的多个对象拥有各自的实例成员变量。 设计思路:要实现一个类的所有对象共享同一个类成员变量;一个类的多个对象拥有各自的实例成员变量。我创建了一个Number类,并创建了两个对象number1和number2,该类有一个类成员函数static int numberofsum(int a, int b)来求和,一个类成员变量countnumber来统计对象的个数,还有实例成员变量num,通过两个对象求和以及统计对象个数,说明了一个类的所有对象共享同一个类成员变量,两个对象都有自己的num值说明了一个类的多个对象拥有各自的实例成员变量。

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

资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。 综合实验报告 面向对象程序设计 专业名称: 物联网工程 ___班级: _____ 级2班__ ___________姓名: 你哥哥 学号: 02051928 信息科学与工程学院 二零一三年七月

第一题: (1) 1.1题目概述 (1) 1.2设计思路 (2) 1.3设计说明与调试分析 (2) 1.4编码实现 (2) 1.5程序运行结果 (5) 1.6设计心得 (5) 第二题: (6) 2.1题目概述 (6) 2.2设计思路 (7) 2.3设计说明与调试分析 (7) 2.4编码实现 (7) 2.5程序运行结果 (11) 2.6设计心得 (11)

第一题: 1.1题目概述 用抽象类设计计算二维平面图形图形面积的程序, 在基类TDshape中设计纯虚函数area()和printName(), area()用于计算几何图形的面积, printName()用于打印输出几何图形的类名, 如Triangle类的对象就打印输出”Triangle”。每个具体形状的类则从抽象类TDshape派生, 各自需要定义其它独有的数据成员和成员函数, 而且定义area()和printName()的具体实现代码, 如图所示。 要求编写以TDshape为接口的函数, 借以访问具体类如

Triangle和Rectangle类的成员函数area(), printName ()。1.2设计思路 由简到繁, 逐步实现。 1.3设计说明与调试分析 编写基类TDshape->编写虚函数->编写继承类Triangle ->实例化TDshape和Triangle ->调用基类虚函数实现调用继承类相应函数->同样的方式处理继承类Rectangle. 1.4编码实现 #include using namespace std; class TDshape{ public: virtual void area()=0; virtual void printName()=0; }; class Triangle:public TDshape{ private: double width,height;

实验一 Java面向对象基础 实验报告

实验一Java面向对象基础、数组实验报告 一、实验目的 1. 理解面向对象编程基本思想 2. 了解类的封装方法,以及如何创建类和对象 3. 掌握面向对象程序设计的方法,了解类的继承性和多态性的作用 4. 掌握Java 中的数组定义、引用 二、实验要求 编写程序时要注意体现面向对象思想,体会不同访问控制符的作用。 1. 编写一个Vehicle类和它的二个子类Bus类和Boat类。(要求:程序要有构造方法重载;要能体现类的多态性) 2. 定义一个由若干个整数组成的数组,要求输出该数组的平均值以及所有的奇数之和。 3. 随机生成30个0-9之间的数字,分别统计0-9这10个数字分别出现了多少次。 三、实验内容及结果 1. 编写一个Vehicle类和它的二个子类Bus类和Boat类。 public class Vehicle { private String color; public Vehicle() { this("black"); } public Vehicle(String color) { this.color = color; } public String toString() { return "this is a " + this.color + " vehicle"; } } class Bus extends Vehicle { private int passagerNumber; public Bus() { this(50, "black"); } public Bus(int number) { this(number, "black"); } public Bus(int number, String color) { super(color); this.passagerNumber = number; } public String toString() {

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

面向对象分析与设计实验报告 题目:宿舍管理系统 学号:200*********** 姓名:****** 班级:09软件*****04 完成时间:2011.11.09

目录 1 系统功能需求 (3) 1.1管理系统模块 (3) 1.2查询学生模块 (3) 1.3学生管理模块 (4) 1.4资料修改模块 (5) 1.5楼栋管理模块 (6) 1.6出入登陆模块 (6) 2 建立需求模型 (7) 2.1 划分子系统 (7) 2.2 识别参与者 (8) 2.3 识别用况 (8) 2.4 对需求进行捕获与描述 (9) 3 系统分析 (11) 3.1 寻找类 (11) 3.2 建立状态机图 (12) 3.3 建立类图 (12) 3.4 建立顺序图 (13) 4 系统设计........................................................................... 1错误!未定义书签。 4.1 问题域部分设计 (14) 4.2 人机界面部分设计 (14) 5 总结 (16) 参考文献 (17)

1.系统的功能需求 我校学生公寓现为手工管理,效率低、易出错、手续繁琐,而且耗费大量的人力,物力,财力。故设计一个学生公寓管理系统,管理学生住宿情况,员工情况,处理学生离校,管理人员来访情况等功能。通过此系统,后勤人员可以对学生公寓的各项情况实行电脑化管理,以提高工作效率,也使得公寓管理所需的各项信息能方便快速进行录入,查询,删除和更新。 面对学生公寓管理工作的特点以及该管理工作的具体问题, 本系统可以解决以下问题: (1)录入公寓各学生的基本情况。 (2)全面查询学生的基本情况。 (3)对学生离校进行处理。 (4)每学期对学生住宿进行注册。 (5)对来访人员进行出入管理。 (6)对学生的财务进行登记管理。 (7)对楼栋物资和楼栋的管理。 (8)对各项情况进行修改,删除,更新。 (9)友好的操作界面, 以及简单快速的操作. (10)多种查询方式。 本系统针对学生公寓管理日常的工作程式, 对学生公寓的各项情况例如:学生信息,学生个人财产信息,来访人员信息等进行有效管理,并能通过各方法进行快速方便的查询。使学生公寓管理工作运作简明、清晰,各状况一目了然,使学生公寓管理工作更加科学化、规范化。 1.1管理系统模块:实现用户退出功能。 1.2查询学生模块:该模块包括五个子模块 1.按学号查询——实现按学号查询学生信息 2.按姓名查询——实现按姓名查询学生信息 3.按学生班级查询——实现按学生班级查询学生信息 4.按家庭住址查询——实现按家庭住址查询学生信息 5.混合查询——实现按混合查询学生信息

实验2:Java面向对象程序设计

实验2:Java面向对象程序设计(一) 实验目的 ●掌握类的定义;掌握构造方法的使用;掌握对象的创建。 ●掌握静态变量与静态方法的使用;了解静态变量和成员变量的区别。 ●熟悉访问修饰符的作用;掌握访问修饰符的使用方法。 ●掌握方法的重载;掌握访问器get/set方法。 实验步骤 一、类和对象的创建 1. 创建一个圆类,成员变量有半径radius和圆周率pi,提供计算圆面积的方法,并在main方法中创建圆类的对象,调用其计算面积的方法进行测试。 2. 编写上述代码,编译运行代码,查看程序执行结果。 ●试述程序中两个类的各自作用。 ●类Circle都封装了什么?求圆面积的初始数据是通过哪个方法实现的?请修改程序采用构造函数的方法初始化数据。 ●类Circle是如何声明的?在类中都声明了什么?在主函数中是如何创建Circle类对象的? 二、静态变量和静态方法的设计 (一). 静态变量和实例变量练习 1. 创建一个类,类名为StaticVariableTest,包含static变量和实例变量,类型为int型,在main方法中分别调用这2个变量并且输出结果。 2. 部分源代码如下: 3. 将上述代码中的main方法补充完整后,编译运行代码,查看程序执行结果。 ●根据完善后的源码,分析调用静态变量和实例变量有什么不同? (二). 静态方法和实例方法练习 1. 创建一个类,类名为StaticMethodTest,包含一个静态方法和一个实例方法,在main方法中分别调用这个两个方法进行测试。

2. 部分源代码如下: 3. 将上述代码中的main函数补充完整,编译运行代码,查看程序执行结果。 ●根据完善后的源码,分析如何调用静态方法和实例方法? 三、访问修饰符与方法的重载 (一). 访问修饰符练习 1. 创建一个Person类,在该类中用不同的访问修饰符设立不同的person属性,再创建一个PersonTest类,包括main方法,在此类中分别访问Person类中各个属性。 2. 源代码如下: 3. 先填写下面的表格,在预测结果中,如果能打印输出,填写程序输出结果,否则填“N”。 ●记录程序运行结果。 表4-3-1 预测和验证结果

面向对象技术-实验报告

实验报告 课程名称Java程序设计 实验项目实验一类、对象与构造函数 实验二派生类与继承 系别___________理学院_____________ 专业/班级_________电技1302____________姓名______蔡超月____________ 实验日期_______________________ 成绩_______________________ 指导教师夏红科

一、实验题目:实验一类、对象与构造函数 实验二派生类与继承 二、实验内容: (1)创建一个雇员类,该类中有数据成员有姓名、家庭住址和邮政编码等,其功能有修改姓名、显示数据信息。 要求:雇员类的定义作为.h保存 雇员类功能函数的实现放在.cpp中。 雇员类的使用放在单独的.cpp文件中,该文件使用#include编译预处理命令包含类定义的头文件,在main()函数中使用雇员类创建几个对象并显示信息。 (2)定义一个哺乳动物类,再由此派生出人类、狗类和猫类,这些类中均有speak()函数,请设计相应的类层次结构并加以实现,观察在调用过程中,到底使用了哪个类的speak()函数。 (3)设计一个能细分为矩形、三角形、圆形和椭圆形的图形类,使用继承将这些图形分类,找出能作为基类部分的共同特征(如宽,高,中心点等)和方法(如初始化、求面积等),并设计多种继承模式来测试继承的属性。 三、程序清单及结果:(需要标明实现程序对应的实验内容,并给出合理的程序注释及运行结果) 1)程序清单及注释 内容1: #include #include using namespace std; class employee { protected: string name1; string address1; string shi1; string sheng1; string post1; char name[10]; char address[20]; char shi[10]; char sheng[10]; char post[7]; int num; public: shuru(); void changename(char str[]); void display();

Java面向对象程序设计_习题解答

Java面向对象程序设计 清华大学出版社 (编著耿祥义张跃平) 习题解答 建议使用文档结构图 (选择Word菜单→视图→文档结构图)

习题1 1.James Gosling 2. (1)使用一个文本编辑器编写源文件。 (2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。 (3)使用J ava解释器(java.exe)运行Java程序 3.Java的源文件是由若干个书写形式互相独立的类组成的。 应用程序中可以没有public类,若有的话至多可以有一个public类。 4.系统环境path D\jdk\bin; 系统环境classpath D\jdk\jre\lib\rt.jar;.; 5. B 6.Java源文件的扩展名是.java。Java字节码的扩展名是.class。 7.D 8.(1)Speak.java (2)生成两个字节码文件,这些字节码文件的名字Speak.class 和Xiti8.class (3)java Xiti8 (4)执行java Speak的错误提示 Exception in thread "main" https://www.wendangku.net/doc/ed5096049.html,ng.NoSuchMethodError: main 执行java xiti8得到的错误提示 Exception in thread "main" https://www.wendangku.net/doc/ed5096049.html,ng.NoClassDefFoundError: xiti8 (wrong name: Xiti8) 执行java Xiti8.class得到的错误提示 Exception in thread "main" https://www.wendangku.net/doc/ed5096049.html,ng.NoClassDefFoundError: Xiti8/class 执行java Xiti8得到的输出结果 I'm glad to meet you 9.属于操作题,解答略。

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

. , 面向对象程序设计实验报告 班级:计算机科学与技术11-5 学号:0505 ( 姓名:高冉冉 日期:2012/7/2 \

题目3: 1.问题描述: 假设有图书类Book,包括书名、出版社名称、作者姓名、图书定价等数据成员。编程序完成Book类的设计,从键盘读入10本图书的各项数据,并将这10本图书的相关数据写入磁盘文件中,然后从中读出各图书数据,计算所有图书的总价值,并显示每本图书的详细信息,每本图书的信息显示在一行上。 2.实现代码: #include · #include #include #include<> using namespace std; class Book { private: char bookName[20]; etPrice(); - ioFile<>book[i]; cout<

JAVA类的继承实验报告

《面向对象程序设计》实验报告 实验六、类的继承 课程代码:1H10500学分:6 实验类型:实践型实验学时:4个学时 实验时间:2017.11.23 实验地点:5407 班级:计算机164 专业:计算机科学与技术专业学号:2016011147 姓名:林文辉 一、实验目的 (1)学习JAVA继承的思想 (2)了解JAVA语言继承的实现 二、实验内容及步骤 内容:在圆柱体类Cylinder里,用一个构造方法调用另一个构造方法 步骤:方案的设计与分析(类结构图。。。。。。) (1)找出对象的共同属性和行为 (2)设计代表共同状态与行为的类 (3)决定子类是否需要让某项行为有特定的不同的运行方式 (4)寻找更多抽象化的机会 (5)完成类的继承层次 三、实验过程及结果 实验1代码: abstract class Graphics { abstract void parameter(); abstract void area(); } class Rectangle extends Graphics{ double h,w; Rectangle(double u,double v){h=u;w=v;} void parameter() { S ystem.out.println("矩形高度为:"+h+",矩形宽度为:"+w); } void area() { S ystem.out.println("矩形面积为:"+(h*w)); } }

class Circle extends Graphics{ double r; String c; Circle(double u,String v){r=u;c=v;} void parameter() { System.out.println("圆半径为:"+r+",圆颜色为:"+c); } void area() { System.out.println("圆面积为:"+(Math.PI*r*r)); } } class ExamAbs{ public static void main(String args[]) { Rectangle rec=new Rectangle(2.0, 3.0); Circle cir=new Circle(4.0, "Red"); Graphics[]g= {rec,cir}; for(int i=0;i

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

《面向对象分析与设计》 实验报告 班级:计科09-4班 姓名:郑翼 学号:08093435

实验一用例图 一、实验目的 1.学会分析系统中的参与者和用例 2.掌握用例图的绘制方法 二、实验器材 1. 计算机一台; 2. Rational Rose 工具软件; 三、实验内容 画出A TM系统的用例图 四、实验截图

五、实验体会 通过这次实验,理解了用例图的基本用法,并且初步掌握了Rational Rose软件的使用。对以后面向对象的学习都是十分重要的。

实验二交互图 一、实验目的 1.学会用协作图实现用例 2.掌握顺序图的绘制方法以及顺序图和协作图的相互转换。 二、实验器材 1. 计算机一台; 2. Rational Rose 工具软件; 三、实验内容 画出A TM取款的顺序图,并转换为协作图。 四、实验截图 顺序图

协作图 五、实验体会 通过实验,学会了用协作图实现用例,掌握了顺序图的绘制方法以及顺序图和协作图相互转换的方法,进一步的加深了对软件的使用。

实验三类图 一、实验目的 1.理解类的基本概念 2.理解类间的关系 3.掌握类图的绘制方法 二、实验器材 1. 计算机一台; 2. Rational Rose 工具软件; 三、实验内容 分析选课系统中的类及关系,然后画出它们的类图。 四、实验步骤 1.分析 在选课系统中,通过分析可抽象出如下几个类: 1.学生类 2.管理员类 3.课程类 学生类和管理员类的属性较容易分析,这里只列出课程类的属性和方法:(1)课程名称 (2)开课教室 (3)课程号 (4)授课教师 (5)选课的学生 (6)开课起始时间 (7)允许选课的学生人数 (8)设置课程号 (9)设置课程名称 (10)查询课程号

java实验报告——对象和类

成绩: 面向对象原理与Java实践课程实验报告 实验1:对象和类 姓名 ____ 班级 ____ 学号 ____ 实验地点 ____ 实验时间 ____ 指导教师 ____

面向对象原理与Java实践课程实验报告 实验1:对象和类 一、实验目的: ●掌握类的定义及应用方法 ●掌握对象的创建方法,了解实例变量、实例方法和静态字段的特性 ●体会Java在类和对象的设计中体现的面向对象的思想 二、实验要求: ●具备Java基础知识(教材第1、2章内容) ●掌握Java中对象和类的基本概念和应用方法(教材第3章内容) ●设计类时注意保证类的封装性 ●编写程序完成以下实验内容并上交实验报告(包括电子文档与纸质文档) 三、实验内容: 设计并实现一个“广石化院电信学院学生通信录”系统。系统采用字符界面,在出现的主界面中按提示输入相应字符以选择“增加”、“删除”、“修改”、“查找”等功能进行操作(其中“查找”功能除能够查找某个学生的信息之外,还能够显示所有学生的信息)。记录的存储可采用数组或链表的方式。 四、设计思路: 为了实现该系统,首先要需要两个类;一个类为主界面服务,用于接收用户输入信息以及做出相关反应;一个类为学生信息服务,定义学生通讯录信息的各个字段,以及操作字段的各个方法,考虑到部分字段的属性问题,所以将操作方法都写在学生类中,不再另外放置在其他类中。学生信息将会采用学生类的对象数组来储存。 五、程序源代码: 下面是ZhuJieMian 主界面类 package pkg_TXL; import java.util.Scanner; public class ZhuJieMian { /** * * 该类为通讯录系统的主界面提供主要功能显示,以及负责主菜单与子菜单的正常跳转 */ public static void main(String[] args) {

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

安徽工业大学 面向对象程序设计实验报告 实验课程:《C++语言程序设计》 学生姓名: 学号: 专业班级: 2011年 12 月 18 日

目录 实验1熟悉C++开发环境及简单程序设计和应用 (3) 实验2基本控制结构程序设计 (6) 实验3 类与对象 (10) 实验4友元函数与友元类 (13) 实验5数组与指针 (16) 实验6静态成员 (20) 实验7类的继承 (22) 实验8多态 (24)

安徽工业大学实验报告 学生姓名:张虹学号:6100409033 专业班级:网络工程091 实验类型:□验证□综合□设计□创新实验日期:实验成绩: 实验1熟悉C++开发环境及简单程序设计和应用 一、实验目的 1.初步了解C++程序的编译、连接和运行的过程。 2.掌握和理解C++程序的结构。 二、实验内容 1.使用VC 2.运行一个简单的C++程序 3.编程求出对任意输入的两个整数,求出该两个整数的最大公约数和最小公倍数 三、实验步骤 1.启动VC 或

2.建立工程并输入以下程序 #include using namespace std; void main() { int i(1), sum(0); do { sum+=i; i++; }while(i<=10); cout<<"sum="<

3.保存文件、运行程序、退出VC程序、打开已经存在的文件 4.编程求出对任意输入的两个整数,求出该两个整数的最大公约数和最小公倍数编写以下代码: #include using namespace std; void main() { int a,b,c,d,i; cout<<"a="; cin>>a; cout<<"b="; cin>>b; for(i=1;i<=a && i<=b;i++) if(a%i==0 && b%i==0) c=i; for(i=a*b;i>=a && i>=b;i--) if(i%a==0 && i%b==0) d=i; cout<<"a和b的最大公约数为"<

java面向对象编程实验报告

java面向对象编程实验报告 篇一:java面向对象编程实验报告 信息工程学院 Java程序设计实验/实习报告 学院:信息工程学院班级:信息112 姓名:吴连梅学号:XX013305 成绩:A 实验二面向对象编程 1.实验目的 (1)掌握类与对象基本知识; (2)Java中的继承机制及包(package)、接口(interface)等的设计方法; (3)掌握static、this、super等关键字的使用; (4)掌握Java中两种比较器的用法。 2.实验内容 实验题 1 定义一个类Book,包含两个属性:一个是private的String类型的属性title、一个是private的float类型的属性listPrice,封装这两个属性的四个方法setTitle()和getTitle()、setListPrice( )和geListPrice ()。 基本要求: (1)设计类Book及类BookManagement,在类BookManagement中输出Book类的对象的两个private属性;

(2)重写父类的toString()方法,实现Book类实例的两个属性的输出。 实验过程: 新建工程后,在工程下面建立一个包Book,在包下再建立一个Book类,类中包含两个属性,一个是private的String类型的属性title、一个是private的float类型的属性listPrice,之后是封装这两个属性的四个方法,用快捷键Alt+Shift+S选择gennerate Getters and Setters,再实验报告的内容与格式按任课教师的要求书写。 然后就是重写父类的toString()方法,用快捷键Alt+Shift+S选择gennerate toString,快捷重写。 这段程序写完是这样的: 接下来便是BookManagement类,在包book下新建一个类BookManagement, 写完的程序是这样的: BookManagement类中创建了书的对象,在主方法中调用output函数,赋值,输出。程序写完后,将其存盘,再进行运行,得出的结果如下: 实验题2 有两个类:MobileManagement和Mobile,分别描述如图 3.4所示两部手机名称及价格,类MobileManagemen(本文来自:小草范文网:java面向对象编程实验报告)t在包,而Mobile在包

《面向对象程序设计》实验报告[一]

. 计算机科学与工程学院《面向对象程序设计》实验报告[一]专业班级2017数字媒体技术01实验地点J411 学生学号1705121411 指导教师陈艳 学生姓名黄浩博实验时间 实验项目结构化程序设计(4学时) 实验类别基础性()设计性(√)综合性()其它() 实验目的及要求1.熟悉VC++集成开发环境; 2.熟练应用C++的输入/输出、流程控制、函数、结构等; 3.熟练应用STL常用算法及常见容器; 4.综合应用结构化程序设计思想和方法解决常见问题; 5.完成实验内容,调试通过后将完整代码及运行截图粘贴到实验结果对应的题号下面; 6.对本次实验进行总结(遇到的问题,可行的解决方案,收获,体会等等) 7.完成实验报告后,以学号+姓名+实验1(.doc或.docx)为名上传到ftp://218.199.185.223/student/上传作业/陈艳/面向对象程序设计下对应班级及实验项目文件夹中 成绩评定表 类别评分标准分值得分合计上机表现 积极出勤、遵守纪律 主动完成设计任务 30分

题目一: #include using namespace std; void diamond(int n,char c1,char c2) { int i,j; for (i=1;i<=n;i++){ cout<<"\n\t"; for (j=1;j<=n-i;j++) cout<0;i--){ cout<<"\n\t"; for (j=1;j<=n-i;j++) cout< #include using namespace std; void scan(vector &a,int ); int search(vector &a,vector &b,int); void print(const vector &b,int); int main(){ int n,m; cout<<"How much numbers will you enter:"; cin>>n; vector a(n),b(n); scan(a,n); m=search(a,b,n); print(b,m+1); cin.get(); cin.get(); return 0; } void scan(vector &a,int n){

java实验报告心得体会

java实验报告心得体会 联合大学信息学院 “面向对象程序设计”课 程上机实验报告 题目: JAVA上机实验心得体会 姓名(学号):专业:计算机科学与技术 编制时间: xx年12月19日 版本: 1.0.0 指导教师:联合大学-信息学院编制 实验1 熟悉Java运行环境 实验目的:熟悉JDK环境和操作,编写简单的Java应用程序。

心得体会:在该实验中,我碰到的问题是JDK环境变量的设置。解决方法是通过查阅资料书和网上搜索相关解决方法及同学的有力 帮助。 实验2 选择语句练习 实验目的:正确理解并能够熟练操作和使用Java的if和switch 语句。 心得体会:我个人感觉有了C的编程基础,if和switch这些简单的流程控制语句运用起来比较轻松,实现简单的逻辑运算也跟C非常相近,所以上手比较快。但是在这次程序中,首次涉及到了java 程序的数据输入,与C区别很大。但经过老师的讲解和查阅相关资料,基本明白相关的使用规则和注意事项。在第二个小题中还涉及到了charAt()方法,经查阅JDK文档,知道charAt()方法返回一个位于提供给它的参数索引处的字符,如: str.chatAt(0)检索str中的第一个字符,str.charAt(str.length()-1)检索最后一个字符。我运用此方法解决了比较字符串间首字母异同的问题。 实验3 迭代练习

实验目的:正确理解并能够熟练操作和使用Java的for、while、do..while语句。心得体会:在该实验中,我学会了为具体操作选 择最合适的循环语句及for、while、do..while语句的相互转换使用。最重要的是,明白了JAVA程序中,定义方法中的局部变量时一定要 赋初始值,否则编译不能通过会报错;但类中的成员变量则不一定需要。如我在实验3main()方法定义的整型局部变量mand,当不初始化则不能通过编译。原因是局部变量不能有JVM自动赋给相关的默认值,而成员变量可以。 实验4 方法的实现练习 实验目的:声明、定义和调用方法,理解实参和形参的含义。 心得体会:在该实验中,我掌握如何写方法、调用方法,并掌握 如何向方法中传递信息和从方法中返回信息。方法声明为非void(构造方法除外)则需要用return语句返回一个相应类型的返回值。 实验5 简单类型数组练习 实验目的:学习创建简单类型的数组,并能用循环语句处理数组。

《面向对象程序设计》实验报告(一)1到100素数

《面向对象程序设计》实验报告(一) 姓名江琛学号11 班级计本二班 实验地点软件实验室2 指导教师丁德武实验时间2012-2-27 (注:一到五条在实验预习时填写,六、七条在实验当中或之后填写) 一、实验项目名称:熟悉C++程序的运行环境 二、实验目的及要求 目的: 1.了解和使用Visual C++ 6.0的集成开发环境。 2.熟悉Visual C++ 6.0环境的基本命令和功能键,熟悉常用的菜单命令。 3.学习使用Visual C++ 6.0环境的帮助。 4.学会完整的C++程序开发过程(编辑、编译、连接、调试、运行、查看结果)。 要求: 熟悉VC++上机环境,通过简单的输入输出程序,掌握利用Visual C++ 6.0进行面向对象程序设计的基本步骤。 三、实验环境及要求:多媒体计算机一台 Windows XP操作系统 Visual C++ 6.0 四。试验原理及步奏 原理:(for循环的嵌套) #include #include "math.h" void main () { int m,i,j,n=0; for(i=1;i<=100;i++) { m=sqrt(i); for(j=2;j<=m;j++) if(i%j==0) break; if(j>m+1) { printf("%5d ",i); n=n+1; } } if(n%10==0) printf("\n");

} 五、实验注意事项: 1.注意到标点符号,不要遗漏!注意程序的格式等细节。2.熟练掌握for循环的结构!尽量使程序简洁! 3.使用数学函数时,应该在该资源文件中使用以下命令行:#include <.math.h>或#include "math.h" 六、实验数据记录:

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

学生学号实验课成绩 许昌学院 学生实验报告书 实验课程名称面向对象程序设计(Java) 开课学院信息工程学院 指导老师姓名杨月华 学生姓名郑强 学生专业班级 14网络安全本1 2014-2015学年第2学期

实验名称实验一第一个Java程序实验成绩 实验者郑强专业班级14网络安全本1 指导教师杨月华实验日期2015.03.17 一、实验目的 1. 掌握Java开发环境的搭建和环境变量配置方法。 2. 熟悉简单的Java程序的编写、编译和运行过程。 二、实验环境 硬件:安装有Windows XP/7操作系统的电脑一台 软件:JDK1.7,Notepad++ 三、实验内容 1. 安装JDK7,配置环境变量,搭建Java开发环境。 2. 使用文本编辑工具(记事本或Notepad++)编写一个Java程序,在命令行窗口编译、运行,输出字符串“你好,我是×××,这是我的一个Java程序!”,按照题目编写程序并给出运行结果截图。 public class Helloworld{ public static void main(String[] args){ System.out.println("你好,我是JOHN,这是我的一个java程序"); } }

实验名称实验二变量的定义和转换实验成绩 实验者专业班级14网络安全本1 指导教师杨月华实验日期 一、实验目的 1. 了解变量的定义方式和如何为不同类型的变量赋值。 2. 了解变量进行自动类型转换的条件。 3. 掌握不同数据类型间的强制类型转换。 二、实验环境 硬件:安装有Windows XP/7操作系统的电脑一台 软件:JDK1.7,文本编辑工具 三、实验内容 1. 编写一个类test1,在test1的main()方法中,针对8种基本数据类型,分别定义变量并赋值,然后使用println语句分别打印每个变量的值,将程序运行结果截图。 2. 编写一个类test2,在类test2中,定义byte类型的变量a,int类型的变量b,float 类型的变量f,double类型的变量d,其中,变量a的初始值为10,变量f的初始值为12.5f。首先将变量a的值赋给变量b,变量a、b、f相加后的结果值赋给变量d,然后使用println语句打印出变量b和变量d的值。解释程序中存在的数据类型自动转换,将程序运行结果截图。 3. 编写一个类test3,在test3中的main()方法中定义一个int类型的变量i和byte 类型的变量b,并将变量i的值赋给变量b,使用println语句打印出变量b的值,将程序运行结果截图。

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

《面向对象分析与设计UML》 实验报告 实验及作业一 一、实验目的 了解软件工程等基础知识,为后续的统一建模语言UML知识的学习做好准备工作。 二、实验设备与环境 装有Visio、RationalRose的计算机。 三、实验内容 1、复习阐述“软件工程开发模型”的相关概念,并分析各种模型的优缺点,写成实验报告。 2、熟悉UML软件设计工具Visio、Rational Rose的安装及环境 四、实验过程及结果 经过上网搜索相关信息进行了解软件工程开发模型的相关概念与优缺点 一,什么是软件工程概念模型 模型就是抽象,就是有意识地忽略事物的某些特征。抽象带来的好处是能够反映模型中元素之间的关系,清晰把握大局。 概念模型是模型的一种,简单说就是抽象程度极高的一种模型。 软件工程概念模型是对软件工程领域进行抽象描述的模型,它能够使我们对软件工程有一个完整把握。 二,软件工程开发模型的种类以及优缺点 瀑布模型由W.Royce于1970年首先提出。根据软件工程生存周期各个阶段的任务,瀑布模型从可行性研究开始,逐步进行阶段性变换,直至通过确认测试并得到用户确认的软件产品为止。瀑布模型上一阶段的变换结果是下一阶段变换的输入,相邻两个阶段具有因果关系,紧密联系。一个阶段的失误将蔓延到以后的各个阶段。为了保障软件开发的正确性,每一阶段任务完成后,都必须对它的阶段性产品进行评审,确认之后再转入下一阶段的工作。评审过程发现错误和疏漏后,应该及时反馈到前面的有关阶段修正错误或弥补疏漏,然后再

重复前面的工作,直至某一阶段通过评审后再进入下一阶段。瀑布模型如图1.1所示。 瀑布模型有许多优点,如可强迫开发人员采用规范的方法;严格规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证等。 但瀑布模型也存在缺点,其主要表现在:①在软件开发的初始阶段指明软件系统的全部需求是困难的,有时甚至是不现实的。而瀑布模型在需求分析阶段要求客户和系统分析员必须做到这一点才能开展后续阶段的工作。②确定需求后,用户和软件项目负责人要等相当长的时间才能得到一份软件的最初版本。如果用户对这个软件提出比较大的修改意见,那么整个软件项目将会蒙受巨大的人力、财力和时间方面的损失。 原型模型又称演化模型,主要是针对事先不能完整定义需求的软件项目开发而言的。许多软件开发项目由于人们对软件需求的认识模糊,很难一次开发成功,返工再开发难以避免。因此,人们对需开发的软件给出基本需求,作第一次试验开发,其目标仅在于探索可行性和弄清需求,取得有效的反馈信息,以支持软件的最终设计和实现。通常我们把第一次实验性开发出的软件称为原型(prototype)。这种开发模型可以减少由于需求不明给开发工作带来的风险,有较好的效果。相对瀑布模型来说,原型模型更符合人类认识真理的过程和思维,是目前较流行的一种实用的软件开发方法。原型模型如图4.2所示。 原型化模型有丢弃型、样品型和渐增式演化型三种形式。丢弃型是指原型开发后,已获得了更为清晰的需求反馈信息,原型无需保留而丢弃,开发的原型仅以演示为目的,这往往用在软件的用户界面的开发上。样品型是指原型规模与最终产品相似,只是原型仅供研究用。渐增式演化型是指原型作为最终产品的一部分,它可以满足用户的部分需求,经用户试用后提出精华系统、增强系统能力的需求,开发人员根据反馈信息,实施开发的迭代过程。如果在一次迭代过程中,有些需求还不能满足用户的需求,可以在下一迭代过程中予以修正,整个实现后软件才可最终交付使用。 螺旋模型是瀑布模型与原型模型相结合,并增加两者所忽略的风险分析而产生的一种模型,该模型通常用来指导大型软件项目的开发,它将开发划分为制定计划、风险计划、实施开发和客户评估四类活动。沿着螺旋线每转一圈,表示开发出一个更完善的新的软件版本。如果开发风险过大,开发机构和客户无法接受,项目有可能就此中止;多数情况下,会沿着螺旋线继续下去,自内向外逐步延伸,最终得到满意的软件产品。该模型是由TRW公司的B.Boehm于1988年提出的。 图1.3显示了螺旋模型的原理,沿着螺旋线旋转,在笛卡儿坐标的四个像限上分别表达

相关文档
相关文档 最新文档