当前位置:文档之家› Java面向对象设计代码

Java面向对象设计代码

Java面向对象设计代码
Java面向对象设计代码

package cm;

public class Student {

privateintsid;

private String sname;

privateint age;

publicintgetSid() {

returnsid;

}

public void setSid(intsid) {

this.sid = sid;

}

public String getSname() {

returnsname;

}

public void setSname(String sname) {

this.sname = sname;

}

publicintgetAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public voidshowInfo(){

System.out.println(sid+"\t"+sname+"\t"+age);

}

public String toString(){

returnsid + "\t" + sname + "\t" + age;

}

}

package cm;

importjava.util.Scanner;

public class Operater {

public static void setMenu(){

System.out.println("1.添加学生信息"+"\t"+"2.修改学生信息");

// System.out.println("2.修改学生信息");

System.out.println("3.删除学生信息"+"\t"+"4.查询学生信息");

// System.out.println("4.查询学生信息");

System.out.println("5.显示学生信息"+"\t"+"6.退出学生系统");

// System.out.println("6.退出学生系统");

System.out.println("请选择操作...");}

public static void gongneng(OpStudentobj)

{

setMenu();

Scanner intput=new Scanner(System.in);

int n;

n=intput.nextInt();

switch (n){

case 1:

String userin="";

System.out.println("1.添加学生信息");

obj.InsertStudent();

break;

case 2:

System.out.println("2.修改学生信息");

obj.upDate();

break;

case 3:

System.out.println("3.删除学生信息");

obj.deleStudeng();

break;

case 4:

System.out.println("4.查询学生信息");

obj.ChaXun();

break;

case 5:

System.out.println("5.显示学生信息");

obj.Display();

break;

case 6:

System.out.println("6.退出学生系统");

/* obj.charu();*/

System.exit(0);

default:

System.out.println("选择有误");

}

}

}

package cm;

https://www.doczj.com/doc/ac1432703.html,ng.reflect.Array;

importjava.util.Arrays;

importjava.util.Scanner;

