实验3-20130501439-李敏杰资料_第1页
实验3-20130501439-李敏杰资料_第2页
实验3-20130501439-李敏杰资料_第3页
实验3-20130501439-李敏杰资料_第4页
实验3-20130501439-李敏杰资料_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程名称面向对象程序设计实验项目编号1505P001803实验项目名称类与对象实验学时4学时实验日期2016.10.4,10.11成绩学生学号学生姓名李敏杰实验地点敬信楼517指导教师党向盈实验三类与对象一、实验目的1.掌握类的定义和使用、对象的声明和创建;2.理解构造方法的作用,掌握构造方法定义和使用;3.理解类变量与实例变量,类方法与实例方法的区别;4.掌握包的概念与使用。二、实验内容及要求1、编程创建一个立方体类Cube,在其中定义三个变量length,width,height分别表示一个立方体的长、宽和高,再定义一个方法setCube对这三个变量进行初始化,然后定义求立方体的体积和表面积的方法。(1)编写一个测试类,在main方法中创建立方体对象,求给定尺寸的立方体的体积和表面积,并输入结果。(2)改用构造方法实现长、宽和高的初始化。(3)测试类放在包名为com.sy3.exe01.test包中,其它类放在com.sy3.exa01包中。(知识点:类的定义,对象的创建,构造方法的使用)(注意:如果需要从键盘输入长宽高的数据时,请从测试类的main方法中输入,程序的其它地方只接受传递的参数)代码如下:packagecom.sy3.exa01;classCube{ privatefloatwidth;privatefloatheight;privatefloatlength;//定义有参构造方法初始化属性publicCube(floatwidth,floatheight,floatlength){this.width=width;this.height=height;this.length=length;}//定义求立方体体积的方法publicfloatvolume(){returnwidth*height*length;}//定义求立方体表面积的方法publicfloatSurface_area(){ return2*(width*height+width*length+height*length);}}publicclassExp03_01_20130501439{ publicstaticvoidmain(String[]args){ Cubec=newCube(7,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.exe01.test包中,其它类放在com.sy3.exa01包中。// (知识点:类的定义,对象的创建,构造方法的使用)// (注意:如果需要从键盘输入长宽高的数据时,请从测试类的main方法中输入,程序的其它地方只接受传递的参数)}packagecom.sy3.exe01.test;importjava.util.Scanner;classCube{ privateintwidth; privateintheight; privateintlength; publicCube(){ width=setwidth(); height=setheight(); length=setlength(); //TODO自动生成的构造函数存根 } privateintsetwidth(){ Scannersa=newScanner(System.in); width=sa.nextInt(); returnwidth; returncourname; } publicStringgetcourid(){ returncourid; } publicStringgetcourhours(){ returncourhours; } @Override publicStringtoString(){ return"Course[courid="+courid+",courname="+courname +",courcredit="+courcredit+",courhours="+courhours +",courtype="+courtype+",passingScore="+passingScore +"]"; } publicStringgetcourcredit(){ returncourcredit; } publicvoidToString(){ System.out.println(getcourid()+"\t\t"+getcourname()+"\t\t"+getcourcredit()+"\t\t\t"+getcourhours()+"\t\t\t"+getcourtype()); } // 组成该类的属性(如课程代码、课程名称、课程类别、学时、学分等),并在类中定义各个属性相关的访问方法(如获取和设置课程代码、课程名称,课程类别,获取和修改学时、学分,打印输出课程基本信息等),最后使用主函数测试此类(包括创建对象,调用相应方法等)。// 课程号 课程名 学分 学时 课程类型// 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 专业教育}packagecom.sy3.exe02.test;importcom.sy3.exa02.*;publicclass测试类{ /***班级:15计单1班*学号:20130501439*姓名:李敏杰*实验时间:2016-10-4,10-11*本程序的功能是:打印输出课程基本信息 */ publicstaticvoidExp03_02_20130501439(String[]args){ // System.out.println("课程表"+"\t"+"课程名"+"\t\t"+"学分"+"\t"+"学时" +"\t"+"课程类型"); Course[]cour=newCourse[6]; cour[0]=newCourse("E052026","Linux操作系统","3","56","专业选修"); cour[1] =newCourse("S052005","面向对象程序设计","3.5","56","专业教育"); cour[2] =newCourse("S052006","面向对象程序设计实验","1","32","专业教育"); cour[3] =newCourse("S052037","数据库原理及应用","3","48","专业教育"); cour[4] =newCourse("S052011","数据库原理及应用实验","1","32","专业教育"); cour[5] =newCourse("S052049","操作系统\t","4","64","专业教育"); System.out.println("增强型输出数组:"); for(Coursei:cour){ System.out.print(i.toString()+"\t"); System.out.println(); } System.out.println(); printCourses(cour); floatcredit=(float)3.5; printCourses(cour,credit); } privatestaticvoidprintCourses(Course[]courses,floatcredit){ System.out.println("静态方法printCourses输出学分等于credit的课程信息"); for(Coursei:courses){ if((i.courcredit).equals(Float.toString(credit)))//判断两个字符串类的内容是否相等Float是包装类P191 System.out.print(i+"\t"); System.out.println(); } System.out.println(); } publicstaticvoidprintCourses(Course[]courses){ System.out.println("静态方法printCourses"); for(Coursei1:courses){ System.out.print(i1+"\t"); System.out.println(); } System.out.println(); } }//设计并实现一个课程类,代表学校中的一门课程,将这门课程的相关信息//组成该类的属性(如课程代码、课程名称、课程类别、学时、学分等),并在类中定义各个属性相关的访问方法(如获取和设置课程代码、课程名称,课程类别,获取和修改学时、学分,打印输出课程基本信息等),最后使用主函数测试此类(包括创建对象,调用相应方法等)。//课程号课程名学分学时课程类型//courIdcourNamecourCreditcourHourscourType//E052026Linux操作系统356专业选修//S052005面向对象程序设计3.556专业教育//S052006面向对象程序设计实验132专业教育//S052037数据库原理及应用348专业教育//S052011数据库原理及应用实验132专业教育//S052049操作系统464专业教育//要求://(1)创建一个课程类Course,定义该类的各个属性(如上表第二行),为个属性设置相应的setter/getter方法。//(2)定义一个没有参数和带有全部参数的构造方法。//(3)重写toString()方法,返回课程的信息。//(4)在该类中定义一个类变量passingScore,及格标准为60.//(5)新建测试类,在main方法中创建一个大小为6的课程数组,把上面表格中的6门课信息保存在该数组中。利用增强型循环输出课程的信息。//(6)在测试类中定义一个静态方法printCourses(Course[]courses),通过该方法输出课程中的信息。//(7)在测试类中定义一个静态方法printCourses(Course[]courses,float//credit),通过该方法输出学分等于credit的课程信息。//(8)测试类放在包名为com.sy3.exe02.test包中,其它类放在com.sy3.exa02包中。//(知识点:类的定义,对象的创建,构造方法的使用,对象数组,静态变量和静态方法,方法重载)//(注意:课程的信息可以直接给定,不一定要通过键盘输入)运行结果如下:3、设计并实现一个“信电工程学院学生通信录”系统。系统采用字符界面,在出现的主界面中按提示输入相应字符以选择“增加”、“删除”、“修改”、“查找”等功能进行操作。学生通信录信息的存储可采用数组的方式。要求:(1)新建一个学生信息类StudentInfo,定义该类的各个属性(如下表第二行),变量的访问修饰符为private,为个属性设置相应的setter/getter方法。(2)为StudentInfo类定义三个构造方法,一个没有参数,一个带有学号、姓名、性别及班级四个参数,一个带有全部参数。(3)在StudentInfo类中定义显示学生信息的方法voidshowStuInfo()。(4)创建一个通讯录类Contacts,在该类中定义一个能最大能容纳100个学生的对象数组students,该数组用于保存学生信息,定义一个表示当前有几个学生信息的变量count,该变量类型为整型。变量的访问修饰符为private,为个属性设置相应的setter/getter方法。(5)在Contacts类中定义添加学生信息、修改学生信息和删除学生信息,以及查找学生信息的方法。●voidappend(StudentInfostudent)//在添加学生信息时,学号要保证是唯一的,且保证没有超过最大100人。●voidupdate(StudentInfonewStudent,StringstuId)//根据学号进行修改●voiddelete(StringstuId)//根据学号删除学生信息●StudentfindByStuId(StringstuId)//根据学号查找某个学生信息●Student[]findByStuClass(StringstuClass)//根据班级查找某个班里学生信息●Student[]find()//查找所有学生信息(6)创建测试类,根据输入的命令参数完成学生通讯录信息的“增加”、“删除”、“修改”、“查找”等功能。(7)测试类放在包名为com.sy3.exe03.test包中,其它类放在com.sy3.exa03包中。(知识点:类的定义,对象的创建,构造方法的重载,对象数组,对象与对象之间的关系)(注意:参考数据如下,所有数据的输入都在测试类里完成)学号姓名性别出生日期班级名称联系电话QQ号码stuIdstuNamestuSexstuBirthstuClassstuTelstuQQ20130501401刘丹女1992/10/213网络1单13922222222784378220130501402徐小怡女1992/10/313网络1单1392222222327346420130501404赵蒙女1992/10/413网络2单13922222224904355020130501405陈冰倩女1992/10/513网络2单13922222225839723120130501406张琦琦女1992/10/613网络2单13922222226824497320130501407施锦烨女1992/10/713网络3单139222222274137413代码如下:packagecom.sy3.exe03.test;importjava.util.Scanner;importcom.sy3.exa03.Contacts;importcom.sy3.exa03.StudentInfo;publicclass测试类{ /***班级:15计单1班*学号:20130501439*姓名:李敏杰*实验时间:2016-10-4,10-11*本程序的功能是:添加学生信息、修改学生信息和删除学生信息,以及查找学生信息 */ publicstaticvoidExp_03_03_20130501439(String[]args){ Contactsct=newContacts(); Scannerss=newScanner(System.in); System.out.println("欢迎使用信电工程学院通讯录系统!"); for(;;){ inti; Stringid; System.out.println("1:添加学生信息\t2:按学号删除学生信息\r3:按学号查找学生信息\t4:班级查找学生信息\r5:输出全部学生的信息\t6:退出系统"); i=ss.nextInt(); if(i==1) {System.out.println("请输入添加学生信息:stuId,stuName,stuSex,stuBirth,stuClass,stuTel,stuQQ"); System.out.println("参考数据如下\r"+ "20130501401 刘丹 女 1992/10/2 13网络1单7843782\r"+ "20130501402 徐小怡 女 1992/10/3 13网络1单273464\r"+ "20130501404 赵蒙 女 1992/10/4 13网络2单9043550\r"+ "20130501405 陈冰倩 女 1992/10/5 13网络2单8397231\r"+// "20130501406 张琦琦 女 1992/10/6 13网络2单8244973\r"+ "20130501407 施锦烨 女 1992/10/7 13网络3单4137413"); ct.append(newStudentInfo());} //ss.next(),ss.next(),ss.next(),ss.next(),ss.next(),ss.next(),ss.next() elseif(i==2){ System.out.println("请输入需要删除学生学号;stuId"); id=ss.next(); ct.Delete(id);} elseif(i==3){ System.out.println("请输入需要查找学生的学号;stuId"); id=ss.next(); ct.findByStuId(id);} elseif(i==4){ System.out.println("请输入需要查找学生的班级;stuClass"); id=ss.next(); ct.findByStuClass(id);} elseif(i==5){ System.out.println("输出全部学生的信息"); ct.find();} elseif(i==6){ System.out.println("感谢使用信电工程学院通讯录系统!\r欢迎再次使用\t再见!"); break;} else System.out.println("输入有误请重新输入:"); }}}packagecom.sy3.exa03;importcom.sy3.exa03.StudentInfo;publicclassContacts{ privateStudentInfo[]stu=newStudentInfo[100];//存放学生信息 privateintcount=0; publicvoidappend(StudentInfostudent){ if(count>100){ System.out.println("当前容量已满"); } else{stu[0]=newStudentInfo("stuId", "stuName" ,"stuSex","stuBirth","stuClass","stuTel","stuQQ"); student.getInfo(); stu[++count]=student; for(inti=0;i<count;i++){ if((stu[count].getstuId()).equals(stu[i].getstuId())){ count--; System.out.println("输入学号重复!");}}// System.out.println("有效"); for(inti=0;i<count+1;i++){ stu[i].showStuInfo(); } } } publicvoidfind(){ for(inti=0;i<count+1;i++){ stu[i].showStuInfo(); } } publicvoidfindByStuId(StringstuId){ for(inti=0;i<count+1;i++){ if((stu[i].getstuId()).equals(stuId)) stu[i].showStuInfo(); } } publicvoidfindByStuClass(StringstuClass){ for(inti=0;i<count+1;i++){ if((stu[i].getstuClass()).equals(stuClass)) stu[i].showStuInfo(); //elseSystem.out.println("未找到您查询的班级学生信息!"); } } publicvoidDelete(Stringid){ for(inti=0;i<count+1;i++){ if((stu[i].getstuId()).equals(id)){ for(intj=i;j<count;j++){ stu[j]=stu[j+1]; }// stu[stu.length]=null; count--; } //elseSystem.out.println("您输入的学号不存在"); } for(inti=0;i<count+1;i++){ stu[i].showStuInfo(); } }}packagecom.sy3.exa03;importjava.util.Scanner;publicclassStudentInfo{ privateStringstuId; privateStringstuName; privateStringstuSex; privateStringstuBirth; privateStringstuClass; privateStringstuTel; privateStringstuQQ; publicStudentInfo(){ stuId=""; stuName=""; stuSex=""; stuBirth=""; stuClass=""; stuTel=""; stuQQ=""; } publicStudentInfo(StringstuId,StringstuName,StringstuSex, StringstuClass){ this.stuId=stuId; this.stuName=stuName; this.stuSex=stuSex; stuBirth=""; this.stuClass=stuClass; stuTel=""; stuQQ=""; } publicStudentInfo(StringstuId,StringstuName,StringstuSex, StringstuBirth,StringstuClass,StringstuTel,StringstuQQ){ this.stuId=stuId; this.stuName=stuName; this.stuSex=stuSex; this.stuBirth=stuBirth; this.stuClass=stuClass; this.stuTel=stuTel; this.stuQQ=stuQQ; } publicvoidgetInfo(){ System.out.println("请输入stuId,stuName,stuSex,stuBirth,stuClass,stuTel,stuQQ"); Scannersc=newScanner(System.in); th

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论