实验3_20130501439_李敏杰

返回 相似 举报
实验3_20130501439_李敏杰_第1页
第1页 / 共29页
实验3_20130501439_李敏杰_第2页
第2页 / 共29页
实验3_20130501439_李敏杰_第3页
第3页 / 共29页
实验3_20130501439_李敏杰_第4页
第4页 / 共29页
实验3_20130501439_李敏杰_第5页
第5页 / 共29页
点击查看更多>>
资源描述:
课程名称 面向对象程序设计 实验项目编号 1505P001803 实验项目名称 类与对象 实验学时 4 学时 实验日期 2016.10.4,10.1 1 学生学号 学生姓名 李敏杰 实验地点 敬信楼 517 指导教师 党向盈 成绩 实验三 类与对象 一、实验目的 1.掌握类的定义和使用、对象的声明和创建; 2.理解构造方法的作用,掌握构造方法定义和使用; 3.理解类变量与实例变量,类方法与实例方法的区别; 4.掌握包的概念与使用。 二、实验内容及要求 1、编程创建一个立方体类 Cube,在其中定义三个变量 length,width,height 分别表示一个立 方体的长、宽和高,再定义一个方法 setCube 对这三个变量进行初始化,然后定义求立方 体的体积和表面积的方法。 (1)编写一个测试类,在 main 方法中创建立方体对象,求给定尺寸的立方体的体积和表 面积,并输入结果。 (2)改用构造方法实现长、宽和高的初始化。 (3)测试类放在包名为 com.sy3.01.test 包中,其它类放在 com.sy3.exa01 包中。 (知识点类的定义,对象的创建,构造方法的使用) (注意如果需要从键盘输入长宽高的数据时,请从测试类的 main 方法中输入,程序的其 它地方只接受传递的参数) 代码如下 package com.sy3.exa01;class Cube { private float width; private float height; private float length; // 定义有参构造方法初始化属性 public Cubefloat width, float height, float length { this.width width; this.height height; this.length length; } // 定义求立方体体积的方法 public float volume { return width*height*length; } //定义求立方体表面积的方法 public float Surface_area{ return 2*width*heightwidth*lengthheight*length; } } public class Exp03_01_20130501439 { public static void mainString[] args { Cube cnew Cube7,8,9; System.out.println“立方体的体积为“c.volume; System.out.println“立方体的表面积为“c.Surface_area;} // 1、编程创建一个立方体类Cube,在其中定义三个变量length,width,height 分别表 示一个立方体的长、宽和高, // 再定义一个方法setCube 对这三个变量进行初始化,然后定义求立方体的体积和表面积 的方法。 // (1)编写一个测试类,在main 方法中创建立方体对象,求给定尺寸的立方体的体积和 表面积,并输入结果。 // (2)改用构造方法实现长、宽和高的初始化。 // (3)测试类放在包名为com.sy3.01.test 包中,其它类放在com.sy3.exa01 包 中。 // (知识点类的定义,对象的创建,构造方法的使用) // (注意如果需要从键盘输入长宽高的数据时,请从测试类的main 方法中输入,程序的 其它地方只接受传递的参数) } package com.sy3.01.test; import java.util.Scanner; class Cube { private int width; private int height; private int length; public Cube { widthsetwidth; heightsetheight; lengthsetlength;// TODO 自动生成的构造函数存根 } private int setwidth { Scanner sa new ScannerSystem.in; width sa.nextInt; return width; } private int setheight { Scanner sb new ScannerSystem.in; height sb.nextInt; return height; } private int setlength { Scanner sc new ScannerSystem.in; length sc.nextInt; return length; } // 定义求立方体体积的方法 public int volume { System.out.printlnwidth“\t“height“\t“length; return width * height * length; } // 定义求立方体表面积的方法public int Surface_area { System.out.printlnwidth“\t“height“\t“length; return 2 * width * height width * length height * length; } } public class 测试类 { /*** 班级15 计单1 班 * 学号20130501439* 姓名李敏杰* 实验时间2016-10-4,10-11* 本程序的功能是求立方体的体积和表面积*/ public static void mainString[] args { // TODO 自动生成的方法存根 Cube c1new Cube; System.out.println“立方体的体积为“c1.volume; System.out.println“立方体的表面积为“c1.Surface_area; } } 运行结果如下2、设计并实现一个课程类,代表学校中的一门课程,将这门课程的相关信息 组成该类的属性(如课程代码、课程名称、课程类别、学时、学分等),并在类中定义各 个属性相关的访问方法(如获取和设置课程代码、课程名称,课程类别,获取和修改学时、 学分,打印输出课程基本信息等),最后使用主函数测试此类(包括创建对象,调用相应 方法等)。 课程号 课程名 学分 学时 课程类型 courId courName courCredit courHours courType E052026 Linux操作系统 3 56 专业选修 S052005 面向对象程序设计 3.5 56 专业教育 S052006 面向对象程序设计实验 1 32 专业教育 S052037 数据库原理及应用 3 48 专业教育 S052011 数据库原理及应用实验 1 32 专业教育 S052049 操作系统 4 64 专业教育 要求 (1)创建一个课程类 Course,定义该类的各个属性(如上表第二行),为个属性设置相 应的 setter/getter 方法。 (2)定义一个没有参数和带有全部参数的构造方法。 (3)重写 toString方法,返回课程的信息。 (4)在该类中定义一个类变量 passingScore,及格标准为 60. (5)新建测试类,在 main 方法中创建一个大小为 6 的课程数组,把上面表格中的 6 门课 信息保存在该数组中。利用增强型循环输出课程的信息。(6)在测试类中定义一个静态方法 printCoursesCourse[] courses,通过该方法输出课程中 的信息。 (7)在测试类中定义一个静态方法 printCoursesCourse[] courses,float credit,通过该方法输 出学分等于 credit 的课程信息。 (8)测试类放在包名为 com.sy3.02.test 包中,其它类放在 com.sy3.exa02 包中。 (知识点类的定义,对象的创建,构造方法的使用,对象数组,静态变量和静态方法, 方法重载) (注意课程的信息可以直接给定,不一定要通过键盘输入) 代码如下 package com.sy3.exa02; public class Course { public String courid; public String courname; public String courcredit; public String courhours; public String courtype; public int passingScore; Course{ courid““; courname““; courcredit““; courhours““; courtype““; passingScore60; }public CourseString incourid,String incourname,String incourcredit,String incourhours,String incourtype{ setIDincourid; setNameincourname; setCreditincourcredit; setHoursincourhours; setTypeincourtype; } public void setTypeString incourtype { courtypeincourtype; }public void setHoursString incourhours { courhoursincourhours; }public void setCreditString incourcredit { courcreditincourcredit; }public void setNameString incourname { cournameincourname; } public void setIDString incourid {couridincourid; } public String getcourtype{ return courtype; } public String getcourname{ return courname; } public String getcourid{ return courid; } public String getcourhours{ return courhours; } Override public String toString { return “Course [courid“ courid “, courname“ courname “, courcredit“ courcredit “, courhours“ courhours “, courtype“ courtype “, passingScore“ passingScore “]“; } public String getcourcredit{ return courcredit;} public void ToString{ System.out.printlngetcourid“\t\t“getcourname“\t\t“getcou rcredit“\t\t\t“getcourhours“\t\t\t“getcourtype; } // 组成该类的属性(如课程代码、课程名称、课程类别、学时、学分等),并在类中定义各 个属性相关的访问方法(如获取和设置课程代码、课程名称,课程类别,获取和修改学时、学 分,打印输出课程基本信息等),最后使用主函数测试此类(包括创建对象,调用相应方法等) 。 // 课程号 课程名 学分 学时 课程类型 // courId courName courCreditcourHours courType // E052026 Linux 操作系统 3 56 专业选修 // S052005 面向对象程序设计 3.5 56 专业教育 // S052006 面向对象程序设计实验 1 32 专业教育 // S052037 数据库原理及应用 3 48 专业教育 // S052011 数据库原理及应用实验 1 32 专业教育 // S052049 操作系统 4 64 专业教育 } package com.sy3.02.test; import com.sy3.exa02.*; public class 测试类 {/*** 班级15 计单1 班 * 学号20130501439* 姓名李敏杰* 实验时间2016-10-4,10-11* 本程序的功能是打印输出课程基本信息*/ public static void Exp03_02_20130501439String[] args { // System.out.println“课程表“ “\t“ “课程名“ “\t\t“ “学分“ “\t“ “学时“ “\t“ “课程类型“; Course[] cour new Course[6]; cour[0] new Course“E052026“, “Linux 操作系统“, “3“, “56“, “专业选修“; cour[1] new Course “S052005“, “面向对象程序设计“, “3.5“, “56“, “专业教育“; cour[2] new Course“S052006“, “面向对象程序设计实验“, “1“, “32“, “专业教育“ ; cour[3] new Course “S052037“, “数据库原理及应用“, “3“, “48“, “专业教育“ ; cour[4] new Course“S052011“, “数据库原理及应用实验“, “1“, “32“, “专业教育“ ; cour[5] new Course“S052049“, “操作系统\t“, “4“, “64“, “专业教育“ ; System.out.println“增强型输出数组“;for Course i cour { System.out.printi.toString “\t“; System.out.println; } System.out.println; printCoursescour; float creditfloat 3.5; printCoursescour,credit; } private static void printCoursesCourse[] courses, float credit { System.out.println“静态方法printCourses 输出学分等于credit 的课程 信息“; forCourse icourses{ ifi.courcredit.equalsFloat.toStringcredit//判断两个 字符串类的内容是否相等 Float 是包装类 P191 System.out.printi“\t“; System.out.println; } System.out.println; }public static void printCoursesCourse[] courses{ System.out.println“静态方法printCourses“; forCourse i1courses{ System.out.printi1“\t“; System.out.println; } System.out.println; }} // 设计并实现一个课程类,代表学校中的一门课程,将这门课程的相关信息 // 组成该类的属性(如课程代码、课程名称、课程类别、学时、学分等),并在类中定义各 个属性相关的访问方法(如获取和设置课程代码、课程名称,课程类别,获取和修改学时、学 分,打印输出课程基本信息等),最后使用主函数测试此类(包括创建对象,调用相应方法等) 。 // 课程号 课程名 学分 学时 课程类型 // courId courName courCredit courHours courType // E052026 Linux 操作系统 3 56 专业选修 // S052005 面向对象程序设计 3.5 56 专业教育 // S052006 面向对象程序设计实验 1 32 专业教育 // S052037 数据库原理及应用 3 48 专业教育 // S052011 数据库原理及应用实验 1 32 专业教育// S052049 操作系统 4 64 专业教育 // 要求 // (1)创建一个课程类Course,定义该类的各个属性(如上表第二行),为个属性设置相 应的setter/getter 方法。 // (2)定义一个没有参数和带有全部参数的构造方法。 // (3)重写toString方法,返回课程的信息。 // (4)在该类中定义一个类变量passingScore,及格标准为60. // (5)新建测试类,在main 方法中创建一个大小为6 的课程数组,把上面表格中的6 门课 信息保存在该数组中。利用增强型循环输出课程的信息。 // (6)在测试类中定义一个静态方法printCoursesCourse[] courses,通过该方法 输出课程中的信息。 // (7)在测试类中定义一个静态方法printCoursesCourse[] courses,float // credit,通过该方法输出学分等于credit 的课程信息。 // (8)测试类放在包名为com.sy3.02.test 包中,其它类放在com.sy3.exa02 包 中。 // (知识点类的定义,对象的创建,构造方法的使用,对象数组,静态变量和静态方法, 方法重载) // (注意课程的信息可以直接给定,不一定要通过键盘输入) 运行结果如下 3、设计并实现一个“信电工程学院学生通信录”系统。系统采用字符界面,在出现的主界 面中按提示输入相应字符以选择“增加”、“删除”、“修改”、“查找”等功能进行操作。学生通信录信息的存储可采用数组的方式。 要求 (1)新建一个学生信息类 StudentInfo,定义该类的各个属性(如下表第二行),变量的访 问修饰符为 private,为个属性设置相应的 setter/getter 方法。 (2)为 StudentInfo 类定义三个构造方法,一个没有参数,一个带有学号、姓名、性别及 班级四个参数,一个带有全部参数。 (3)在 StudentInfo 类中定义显示学生信息的方法 void showStuInfo。 (4)创建一个通讯录类 Contacts,在该类中定义一个能最大能容纳 100 个学生的对象数组 students,该数组用于保存学生信息,定义一个表示当前有几个学生信息的变量 count,该变 量类型为整型。变量的访问修饰符为 private,为个属性设置相应的 setter/getter 方法。 (5)在 Contacts 类中定义添加学生信息、修改学生信息和删除学生信息,以及查找学生 信息的方法。● void appendStudentInfo student//在添加学生信息时,学号要保证是唯一的,且保证没有超过最大100人。● void updateStudentInfo newStudent,String stuId//根据学号进行修改● void deleteString stuId//根据学号删除学生信息● Student findByStuIdString stuId//根据学号查找某个学生信息● Student[] findByStuClassString stuClass//根据班级查找某个班里学生信息 ● Student[] find//查找所有学生信息 (6)创建测试类,根据输入的命令参数完成学生通讯录信息的“增加”、“删除”、“修 改”、“查找”等功能。 (7)测试类放在包名为 com.sy3.03.test 包中,其它类放在 com.sy3.exa03 包中。(知识点类的定义,对象的创建,构造方法的重载,对象数组,对象与对象之间的关系) (注意参考数据如下,所有数据的输入都在测试类里完成) 学号 姓名 性别 出生日期 班级名称 联系电话 QQ号码 stuId stuName stuSex stuBirth stuClass stuTel stuQQ 20130501401 刘丹 女 1992/10/2 13网络1单 13922222222 7843782 20130501402 徐小怡 女 1992/10/3 13网络1单 13922222223 273464 20130501404 赵蒙 女 1992/10/4 13网络2单 13922222224 9043550 20130501405 陈冰倩 女 1992/10/5 13网络2单 13922222225 8397231 20130501406 张琦琦 女 1992/10/6 13网络2单 13922222226 8244973 20130501407 施锦烨 女 1992/10/7 13网络3单 13922222227 4137413 代码如下 package com.sy3.03.test; import java.util.Scanner; import com.sy3.exa03.Contacts; import com.sy3.exa03.StudentInfo; public class 测试类 { /*** 班级15计单1班 * 学号20130501439 * 姓名李敏杰* 实验时间2016-10-4,10-11* 本程序的功能是添加学生信息、修改学生信息和删除学生信息, 以及查找学生信息*/ public static void Exp_03_03_20130501439String[] args { Contacts ct new Contacts; Scanner ssnew ScannerSystem.in; System.out.println“欢迎使用信电工程学院通讯录系统“;for;;{ int i; String id; System.out.println“1添加学生信息\t2按学号删除学生 信息\r3按学号查找学生信息\t4班级查找学生信息\r5输出全部 学生的信息\t6退出系统“; iss.nextInt; ifi1 {System.out.println“请输入添加学生信息 stuId,stuName,stuSex,stuBirth,stuClass,stuTel,stuQQ“; System.out.println“参考数据如下\r“ “20130501401 刘丹 女 1992/10/2 13网络1单 13922222222 7843782\r“ “20130501402 徐小怡 女 1992/10/3 13网络1单 13922222223 273464\r“ “20130501404 赵蒙 女 1992/10/4 13 网络2单 13922222224 9043550\r“ “20130501405 陈冰倩 女 1992/10/5 13网络2单 13922222225 8397231\r“ // “20130501406 张琦琦 女 1992/10/6 13网络2单 13922222226 8244973\r“ “20130501407 施锦烨 女 1992/10/7 13网络3单 13922222227 4137413“ ; ct.appendnew StudentInfo;} //ss.next,ss.next,ss.next,ss.next,ss.next,ss.n ext,ss.next else ifi2{ System.out.println“请输入需要删除学生学号;stuId“; idss.next; ct.Deleteid;} else ifi3{ System.out.println“请输入需要查找学生的学号;stuId“; idss.next; ct.findByStuIdid;} else ifi4{ System.out.println“请输入需要查找学生的班级; stuClass“;idss.next; ct.findByStuClassid;} else ifi5{ System.out.println“输出全部学生的信息“; ct.find;} else ifi6{ System.out.println“感谢使用信电工程学院通讯录系统 \r欢迎再次使用\t再见“; break;} else System.out.println“输入有误请重新输入“; } } } package com.sy3.exa03; import com.sy3.exa03.StudentInfo; public class Contacts { private StudentInfo[] stu new StudentInfo[100];// 存放学生信息 private int count 0; public void appendStudentInfo student {if count 100 { System.out.println“当前容量已满“; } else { stu[0]new StudentInfo“stuId“, “stuName“ ,“stuSex“,“stuBirth“,“stuClass“,“stuTel“,“stuQQ“ ; student.getInfo; stu[count] student; forint i0;icount;i{ ifstu[count].getstuId.equalsstu[i].getstuId{ count--; System.out.println“输入学号重复“;}} // System.out.println“有效“; for int i 0; i count1; i { stu[i].showStuInfo; } } } public void find { for int i 0; i count1; i { stu[i].showStuInfo;} } public void findByStuIdString stuId { for int i 0; i count1; i { if stu[i].getstuId.equalsstuId stu[i].showStuInfo; } } public void findByStuClassString stuClass { for int i 0; i count1; i { if stu[i].getstuClass.equalsstuClass stu[i].showStuInfo; //else System.out.println“未找到您查询的班级学生信息“; } } public void DeleteString id { for int i 0; i count1; i { if stu[i].getstuId.equalsid { for int j i; j count; j { stu[j] stu[j 1]; }// stu[stu.length] null; count--; } //else System.out.println“您输入的学号不存在“; } for int i 0; i count1; i { stu[i].showStuInfo; } } } package com.sy3.exa03; import java.util.Scanner; public class StudentInfo { private String stuId; private String stuName; private String stuSex ; private String stuBirth; private String stuClass; private String stuTel; private String stuQQ;public StudentInfo { stuId ““; stuName ““; stuSex ““; stuBirth ““; stuClass ““; stuTel ““; stuQQ ““; } public StudentInfoString stuId, String stuName, String stuSex, String stuClass { this.stuId stuId; this.stuName stuName; this.stuSex stuSex; stuBirth ““; this.stuClass stuClass; stuTel ““; stuQQ ““; } public StudentInfoString stuId, String stuName, String stuSex,String stuBirth, String stuClass, String stuTel, String stuQQ { this.stuId stuId; this.stuName stuName; this.stuSex stuSex; this.stuBirth stuBirth; this.stuClass stuClass; this.stuTel stuTel; this.stuQQ stuQQ; } public void getInfo { System.out.println“请输入 stuId,stuName,stuSex,stuBirth,stuClass,stuTel,stuQQ“; Scanner sc new ScannerSystem.in; this.stuId sc.next; this.stuNamesc.next; this.stuSexsc.next; this.stuBirth sc.next; this.stuClasssc.next; this.stuTelsc.next; this.stuQQsc.next; } public void setstuIdString stuId {this.stuId stuId; } public void setstuNameString stuName { this.stuName stuName; } public void setstuSexString stuSex { this.stuSex stuSex; } public void setstuBirthString stuBirth { this.stuBirth stuBirth; } public void setstuClassString stuClass { this.stuClass stuClass; } public void setstuTelString stuTel { this.stuTel stuTel; } public void setstuQQString stuQQ { this.stuQQ stuQQ;} public String getstuId { return stuId; } public String getstuName { return stuName; } public String getstuSex { return stuSex; } public String getstuBirth { return stuBirth; } public String getstuClass { return stuClass; } public String getstuTel { return stuTel; }public String getstuQQ { return stuQQ; } public void showStuInfo { System.out.printlngetstuId “\t\t“ getstuName “\t\t“ getstuSex “\t\t“ getstuBirth “\t\t“ getstuClass “\t\t“ getstuTel “\t\t“ getstuQQ ; } } 运行结果如下
展开阅读全文

电脑版 |技术文库版权所有
经营许可证:粤ICP备16048919号-1 | 粤公网安备 44060602000677号