public class OpStudent {

private Student[] stu;

privateint count=0;

publicOpStudent(){

this.stu = new Student[20];

//count=0;

}

public void InsertStudent(){

// String userin = "";

Scanner input=new Scanner(System.in);

//stu=new Student[20];

System.out.println("开始添加学生信息");

while(true){

stu[count] = new Student();// 因为是对象数组所以需要单独开辟内存空间

System.out.println("请输入学生编号");

inttempsid = input.nextInt();

stu[count].setSid(tempsid);

System.out.println("请输入学生姓名");

String tempsname = input.next();

stu[count].setSname(tempsname);

System.out.println("请输入学生年龄");

inttempage = input.nextInt();

stu[count].setAge(tempage);

count++;

System.out.println("是否继续输入(y/n)");

String userin = input.next();

if (userin.equals("n"))

break;

}

}

public void upDate(){

System.out.println("开始修改学生信息");

Scanner input=new Scanner(System.in);

intupdateid = 0;

String userin=null;

System.out.println("请输入要修改的学生编号");

updateid = input.nextInt();

booleanhasupdate = false;// 标记变量,用来标记是否找到需要修改的学生intupdateindex = 0;// 用来记录需要修改的学生信息在数组中的位置

for (inti = 0; i< count; i++) {

if (stu[i].getSid() == updateid) {

hasupdate = true;

updateindex = i;

break;

}

}

if (hasupdate) {

System.out.println("学号\t姓名\t年龄");

System.out.println(stu[updateindex]);

System.out.println("您确定要修改该学生的信息吗?(y/n)");

userin = input.next();

if (userin.equals("y")) {// 确认修改

System.out.println("请输入学生编号");

inttempsid = input.nextInt();

stu[updateindex].setSid(tempsid);

System.out.println("请输入学生姓名");

String tempsname = input.next();

stu[updateindex].setSname(tempsname);

System.out.println("请输入学生年龄");

inttempage = input.nextInt();

stu[updateindex].setAge(tempage);

System.out.println("修改成功");

}

} else {

// 3.没找到给用户相应的提示

System.out.println("对不起没有找到您输入的学生信息,请核对后再次输入");

}

}

public void Display(){

System.out.println("显示所有学生信息");

//System.out.println("学号\t姓名\t年龄");

for (inti = 0; i< count; i++) {

System.out.println(stu[i]);

/* System.out.println(stu[i].getSname()+stu[i].getSid()+stu[i].getAge());*/

}

}

public void ChaXun2(){

System.out.println("查询学生姓名信息");

Scanner input=new Scanner(System.in);

String queryid = null;

//System.out.println("请输入要删除的学生编号");

queryid = input.nextLine();

booleanhasquery = false;// 标记变量,用来标记是否找到需要查找的学生

intqueryindex = 0;// 用来记录需要查找的学生信息在数组中的位置

for (inti = 0; i< count; i++) {

//姓名比对时用equals

if (stu[i].getSname().equals(queryid)) {

hasquery = true;

queryindex = i;

break;

}

}

if (hasquery) {

System.out.println("学号\t姓名\t年龄");

/* System.out.println(stu[queryindex]);*/

/*for(inti=0;i

System.out.println(stu[queryindex].getSname()+"\t"+stu[queryindex].getSid()+"\t"+stu[quer yindex].getAge());

} else {

// 3.没找到给用户相应的提示

System.out.println("对不起没有找到您输入的学生信息,请核对后再次输入");

}

}

public void deleStudeng(){

System.out.println("开始删除学生信息");

Scanner input=new Scanner(System.in);

// 1.找到需要删除的学生

// 让用户输入要删除的学生的编号,以编号为查找条件进行查找intdelid = 0;

System.out.println("请输入要删除的学生编号");

delid = input.nextInt();

booleanhasdel = false;// 标记变量,用来标记是否找到需要删除的学生

intdelindex = 0;// 用来记录需要删除的学生信息在数组中的位置

for (inti = 0; i< count; i++) {

if (stu[i].getSid() == delid) {

hasdel = true;

delindex = i;

break;

}

}

// 2.找到了删除掉https://www.doczj.com/doc/ac1432703.html,

if (hasdel) {

// 显示已经找到的学生信息

System.out.println("学号\t姓名\t年龄");

System.out.println(stu[delindex]);

System.out.println("您确定要删除该学生信息吗?(y/n)");

String userin="";

// 要求用户确认删除操作

userin = input.next();

if (userin.equals("y")) {// 确认删除

if(delindex==count-1)

count--;

else

for (inti = delindex; i< count - 1; i++) {

stu[i] = stu[i + 1];

}

count--;// 删除了一个数组,有效容量减一

}

} else {

// 3.没找到给用户相应的提示

System.out.println("对不起没有找到您需要删除的学生信息,请核对后再次输入");

}

}

/*public void charu(){

Arrays.binarySearch(stu[count], stu[count].getSid());

Arrays.co

}*/

public void deleStudeng1(){

System.out.println("开始删除学生信息");

Scanner input=new Scanner(System.in);

// 1.找到需要删除的学生

// 让用户输入要删除的学生的编号,以编号为查找条件进行查找intdelid = 0;

System.out.println("请输入要删除的学生编号");

delid = input.nextInt();

booleanhasdel = false;// 标记变量,用来标记是否找到需要删除的学生intdelindex = 0;// 用来记录需要删除的学生信息在数组中的位置

for (inti = 0; i< count; i++) {

if (stu[i].getSid() == delid) {

hasdel = true;

delindex = i;

break;

}

}

// 2.找到了删除掉https://www.doczj.com/doc/ac1432703.html,

if (hasdel) {

// 显示已经找到的学生信息

System.out.println("学号\t姓名\t年龄");

System.out.println(stu[delindex]);

System.out.println("您确定要删除该学生信息吗?(y/n)");

String userin="";

// 要求用户确认删除操作

userin = input.next();

if (userin.equals("y")) {// 确认删除

for (inti = delindex; i< count - 1; i++) {

stu[i] = stu[i + 1];

}

count--;// 删除了一个数组,有效容量减一

}

} else {

// 3.没找到给用户相应的提示

System.out.println("对不起没有找到您需要删除的学生信息,请核对后再次输入");

}

}

public void ChaXun(){

System.out.println("查询学生信息");

Scanner input=new Scanner(System.in);

intqueryid = 0;

//System.out.println("请输入要删除的学生编号");

queryid = input.nextInt();

booleanhasquery = false;// 标记变量,用来标记是否找到需要查找的学生intqueryindex = 0;// 用来记录需要查找的学生信息在数组中的位置

for (inti = 0; i< count; i++) {

if (stu[i].getSid() == queryid) {

hasquery = true;

queryindex = i;

break;

}

}

if (hasquery) {

System.out.println("学号\t姓名\t年龄");

System.out.println(stu[queryindex]);

} else {

// 3.没找到给用户相应的提示

System.out.println("对不起没有找到您输入的学生信息,请核对后再次输入");

}

}

publicintgetCount() {

return count;

}

public void setCount(int count) {

this.count = count;

}

}

package cm;

importjava.util.*;

public class TestStudent {

public static void main(String[] args) {

Student[] stu = new Student[50];

Scanner input = new Scanner(System.in);

int count = 0;// 记录数组中的有效容量

String userin = "";// 记录一次输入结束后是否继续输入

intmainmenuchoice = 0;// 主菜单选择

while (true) {

System.out.println("*************");

System.out.println("学生信息管理系统");

System.out.println("*************");

System.out.println("1.添加学生信息");

System.out.println("2.修改学生信息");

System.out.println("3.删除学生信息");

System.out.println("4.查询学生信息");

System.out.println("5.显示学生信息");

System.out.println("6.退出学生系统");

System.out.println("请选择操作...");

mainmenuchoice = input.nextInt();

switch (mainmenuchoice) {

case 1:

while (true) {

System.out.println("开始添加学生信息");

stu[count] = new Student();// 因为是对象数组所以需要单独开辟内存空间

System.out.println("请输入学生编号");

inttempsid = input.nextInt();

stu[count].setSid(tempsid);

System.out.println("请输入学生姓名");

String tempsname = input.next();

stu[count].setSname(tempsname);

System.out.println("请输入学生年龄");

inttempage = input.nextInt();

stu[count].setAge(tempage);

count++;

System.out.println("是否继续输入(y/n)");

userin = input.next();

if (userin.equals("n"))

break;

}

break;

case 2:

System.out.println("开始修改学生信息");

intupdateid = 0;

System.out.println("请输入要删除的学生编号");

updateid = input.nextInt();

booleanhasupdate = false;// 标记变量,用来标记是否找到需要修改的学生

intupdateindex = 0;// 用来记录需要修改的学生信息在数组中的位置

for (inti = 0; i< count; i++) {

if (stu[i].getSid() == updateid) {

hasupdate = true;

updateindex = i;

break;

}

}

if (hasupdate) {

System.out.println("学号\t姓名\t年龄");

System.out.println(stu[updateindex]);

System.out.println("您确定要修改该学生的信息吗?(y/n)");

userin = input.next();

if (userin.equals("y")) {// 确认修改

System.out.println("请输入学生编号");

inttempsid = input.nextInt();

stu[updateindex].setSid(tempsid);

System.out.println("请输入学生姓名");

String tempsname = input.next();

stu[updateindex].setSname(tempsname);

System.out.println("请输入学生年龄");

inttempage = input.nextInt();

stu[updateindex].setAge(tempage);

System.out.println("修改成功");

}

} else {

// 3.没找到给用户相应的提示

System.out.println("对不起没有找到您输入的学生信息,请核对后再次输入");

}

break;

case 3:

System.out.println("开始删除学生信息");

// 1.找到需要删除的学生

// 让用户输入要删除的学生的编号,以编号为查找条件进行查找

intdelid = 0;

System.out.println("请输入要删除的学生编号");

delid = input.nextInt();

booleanhasdel = false;// 标记变量,用来标记是否找到需要删除的学生

intdelindex = 0;// 用来记录需要删除的学生信息在数组中的位置

for (inti = 0; i< count; i++) {

if (stu[i].getSid() == delid) {

hasdel = true;

delindex = i;

break;

}

}

// 2.找到了删除掉https://www.doczj.com/doc/ac1432703.html,

if (hasdel) {

// 显示已经找到的学生信息

System.out.println("学号\t姓名\t年龄");

System.out.println(stu[delindex]);

System.out.println("您确定要删除该学生信息吗?(y/n)");

// 要求用户确认删除操作

userin = input.next();

if (userin.equals("y")) {// 确认删除

for (inti = delindex; i< count - 1; i++) {

stu[i] = stu[i + 1];

}

count--;// 删除了一个数组,有效容量减一

}

} else {

// 3.没找到给用户相应的提示

System.out.println("对不起没有找到您需要删除的学生信息,请核对后再次输入");

}

break;

case 4:

System.out.println("查询学生信息");

intqueryid = 0;

System.out.println("请输入要删除的学生编号");

queryid = input.nextInt();

booleanhasquery = false;// 标记变量,用来标记是否找到需要查找的学生

intqueryindex = 0;// 用来记录需要查找的学生信息在数组中的位置

for (inti = 0; i< count; i++) {

if (stu[i].getSid() == queryid) {

hasquery = true;

queryindex = i;

break;

}

}

if (hasquery) {

System.out.println("学号\t姓名\t年龄");

System.out.println(stu[queryindex]);

} else {

// 3.没找到给用户相应的提示

System.out.println("对不起没有找到您输入的学生信息,请核对后再次输入");

}

break;

case 5:

System.out.println("显示所有学生信息");

System.out.println("学号\t姓名\t年龄");

for (inti = 0; i< count; i++) {

System.out.println(stu[i]);

}

break;

case 6:

System.exit(0);// 终止应用程序

break;

default:

System.out.println("对不起,您选择的操作不存在,请看清楚谢谢!!!");

}

}

}

}

// 属性方法

完成Java面向对象程序设计实验课的心得体会范文

Java面向对象程序设计实验课的心得体会经过这几周对Java面向对象程序设计的学习,让我更加了解到Java学习的重要性。 在实验课上,我们完成多个实验,在这个阶段的学习中,我从认识到熟悉,而后到能够自主运用。通过对Java的了解,我发现它确实有很多方便之处,它集抽象性、封装性、继承性和多态性于一体,实现了代码重用和代码扩充,提高了软件开发的效率。对于我们这个专业来说学好Java语言是很重要的,所以在实验的过程中我都尽力理解java编程思想、掌握基本技巧,尽量学到最多的知识。 学习程序设计的基本目的就是培养描述实际问题的程序化解决方案的关键技能,Java面向对象程序设计是一门实践性比较强的课程,在实际中,我们必须把理论和实践结合起来。在实验中,我们理解理论课上的知识,然后运用到实际的操作中,我们必须在现有的理论的基础上,进行实践。多次实验后,也让我看到了现在学习的一个很大弱点:只听不练,永远不会熟练运用;空记技巧,忽略思想,会在多变的习题中十分无奈。 Java思想:Java是一门面向对向语言,他定义一切都是对象面向对象,就是面对现实; 现实中的一切都是对象,他们有分类,就产生了“类”; 他们有不同,类和类之间的不同,使用类来区分; 同一个类中不同的对象的区别,使用成员区分。

所以,面向对象的内部逻辑是分类。 面向对象编程思想就象数学上的一些概念,如:空间、群、环、域等 原始的编程思想就象古典数学,人们只在一个集合上探讨问题,没有系统的方法(即运算)定义,于是仁者见仁、智者见智,这样在一定程度上造成了理论的一种混乱局面,不利于科学的发展。于是近代数学向公理化发展,这是什么意思呢?就是说,人们除了在限定论域(即上面的集合,面向对象也有此概念)外,还在此论域上加进了一套通用的、公认的运算(方法);集合加上集合上定义的运算就构成了数学上的空间、群等,在计算机领域里,就变成为“类”。这种集合上定义了操作的东西利用起来就方便多了,这使得人们讨论问题时都在给定集合的运算能力上下工夫,即有通用性可事半功倍。 面向对象的编程思想就要想近世代数的分析思想,首先要确定“论域”,即工程所涉及到的所有的“对象”,然后要分类处理,把隶属同一类别的对象集合在一起(做成一个集合),定义他们之间的运算性质及可以进行的操作,这样就构建了一个类,当然以后用到这个类的对象时都要通过已经定义了的操作来完成各项功能,这就是常要求的类的“类的成员变量要通过共有函数来操作”。 我想真正的面向对象编程思想不应该是编程思想,应该是面向对象的分析方法才对! 我的理解: 1、将分析过程为抽象的过程:简言之:分成多个小问题(组成部分),

《JAVA面向对象设计》课程标准

《JAVA面向对象设计》课程标准 课程类别:必修课适应专业:软件技术相关专业 课程学时:64节学分:4 一、课程定位 《JAVA面向对象设计》主要讲述了面向对象JAVA程序设计的概念和应用,训练学生掌握面向对象的概念和基本设计方法,掌握JavaSE技术的主要内容和编程方法,是计算机软件专业的一门专业基础骨干课程。 通过本课程的学习,第一部分着重介绍Java编程的基本内容。主要有java的基本环境、java语言基础、java工程规范、基本特征、数据类型、流程控制、数组、函数、异常等,通过这部分的学习可以用java语言完成简单编程逻辑的程序编写;第二部分,着重学习JavaSE类库的应用。主要包括输入/输出、java多线程、容器类、网络通信、java界面编程、事件监听与响应、Java数据库编程等;第三部分,着重介绍Java面向对象的概念和编程。包括类和对象、封装、继承、多态、抽象类、接口、设计模式的概念和使用方法,通过这部分学习,建立面向对象程序设计的概念和应用的基本认识。 通过本课程的学习,能够训练学生编程逻辑,了解面向对象的概念和基本实现方法,掌握JAVASE技术的主要内容,为后续的《JAVA EE程序设计》《移动互联网程序设计》等课程打下坚实的基础。 二、课程目标 本课程目标分为知识目标(即学生应该掌握的基本理论和基本方法)、总体能力目标(即学生学习完本课程后应该达到的职业技能)。 本课程知识目标: 1)掌握JAVA语言中数据类型与表达式,语句控制和数组的概念及用法。 2)掌握异常的概念、分类和异常处理编程,自定义异常的实现。 3)熟悉Java常用工具类的使用(字符串类、系统类、时间类、格式化类等)4)掌握线程的概念、意义,创建方法、调度方法、同步机制、线程通信的概

