当前位置:文档之家› 实验5 JAVA常用类

实验5 JAVA常用类

实验5 JAVA常用类
实验5 JAVA常用类

山西大学计算机与信息技术学院

实验报告

姓名学号专业班级

课程名称 Java实验实验日期成绩指导教师批改日期

实验5 JAVA常用类实验名称

一.实验目的:

(1)掌握常用的String,StringBuffer(StringBuilder)类的构造方法的使用;(2)掌握字符串的比较方法,尤其equals方法和==比较的区别;

(3)掌握String类常用方法的使用;

(4)掌握字符串与字符数组和byte数组之间的转换方法;

(5)Date,Math,PrintWriter,Scanner类的常用方法。

二.实验内容

1.二进制数转换为十六进制数(此程序参考例题249页9.

2.13)

程序源代码

import java.util.*;

public class BinToHexConversion{

//二进制转化为十六进制的方法

public static String binToHex(String bin){

int temp; //二进制转化为十六进制的位数

if(bin.length()%4==0)

temp = bin.length()/4;

else

temp = bin.length()/4 + 1;

char []hex = new char[temp]; //十六进制数的字符形式

int []hexDec = new int[temp];//十六进制数的十进制数形式

int j = 0;

for(int i=0;i

char binChar = bin.charAt(i);

hexDec[j] = hexDec[j]*2 + (binChar-'0');

if((bin.length()-1-i)%4==0){

hex[j] = decToHexChar(hexDec[j]);

j++;

}

}

return String.valueOf(hex);

}

//十进制0~15转化为十六进制的方法

public static char decToHexChar(int dec){

if(dec>=0&&dec<10)

return (char)('0'+dec-0);

else if(dec>=10&&dec<=15)

return (char)('A'+dec-10);

else

return '@';

}

//测试方法

public static void main(String []args){

Scanner input = new Scanner(System.in);

System.out.println("请输入一个二进制数(11100011):");

String bin = input.nextLine();

String hex = binToHex(bin);

System.out.println("二进制数:"+bin+"转化为的十六进制为:"+hex);

}

}

程序运行结果贴图

2.将十进制转换为二进制

程序源代码

import java.util.*;

public class DecToBinConversion{

//十进制转化为二进制的方法

public static String DecToBin(int dec){

int j=0;//转化为二进制的位数

for(long temp=1;temp<=dec;j++)

temp =temp *2;

char []bin = new char[j];

while(dec!=0){

bin[j-1] = (char)('0'+(dec%2)-0);

dec=dec/2;

j--;

}

return String.valueOf(bin);

}

//测试方法

public static void main(String [] args){

Scanner input = new Scanner(System.in);

System.out.println("请输入一个十进制数:");

int dec = input.nextInt();

String bin = DecToBin(dec);

System.out.println("十进制数"+dec+"转化为的二进制数为:"+bin);

}

}

程序运行结果贴图

3. 一些网站设定了一些制定密码的规则。编写一个方法,检验一个字符串是否是合法的密码。假设密码规则如下:

(1)密码必须至少有8个字符。(2)密码只能包括字母和数字。

(3)密码必须至少有2个数字。

编写一个程序,提示用户输入密码,如果该密码符合规则就显示“Valid Password”,否则显示“Invalid Password”。

程序源代码

import java.util.*;

public class CheckPassword{

//检查password是否合法的方法

public static boolean isPassword(String password){

boolean b=true;

//password 少于8个字符

if(password.length()<8)

return b=false;

int cout=0;//统计字符串中数字的个数

for(int i=0;i

char pChar = password.charAt(i);

//判断字符串中的非法字符

if((pChar<'0'||pChar>'9')&&(pChar<'A'||pChar>'Z')&&(pChar<'a'||pChar>'z'))

return b=false;

if(pChar>='0'&&pChar<='9')

cout++;

}

if(cout<2)

return b=false;

return b;

}

//测试方法

public static void main(String []args){

Scanner input = new Scanner(System.in);

System.out.println("请输入密码password:");

String password = input.nextLine();

Boolean b = isPassword(password);

if(b)

System.out.println("Valid Password!");

else

System.out.println("Invalid Password!");

}

}

程序运行结果贴图

4.使用下面的方法头编写一个方法,找出某个指定字符在字符串中出现的次数:public static int count(String str,char a)

