资源预览内容
第1页 / 共27页
第2页 / 共27页
第3页 / 共27页
第4页 / 共27页
第5页 / 共27页
第6页 / 共27页
第7页 / 共27页
第8页 / 共27页
第9页 / 共27页
第10页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Java语言程序设计实验报告实验序号:4实验项目名称:java中类及其方法的设计学号姓名专业、班计科1101实验地点文波指导教师韩志龙时间2013/5/2一、实验目的及要求1.掌握java中类及其方法的设计,特别注意构造方法的设计。2.掌握类及其方法的使用过程,并体会类的设计与类的使用两个阶段的关系。3.掌握与类相关的各种语法机制。4.进一步习惯java的命名风格。本次实验强制要求使用java命名风格。二、实验设备(环境)Windows XP操作系统,MyEclipse 8.5编程软件三、实验内容与步骤1、将你在实验3中设计的模拟堆栈程序,封装成一个类(注意访问控制的运用、getter和setter的运用、构造方法的设计等),并用这个堆栈类重写中缀表达式转换成后缀表达式程序。(体会封装)2、设计一个时间类MyDate:(日期均大于1900年)a、其中包括年、月、日、时、分、秒。其他成员变量可根据需要增设;b、可以直接获得时间的年、月、日、小时、分钟、秒数;c、计算日期的dayOfWeek(星期几); d、/实现日期加减一个整数后得到新的日期(加减天数);e、输入任意一个月份,将此月的日历输出(按星期格式);f、输入任意年份,将此年的年历输出;g、实现两个时间相减得到的小时数、分钟数和秒数;h、输出时间,要求三种格式:yyyy年MM月dd日hh小时mm分ss秒;yyyy-MM-dd hh:mm:ssyyyyMMddhhmmssi、设计三个构造方法。1、参数只有年月日的构造方法,小时分钟秒设为0;2、完全参数的构造方法;3、如果使用无参数的构造方法则初始化为系统时间,系统时间的获得方法:SimpleDateFormat myDateFormat =new SimpleDateFormat(yyyyMMddHHmmss);java.util.Date date0=new java.util.Date();strDate=myDateFormat.format(date0);strDate中就是有yyyyMMddHHmmss时间格式的字符串,从中可以取到各段时间数据(程序源代码的最开始要加import java.text.SimpleDateFormat;)j、MyDate的使用:用无参数构造方法创建实例,然后按三种方法输出时间;用年月日参数构造方法创建实例,时间为2008年8月8日0点0分0秒;并用三种方法输出时间用全参数构造方法创建实例,时间为2008年8月8日20点0分0秒,并用三种方法输出将两个时间相减,计算差值共多少小时数、或者分钟数、或者秒数,输出输入2011,4,输出月历;输入2011,输出年历;k、注意理解构造方法重载。l、不要直接使用Java提供的Date类,那样就达不到练习的效果了。3、设计一个字符串链表节点类:a)其中包括两个成员变量:Value(String类型)和下一个节点nextNode,方法有:setValue(),getValue()和display();b)用此类生成一个循环链表来解决斗地主发牌的问题c)注意观察:类引用的使用、浅复制和类中对类自身的引用。4、设计一个用于管理银行客户的类BankCustomer:仅描述客户的几个重要方面:帐号、身份证号、姓名、联系方式、密码、账户余额。所有的成员变量均用private访问控制,因此每一个成员变量就要有相应的存取器(getter和setter,即获取和设置其值的相应的成员方法。需要setter还是getter,还是两者都要,视情况而定)成员方法:开户(开户时必须要有身份证号),系统自动生成帐号,帐号使用系统时间(格式:yyyyMMddHHmmss14位),初始密码为“666666”。注意开户和构造方法之间的关系。存钱、取钱、显示账户信息、修改密码(密码最短要六位)怎样在main中使用这个类,自行安排,要表现出你设计的类的各个方面,并在main中用英语加以注释四、实验结果与数据处理源代码:第一题:import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;class Stackprivate int length;public boolean isEmpty(char stack)/判断栈是否为空if (length=0)return true;return false;public boolean isFull(char stack)/判断栈是否为满if (length=50)return true;return false;public int Length(char stack)/返回栈中元素个数return length;public char getTop(char stack) /返回栈顶元素if (isEmpty(stack)return 0;elsereturn stackLength(stack) - 1;public void pop(char stack) /出栈if (isEmpty(stack)return ;length-;return ;public boolean push(char stack, char aChar)/入栈if (isFull(stack)return false;stacklength+ = aChar;return true;public class cmd static int intInputValue; public static void main(String args) Stack d=new Stack();String myString=new String;System.out.print(请输入合法的中缀表达式!);if(getStringInput(myString)MidfixToSuffix(myString0);static boolean getStringInput(String str) / String strInput=null;boolean isInputMistake = false;try /System.out.print(请输入一个字符串: );BufferedReader br = new BufferedReader(new InputStreamReader(System.in);str0 = br.readLine(); catch (IOException e) isInputMistake = true;/ System.out.println(IO错误!请重新运行程序。);return !isInputMistake;static void MidfixToSuffix(String s) SD d=new SD();char myStack=new char50; System.out.println(其后缀表达式为:);for (int i = 0; i s.length(); i+)if (s.charAt(i) = + | s.charAt(i) = - | s.charAt(i) = *| s.charAt(i) = /| s.charAt(i) = %| s.charAt(i) = ( | s.charAt(i) = ) /如果是运算符则进一步判断System.out.print( );while (true) if (s.charAt(i) = () /是左括号则直接进栈d.push(myStack,s.charAt(i);break; else if (s.charAt(i) = ) /是右括号则栈中左括号上面的所有符号依次出栈while (d.getTop(myStack) != () System.out.print(d.getTop(myStack)+ );d.pop(myStack);d.pop(myStack);break; else if (d.isEmpty(myStack)|d.getTop(myStack) = () d.push(myStack, s.charAt(i);break; else if (s.charAt(i) = * | s.charAt(i) = / | s.charAt(i) = %)& (d.getTop(myStack) = + | d.getTop(myStack) = -) /根据运算符的优先级判断,如果是高优先级进栈d.push(myStack, s.charAt(i);break; else System.out.print(d.getTop(myStack);d.pop(myStack); else/运算变量直接输出System.out.print(s.charAt(i);while (!d.isEmpty(myStack) /将栈中剩余的运算符直接输出System.out.print(d.getTop(myStack);d.pop(myStack);第二题:import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.text.SimpleDateFormat;public class UseMyDate static int intInputValue;public s
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号