《Java面向对象程序设计》(第2版)课后答案

Java面向对象程序设计 (编著耿祥义张跃平) 习题1 1.James Gosling 2. (1)使用一个文本编辑器编写源文件。 (2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。 (3)使用Java解释器(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.doczj.com/doc/ac1432703.html,ng.NoSuchMethodError: main 执行java xiti8得到的错误提示 Exception in thread "main" https://www.doczj.com/doc/ac1432703.html,ng.NoClassDefFoundError: xiti8 (wrong name: Xiti8) 执行java Xiti8.class得到的错误提示 Exception in thread "main" https://www.doczj.com/doc/ac1432703.html,ng.NoClassDefFoundError: Xiti8/class 执行java Xiti8得到的输出结果 I'm glad to meet you 9.属于操作题,解答略。 习题2 1. D 2.【代码1】【代码2】错误//【代码3】更正为float z=6.89F; 3.float型常量后面必须要有后缀“f”或“F”。 对于double常量,后面可以有后缀“d”或“D”,但允许省略该后缀。4.public class Xiti4{ public static void main (String args[ ]){ char ch1='你',ch2='我',ch3='他'; System.out.println("\""+ch1+"\"的位置:"+(int)ch1); System.out.println("\""+ch2+"\"的位置:"+(int)ch2); System.out.println("\""+ch3+"\"的位置:"+(int)ch3); } } 5.数组名字.length 6.数组名字.length 7.【代码1】A,65 【代码2】-127

Java面向对象程序设计复习题附复习资料

Java面向对象程序设计复习题 一、选择题 1、下列哪个是Java中的关键字(C )。 A、run B、Integer C、default D、implement 2、下面关于Java.applet.Applet和其祖先类的描述语句哪个不对(B )。 A、Applet是Container的一种 B、Applet是Window的一种 C、Applet是Component的一种 D、Applet是Panel的一种 3、下列类DataOutputStream的构造方法正确的是(A )。 A、new dataOutputStream(new (“out.txt”)); B、new dataOutputStream(“out.txt”); C、new dataOutputStream(new writer(“out.txt”)); D、new dataOutputStream(new (“out.txt”)); 4、在switch(表达式)语句中,表达式的类型不能为(C )。 A、byte B、char C、long D、int 5、在接口MouseMotionListener中方法正确的是(A )。 A、Public void mouseDragged(MouseEvent) B、Public boolean mouseDragged(MouseEvent) C、Public void mouseDragged(MouseMotionEvent) D、Public boolean MouseDragged(MouseMotionEvent) 6、下面是一些异常类的层次关系 https://www.doczj.com/doc/ac1432703.html,ng.Exception https://www.doczj.com/doc/ac1432703.html,ng.RuntimeException https://www.doczj.com/doc/ac1432703.html,ng.IndexOutOfBoundsException https://www.doczj.com/doc/ac1432703.html,ng.ArrayIndexOutOfBoundsException https://www.doczj.com/doc/ac1432703.html,ng.StringIndexOutOfBoundsException 假设有一个方法X,能够抛出两个异常,Array Index和String Index异常,假定方法X中没有try-catch语句,下面哪个答案是正确的。(B ) A、方法X应该声明抛弃ArrayIndexOutOfBoundsException和StringIndexOutOfBounds Exception。 B、如果调用X的方法捕获IndexOutOfBoundsException,则ArrayIndexOutOfBounds Exception和StringIndexOutOfBoundsException都可以被捕获。 C、如果方法X声明抛弃IndexOutOfBoundsException,则调用X的方法必须用Try-catch 语句 捕获。 D、方法X不能声明抛弃异常。 7、现有一变量声明为boolean aa;下面赋值语句中正确的是( D )。 A、aa=0 B、aa=True C、aa="true" D、aa=false 8、某类Example的main()方法参数为args,当输入数据Java Example cat时,args[0]的值为(A )。 A、cat B、Java C、example D、null 9、String s1=new String(“Java”);String s2=new String(s1)则下列哪个说法是正确的(C )。 A、表达式s1==s2为真 B、s1和s2是同一个对象

用面向对象方法设计实现整数的四则运算(java)

用面向对象方法设计实现整数的四则运算,并编写主程序演示该类用法。(要求:用继承或接口实现) import java.math.BigDecimal; public class OperationImpl implements Operation{ private double changeFormat(double num){ //改变格式 return new BigDecimal(num).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue(); } public double add(double num1, double num2) { return changeFormat(num1+num2); } public double cut(double num1, double num2) { return changeFormat(num1-num2); } public double multiply(double num1, double num2) { return changeFormat(num1*num2); } public double divide(double num1, double num2) { if((int)num2==0){ System.out.println("除数不能为0"); return -1.11111; } return changeFormat(num1/num2); } public static void main(String[] args) { OperationImpl operate = new OperationImpl(); System.out.println(operate.add(1, 1)); System.out.println(operate.cut(1, 1)); System.out.println(operate.multiply(1, 2)); System.out.println(operate.divide(1, 0)); } } interface Operation{ double add(double num1,double num2); double cut(double num1,double num2); double multiply(double num1,double num2); double divide(double num1,double num2); }

JAVA-面向对象程序设计-学生个人信息管理系统

JAVA-面向对象程序设计-学生个人信息管理系统

软件学院 课程设计报告书 课程名称面向对象程序设计 设计题目学生个人信息管理系统 专业班级嵌入式软件09-2 学号0920010214 姓名王翀 指导教师

2011 年6 月 目录 1 设计时间 (5) 2 设计目的 (5) 3设计任务 (5) 4 设计内容 (5) 4.1需求分析 (5) 4.1.1问题描述 (5) 4.1.2基本要求 (5) 4.2总体设计 (6) 4.2.1包的描述 (9) 4.2.2类的描述 (10) 4.2.3类之间的关系 (10) 类MainTest继承JFrame。 (10) 类jenter实现接口ActionListener。 (10) 4.3 详细设计 (10) 4.3.1类图 (14) 4.3.2页面设计 (14) 4.4 测试与分析 (15) 4.5 程序代码 (17) 5 总结与展望 (32)

参考文献 (32) 课程设计成绩评定 (34)

1 设计时间 2012年6月13日——6月19日 2 设计目的 《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力 3设计任务 设计一个简单学生个人信息管理系统,该系统具有录入,查询,修改三项基本功能。要求如下: (1)具有简单的录入,查询和修改功能。 (2)修改学生信息必须输入学号,然后对姓名、性别和专业等进行修改; (3)使用文件存储数据。(也可用数据库) (4)学生个人信息必须包括:学号、姓名、性别、出生日期、身份证号、专业、班级自我简介,其余可自行丰富。 4 设计内容 4.1需求分析 学生管理系统需要对学生的基本信息进行简单的录入,查询,修改三项基本功能。具体实现使用Access2003数据库实现基本操作,前台窗口使用GUI编程创建图形界面,对图形界面的窗口和按钮进行事件监听,执行相应的SQL语句。 4.1.1问题描述 设计一个简单学生个人信息管理系统,该系统具有录入,查询,修改三项基本功能。 4.1.2基本要求 (1)具有简单的录入,查询和修改功能。 (2)修改学生信息必须输入学号,然后对姓名、性别和专业等进行修改; (3)使用文件存储数据。 (4)学生个人信息必须包括:学号、姓名、性别、出生日期、身份证号、专业、班级自我

Java面向对象16种设计原则

一类的设计原则 1依赖倒置原则-Dependency Inversion Principle (DIP) 2里氏替换原则-Liskov Substitution Principle (LSP) 3接口分隔原则-Interface Segregation Principle (ISP) 4单一职责原则-Single Responsibility Principle (SRP) 5开闭原则-The Open-Closed Principle (OCP) 二包的设计原则 6重用发布等价原则-Release ReuseEquivalency Principle (REP) 7无环依赖原则-The AcyclicDependencies Principle (ADP) 8稳定依赖原则-The StableDependencies Principle (SDP) 9稳定抽象等价原则-The StableAbstractions Principle (SAP) 10共同封闭原则-The CommonClosure Principle (CCP) 11全部重用原则-The Common Reuse Principle (CRP) 三扩展原则 12 迪米特法则-Least Knowledge Principle (LKP) 13 黑盒原则-BBP(Black Box Principle) 14 缺省抽象原则-DAP(Default Abstraction Principle) 15 接口设计原则-IDP(Interface Design Principle) 16 不要构造具体的超类原则-DCSP(Don't Concrete SupperclassPrinciple) 1. Dependency Inversion Principle (DIP) - 依赖倒置原则 依赖:在程序设计中,如果一个模块a使用或调用了另一个模块b,我们称模块a依赖模块b。高层模块与低层模块:往往在一个应用程序中,我们有一些低层次的类,这些类实现了一些基本的或初级的操作,我们称之为低层模块;另外有一些高层次的类,这些类封装了某些复杂的逻辑,并且依赖于低层次的类,这些类我们称之为高层模块。 依赖倒置原则的2个重要方针: A. 高层模块不应该依赖于低层模块,二者都应该依赖于抽象 B. 抽象不应该依赖于细节,细节应该依赖于抽象 为什么叫做依赖倒置(Dependency Inversion)呢? 面向对象程序设计相对于面向过程(结构化)程序设计而言,依赖关系被倒置了。因为传统的结构化程序设计中,高层模块总是依赖于低层模块。

JAVA面向对象程序设计教案

教案首页 教学设计

说课内容: 1、为什么要学本门课 《Java高级程序设计》是计算机类专业必修的一门专业核心课,本课程以能力与知识相结合为培养目标,以社会岗位需求为向导,切实培养同学们的逻辑与编程思维及使用程序设计语言解决实际问题的能力,为同学们走上工作岗位打下坚实的基础。

2、具体职业岗位专业能力培养: (1)具备面向对象编程的编程思想及基本算法,能根据问题正确选择、组合算法。 (2)能独立编写代码,编写测试数据,并能独立调试程序,获得正确结果。 (3)具备进行分析和处理Java程序运行中产生的有关技术问题的能力。 (4)开发创新的能力。 3、本门课学什么 通过本门课程的学习,使同学们掌握Java 程序设计语言的基本语法,Java 面向对象编程方法,同时应具备利用JDK来创建、编译、调试Java 项目的能力。对于本门课程有如下三个教学目标: (1)知识目标:理解和掌握JA V A语言基本语法和语义,掌握标准程序和小应用程序的开发方法,掌握数据库、网络编程的基本开发方法。 (2)能力目标:要求能较熟练地使用JDK 进行Java 程序的编辑、编译和调试技术,使用MyEclipse进行图形用户界面设计和数据库应用程序的开发;能开发有一定实用价值的应用程序。 (3)素质目标:养成良好的编程习惯、提高团队精神和协作精神、艰苦奋斗意识、心理素质和克服困难的能力。 4、怎么组织本门课 1)以就业为导向,进行专业定位。 2)对软件开发工作岗位和工作任务进行分析。 3)明确计算机应用专业的核心能力,进行课程设计,做到实际的工作岗位——Java软件编程师与工作任务相对应。 4)按照职业行动完整性和工作过程系统化的理念归纳出学习情境。 5)学习情境注意由浅到深,鼓励同学们利用网络资源进行自主学习和开放性学习。 课程设计理念与思路 学习内容 5、如何学习? 1)启发教学 通过各种教学方式和手段激发同学们的学习欲望,启发同学们,积极思维,发现问题,提出问题,并逐步解决问题。例如,在讲解程序设计时,不是简单地给出程序清单,而是从分析问题入手,继而找出解决问题的方法,再给出算法,最后编写出完整的程序。 这一过程的关键是每一步都采用与同学们一起探讨的方式,让同学们在启发下思考,在思考中解决问题,从而掌握独立分析问题、解决问题的方法。 学习方法 2)项目教学和案例教学法 以一个实际的项目(学籍管理系统)为例展开教学,将知识点融入项目中,运用面向对象的思想进行分析、设计和实现,树立同学们面向对象的程序设计思想。 而案例教学则贯穿在课程的主要章节中,通过“典型程序案例”→“语法,实践知识点说明”→“模仿编程”→“实践提高”的教学组织方式,培养同学们实际应用能力。 学习方法 通过精选案例、分解任务、讲练有机融合,将相关知识点融入项目,通过项目实现,让同学们掌握Java技术,并对面向对象编程有一个直观和更加感性的认识,再通过动画演示、趣味教学等方法,使同学们能够积极参与整个教学过程,让同学们建立起面向对象编程的思想,体现“以同学们为中心,教师为主导”的教学思想。 学习方法 3)任务驱动教学法 对每个知识点的讲解采用“任务驱动”的方法,通过“提出任务→分析任务→完成任务→边学边做→总结”的过程,体现出互动创新、提倡个性、重在应用、共同协作的教学风格。 4)榜样激励教学法 在教学过程中,通过展示分析高年级同学们或同班(或同年级)同学们的优秀作品,启发激励其他同学们。实践证明,榜样激励教学法很有效,特别是展示同班(或同年级)同学们作品最具激励作用。 6、考核方法 根据实践为主、理论够用的高职教学原则,本课程的考核注重学习过程评价、注重专业实践能力。 考试成绩=理论考试(课程学习结束时,采用“教考分离”制度,以闭卷笔试方式进行。考试成绩占学科成绩的80%)+平日成绩(作业+出勤占20%)。 7、Java语言的诞生