例如,count(“Welcome”,’e’)返回2.编写一个测试程序,提示用户输入一个字符串,在该字符串后紧跟着一个字符,然后显示这个字符在字符串中出现的次数。

程序源代码

import java.util.*;

public class CoutChar{

//统计字符的方法

public static int cout(String str,char a){

int cout=0;

for(int i=0;i

char strChar = str.charAt(i);

if(strChar-a==0)

cout++;

}

return cout;

}

//测试方法

public static void main(String []args){

Scanner input = new Scanner(System.in);

System.out.println("请输入要统计的字符串(string)和字符(a):");

String str = input.nextLine();

String strA = input.next();

char a = strA.charAt(0);

System.out.println("字符\'"+a+"\'在字符串\""+str+"\"中出现的次数为:\t"+cout(str,a)); }

}

程序运行结果贴图

5.Java 提供了3 个日期类:Date、Calendar 和DateFormat。其中,Date 类主要用于创建日期对象并获取日期,Calendar 类可获取和设置日期,DateFormat 类用来设置日期的格式。Java 语言规定的基准日期为1970.1.1 00:00:00 格林威治(GMT)标准时间,当前日期是由基准日期开始所经历的毫秒数转换出来的。

程序源代码如下,手工输入,认真分析并运行程序,掌握java日期相关类的用法。

import java.util.*;

import java.text.*;

public class KY5_10

{

public static void main (String args[])

{

Date today = new Date(); //当前日期和时间

SimpleDateFormat sdf;

sdf= new SimpleDateFormat("yyyy 年MM 月dd 日hh 时mm 分ss 秒 a EEEEE");

System.out.println("当前日期和时间: "+sdf.format(today));

long hms=System.currentTimeMillis(); //当前时间的毫秒数

System.out.println("当前时间的毫秒数="+hms);

Date tomorrow = new Date(hms+24*60*60*1000);

System.out.println("明天是"+sdf.format(tomorrow));

Calendar now = Calendar.getInstance();

int year =now.get(Calendar.YEAR); //年份

int month=now.get(Calendar.MONTH)+1; //月份

int day = now.get(Calendar.DATE); //日期

System.out.print("今天是"+year+"年"+month+"月"+day+"日");

int week = now.get(Calendar.DAY_OF_WEEK); //星期

switch (week)

{

case 1: System.out.println(" 星期日");break;

case 2: System.out.println(" 星期一");break;

case 3: System.out.println(" 星期二");break;

case 4: System.out.println(" 星期三");break;

case 5: System.out.println(" 星期四");break;

case 6: System.out.println(" 星期五");break;

case 7: System.out.println(" 星期六");break;

}

}

}

?编译并运行程序

程序运行结果贴图

6Math 是一个最终类,含有基本数学运算函数。创建使用Math 类的应用程序,程序中使用如指数运算、对数运算、求平方根、三角函数、随机数等,可以直接在程序中加Math.前缀调用。

程序源代码

public class TestMath{

public static void main(String []args){

System.out.println("-1的绝对值为:"+Math.abs(-1));

System.out.println("asin(1) = "+Math.asin(1));

System.out.println("sin(PI/2) = "+Math.sin(Math.PI/2));

System.out.println("角度90度对应的弧度为:"+Math.toRadians(90));

System.out.println("弧度PI/3对应的角度为"+Math.toDegrees(Math.PI/3)+"度");

System.out.println("e的23次方为:"+Math.exp(23));

System.out.println("log以e为底e的对数为:"+Math.log(Math.E));

System.out.println("log以10为底100的对数为:"+Math.log10(100));

System.out.println("2的3次方为:"+Math.pow(2,3));

System.out.println("4的平方根为:-"+Math.sqrt(4)+"和"+Math.sqrt(4));

System.out.println("系统随机产生的0~9之间的随机整数为:"+(int)(Math.random()));

System.out.println("系统随机产生的20~35之间的整数为"+(int)(20+Math.random()*16));

}

}

程序运行结果贴图

实验5 类和对象1答案

实验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; https://www.doczj.com/doc/0b5892923.html,=name; this.sex=sex; this.age=age; } public long getStudentID(){ return studentID; } public int getClassID(){

C++实验报告 第四章 类与对象

