您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页JAVA语言程序设计实验五 定义和使用类和对象实验报告 (2)

JAVA语言程序设计实验五 定义和使用类和对象实验报告 (2)

来源:爱go旅游网


**大学**学院

JAVA语言程序设计 实验报告

实验名称: 班 级: 实验地点: 实验五 定义和使用类和对象姓 名: 日 期: 一、实验目的: 1、掌握类和构造方法的定义 2、理解静态和非静态成员变量的区别 3、掌握创建类实例的方法 二、实验环境: 有Java环境的计算机若干台 学 号: 三、实验内容和要求: 1.下面是一个教师类Teacher,用于学校某个系部的管理。系部在管理教师时,所关心的信息主要有教师编号、姓名、性别、年龄、家庭住址、电话号码等,于是抽取这些属性来描述\"教师\"这个实体。考虑到教师年龄、家庭住址、电话号码等不宜对无关人员公开,于是将这些数据设为私有的成员变量(即实行保护)。要获得这些数据,必须使用类所提供的一组方法,并给出口令。检查口令是否正确是由私有方法checkPasswork完成的。阅读并编译这一程序,体会类的成员变量、类的方法以及访问权限的设计。 要求a:先不看下面代码,自己先设计一个类 要求b:阅读下面程序,错误改正后,并进行验证测试。 class Teacher //定义教师类 { //声明成员变量 String tCode; //教师编号 String tName; //教师姓名 String tSex; //教师性别 private String tAge; //教师年龄 private String tAddr; //家庭住址 private String tTelenmb; //电话号 private String tPassword;//访问口令 //声明构造方法 Teacher(String password) { tPassword = password; } //声明成员方法 private int checkPassword(String password) //私有方法:检查口令是否正确 { if(tPassword==password)return 1; else return 0; } void print(){ System.out.println(\"tco de=\"+tCode+\\n +\"tname=\"+tName +\"tage=\"+tAge +\"tAddr=\"+tAddr +\"tTelenmb=\"+tTelenmb); } void setAge(String password,String age) //置年龄 { if(checkPassword(password)==1) { tAge =age; } } String getAge(String password) //取年龄 { if(checkPassword(password) ==1) return tAge; else return \"Wrong password!\"; } void setAddr(String password,String addr) //置家庭地址 { if(checkPassword(password)==1) { tAddr =addr; } } String getAddr(String password) //取家庭地址 { if(checkPassword(password)==1) return tAddr; else return \"Wrong password!\"; } void setTelenmb(String password, String telenmb) //置电话号码 { if(checkPassword(password)==1) { tTelenmb =telenmb; } } String getTelenmb(String password) //取电话号码 { if(checkPassword(password) ==1) return tTelenmb; else return \"Wrong password!\"; } } public class TestTeacher{ public static void main(String args[]){ Teacher t1=new Teacher(\"123\");t1.setAge(\"124\ t1.setAge(\"123\ t1.setAddr(\"124\ t1.setAddr(\"123\学院\"); t1.setAddr(\"124\ t1.setTelenmb(\"123\ t1.print(); } } 2、参考上题实例,设计学生类 class Student //Student是类名 { //声明成员变量 int sNumber; //学号 String sName; //姓名 String sClass; //班号 } public class Check0 //主类Check0 { public static void main(String args[ ]) //主方法main { Student x= new Student( ); //创建Student类的对象x //访问成员变量 x.sName=″myname″; x.sNumber=900001; System.out.println(x.sName); System.out.println(x.sNumber); } } 若要使Student类可用于一个全校同学的通信录程序,设计一具更完善的Student类,设计时应考虑抽取哪些属性来描述\"学生\"这个实体,哪些数据需要保护,应提供哪些方法,等等 3、(课堂讲解实例)定义一个银行账户,要求有身份证号码,用户名和密码,余额等属性: 定义一个银行账户类,该类中有以下几个属性和方法: class Account { int id; String name; float leftmoney; String pass; public boolean withdrawMoney(float amount){} public boolean saveMoney(float amount ){} } 要求:第一:使用eclipse 给每个属性增加get和set方法,即封装性 第二在读余额的属性上要求验证密码 第三、完成存钱和取钱的方法,要求也需要密码验证 最后写一个类测试账户类。 附课堂代码: import javax.swing.JOptionPane; public class account { private int ID; private float left; private String pass; public int getID() { return ID; } public void setID(int iD) { ID = iD;} public float getLeft() { return left; } public void setLeft(float left) { this.left = left; } public String getPass() { return pass; } public void setPass(String pass) { this.pass = pass; } void inqury() { String pass1=JOptionPane.showInputDialog(\"输入密码\"); if(pass1.equals(getPass())) { float a=getLeft(); JOptionPane.showConfirmDialog(null, a, \"余额\", 0);} } void despoit(float money) {left=left+money;} void witharaw(float money) {left=left-money;} } class banktest {public static void main(String args[]) { //account aofzdd =new account(); account aofzdd; aofzdd=new account(); aofzdd.setPass(\"123\"); aofzdd.setLeft(4567123); aofzdd.inqury(); } } 4、编写一个学校类,其中包括成员变量scoreLine(录取分数线)和对该变量进行设置和获取的方法。 1) 编写一个学生类,她的成员变量有考生的name(姓名)、id(考号)、intgretResult(综合成绩)、sports(体育成绩)。它还有获取学生的综合成绩和体育成绩的方法。 2) 编写一个录取类,它的一个方法用于判断学生是否符合录取条件。其中录取条件为:综合成绩在录取分数线之上,或体育成绩在96分以上并且综合成绩大于300分。该类中的main()方法建立若干个学生对象,对输出符合录取条件的学生,输出其信息及“被录取”。 要求: 1) 学生类的构造方法带4个参数,分别接收学生的姓名、考号、综合成绩和体育成绩。 2)学校类仅包括静态成员变量和方法 四、实验步骤: 1. class Teacher //定义教师类 { //声明成员变量 String tCode; //教师编号 String tName; //教师姓名 String tSex; //教师性别 private String tAge; //教师年龄 private String tAddr; //家庭住址 private String tTelenmb; //电话号 private String tPassword;//访问口令 //声明构造方法 Teacher(String password) { tPassword = password; } //声明成员方法 private boolean checkPassword(String password){ //私有方法:检查口令是否正确 } void print(){ } void setAge(String password,String age){ //置年龄 } String getAge(String password){ //取年龄 } void setAddr(String password,String addr){ //置家庭地址 } String getAddr(String password){ //取家庭地址 if(checkPassword(password)) return tAddr; else if(checkPassword(password)) tAddr =addr; if(checkPassword(password)) return tAge; return \"Wrong password!\"; else if(checkPassword(password)) tAge =age; System.out.println(\"tcode=\"+tCode+\"\\ntname=\"+tName+ \"\\ntage=\"+tAge+\"\\ntAddr=\"+tAddr+\"\\ntTelenmb=\"+tTelenmb); if(tPassword==password) return true; return false; else } } return \"Wrong password!\"; void setTelenmb(String password, String telenmb){ //置电话号码 } String getTelenmb(String password){ //取电话号码 } if(checkPassword(password)) return tTelenmb; return \"Wrong password!\"; else if(checkPassword(password)) tTelenmb =telenmb; public class TestTeacher{ } public static void main(String args[]){ } Teacher t1=new Teacher(\"123\"); t1.setAge(\"124\",\"46\");//error t1.setAge(\"123\",\"48\");//right t1.setAddr(\"124\",\"ttt\"); t1.setAddr(\"123\",\"学院\");//right t1.setAddr(\"124\",\"88362146\"); t1.setTelenmb(\"123\",\"88362146\");//right t1.print(); 2. class Student { //Student是类名 int sNumber; //学号 String sName; //姓名 String sClass; //班号 private String sAge;//年龄 private String sAddr;//家庭住址 private String sTelenmb;//联系电话 private String sDormitory;//寝室号 private String sPassword;//访问口令 Student(String password) { sPassword = password; } //声明成员方法 private boolean checkPassword(String password){ if(sPassword==password) return true; else return false; } void print(){ System.out.println(\"sName=\"+sName+\"\\nsNumber=\"+sNumber+\"\\nsClass\"+sClass+ \"\\nsage=\"+sAge+\"\\ntAddr=\"+sAddr+\"\\nsTelenmb=\"+sTelenmb+\"\\nsDormitory=\"+sDormitory); } void setAge(String password,String age){ //置年龄 if(checkPassword(password)) sAge=age; } String getAge(String password){ //取年龄 if(checkPassword(password)) return sAge; else return \"Wrong password!\"; } void setAddr(String password,String addr){ //置家庭地址 if(checkPassword(password)) sAddr =addr; } String getAddr(String password){ //取家庭地址 if(checkPassword(password)) return sAddr; else return \"Wrong password!\"; } void setTelenmb(String password, String telenmb){ //置电话号码 if(checkPassword(password)) sTelenmb =telenmb; } String getTelenmb(String password){ //取电话号码 if(checkPassword(password)) return sTelenmb; else return \"Wrong password!\"; } void setDormitory(String password, String dormitory){ //置寝室号 if(checkPassword(password)) sDormitory =dormitory; } String getDormitory(String password){ //取寝室号 if(checkPassword(password)) return sDormitory; else return \"Wrong password!\"; } } public class Check0{ //主类Check0 public static void main(String args[ ]){ //主方法main Student x= new Student(\"123\"); //创建Student类的对象x //访问成员变量 x.sName=\"张三\" ; x.sNumber=900001; x.sClass=\"1801\"; x.setAge(\"123\", \"18\"); x.setAddr(\"123\", \"浙江\"); x.setTelenmb(\"123\", \"10086\"); x.setDormitory(\"123\", \"101\"); x.print(); } } 3. import java.util.Scanner; class Account{ private int id;//身份证号码 private String name;//用户名 private String password;//密码 private float leftmoney;//余额 void setID(int ID) {//置身份证号码 id=ID; } int getID() {//取身份证号码 return id; } void setname(String name) {//置用户名 this.name=name; } String getname() {//取用户名 return name; } void setleftmoney(float leftmoney) {//置余额 this.leftmoney=leftmoney; } float getleftmoney() {//取余额 System.out.println(\"读余额验证密码\"); if(inqury()) return leftmoney; return 0; } void setpassword(String password) {//置密码 this.password=password; } String getpassword() {//取密码 return password; } public boolean inqury() {//密码验证 Scanner s=new Scanner(System.in); System.out.println(\"请输入密码:\"); String pass=s.next(); if(pass.equals(getpassword())) { System.out.println(\"密码正确\"); return true; } else System.out.println(\"密码错误\"); return false; } public void withdrawMoney(float money) {//取钱 System.out.println(\"取钱验证密码\"); if(inqury()) leftmoney=leftmoney-money; } public void saveMoney(float money) {//存钱 System.out.println(\"存钱验证密码\"); if(inqury()) leftmoney=leftmoney+money; } } public class TestAccount {//测试账户类 public static void main(String args[]) { Account a1=new Account(); a1.setID(1); a1.setname(\"我\"); a1.setpassword(\"123\"); a1.setleftmoney(10000); } 4. } System.out.println(\"余额为\"+a1.getleftmoney()); a1.saveMoney(500); System.out.println(\"存钱5000后的余额为\"+a1.getleftmoney()); a1.withdrawMoney(100); System.out.println(\"取钱100后的余额为\"+a1.getleftmoney()); class Student { String name;//姓名 String id;//考号 float intgretResult;//综合成绩 float sports;//体育成绩 public Student(String name,String id,float intgretResult,float sports) {//构造方法 this.name=name; this.id=id; this.intgretResult=intgretResult; this.sports=sports; } public void setintgretResult(float intgretResult) {//置综合成绩 this.intgretResult=intgretResult; } public float getintgretResult() {//取综合成绩 return intgretResult; } public void setsports(float sports) {//置体育成绩 this.sports=sports; } public float getsports() {//取体育成绩 return sports; } } class School { float scoreLine; public void setscoreLine(float scoreLine) {//置录取分数线 this.scoreLine=scoreLine; } public float getscoreLine() {//取录取分数线 return scoreLine; } } class AccessToSchool { static boolean isAccess(Student a,School b) { if(a.getintgretResult()>300&&a.getsports()>96||a.getintgretResult()>=b.getscoreLine()) return true; return false; } public static void main(String args[]) { Student s1=new Student(\"st1\",\"001\",800,95); School c1=new School(); c1.setscoreLine(750); if(isAccess(s1,c1)) System.out.println(\"已录取\"); else System.out.println(\"没有被录取\"); } } 五、实验结果与分析(含程序、数据记录及分析和实验总结等): 六、教师评语:

实验成绩: 教师:**

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务