《Java面向对象程序设计》考试卷及答案带注释

一、单选题(每小题1分,共30分) 1.在MyEclipse中,()视图可以将项目中包含的文件及层次结构展示出来。 A) Package B)Declaration C)Navigator D) Console 2.下列标识符中,正确的是()。 A)class B) 123_rr C) _lei D) test&12 3.下列的()选项可以正确用以表示八进制值8。0x代表16进制,0代表8进制 A)0x8 B)0x10 C)08 D)010 4.以下哪个不是Java的原始数据类型() A) int B) boolean C) float D) Char引用数据类型 5.下列有关Java布尔类型的描述中,正确的是() A)一种基本的数据类型,它的类型名称为boolean B)用int表示类型 C)其值可以赋给int类型的变量 D)有两个值,1代表真,0代表假 6.在Java中,不属于整数类型变量的是( ) A) double 浮点型B) long C) int D) byte 7.以下do-while语句构成的循环执行次数是()。 int k=0; do { ++k ;}while(k<1); A) 一次也不执行B) 执行1次C) 无限次D) 有语法错误,不能执行8.表达式(1/0<1)&& (12==0) 的值为()。逻辑运算结果只有true和f alse两种 A) true B) false C) 0 D) 运行时抛出异常 9.以下()表达式不可以作为循环条件 A) i=5 B )i<3 C) count==i D) bEqual=str.equals("q") 10.下列数组初始化正确的是() A) int score[5] = {90,12,34,77,56}; B) int[5] score = new int[]; C) int[] score = new int[5]{90,12,34,77,56}; D) int score[] = new int[]{90,12,34,77,56}; 11.若有定义:byte[] x={11,22,33,-66}; 其中0≤k≤3,则对x数组元素错误的引用是() A) x[5-3] B) x[k] C) x[k+5] D) x[0] 12.以下代码的输出结果是()。 public static void main(String[] args){ for(int i=1;i<=10;i++){ if(i%2==0||i%5==0){

java面向对象程序设计 书中例子

Java面向对象程序设计 <书中例题> 第1章Java 语言综述 例1-1 一个加法器 //Add.java public class Add { public static void main(String args[]) { int a,b,c; a=5; b=7; c=a+b; System.out.println(a+"+"+b+"="+c); } } 例1-2 能接受命令行参数的应用程序 //WhoSayWhat.java class WhoSayWhat { public static void main(String args[]) { if(args.length<2) { System.out.println("请向应用程序传递两个参数:"); System.exit(0); // } String s1=args[0]; String s2=args[1]; System.out.println(s1+" Say: "+s2); } } 例1-3小应用程序举例 //Test.java import java.applet.Applet; import java.awt.Graphics; //Graphics public class Test extends Applet {

public void paint(Graphics g) { g.drawString("hello world!",50,25); } } 小程序查看器:JApp.class 编译javac Test.java 运行appletviewer Test.html 第二种方法 //Test.java // // import java.applet.Applet; import java.awt.Graphics; public class Test extends Applet { public void paint(Graphics g) { g.drawString("hello world!",50,25); } } 编译javac Test.java 运行appletviewer Test.java JNI是什么 以前我的classpath路径”.;E:\安装文件\java\jre\lib;” .lib是什么 .idl是什么 搞清楚java文件夹下的各个文件夹的作用 java_home JDK的安装路径。如:”E:\安装文件\java”classpath 储存.class文件的地方。如: “.;%java_home%\lib\dt.jar;%java_home%\lib\tools.jar;” 或“.; E:\安装文件\java\lib\dt.jar; E:\安装文件\java\lib\tools.jar; Path “;%java_home%\bin;” 在cmd下也可配置 如:

Java面向对象设计代码

package cm; public class Student { privateintsid; private String sname; privateint age; publicintgetSid() { returnsid; } public void setSid(intsid) { this.sid = sid; } public String getSname() { returnsname; } public void setSname(String sname) { this.sname = sname; } publicintgetAge() { return age; } public void setAge(int age) { this.age = age; } public voidshowInfo(){ System.out.println(sid+"\t"+sname+"\t"+age); } public String toString(){ returnsid + "\t" + sname + "\t" + age; } } package cm; importjava.util.Scanner;

public class Operater { public static void setMenu(){ System.out.println("1.添加学生信息"+"\t"+"2.修改学生信息"); // System.out.println("2.修改学生信息"); System.out.println("3.删除学生信息"+"\t"+"4.查询学生信息"); // System.out.println("4.查询学生信息"); System.out.println("5.显示学生信息"+"\t"+"6.退出学生系统"); // System.out.println("6.退出学生系统"); System.out.println("请选择操作...");} public static void gongneng(OpStudentobj) { setMenu(); Scanner intput=new Scanner(System.in); int n; n=intput.nextInt(); switch (n){ case 1: String userin=""; System.out.println("1.添加学生信息"); obj.InsertStudent(); break; case 2: System.out.println("2.修改学生信息"); obj.upDate(); break; case 3: System.out.println("3.删除学生信息"); obj.deleStudeng(); break; case 4: System.out.println("4.查询学生信息"); obj.ChaXun(); break; case 5: System.out.println("5.显示学生信息"); obj.Display();

java面向对象程序设计基础知识总结

1、含有main()方法的类称为主类,一个.java文件中可以有多个类,但只能有一个主类。 2 、转义字符:对于‘ 和\ ,需在前面加上\,即用char a = '\'’,b='\\'表示。\n表示回车换行;\t表示水平制表;\b表示退格;\v表示水平制表;\r表示回车;\a表示警铃 3 、标识符:Java程序中自定义的类名、方法名、参数都是标识符,Java语言中规定标识符由字母(区分大小写)、数字、下划线、$自由组合而成,但不能以数字开头,标识符长度不限。 4 、基本数据类型:分4大类——整数(byte:1字节/int:4字节/short:2字节/long:8字节)、浮点数(float:4字节/double:8字节)、字符型(char:2字节)、布尔型(boolean:1字节)。 5 、整形变量注意:16进制数以0x开头,8进制数以0开头。 6 、浮点型变量注意:如果数字未加任何字母,则默认为double类型,赋值时须注意数据类型匹配问题。 7 、数组的定义:char array1[];和char [ ] array2;都可以。 8 、双目运算符:+ - * / 对于整形和浮点数有效(float x = 1f/3f;的运行结果是x=0.33333334),但%只对整形运算。 9 、逻辑运算符:逻辑运算是对布尔型变量进行运算,结果也是布尔型。^表示异或运算(a^b表示a和b真假不同时,值为真)。&&和||是短路的(对于a&&b,如果a为假,则不再计算b的值),&和|是非短路的,a和b的值都要计算。 10 、位运算符:&位与、|位或、~位反、^位异或、<<左移、>>右

《JAVA面向对象程序设计》练习题库B

第一章Java 简介 1. 下面( )是JDK中的Java运行工具.(选择二项) A. javac B. javam C. java D. javar 【解析】A C 2. 选出在Java中有效的注释声明(选择二项) A.//This is a comment B.*/This is a comment C./This is a comment D./*This is a comment*/ 【解析】AD 3. 下面( )命令可用于编译Java程序.(选择一项) A. java B. javac C. appletviewer D. javadoc 【解析】B 4. 下面( )数据类型可用于main()方法中传递的参数. (选择一

项) A. String B. Integer C. Boolean D. Variant 【解析】A 5. 在屏幕上显示的消息正确的语句是(选择一项) A. System.out.println(“I am Java Expert”); B. system.out.println(“I am Java Expert”); C. System.Out.Println(“I am Java Expert”); D. System.out.println(…I am Java Expert?); 【解析】A 6. Java编译器会将Java程序转换为(选择一项) A. 字节码 B. 可执行代码 C. 机器代码 D. 以上所有选项都不正确 【解析】A 7. Java源代码文件的扩展名为(选择一项) A. .class

B. .java C. .com D. 以上所有选项都不正确 【解析】B 第二章Java语言基础 1. 在Java中,byte数据类型的范围是(选择一项) A. -32767~32768 B. -32768~32767 C. -127~128 D. -128~127 【解析】D 2. 以下( )是合法的标识符(选择二项) A. Te1_num B. emp1 C. 8678 D.batch.no 【解析】AB 3. 下列代码的输出结果是(选择一项)

java面向对象程序的设计董小园版

目录 第1章了解Java (2) 第2章面向对象的“对象” (7) 第3章对象的属性---变量详述 (9) 第4章对象的行为---成员方法详述 (12) 第5章生命周期及作用域 (17) 第6章Java常用类与函数库 (19) 第7章对象的进一步探讨--面向对象中的继承 (21) 第8章深入多态 (25) 第9章使用异常处理 (27) 第10章基于Swing的图形界面编程 (28) 第11章可视化程序的事件处理 (37) 第12章Java多线程机制 (50)

第1章了解Java 1.编写一个程序,将用户在命令行输入的24小时制时间转换为12小时制。 public class TimeTest{ public static void main(String args[]){ int time; time = Integer.parseInt(args[0]); if(time<0||time>24) System.out.println("输入的不是一个合法时间!"); else if(time>12) System.out.println("12小时制为"+(time-12)+"点"); else System.out.println("12小时制为"+time+"点"); } } 2.用户输入x的数值,根据如下规则输出计算后的结果y值。 x (x<1) Y = 2x -1 (1<=x<10) 3x -11 (x>=10) public class CalculateTest{ public static void main(String args[]){ float x,y; x = Float.parseFloat(args[0]); if(x<1) y = x; else if(1<=x&&x<10) y = 2*x-1; else y = 3*x-11; System.out.println(y); } } 3.编写一个Java应用程序,由命令行参数输入一个百分制成绩,要求打印出 成绩等级“A”、“B”、“C”、“D”、“E”。90分以上为“A”;80~89分为“B”;70~79分为“C”;60~69分为“D”;60分以下为“E”。 要求使用switch语句实现。 运行效果如图2所示:

Java面向对象程序设计第版课后答案

J a v a面向对象程序设计 第版课后答案 The pony was revised in January 2021

Java面向对象程序设计 (编着耿祥义张跃平) 习题1 1.James Gosling 2. (1)使用一个文本编辑器编写源文件。 (2)使用Java编译器()编译Java源程序,得到字节码文件。(3)使用Java解释器()运行Java程序 3.Java的源文件是由若干个书写形式互相独立的类组成的。 应用程序中可以没有public类,若有的话至多可以有一个public类。4.系统环境path D\jdk\bin; 系统环境classpath D\jdk\jre\lib\;.; 5. B 6. Java源文件的扩展名是.java。Java字节码的扩展名是.class。7. D

8.(1) (2)生成两个字节码文件,这些字节码文件的名字和(3)java Xiti8 (4)执行java Speak的错误提示 Exception in thread "main" main 执行java xiti8得到的错误提示 Exception in thread "main" xiti8 (wrong name: Xiti8) 执行java 得到的错误提示 Exception in thread "main" Xiti8/class 执行java Xiti8得到的输出结果 I'm glad to meet you 9.属于操作题,解答略。 习题2 1. D 2.【代码1】【代码2】错误 ength

6.数组名字.length 7.【代码1】A,65 【代码2】-127 【代码3】 , 8. 【代码1】false 【代码2】true 【代码3】false 【代码4】3 【代码5】 【代码6】 习题3 输出110 if-else语句书写的不够规范,复合语句缺少大括号“{}”,代码不够清晰。2.你好好酷!!

Java面向对象程序设计课程设计

面 向 对 象 程 序 设 计 课 程 设 计 系别:商学系 专业:信息管理与信息系统 班级:信管12班 组别:第十五组 组员:

目录 一、课程设计目的 (4) 二、课程设计任务 (4) 1.字符串操作编程 (4) 2.22选5彩票号码生成器 (4) 3.设计一个简易的计算器 (4) 三、开发工具与平台 (5) 1.开发工具 (5) 2.开发平台 (5) 四、设计思路 (5) 第一个人:赵贯强 (5) 1.字符串操作编程 (5) (1)界面设计 (5) (2)逻辑设计 (6) (3)程序测试 (6) 2.22选5彩票号码生成器 (6) (1)界面设计 (6) (2)逻辑设计 (7) (3)程序测试 (7) 第二个人:付勃达 (8) 1.字符串操作编程 (8) (1)界面设计 (8) (2)逻辑设计 (9)

(3)程序测试 (9) 2.22选5彩票号码生成器 (10) (1)界面设计 (10) (2)逻辑设计 (11) (3)程序测试 (12) 3.设计一个简易的计算器 (13) (1)界面设计 (13) (2)逻辑设计 (18) (3)程序测试 (18) 五、实验总结 (22) 六、附录 (23) 第一个人:赵贯强 (23) 1.字符串操作编程 (23) 2.22选5彩票号码生成器 (23) 第二个人:付勃达 (24) 1.字符串操作编程 (24) 2.22选5彩票号码生成器 (25) 合作设计一个简易的计算器 (25)

面向对象程序设计课程设计 一、课程设计目的 1、熟练掌握java面向对象编程。 2、选择合适的数据结构实现需求。 3、熟练使用各种控制结构。 4、GUI组件、事件处理技术。 二、课程设计任务 1.字符串操作编程 设计字符串操作类,该类主要处理字符串的相关信息,完成以下的操作:通过键盘输入初始化字符串、获得字符串长度、在字符串中查找一个字符、字符串比较等。 提示: 1)键盘输入建立字符串对象(System.in;IO流类;String类) 2)字符串信息的输出 3)获得字符串长度(length( )方法) 4)在字符串中查找一个字符(IndexOf( )方法) 5)比较字符串(equals( )方法) 2.22选5彩票号码生成器 设计一个彩票号码生成器,主要处理5位数字序列的排列组合,要求每一位上的数字为1~22区间上的任意一个,且数字不可重复。 提示: 1)数字存放的数据结构(Array) 2)随机数的获得(random( )方法) 3)循环语句的使用(for语句) 3.设计一个简易的计算器,可以进行四则运算:加、减、乘、除等(限于十进制下) 程序要求:

Java面向对象程序设计试卷(三)

Java面向对象程序设计试卷(三) 一、填空题(每空2分,共40分) 1. 一个Java程序运行从上到下的环境次序是((1)) A.操作系统、Java程序、JRE/JVM、硬件 B.JRE/JVM、Java程序、硬件、操作系统 C.Java程序、JRE/JVM、操作系统、硬件 D.Java程序、操作系统、JRE/JVM、硬件 2. 设有如下的程序代码,在执行完后x和y的值是多少?((2)) int x= 8, y=2, z; x=++x*y; z=x/y++; A)x=16, y=2 B)x=16, y=4 C)x=18, y=2 D)x=18, y=3 3. 正确定义一个初始值为25.8的float类型的变量的语句是:((3)) A.float #value=25.8f; B.float value#=25.8; C.float _value=25.8f; D.float value=25.8; 4. 下面代码定义了两个整形变量和一个字节型变量,在括号处填入将num1+num2的值赋给num3变量的语句 int num1 = 53; int num2=47; byte num3; ((4))//将 5. 以“java Sub 3”运行以下程序的结果是:((5)) public class Sub { public static void main(String[] args) { int i=Integer.parseInt(args[0]); swich(i) { case 1: System.out.println(“First season”); break; case 2: System.out.println(“Second season”); break; case 3: System.out.println(“3th season”); break; case4: System.out.println(“Last season”); break; } } }

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