C++实验报告 实验4 类与对象 一、实验目的 1、掌握类的声明和使用 2、掌握类的声明和对象的声明 3、复习具有不同访问属性的成员的访问方式 4、观察构造函数和析构函数的执行过程 5、学习类的组合使用方法 6、使用DEBUG调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序 二、实验任务 1、声明一个CPU类,包含等级rank、频率frequency、电压voltage等属性,有两个公有成员函数run、stop。其中,rank为枚举类型CPU-Rank,声明为enum CPU-Rank{P1=1,P2,P3,P4,P5,P6,P7}, frequency为MHz的整数型,voltage为浮点型的电压值。观察构造函数好析构函数的调用顺序。 2、声明一个简单的Computer类,有数据成员芯片cpu、内存ram、光驱cdrom 等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM 类的一个对象,cdrom为CDROM类的一个对象,声明并实现这个类。 3、设计一个用于人事管理的People类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number编号、sex性别、birthday出生日期、id身份证号等。其中出生日期声明为一个日期类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内嵌成员函数、组合。 三、实验内容 任务1:首先声明枚举类型,在这里出现了知识性错误,不清楚具体应如何声明,经查询相关书籍,知道应在类外进行声明。初次用类来进行编程,在概念上是有一些混乱的,例如构造函数和析构函数的调用顺序等。在用debug单步调试后,明白其中道理。 源程序: //Lab4_1.cpp #include using namespace std; enum CPU_Rank {P1=1,P2,P3,P4,P5,P6,P7}; class CPU { //CPU类的定义 private: //私有数据成员 CPU_Rank rank; int frequency;

实验3 类和对象

实验3 类和对象的创建与使用 一、实验目的 1、掌握类的定义和对象的创建; 2、掌握构造方法的作用、格式及重载; 3、掌握修饰词对成员存取权限的限制。 4、掌握实例成员、类成员的定义和使用方法。 二、实验内容 1、定义储蓄账户类,并创建对象模拟银行基本操作。 2、两游戏角色决斗。给定二个不同的角色,判定交手的胜负关系。(选做) 3、设计学生类、学校类、录取类,根据学生成绩和学校分数线,判断是否录取。 三、实验步骤 说明:请将第1,3题代码写入实验报告实验步骤处。 1、模拟银行账户功能。 编写程序,模拟银行账户功能。要求如下: 属性:账号、姓名、地址、存款余额、最小余额。 方法:存款、取款、查询。 根据用户操作显示储户相关信息。 如存款操作后,显示储户原有余额、今日存款数额及最终存款余额。 取款时,若取款成功,显示信息提示;若最后余额小于最小余额,拒绝取款,并显示信息提示。具体显示信息可据方便性原则自拟。 public class AccountOperation { public static void main(String [] args) { Account account1=new Account("650101","柳眉","天河学院",800.00); Account account2=new Account("650102","郑杰","天河学院",200.00); account1.transfer(account1,account2,300.0); account1.deposit(300.5); account1.withdraw(200); account1.withdraw(300); account1.query(); System.out.println(account1.toString()); //System.out.println(https://www.doczj.com/doc/0b5892923.html,); error!! } } class Account { private String account; private String name; private String address; private double balance;

Java集合框架实验报告

浙江大学城市学院实验报告 课程名称Java高级程序设计 实验项目名称Java集合框架实验 学生姓名专业班级学号 一、实验目的 1.理解Java集合框架的特点、接口与类之间的关系 2.掌握Java集合框架的List接口,以及List接口的重要实现类LinkedList、ArrayList 3.掌握Java集合框架的Set、SortedSet接口,以及重要实现类HashSet与TreeSet 4.掌握Java集合框架的Map、SortedMap接口及其重要实现类HashMap、TreeMap 5.掌握Java集合框架的Collection与Iterator接口的特点与使用方式 二、实验内容 1、使用List管理对象集合 2、使用Map管理对象集合 3、使用Set管理对象集合 4、设计一个自定义的集合类 三、实验步骤 1、在Eclipse中新建工程(即项目) 2、使用List管理对象集合 1)新建一个包listExample 2)在这个包中新建三个类:Student类,StudentList类,StudentListTest类。 参考代码: Student、java, StudentList、java,StudentListTest、java 3)完善上面三个类,相关要求参考源代码程序的注释,即根据要求修改源代码程序, 给出具体的实现代码(不使用泛型类)。

void addStudent(Student student){//添加一个学生对象 boolean a=true; for(int i=0;i

实验四 类与对象

宁夏师范学院数学与计算机科学学院《面向对象程序设计(C++)》实验报告

}*/ // ~CPU() {cout<<"析构了一个CPU!"<

java 实验七 对象集合 实验报告

实验七对象集合的组织 实验目标: 1.了解Collection、List、Set、Map等常用数据结构的层次结构 2.掌握LinkList、Vector、ArrayList、HashTable、HashMap等类的用法 3.掌握Enumeration(枚举)及Iterator(迭代器)的遍历用法 4.了解自学HashSet、TreeSet这两个Set接口下的重要实现类 5.了解自学比较器接口 实验任务: 1. 填空 List 接口的特点是元素__有__(有|无)顺序,___可以___(可以|不可以)重复; Set 接口的特点是元素__无___(有|无)顺序,__不可以____(可以|不可以)重复; Map 接口的特点是元素是键、值对象,其中__键__可以重复,_值对象__不可以重复 2. (List)有如下代码: import java.util.*; public class TestList{ public static void main(String args[]){ List list = new ArrayList(); list.add(“Hello”); list.add(“World”); list.add(1, “Learn”); list.add(1, “Java”); printList(list); } public static void printList(List list){ //1 } } 要求: 1) 把//1 处的代码补充完整,要求输出list 中所有元素的内容,请使用三种方式来实现(课本227页,Iterator、增强for循环,普通循环)。 2) 三种代码与执行结果截图 1、用Iterator实现的代码如下: package zi; import java.util.*; publicclass Ex7_2{ publicstaticvoid main(String args[]){ List list = new ArrayList(); list.add("Hello"); list.add("World"); list.add(1, "Learn");

实验报告_实验3 类与对象

实验报告_实验3 类与对象(学生学号_姓 名) 一、实验目的 1.熟悉类的组成,掌握类的声明方法; 2.理解构造方法的作用,并掌握构造方法的定义; 3.熟练使用访问器和设置器实现信息隐藏和封装; 4.熟悉一般方法、构造方法的重载; 5.能够正确地区分静态变量与实例变量、静态方法与实例方法的不同,掌握静态变量和静态方法的使用;6.掌握对象的创建、引用和使用及向方法传递参数的方式; 7.掌握this关键字的使用以及对象数组的创建和访问; 8.掌握Java包的创建、包成员的各种访问方式; 9.掌握一维数组:声明,创建,初始化,数组元素的访问; 10.掌握多维数组的概念:二维数组的声明,初始化,元素的访问。 二、实验内容与步骤 1.请回答下列问题: (1)Cirecle类定义了几个属性?它们的类型、访问权限各为什么? 答:两个PI,floatl类型,静态私有权限 Radius,float;类型,私有权限 (2)类中的“PI”的值可以在程序的方法中更改吗? 答:不可以,因为PI为静态变量 (3)Cirecle类定义了几个方法?它们的访问权限怎样?

答:四个,getRadius(),setRadius(float radius),getPerimeter(),getArea()都是公有权限 2.写出Rectangle类的程序代码: class Rectangle { private float width; private float length; public float getWidth( ) //获取矩形宽度 {return width;} public float getLength( ) //获取矩形长度 {return length;} public float getPerimeter( ) //获取矩形周长 {return 2*(width+length);} public float getArea( ) //获取矩形面积 {return (width*length);} public void setWidth(float w) //设置矩形宽度 {width=w;} public void setLength(float l) //设置矩形长度 {length=l;} } 3.回答下列问题: (1)该程序中有几个类?主类是什么?如果将这两个类放在一个文件中,源程序文件名应是什么?答:两个类:Circle、CircleTest;主类是CircleTest;源程序文件名是CircleTest。

实验二 Java类-实验报告

南京信息工程大学实验(实习)报告 实验(实习)名称Java类实验(实习)日期 10.17 得分指导教师刘文杰院计算机与软件学院专业软件工程年级 2017级班次 1 姓名张成学号20171344024 1.实验目的: 1)熟练MyEclipse工具的使用与调试; 2)掌握Java类、方法和变量的定义和使用; 3)熟悉方法重载和覆盖、掌握this和supper关键字使用; 4)掌握4类访问控制符的使用。 2.实验内容: (1)定义一个类Circle,实现其面积计算功能getArea(); (2)编写程序,读入一个正整数并按降序显示它的所有最小因子。(教材第3章习题9)(3)利用多态性编程,实现求三角形、正方形和圆形的面积。(教材第4章习题6) 3.实验步骤 1、 public class Circle { public double radius; public Circle(double r) { radius= r; } public double getArea() { return radius*radius*Math.PI; } public static void main(String[] args) { Circle area1 = new Circle(5); System.out.println("The area is " + area1.getArea()); } }

2、 import java.util.Scanner; public class Read { public static void main(String[] args) { Scanner input =new Scanner(System.in); System.out.print("输入一个正整数:"); int n=input.nextInt(); int []a=new int[n]; int []b=new int[n]; int p,q=0,m=0; for(p=2;p<=n;p++) { while(n%p==0) { n=n/p; if(n!=1) { a[q]=p; q++; } else { a[q]=p; } } } while(q!=-1) { b[m]=a[q]; m++; q--; } for(p=0;p

实验一:类和对象1

实验一:类和对象 【实验目的】 1.理解对象和类,掌握类的定义及如何创建一个对象; 2.掌握构造方法的运用; 3.掌握方法的定义和参数传递; 4. 掌握类的继承机制。 【实验准备】 一、复习配套教材相关章节的内容; 二、预习本次实验; 【实验内容】 1.编写一个程序,显示水果的定购行情。定义一个带有参数的构造方法,这些参数用于存放产品名,数量和价格。在主程序中输出三种不同的水果。package avage; public class text { String name; int agr; double page; public text(){ } public text(String name,int agr,double page){ https://www.doczj.com/doc/0b5892923.html,=name; this.agr=agr; this.page=page; } public void evagre(){ System.out.println("水果名为:"+https://www.doczj.com/doc/0b5892923.html,); System.out.println("水果数量:"+this.agr); System.out.println("水果单价:"+this.page); } } public class text1 { /** * @param args

*/ public static void main(String[] args) { // TODO Auto-generated method stub text s=new text(); https://www.doczj.com/doc/0b5892923.html,="苹果"; s.agr =10; s.page=1.0; s.evagre(); text c=new text(); https://www.doczj.com/doc/0b5892923.html,="香蕉"; s.agr =10; s.page=1.0; s.evagre(); text d=new text(); https://www.doczj.com/doc/0b5892923.html,="橘子"; s.agr =10; s.page=1.0; s.evagre(); 2. 编写一个学生类,封装学生的学号、姓名、成绩等信息。再编写一个主类,

实验一.类与对象实验报告

浙江理工大学信息学院 面向对象程序设计实验报告 实验名称:类的定义与使用学时安排: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 #include #include using namespace std;

JAVA实验报告-集合框架与泛型机制

Java 语言程序设计 C 实验报告 集合框架及泛型机制 学生姓名 专业、班级 指导教师 成绩 计算机与信息工程学院 年月日

一、实验目的 学习课程相关章节知识,通过上机练习,掌握以下知识: 1.掌握 List 接口下 ArrayList 及 LinkedList 的使用方法。 2.掌握 Map 接口下 HashMap 及 HashTable的使用方法 3.掌握集合中泛型的使用 二、实验内容 利用集合完成象数据库那样存储数据,并且可以简单查询,利用 map 存储学生信息,字段如下: id ,name,age,实现步骤: (1)创建类,类图如下: (2)在 main 方法编写逻辑代码 (3)运行程序并测试结果 package https://www.doczj.com/doc/0b5892923.html,; public class Student { private String name ; private int age ; private String id ;

public String getName() { return name ; } public void setName(String name ) { this . name =name ; } public int getAge() { return age ; } public void setAge(int age ) { this. age=age ; } public String getId() { return id; } public void setId(String id) { this. id=id; } public Student(String name ,int age , String id ) { super(); this. name =name ; this. age=age ; this. id=id; } public void sayHi() { System.out.println("name=" +this.getName()+"age=" + this .getAge()+" " + "id=" + this.getId()); } }

实验1:类、对象基础知识运用

广东技术师范学院实验报告 学院:计算机科学学 院 专业: 计算机科学与 技术(师范) 班级:成绩: 姓名:孔哥哥学号:组别:组员: 实验地点:Win10电脑实验日期:指导教师签名: 实验名称: 一、实验目的: 1、熟练掌握类、对象的的概念以及对事物的抽象。 2、熟练掌握成员、方法的概念以及构造方法的概念。 3、熟练掌握封装性,多态性的概念 4、理解面向对象的程序设计方法。 二、实验内容和步骤:(说明代码及运行结果) 1.运行下面的程序,理解面向对象的程序设计方法的基本概念。 class value { public int x,y; public value(int a,int b) { x=a; y=b; } } public class Ch31 { public static void main(String args[]) { int total; value num=new value(24,65); total=num.x+num.y; System.out.println("add="+total); } }

2、定义一个类实现银行帐户的概念,包括的变量有"帐号"和"存款余额",包括的方法有"存款"、"取款"、"查询余额"和”显示帐号”。定义主类,创建帐户类的对象,并完成相应操作。 2.1新建一个AccountTester的类,以下是代码: public class AccountTester { public static void main(String[] args) { BankAccount anAccount; anAccount=new BankAccount("小明",12121000,1000); System.out.println("账户名字:"+anAccount.getOwnerName()); System.out.println("账户号码:"+anAccount.getAccountNumber()); System.out.println("账户现有:$"+anAccount.getBalance()); System.out.println("存款$500,以后有:"+anAccount.setBalance(500)); System.out.println("取款$700,以后有"+anAccount.withdraw(700)); } } 2.2再建一个BankAccount类,代码如下: //定义类方法 public class BankAccount { private String ownerName; private int accountNumber; private float balance; //定义构造函数,如果没有接收参数就生成一个空的对象 public BankAccount(){

C++实验二类与对象(附答案)

实验二类与对象 实验目的和要求 1.掌握类、类的数据成员、类的成员函数的定义方式。 2.理解类成员的访问控制方式。 3.掌握对象的定义和操作对象的方法。 4.理解构造函数和析构函数的定义与执行过程。 5.掌握重载构造函数的方法。 6.了解拷贝构造函数的定义方法。 实验容 1.下面程序中有错,在不删除和增加代码行的情况下,改正错误语句,使其正确运行。#include class Aa { public: Aa(int i=0) { a=i; cout<<"Constructor "<

(1) #include class Date { void set_date(); void show_date(); int year; int month; int day; }; Date d; int main() { set_date(); show_date(); } void set_date() { cin>>d.year; cin>>d.month; cin>>d.day; } void show_date() { cout< class A { public: void A(int i=0) { m=i; } void show() { cout<

操作系统实验报告java

操作系统实验报告 院系: 专业: 班级: 学号: 姓名: 指导老师:

进程调度的模拟与内存管理 一、实验目的 在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态。当就续进程个数大于处理器数时,就必须依照某种策略来决定哪些进程优先占用处理器。实验模拟实现处理机调度,以加深了解处理机调度的工作,并体会优先级和时间片轮转调度算法的具体实施方法。帮助了解在不同的存储管理方式下,应怎样实现主存空间的分配和回收。 二、实验要求 1、可随机输入若干进程,并按优先权排序; 2、从就绪队首选进程运行:优先权-1/要求运行时间-1 要求运行时间=0时,撤销该进程 3、重新排序,进行下轮调度。 4、可随时增加进程; 5、规定道数,设置后备队列和挂起状态。若内存中进程少于规定道数,可 自动从后备队列调度一作业进入。被挂起进程入挂起队列,设置解挂功 能用于将指定挂起进程解挂入就绪队列。 6、每次调度后,显示各进程状态。

7、自行假设主存空间大小,预设操作系统所占大小并构造未分分区表; 表目内容:起址、长度、状态(未分/空表目) 8、结合以上实验,PCB增加为: {PID,要求运行时间,优先权,状态,所需主存大小,主存起始位置, PCB指针} 9、采用最先适应算法分配主存空间; 10、进程完成后,回收主存,并与相邻空闲分区合并。 11、采用图形界面; 三、实验内容 选择一个调度算法,实现处理机调度。 1、设计一个按优先权调度算法实现处理机调度的程序; 2、设计按时间片轮转实现处理机调度的程序。 3、主存储器空间的分配和回收。在可变分区管理方式下,采用最先适应算法实现主存空间的分配和回收。 四、实验原理 该模拟系统采用java语言实现,要实现的功能有新建进程、进程调度、挂起进程、解挂进程、删除进程,道数和时间片大小可以由用户自己调整,有两种调度策略:按优先权调度和按时间片轮转调度。每个进程可能有5种状态:新建(new)、就绪(ready)、运行(running)、阻塞(waiting)、挂起(suspend)。每个状态都有一个队列用来存放处于该状态的进程,不同的调度策略采用不同的队列实现。当创建进程时,如果内存中的进程数还没达到规定道数,则将新建进程插入就绪

实验四 类与对象

实验四类与对象 一、实验目的 1. 掌握类的声明和使用。 2. 掌握类的声明和对象的声明。 3.复习具有不同访问属性的成员的访问方式。 4. 观察构造函数和析构函数的执行过程。 5.学习类的组合使用方法。 6. 使用 VC++的debug 调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。 二、实验任务 1. 声明一个 CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop。其中,rank 为枚举类型CPU_Rank,声明为enum CPU_Rank {P1=1,P2,P3,P4,P5,P6,P7},frequency为单位是 MHz 的整型数,voltage为 浮点型的电压值。观察构造函数和析构函数的调用顺序。 2. 声明一个简单的 Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,有两个公有成员函数 run、stop。cpu 为 CPU类的一个对象,ram为RAM 类的 一个对象,cdrom为 CDROM 类的一个对象,声明并实现这个类。 3. (选做)设计一个用于人事管理的 People(人员)类。考虑到通用性,这里只抽象 出所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。其中“出生日期”声明为一个“日期”类内嵌子对象。用成员 函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、 内联成员函数、组合。 三、参考程序 1、#include using namespace std; enumCPU_Rank {P1=1,P2,P3,P4,P5,P6,P7}; class CPU { private: ?CPU_Rank rank; ?int frequency; ?float voltage; public: CPU (CPU_Rank r, intf, float v) ?{ ?rank = r; ?frequency = f; ?voltage = v; ?cout << "构造了一个CPU!" << endl; ?}

c++类和对象实验报告

实验一类和对象 实验课程名:面向对象程序设计(C++) 专业班级:学号:姓名: 实验时间:实验地点:指导教师: 一、实验目的和要求 (1) 理解类和对象的概念,掌握声明类和定义对象的方法。 (2) 掌握构造函数和析构函数的实现方法。 (3) 初步掌握使用类和对象编制C++程序。 (4) 掌握对象数组、对象指针和string类的使用方法。 (5) 掌握使用对象、对象指针和对象引用作为函数参数的方法。 (6) 掌握类对象作为成员的使用方法。 (7) 掌握静态数据成员和静态成员函数的使用方法。 (8) 理解友元的概念和掌握友元的使用方法。 二、实验内容 1.设计一个静态数组存储结构的顺序表类,要 求编程实现如下任务:建立一个线性表,首先 依次输人数据元素1,2,3,…,10,然后删除 数据元素6,最后依次显示当前线性表中的数 据元素。要求采用顺序表实现,假设该顺序表 的数据元素个数在最坏情况下不会超过50个。实验代码:#include using namespace std; const int MaxSize=100; //100只是示例性的数据,可根据实际问题具体定义 template //定义模板类SeqList class SeqList { public:

SeqList( ) {length=0;} //无参构造函数 SeqList(T a[ ], int n); //有参构造函数 ~SeqList( ) { } //析构函数为空 int Length( ) {return length;} //求线性表的长度 T Get(int i); //按位查找,取线性表的第i个元素 int Locate(T x ); //按值查找,求线性表中值为x的元素序号 void Insert(int i, T x); //在线性表中第i个位置插入值为x的元素 T Delete(int i); //删除线性表的第i个元素 void PrintList( ); //遍历线性表,按序号依次输出各元素 private: T data[MaxSize]; //存放数据元素的数组 int length; //线性表的长度 }; template SeqList::SeqList(T a[ ], int n) { int i; if (n>MaxSize) throw "参数非法";

C++语言程序设计实验答案_类与对象

实验04 类与对象(6学时) (第4章类与对象) 一、实验目的 二、实验任务 4_1 声明一个CPU类。 包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop。其中,rank为枚举类型CPU_Rank,声明为enum CPU_Rank{ P1=1, P2, P3, P4, P5, P6, P7 }; frequency为单位是MHz的整型数,voltage为浮点型的电压值。观察构造函数和析构函数的调用顺序。 4_2 声明一个简单的Computer类。 有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等,有两个公有成员函数run和stop。cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,声明并实现这个类。 4_3 声明一个表示时间的结构体。 可以精确表示年、月、日、小时、分、秒;提示用户输入年、月、日、小时、分、秒的值,然后完整地显示出来。

4_4(习题4-10)设计一个用于人事管理的People(人员)类。 考虑到通用性,这里只抽象出所有类型人员都具有的属性:number(编号),sex(性别)、birthday(出生日期)、id(身份证号)等。其中“出生日期”声明为一个“日期”类内嵌子对象。用成员函数实现人员信息的录入和显示。要求包括:构造函数和析构函数、内联成员函数、组合。 三、实验步骤 1.(验证)声明一个CPU类,观察构造函数和析构函数的调用顺序。 首先声明枚举类型CPU_Rank,例如enum CPU_Rank{ P1=1, P2, P3, P4, P5, P6, P7 },再声明CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等私有数据成员,声明成员函数run和stop,用来输出提示信息,在构造函数和析构函数中也可以输出提示顺序。在主程序中声明一个CPU的对象,调用其成员函数,观察类对象的构造与析构顺序,以及成员函数的调用。程序名:。(程序见步骤2) ★程序的运行结果: 2.(示例)调试程序文件。 使用调试功能观察程序的运行流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。参考程序如下: 操作)调试操作步骤如下: (1)单击“调试 | 逐语句”命令,系统进行单步执行状态,程序开始运行,一个DOS 窗口出现,此时Visual Studio中光标停在main()函数的入口处。

C++类和对象实验报告

计算机科学与技术实验报告 实验二类和对象(1) 姓名:易XX 班级:计科二班学号:2015110121 实验目的:深入理解类和对象,学会定义类,申明私有、公有变量,学会定义对象,并调用成员函数,解决实际问题。 实验内容: (一)、题目要求: 定义一个描述角度的类CAngle,包含的内容如下: (1)私有成员变量value,表示角度,类型为double; (2)公有成员变量SetValue,实现功能是使用形参为value赋值。 声明为:viod SetValue(double); (3)公有成员函数GetCos,实现功能计算余弦值,并作为返回值返回。 声明为 double GetCos(); 编程实现如下功能:定义一个Cangle类的对象deg,调用成员函数设置deg的角度为30度,调用成员函数计算并输出deg的余弦值。 代码: #include #include using namespace std; #define PI 3.1415 //定义宏常量PI class CAngle{ double value; //定义角度 public: void Setvalue(double x){ value =x/180*PI; //把角度转化为弧度 } double Getcos(){ return ( cos(value) ); //计算cos值 } }; int main(){ CAngle deg; //定义一个Cangle类的对象deg deg.Setvalue(30); cout<

java实验报告实验3答案

实验三熟悉常用java工具包并运用编程 实验目的: 本实验旨在巩固同学们对上课所讲java.util工具包中Collection,List,Set,Map加深理解,对其用法编程有一个更加深入的理解,为同学们以后的能够用Java进行独立地编写桌面程序打下一定的基础。 实验内容: 本实验的内容为:用Collection,List,Set,Map来存储数据,并进行排序,任何用Iterator,ListIterator或者Enumeration来打印其结果(按顺序和降序排列打印)。共分为四部分部分(前三部分必做,如果选第四个,前三个可以不做。。): (1)按顺序把1,10,5,7,6,2,9,20,14,存入到List中(注:允许自己自定义任何数),并对其进行排序,打印其升序和降序排列的结果。然后再向List中位置为第四位插入数35看看会有啥结果?再向List中插入字符串“ddy”,试猜想排序是否会出错?然后看看运行结果是啥? 程序: import java.util.*; public class SY3 { public SY3() { List list=new ArrayList(); list.add(1); list.add(10); list.add(5); list.add(7); list.add(6); list.add(2); list.add(9); list.add(20); list.add(14); list.add(35); list.add("ddy"); System.out.println("原序列:"); for(int i=0;i<=list.size()-1;i++) { System.out.println(list.get(i)); } System.out.println("新序列"); for(int i=0;i<=list.size()-1;i++) {

相关主题
文本预览
相关文档 最新文档