淮海工学院java实验二

合集下载

实验三-Java深入面向对象编程(2)-陈正宁-2015123349

实验三-Java深入面向对象编程(2)-陈正宁-2015123349

淮海工学院计算机工程学院实验报告书课程名:面向对象程序设计A实验题目: JA V A深入面向对象编程(2)班级:软嵌151学号:2015123349姓名:陈正宁一、实验目的(1)通过实验,进一步理解包的作用,并能够运用包对程序中的类进行逻辑组织;(2)通过实验,进一步掌握接口的定义方法,理解通过接口实现多重继承的原理;(3)通过实验,进一步理解Java的异常处理机制,能够自定义异常来表达特殊的逻辑错误,并能够抛出和捕获用户自定义的异常。

二、实验内容(1)首先,分别编写三个Java源程序,每个源程序中只包含一个类的定义,每个类要有至少两个属性,至少一个构造函数,至少两个能够读取或设置属性的方法,一个toString()方法;再定义第四个源程序,其中包含主类(测试类)的定义,主类中包含main()方法,在main()方法体中,创建以上三个类的对象,并调用相关的方法,完成属性的设置和对象信息的输出。

通过该部分实验,可以体会包(无名包或命名包)的作用。

(2)首先,定义两个接口,每个接口中都包含至少一个static final属性和至少一个public abstarct方法;然后定义一个类,该类是非抽象类并且实现了上述两个接口。

(3)首先,定义一个异常类salaryException,它对应的错误描述信息是“所赋的工资值****不合理,请检查后重新赋值!”。

接下来,定义一个员工类Employee,其中包含工号、姓名、性别、所在部门、工资等属性,为该类定义至少一个构造函数,再定义一个修改工资的方法,该方法接收一个参数,当该参数的值小于原先工资值时,抛出salaryException异常对象。

最后,定义一个主类(测试类),其中包含main()方法,在该方法中,创建Employee对象并调用修改工资的方法。

要注意:由于该方法在执行的过程可能抛出异常,所以该语句必须放到try{}子句中,后跟catch(salaryException e) {}子句。

Java2实用教程(第4版)实验指导与习题解答_IT168文库(精)

Java2实用教程(第4版)实验指导与习题解答_IT168文库(精)

上机实践1初识Java实验1一个简单的应用程序1.相关知识点Java语言的出现是源于对独立于平台语言的需要,即这种语言编写的程序不会因为芯片的变化而发生无法运行或出现运行错误的情况。

目前,随着网络的迅速发展,Java语言的优势越发明显,Java已经成为网络时代最重要的语言之一。

Sun公司要实现“编写一次,到处运行”(Write once,run anywhere的目标,就必须提供相应的Java运行平台,目前Java运行平台主要分为下列3个版本。

(1Java SE:称为Java标准版或Java 标准平台。

Java SE 提供了标准的JDK开发平台。

利用该平台可以开发Java桌面应用程序和低端的服务器应用程序,也可以开发Java Applet 程序。

当前成熟的新的JDK版本为JDK 1.6。

(2Java EE:称为Java企业版或Java企业平台。

使用J2EE可以构建企业级的服务应用,Java EE平台包含了Java SE平台,并增加了附加类库,以便支持目录管理、交易管理和企业级消息处理等功能。

(3Java ME:称为Java微型版或Java小型平台。

Java ME是一种很小的Java运行环境,用于嵌入式的消费产品中,如移动电话、掌上电脑或其他无线设备等。

无论上述哪种Java运行平台都包括了相应的Java虚拟机(Java Virtual Machine,虚拟机负责将字节码文件(包括程序使用的类库中的字节码加载到内存,然后采用解释方式来执行字节码文件,即根据相应硬件的机器指令翻译一句执行一句。

J2SE平台是学习掌握Java语言的最佳平台,而掌握J2SE又是进一步学习J2EE和J2ME所必需的。

2.实验目的本实验的目的是让学生掌握开发Java应用程序的三个步骤:编写源文件、编译源文件和运行应用程序。

3.实验要求编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,欢迎学习Java”和“We are students”。

java实验二

java实验二

航班显示系统姓名张韫学号 160341141小组编号第27组__ 小组其他成员的学号160341101 16034127 160341136实验日期 2018年11 月14 日实验报告日期 2018年 11 月 18日成绩 ___________________一. 实验目的1、理解并掌握 Java 中接口的基本概念和具体应用
2、熟悉并熟练掌握 Java 中线程的定义
3、熟悉并掌握多线程间的消息传递、同步和调度等基本操作二. 实验环境EclipseJDK三. 实验实际完成内容及结果分析任务:完成航班系统中对行李提取引导的操作实验完成内容:package zhangyun1;import java.io.*;import java.util.regex.Matcher;import java.util.regex.Pattern;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStreamReader;import java.util.Scanner;import java.util.concurrent.ConcurrentHashMap;import java.util.concurrent.LinkedBlockingDeque;public class FDSdata {LinkedBlockingDeque<String> lines = new LinkedBlockingDeque<String>();LinkedBlockingDeque<String> str = new LinkedBlockingDeque<String>();ConcurrentHashMap<String, String> key = new ConcurrentHashMap<String, String>();public static void main(String[] args) {FDSdata fdSdata = new FDSdata();fdSdata.new ReadThread().start();fdSdata.new ExtractThread().start();fdSdata.new AnalysisThread().start();}class ReadThread extends Thread { //读线程@Overridepublic void run() {String line = null;try (Scanner sc = new Scanner(new FileInputStream("fdsdata20181025(0623-0624).txt"))) {while (sc.hasNextLine()) {line = sc.nextLine();lines.put(line);}lines.put("STOP");} catch (FileNotFoundException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();}}}class ExtractThread extends Thread { //提取线程public void run() {String getline=null;String tmp = null;String result=null;String str2 = "[\\s\\S]*{50}DFME(.*)";while (true) {try {getline=lines.take();if(getline.equals("STOP"))break;//航班号if (getline.matches(str2)) {Pattern p = pile("ffid=(.*?),");Matcher m = p.matcher(getline);if(m.find()) tmp= m.group(1);else tmp="null";result=tmp+" ";}//共享航班号if (getline.matches(str2)) {Pattern p = pile("sfno=(.*?)[,\\]]");Matcher m = p.matcher(getline);if(m.find()) tmp= m.group(1);else {tmp="null";}result+=tmp+" ";}//始发站if (getline.matches(str2)) {Pattern p = pile("arno=1, apcd=(.*?)[,\\]]");Matcher m = p.matcher(getline);if(m.find()) tmp= m.group(1);else {tmp="null"; }result+=tmp+" ";}//经停站if (getline.matches(str2)) {Pattern p = pile("arno=2, apcd=(.*?),");Matcher m = p.matcher(getline);if(m.find()){ //如果有2号航站,也有3号航站,那么2号航站的apcd就是经停站Pattern p1=pile("arno=3, apcd=(.*?),");Matcher m1 = p1.matcher(getline);if(m1.find()) tmp= m.group(1);else {tmp="null"; };//如果有2号航站,没有3号航站,那么就没有经停站}else {tmp="null"; };//如果没有2号航站,那么就没有经停站result+=tmp+" ";}//转盘编号if (getline.matches(str2)) {Pattern p = pile("BELT.*?code=(.*?),");Matcher m = p.matcher(getline);if(m.find()) tmp= m.group(1);else {tmp="null"; }result+=tmp+" ";}str.put(result);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}class AnalysisThread extends Thread {public void run() {String line = null;String fd = null;int n = 0;String[] result1 = null;while (true) {System.out.println("------------------------------------------------------------------------------------------------------");System.out.println("航班ID 共享航班号起始站经停站转盘编号");while (n++ < 10) {try {line = str.take();} catch (InterruptedException e) {e.printStackTrace();}if (line.equals("STOP")) {for (String value : key.values()) {result1= value.split(" ");System.out.println(result1[0] + " " + result1[1] + " " + result1[2] + " " + result1[3]+" " + result1[4]);}return;}fd = line.split(" ")[0];key.put(fd, line);}for (String value : key.values()) {result1 = value.split(" ");System.out.println(result1[0] + " " + result1[1] + " " + result1[2] + " " + result1[3]+" " + result1[4]);}key.clear();n = 0;try {sleep(5000);} catch (InterruptedException e) {e.printStackTrace();}}}}}实验结果:四. 通过本次实验你掌握了哪些知识?(1)首先对java编程有了更深入的了解,不再像刚开始那样不是很理解某些语句(2)因为实验一用的正则表达式,所以实验二也是用正则表达式来做,加深了Pattern和Matcher对象的使用和正则表达式的理解运用。

2实验二数据库基本语句淮海工学院

2实验二数据库基本语句淮海工学院

淮海工学院计算机工程学院实验报告书课程名《 数据库原理与应用A 》题目:实验一基本语句的使用班级:网络***学号: 20131227**姓名: *****评语:成绩:指导教师:批阅时间:年月日1、 实验内容或题目数据库基本语句2、实验目的与要求(1) 掌握Sql server 2005基本语句的使用。

(2)进行实验操作。

3、实验步骤与源程序⑴ 实验步骤掌握Sql server 2005基本语句的使用,主要是数据库的创建和查询。

练习Sql server 2005基本语句的使用完成实验报告⑵ 编写源代码创建一个名称为test的数据库,并设定数据文件的文件位置文件名称、大小、数据增长及其事务日志文件的相关信息。

create database test1on(name=测试数据,filename='C:\sql sever\测试数据.MDF',size=10MB,MAXSIZE= 50MB,filegrowth= 5MB)log on(name=测试数据日志,filename='C:\sql sever\测试数据日志.LDF',size=10MB,MAXSIZE= 20MB,filegrowth= 5MB )在test1数据库中建立一个BOOK表,并指定bid为主键,而bname为非空use test1create table book(bid int not null primary key,bname char(8)not null,authorid char(10))首先创建一个authors表,然后创建book表,并将authorid列关联到authors的authorid列use test1create table authors(authorid int not null primary key,authorname char(20),address char(30))create table book(bid int not null primary key,bname char(8)not null,authorid int foreign key referencesanthors(authorid))向student表中插入一个学生记录use schoolinsert into student values('200','曾雷','女','1992-2-3','0035')将student表中上例插入学生记录性别修改为“男”USE schoolupdate studentset性别='男'WHERE学号='200'删除学号为‘200’的学生记录USE schoolDELETE student WHERE学号= ‘200’查询教师所有的单位即不重复的单位列use schoolselect distinct单位from teacher以课程号升序、分数降序显示score表的所有记录,然后按班号递减排序后输出use schoolselect*from scoreorder by课程号,分数desc查询‘1031’班的学生人数use schoolselect count(*)as'1031班人数'from studentwhere班号='1031'查询score表中至少有5名学生选修的并以3开头的课程号的平均分数use schoolselect课程号,avg(分数)as'平均分'from scorewhere课程号like'3%'group by课程号having count(*)>5查询所有学生的姓名、课程号和分数列use schoolselect student.姓名,score.课程号,score.分数from student,scorewhere student.学号= score.学号使用命令在school数据库中建立了一个grade表use schoolcreate table grade(low int,upp int,rank char(1)) insert into grade values(90,100,'A')insert into grade values(80,89,'B')insert into grade values(70,79,'C')insert into grade values(60,69,'D')insert into grade values(0,59,'E')查询与学号为103的学生同年出生的所有学生的学号和出生日期列use schoolselect学号,姓名,出生日期from studentwhere year(出生日期)=(select year(出生日期)from studentwhere学号='103')查询分数高于平均分的所有学生成绩记录use schoolselect学号,课程号,分数from scorewhere分数>(select avg(分数)from score )查询所有‘女’教师和‘女’学生的姓名、性别和出生日期use schoolselect姓名,性别,出生日期from teacher where性别='女'unionselect姓名,性别,出生日期from student where性别='女'查询所有学生成绩记录,并将空值作为0处理use schoolselect学号,课程号,isnull(分数,0)as'分数'from score在为小数数值型数据赋值时,应保证所赋数据整数部分的位小于或者等于定义的长度否则会出现溢出错误。

java2实用教程实验代码及答案

java2实用教程实验代码及答案

上机实践1 初识JA V A (3)实验1一个简单的应用程序 (3)实验2一个简单的J A V A A PPLET程序 (3)实验3联合编译 (4)上机实践2 基本数据类型与控制语句 (5)实验1输出希腊字母表 (5)实验2回文数 (6)实验3猜数字游戏 (8)上机实践3 类与对象 (9)实验1三角形、梯形和圆形的类封装 (9)实验2实例成员与类成员 (12)实验3使用PACKAGE语句与IMPORT语句 (14)上机实践4 继承与接口 (16)实验1继承 (16)实验2上转型对象 (19)实验3接口回调 (21)上机实践5 字符串、时间与数字 (23)实验1S TRING类的常用方法 (23)实验2比较日期的大小 (24)实验3处理大整数 (25)上机实践6 组件及事件处理 (26)实验1算术测试 (26)实验2信号灯 (29)实验3布局与日历 (31)上机实践7 组件及事件处理2 (35)实验1方程求根 (35)实验2字体对话框 (38)实验3英语单词拼写训练 (41)上机实践8 多线程 (45)实验1汉字打字练习 (45)实验2旋转的行星 (47)实验3双线程接力 (51)上机实践9 输入输出流 (54)实验1学读汉字 (54)实验2统计英文单词字 (57)实验2读取Z IP文件 (61)上机实践10 JAV A 中的网络编程 (62)实验1读取服务器端文件 (62)实验2使用套接字读取服务器端对象 (64)实验3基于UDP的图像传输 (67)上机实践11 数据结构 (71)实验1扫雷小游戏 (71)实验2排序与查找 (76)实验3使用T REE S ET排序 (77)上机实践12 JAV A SWING (79)实验1JL AYERED P ANE分层窗格 (79)实验2使用表格显示日历 (80)实验3多文档界面(MDI) (83)上机实践1 初识Java实验1 一个简单的应用程序1.答案:【代码1】:System.out.println("你好,很高兴学习Java") ;【代码2】:System.out.println("We are students") ;2.模板代码Hello.javapublic class Hello{public static void main (String args[ ]){【代码1】//命令行窗口输出"你好,很高兴学习Java"A a=new A();a.fA();}}class A{void fA(){【代码2】//命令行窗口输出"We are students"}}实验2 一个简单的Java Applet程序1.答案:【代码1】:g.drawString("这是一个Java Applet 程序",10,30);【代码2】:g.drawString("我改变了字体",20,50);2.模板代码FirstApplet.javaimport java.applet.*;import java.awt.*;public class FirstApplet extends Applet{public void paint(Graphics g){g.setColor(Color.blue);【代码1】//在Java Applet中绘制一行文字:“这是一个Java Applet 程序”g.setColor(Color.red);g.setFont(new Font("宋体",Font.BOLD,36));【代码2】//在Java Applet中绘制一行文字:“我改变了字体”}}实验3 联合编译1.答案:【代码1】:System.out.println("你好,只需编译我");【代码2】:System.out.println("I am A");【代码3】:System.out.println("I am B");【代码4】:System.out.println("I am C");2.模板代码模板1:Hello.javapublic class MainClass{public static void main (String args[ ]){【代码1】 //命令行窗口输出"你好,只需编译我"A a=new A();a.fA();B b=new B();b.fB();}}模板2 :A.javapublic class A{void fA(){【代码2】 //命令行窗口输出"I am A"}}模板3 :B.javapublic class B{void fB(){【代码3】 //命令行窗口输出"I am B"}}模板4 :C.javapublic class C{void fC(){【代码4】 //命令行窗口输出"I am C"}}上机实践2 基本数据类型与控制语句实验1 输出希腊字母表1.答案:【代码1】:startPosition=(int)cStart;【代码2】:endPosition=(int)cEnd ;【代码3】:c=(char)i;2.模板代码GreekAlphabet.javapublic class GreekAlphabet{public static void main (String args[ ]){int startPosition=0,endPosition=0;char cStart='α',cEnd='ω';【代码1】//cStart做int型转换据运算,并将结果赋值给startPosition【代码2】//cEnd做int型转换运算,并将结果赋值给endPositionSystem.out.println("希腊字母\'α\'在unicode表中的顺序位置:"+(int)c);System.out.println("希腊字母表:");for(int i=startPosition;i<=endPosition;i++){char c='\0';【代码3】//i做char型转换运算,并将结果赋值给cSystem.out.print(" "+c);if((i-startPosition+1)%10==0)System.out.println("");}}}实验2 回文数1.答案:【代码1】:number<=99999&&number>=1【代码2】:d5=number/10000;【代码3】:d4=number%10000/1000;【代码4】:d3=number%1000/100;【代码5】:d5!=0【代码6】:d1==d5&&d2==d4【代码7】:d4!=0【代码8】:d1==d4&&d2==d3【代码9】:d3!=0【代码10】:d1==d32.模板代码Number.javaimport javax.swing.JOptionPane;public class Number{public static void main(String args[]){int number=0,d5,d4,d3,d2,d1;String str=JOptionPane.showInputDialog("输入一个1至99999之间的数");number=Integer.parseInt(str);if(【代码1】) //判断number在1至99999之间的条件{【代码2】//计算number的最高位(万位)d5【代码3】//计算number的千位d4【代码4】//计算number的百位d3d2=number%100/10;d1=number%10;if(【代码5】) //判断number是5位数的条件{System.out.println(number+"是5位数");if(【代码6】) //判断number是回文数的条件{System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(【代码7】) //判断number是4位数的条件{System.out.println(number+"是4位数");if(【代码8】) //判断number是回文数的条件码{System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(【代码9】) //判断number是3位数的条件{System.out.println(number+"是3位数");if(【代码10】) //判断number是回文数的条件{System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(d2!=0){System.out.println(number+"是2位数");if(d1==d2){System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(d1!=0){System.out.println(number+"是1位数");System.out.println(number+"是回文数");}}else{System.out.printf("\n%d不在1至99999之间",number);}}}实验3 猜数字游戏1.答案:【代码1】:yourGuess!=realNumber【代码2】:yourGuess>realNumber【代码3】:yourGuess<realNumber2.模板代码GuessNumber.javaimport javax.swing.JOptionPane;public class GuessNumber{public static void main (String args[ ]){System.out.println("给你一个1至100之间的整数,请猜测这个数");int realNumber=(int)(Math.random()*100)+1;int yourGuess=0;String str=JOptionPane.showInputDialog("输入您的猜测:");yourGuess=Integer.parseInt(str);while(【代码1】) //循环条件{if(【代码2】) //条件代码{str=JOptionPane.showInputDialog("猜大了,再输入你的猜测:");yourGuess=Integer.parseInt(str);}else if(【代码3】) //条件代码{str=JOptionPane.showInputDialog("猜小了,再输入你的猜测:");yourGuess=Integer.parseInt(str);}}System.out.println("猜对了!");}}上机实践3 类与对象实验1 三角形、梯形和圆形的类封装1.答案:【代码1】:sideA=a;sideB=b;sideC=c;【代码2】:a+b>c&&a+c>b&&c+b>a【代码3】:boo=true;【代码4】:boo=false;【代码5】:if(boo){length=sideA+sideB+sideC;return length;}else{System.out.println("不是一个三角形,不能计算周长");return 0;}【代码6】:sideA=a;sideB=b;sideC=c;【代码7】:a+b>c&&a+c>b&&c+b>a【代码8】:boo=true;【代码9】:boo=false;【代码10】:above=a;bottom=b;height=h;【代码11】:area=(above+bottom)/2*height;return area;【代码12】:radius=r;【代码13】:return 3.14*radius*radius;【代码14】:return 3.14*2*radius;【代码15】:circle=new Circle(10);【代码16】:trangle=new Trangle(3,4,5);【代码17】:lader=new Lader(3,4,10);【代码18】:length=circle.getLength();【代码19】:area=circle.getArea();【代码20】:length=trangle.getLength();【代码21】:area=trangle.getArea();【代码22】:area=lader.getArea();【代码23】:trangle.setABC(12,34,1);【代码24】:area=trangle.getArea();【代码25】:length=trangle.getLength();2.模板代码AreaAndLength.javaclass Trangle{double sideA,sideB,sideC,area,length;boolean boo;public Trangle(double a,double b,double c){【代码1】//参数a,b,c分别赋值给sideA,sideB,sideCif(【代码2】) //a,b,c构成三角形的条件表达式{【代码3】//给boo赋值。

java实验二附答案

java实验二附答案

Java实验二实验二类与对象实验目的1、掌握面向对象程序设计的方法和Java作为面向对象程序设计语言的特点;2、掌握修饰符和构造方法的使用规则;3、掌握接口的特点、结构、调用和继承;4、掌握如何创建包,通过包如何管理类;5、掌握Java的继承机制和实现多态的方法实验内容(1)定义一个类Student,属性为学号、姓名和成绩;方法为增加记录SetRecord和得到记录GetRecord。

SetRecord赋值学号、姓名和成绩,GetRecord通过学号得到考生的成绩。

通过实例验证编程无误。

(2)定义一个接口Area,其中包含一个计算面积的抽象方法calculateArea(),然后设计Circle和Rectan两个类实现这个接口的方法calculateArea(),分别计算圆和矩形的面积。

通过实例验证编程无误。

(3)假定根据学生的3门学位课程的分数决定其是否可以拿到学位,对于本科生,如果3门课程的平均分数超过60分即表示通过,而对于研究生,则需要平均分超过80分才能够通过。

根据上述要求,请完成以下Java类的设计:(i)设计一个基类Student描述学生的共同特征。

(ii)设计一个描述本科生的类Undergraduate,该类继承并扩展Student类。

(iii)设计一个描述研究生的类Graduate,该类继承并扩展Student类。

(iv)设计一个测试类StudentDemo,分别创建本科生和研究生这两个类的对象,并输出相关信息附实验一名称是Java语言基础实验报告分为以下几个部分一实验名称二实验目的三实验仪器四实验步骤(把你的操作一步一步写清楚,java 程序代码要写)五实验结果(程序运行后的结果就是DOS环境下运行出来的结果写在实验报告上)六实验讨论(实验过程中的错误及如何改正,你的心得体会等)答案:(1)定义一个类Student,属性为学号、姓名和成绩;方法为增加记录SetRecord和得到记录GetRecord。

淮海工学院数据结构第二次实验

淮海工学院数据结构第二次实验

淮海工学院计算机科学系实验报告书课程名:《数据结构》题目:线性数据结构实验(栈与队列及其应用)班级:软嵌151学号:2015123352姓名:韩吉线性表算法实现与应用报告要求1目的与要求:1)掌握栈与队列的数据类型描述及特点;2)掌握栈的顺序和链式存储存表示与基本算法的实现;3)掌握队列的链式和循环存储表示与基本操作算法实现;4) 掌握栈与队列在实际问题中的应用和基本编程技巧;5)按照实验题目要求,独立完成实际程序的编写编写、调试和运行,并通过用例的运行过程抓获相关屏面验证程序设计的正确性;7)希望大家过一个丰富多彩的国庆节,抽出一定时间圆满完成实验,并于第6周周二以前按时提交实验报告,逾期按照旷交处理。

2 实验内容或题目(一)必做题:1、实现顺序栈的创建(初始化)、压入(插入)操作(数据、弹出(删除)元素类型自己选取,如整型、字符型等,或参照书上算法选取数据类型),并给出栈的每次操作变化状态;2、实现链栈的创建(初始化)、压入(插入)、弹出(删除)操作(数据元素类型自己选取,如整型、字符型等,或参照书上算法选取数据类型),要求给出栈的操作变化过程;3、实现循环队列的创建、进队、出队等基本操作(数据元素类型自己选取,如整型、字符型等,或参照书上算法选取数据类型),并实时给出队列的操作变化状态;4、实现链式队列的创建、进队、出队等基本操作(数据元素类型自己选取,如整型、字符型等,或参照书上算法选取数据类型),并实时给出队列的操作变化状态;(注意:必做题需用一个主程序实现所有功能)(二)选做题(视自己能力而定,数量不限):任选下列一个或多个栈或队列应用源程序(已经发给学委),并阅读、调试和运行程序,而后给出程序功能分析和实例运行演示;1、实现表达式求值算法程序;2、用递归算法实现汉诺塔问题算法程序;3、使用循环队列实现打印杨辉三角形算法程序。

3 实验步骤与源程序#include<stdio.h>#include<stdlib.h>#include <windows.h>#define TRUE 1#define FALSE 0#define Stack_Size 50#define MAXSIZE 5void mainmenu();/*********************************************//*顺序栈*/typedef struct{int elem[Stack_Size];int top;}SeqStack;/*链栈*/typedef struct node{int data;struct node *next;}LinkStackNode;/*循环队列*/typedef struct{int element[MAXSIZE];int front;int rear;}SeqQueue;/*链式队列*/typedef struct Node{int data;struct Node *next;}LinkQueueNode;typedef struct{LinkQueueNode *front;LinkQueueNode *rear;}LinkQueue;/*********************************************//********************顺序栈************************/ /*构造一个空栈S*/void InitStack(SeqStack *S){S->top = -1;}/*进栈*/int Push(SeqStack *S,int x){if(S->top==(Stack_Size-1))return(FALSE); /*栈已满*/S->top++;S->elem[S->top]=x;return(TRUE);}/*出栈*/int Pop(SeqStack *S,int *x){/* 将栈S的栈顶元素弹出,放到x所指的存储空间中 */if(S->top==-1) /*栈为空*/return(FALSE);else{*x=S->elem[S->top];S->top--; /* 修改栈顶指针 */return(TRUE);}}/*取栈顶元素*/int GetTop(SeqStack *S, int *x){/* 将栈S的栈顶元素弹出,放到x所指的存储空间中,但栈顶指针保持不变 */ if(S->top==-1) /*栈为空*/return(FALSE);else{*x = S->elem[S->top];return(TRUE);}}/**************************************************//********************链栈**************************//*初始化*/void InitStack1(LinkStackNode *top){ //构造一个空栈top = (LinkStackNode *)malloc(sizeof(LinkStackNode));if(!top)printf("OVERFLOW\n");top = NULL;}/*进栈操作。

java实验报告实验2答案

java实验报告实验2答案

实验二熟悉Applet,GUI编程实验目的:本实验旨在巩固同学们对上课所讲Applet,异常处理,java的控制加深理解,图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,对java的语法和编程有一个更加深入的理解,为同学们以后的能够用Java进行独立地编写桌面程序打下一定的基础。

了解如何使用布局管理器对组件进行管理,以及如何使用Java的事件处理机制。

实验内容:创建一个java项目,命名为experiment2。

(如何创建项目参考《实验一》的项目创建方法。

)(一)创建图形用户界面图形用户界面(Graphic User Interface ,简称GUI)是为方便用户使用设计的窗口界面,在图形用户界面中用户可以看到什么就操作什么,取代了在字符方式下知道是什么后才能操作什么的方式。

组件(Component)是构成GUI的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。

组件一般作为一个对象放置在容器(Container)内,容器是能容纳和排列组件的对象,如Applet、Panel(面板)、Frame(窗口)等。

通过容器的add方法把组件加入到容器中。

1.在Applet中添加标签、按钮并使用网格布局(1)程序功能在Applet 容器中添加组件标签、按钮,并使用网格布局管理器排列组件在容器中的位置。

(2)编写LX6_1.java 程序文件,源代码如下:import java.awt.*;import java.applet.Applet;public class LX6_1 extends Applet{Label l1;Button b1, b2, b3, b4, b5, b6;public void init(){setLayout(new GridLayout(3,3)); // 设置网格布局(3 行3 列共9 个网格)l1=new Label("标签1");b1 = new Button("按钮1");b2 = new Button("按钮2");b3 = new Button("按钮3");b4 = new Button("按钮4");add(l1);add(b1);add(b2);add(b3);add(new Label());add(b4);add(new Button("按钮5"));add( new Button("按钮6"));add(new Label("标签2"));}}(3)编译程序LX6_1.java。

电影票务信息管理系统

电影票务信息管理系统

淮海工学院计算机工程学院实验报告书课程名:《面向对象程序设计》实验名称: Java面向对象编程初步(电影票务信息管理系统)班级:软件081班组长: XX组员: XX一.实验目的1. 掌握Java面向对象深入编程的知识,学会运用属性的继承和隐藏、方法的继承、重载与覆盖、构造函数的继承与重载等来实现Java的继承与多态的思想,理解Java的接口与异常处理机制。

2. 熟练掌握工具类的使用二.实验题目以与大学生学习、生活、娱乐相关的信息服务为例,各团队自选题目,用面向对象的方法进行需求分析,划分功能模块,每位成员负责其中某些模块的设计与实现。

三.要求1. 在作业二的基础上,练习属性的继承和隐藏、方法的继承、重载与覆盖、构造函数的继承与重载,以及接口与异常处理的定义和使用。

2. 运用Java语言常用类库(Object类、Math 类、数据类型类、System类、String类及StringBuffer 类),重点是向量类和字符串,对作业二的源程序进行改进,尽量学会用各种方法来优化作业二的实现过程。

3. 在源程序和实验报告中对本次作业优化过的部分要进行重点说明;4. 提交时间:4月30日四、实验步骤与源程序1. 选题与团队分工◆选题:电影票务信息管理系统◆分工:2. 系统需求分析◆系统功能描述电影票务信息管理信息主要有三个用户,一个是系统管理员,负责系统中所有功能;第二个是票务管理员,主要进行电影票的增加,修改以及删除等功能;第三个是普通用户,只可以进行订票,退票以及电影票查询等功能的操作。

系统用例图3. 系统类图设计杨娟李晓天陈点点4. 源程序作者:李晓天主界面:package lxt;import cdd.*;import yj.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class MainWindow extends JFrame implements ActionListener{JPanel panel1;//定义面板Container c;//定义容器JMenuBar MenuB;//定义表单JMenu SystemMenu,TicketMGRMenu,TicketSellMenu,ReturnTicketMenu,InfoBrowseMenu,UserMGRMenu;JMenuItemUserLoginMenuItem,UserAddMenuItem,UserModifyMenuItem,UserDeleteMenuItem,ExitMenuItem, TicketAddMenuItem,TicketModifyMenuItem,TicketDeleteMenuItem,TicketSellMenuItem,ReturnTicketMenuItem,TicketListMenuItem,UserListMenuItem;JLabel titleLabel;//定义标签public MainWindow(){super("电影票务信息管理系统");//初始化菜单//--系统管理菜单--MenuB=new JMenuBar();SystemMenu=new JMenu("系统管理");UserMGRMenu=new JMenu("用户管理");UserLoginMenuItem=new JMenuItem("用户登录");UserAddMenuItem=new JMenuItem("添加用户");UserModifyMenuItem=new JMenuItem("修改用户");UserDeleteMenuItem=new JMenuItem("删除用户");ExitMenuItem=new JMenuItem("退出");SystemMenu.add(UserLoginMenuItem);//添加菜单UserMGRMenu.add(UserAddMenuItem);UserMGRMenu.add(UserModifyMenuItem);UserMGRMenu.add(UserDeleteMenuItem);SystemMenu.add(UserMGRMenu);SystemMenu.add(ExitMenuItem);UserLoginMenuItem.addActionListener(this);//注册监听UserAddMenuItem.addActionListener(this);UserModifyMenuItem.addActionListener(this);UserDeleteMenuItem.addActionListener(this);ExitMenuItem.addActionListener(this);MenuB.add(SystemMenu);//---电影票管理菜单--TicketMGRMenu=new JMenu("电影票管理");//初始化菜单TicketAddMenuItem=new JMenuItem("添加电影票");TicketModifyMenuItem=new JMenuItem("修改电影票");TicketDeleteMenuItem=new JMenuItem("删除电影票");TicketMGRMenu.add(TicketAddMenuItem);//添加菜单TicketMGRMenu.add(TicketModifyMenuItem);TicketMGRMenu.add(TicketDeleteMenuItem);TicketAddMenuItem.addActionListener(this);//注册监听TicketModifyMenuItem.addActionListener(this);TicketDeleteMenuItem.addActionListener(this);MenuB.add(TicketMGRMenu);//--出售管理菜单--TicketSellMenu=new JMenu("出售管理");TicketSellMenuItem=new JMenuItem("电影票出售");TicketSellMenu.add(TicketSellMenuItem);TicketSellMenuItem.addActionListener(this);MenuB.add(TicketSellMenu);//--退票管理菜单--ReturnTicketMenu=new JMenu("退票管理");ReturnTicketMenuItem=new JMenuItem("电影票退还"); //添加表单ReturnTicketMenu.add(ReturnTicketMenuItem);ReturnTicketMenuItem.addActionListener(this);MenuB.add(ReturnTicketMenu);//--信息一览菜单--InfoBrowseMenu=new JMenu("信息一览");TicketListMenuItem=new JMenuItem("电影票列表");UserListMenuItem=new JMenuItem("用户列表");//添加表单InfoBrowseMenu.add(TicketListMenuItem);InfoBrowseMenu.add(UserListMenuItem);//注册,监听TicketListMenuItem.addActionListener(this);UserListMenuItem.addActionListener(this);MenuB.add(InfoBrowseMenu);setJMenuBar(MenuB);// 将菜单条添加到窗口的顶端titleLabel=new JLabel(new ImageIcon(".\\pic.jpg"));c=getContentPane();c.setLayout(new BorderLayout());panel1=new JPanel();panel1.setLayout(new BorderLayout());panel1.add(titleLabel,BorderLayout.CENTER);c.add(panel1,BorderLayout.CENTER);setBounds(100,50,400,300);show();//--设置初始功能:--UserMGRMenu.setEnabled(false);TicketMGRMenu.setEnabled(false);TicketSellMenu.setEnabled(false);ReturnTicketMenu.setEnabled(false);InfoBrowseMenu.setEnabled(false);}//--设置每个菜单点击后出现的窗口和窗口显示的位置--public void actionPerformed(ActionEvent e){if(e.getActionCommand()=="用户登录"){ //初始化用户登录窗口UserLogin UserLoginFrame=new UserLogin(this);UserLoginFrame.setLocation(170,150); //弹出框位置UserLoginFrame.pack(); //显示登录窗口UserLoginFrame.show();}else if(e.getActionCommand()=="添加用户"){ //初始化添加用户窗口UserAdd UserAddFrame=new UserAdd();UserAddFrame.setLocation(160,140);//弹出框位置UserAddFrame.pack();UserAddFrame.show(); //显示窗口}else if(e.getActionCommand()=="修改用户"){ //初始化修改用户窗口UserModify UserModifyFrame=new UserModify();UserModifyFrame.setLocation(160,140);//弹出框位置UserModifyFrame.pack();UserModifyFrame.show(); //显示窗口}else if(e.getActionCommand()=="删除用户"){ //初始化删除用户窗口UserDelete UserDeleteFrame=new UserDelete();UserDeleteFrame.setLocation(150,150);//弹出框位置UserDeleteFrame.pack();UserDeleteFrame.show(); //显示窗口}else if(e.getActionCommand()=="添加电影票"){ //初始化添加窗口TicketAdd TicketAddFrame=new TicketAdd();TicketAddFrame.setLocation(130,110);//弹出框位置TicketAddFrame.pack();TicketAddFrame.show(); //显示窗口}else if(e.getActionCommand()=="修改电影票"){ //初始化修改窗口TicketModify TicketModifyFrame=new TicketModify();TicketModifyFrame.setLocation(130,110);//弹出框位置TicketModifyFrame.pack();TicketModifyFrame.show(); //显示窗口}else if(e.getActionCommand()=="删除电影票"){ //初始化删除窗口TicketDelete TicketDeleteFrame=new TicketDelete();TicketDeleteFrame.setLocation(150,150);//弹出框位置TicketDeleteFrame.pack();TicketDeleteFrame.show(); //显示窗口}else if(e.getActionCommand()=="电影票出售"){ //初始化出售窗口TicketSell TicketSellFrame=new TicketSell();TicketSellFrame.setLocation(160,140); //弹出框位置TicketSellFrame.pack();TicketSellFrame.show(); //显示窗口}else if(e.getActionCommand()=="电影票退还"){ //初始化退还窗口ReturnTicket ReturnTicketFrame=new ReturnTicket();ReturnTicketFrame.setLocation(160,140); //弹出框位置ReturnTicketFrame.pack();ReturnTicketFrame.show(); //显示位置}else if(e.getActionCommand()=="电影票列表"){ //初始化列表TicketList TicketListFrame=new TicketList();TicketListFrame.setLocation(110,130); //弹出框位置TicketListFrame.pack();TicketListFrame.show(); //显示窗口}else if(e.getActionCommand()=="用户列表"){ //初始化用户列表UserList UserListFrame=new UserList();UserListFrame.setLocation(120,140); //弹出框位置UserListFrame.pack();UserListFrame.show(); //显示窗口}else if(e.getActionCommand()=="退出"){this.dispose();System.exit(0);}}//--设置登录用户的权限--public void setEnable(String powerType){if(powerType.equals("系统管理员")){UserMGRMenu.setEnabled(true);//系统管理员拥有所有权限TicketMGRMenu.setEnabled(true);TicketSellMenu.setEnabled(true);ReturnTicketMenu.setEnabled(true);InfoBrowseMenu.setEnabled(true);UserListMenuItem.setEnabled(true);}else if(powerType.equals("电影票管理员")){UserMGRMenu.setEnabled(false);//电影票管理员只有票务管理权限TicketMGRMenu.setEnabled(true);TicketSellMenu.setEnabled(false);ReturnTicketMenu.setEnabled(false);InfoBrowseMenu.setEnabled(true);UserListMenuItem.setEnabled(false);}else if(powerType.equals("普通用户")){UserMGRMenu.setEnabled(false);//设置权限TicketMGRMenu.setEnabled(false);TicketSellMenu.setEnabled(true);ReturnTicketMenu.setEnabled(true);InfoBrowseMenu.setEnabled(true);UserListMenuItem.setEnabled(false);}else if(powerType.equals("else")){UserMGRMenu.setEnabled(false);//设置对应界面TicketMGRMenu.setEnabled(false);TicketSellMenu.setEnabled(false);ReturnTicketMenu.setEnabled(false);InfoBrowseMenu.setEnabled(false);}}public static void main(String args[]){MainWindow mainFrame=new MainWindow();}}数据库模块:package lxt;import java.sql.*;public class DataBaseManager{Connection con;//声明对象ResultSet rs;//声明ResultSet对象Statement stmt;//声明Statement对象public DataBaseManager(){//捕获建立桥接器时的异常try{Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );//建立一个JDBC-ODBC桥接器con=DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=Cinema.mdb");//创建连接对象stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABL E);//得到可滚动的结果集}catch ( ClassNotFoundException cnfex ){System.err.println("Failed to load JDBC/ODBC driver." );//标准错误cnfex.printStackTrace(); //捕获加载驱动程序异常System.exit( 1 ); // terminate program}catch(SQLException sqle){System.out.println(sqle.toString());}}public ResultSet getResult(String strSQL){try //捕获返回结果时的异常{rs=stmt.executeQuery(strSQL);//返回相应类型结果集return rs;}catch(SQLException sqle){System.out.println(sqle.toString());return null;}}public boolean updateSql(String strSQL){try //捕获添加新纪录时的异常{stmt.executeUpdate(strSQL);//向数据库表中添加新纪录mit();return true;}catch(SQLException sqle){System.out.println(sqle.toString());return false;}}public void closeConnection(){try //捕获连接时的异常{con.close();}catch(SQLException sqle){System.out.println(sqle.toString());}}}退票模块:package lxt;//定义所属包名import lxt.*;//引用包import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;public class ReturnTicket extends JFrame implements ActionListener{DataBaseManager db=new DataBaseManager();//调用DataBaseManager()类ResultSet rs;//声明对象JPanel panel1,panel2;//定义面板Container c;//定义容器布局管理器JLabel ReturnedTicketPersonLabel,ReturnedTicketNameLabel;//定义标签JTextField ReturnedTicketPersonTextField;//定义文本框JButton ClearBtn,YesBtn,CancelBtn;//定义按钮JComboBox FilmNameComboBox=new JComboBox();//定义组合框public ReturnTicket(){super("电影票退还");c=getContentPane();//获得面板内容c.setLayout(new BorderLayout());//边界布局ReturnedTicketPersonLabel=new JLabel("退票者姓名",JLabel.CENTER);//初始化标签ReturnedTicketNameLabel=new JLabel("电影片名",JLabel.CENTER);ReturnedTicketPersonTextField=new JTextField(20);//初始化文本框//捕获异常try{String strSQL="select filmName from tickets where tickets_count>=borrowed_count";rs=db.getResult(strSQL);//获得数据库记录while(rs.next()){FilmNameComboBox.addItem(rs.getString(1));//获得数据库记录}}catch(SQLException sqle){System.out.println(sqle.toString());}catch(Exception ex){System.out.println(ex.toString());}panel1=new JPanel();//初始化面板panel1.setLayout(new GridLayout(5,2));//定义网格布局panel1.add(ReturnedTicketPersonLabel);//添加按钮panel1.add(ReturnedTicketPersonTextField);panel1.add(ReturnedTicketNameLabel);panel1.add(FilmNameComboBox);c.add(panel1,BorderLayout.CENTER);//添加面板,定义边界布局panel2=new JPanel();panel2.setLayout(new GridLayout(1,3));//定义网格布局ClearBtn=new JButton("清空");//初始化按钮YesBtn=new JButton("确定");CancelBtn=new JButton("取消");ClearBtn.addActionListener(this);//注册监听YesBtn.addActionListener(this);CancelBtn.addActionListener(this);panel2.add(ClearBtn);//添加按钮panel2.add(YesBtn);panel2.add(CancelBtn);c.add(panel2,BorderLayout.SOUTH);//添加面板}public void actionPerformed(ActionEvent e){if(e.getSource()==CancelBtn)//取消{this.dispose();}else if(e.getSource()==ClearBtn){ReturnedTicketPersonTextField.setText("");//退票}else if(e.getSource()==YesBtn){String strSQL1; //确认该用户是否已经退票strSQL1="select * from ticketBrowse where name='"+ ReturnedTicketPersonTextField.getText()+"'and filmname='"+FilmNameComboBox.getSelectedItem()+"'and is_returned='否'";rs=db.getResult(strSQL1);boolean isExist=false;try{isExist=rs.first();}catch(SQLException sqle) //如果数据库出错{System.out.println(sqle.toString());}if(!isExist)//确定是否订票{JOptionPane.showMessageDialog(null,"用户名未订此票!","出错提示",0);}else if(ReturnedTicketPersonTextField.getText().trim().equals("")) {JOptionPane.showMessageDialog(null,"请输入退票者的姓名。

实验2

实验2
importjava.io.*;
importjava.math.*;
publicclasstemp {
publicstaticvoidmain(String[]args) {
//TODOAuto-generated method stub
Stringresult="";
intscore=0;
Scannersc=newScanner(System.in);
x=sc.nextLine();
intlen=x.length();
longs=Long.valueOf(x);
longresult2=s,result=s;
intodd=0;inteven=0;intzero=0;
for(inti=0;i<len;i++)
{
result=result2;
result=(result2% 10);
注:素数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的数。
(2)在PrimeTest类中,增加main方法,找出10-100范围内所有的素数,要求按下列指定的格式打印。
((3)请写出程序代码:
packagetemp;
importjava.util.*;
importjava.io.*;
importjava.math.*;
实验报告
课程名称:JAVA程序设计
实验名称:实验二
实验地点:N6-103
实验日期:2018/9/21
常熟理工学院
实验目的
1. 掌握Java基本数据类型和表达式的特点和用法。
2. 熟练掌握单分支、双分支、多分支选择语句的格式与功能,能正确选取选择语句来设计选择结构的程序。

java实验2实验报告

java实验2实验报告

引言概述:实验目的:本次实验的主要目的是通过设计和实现一个简单的Java程序,加深对Java编程语言的理解,培养对面向对象编程思想的应用能力。

实验要求学生熟悉Java语法和类的基本概念,并能够正确运用这些知识编写出符合要求的程序。

实验过程:1.确定实验题目和要求:根据实验要求,确定需要实现的功能和要求,并理解题目中的各个概念和要求。

2.设计程序结构:根据题目要求和功能需求,设计程序的类结构、方法和变量。

要求合理设计类和对象的关系,充分运用封装、继承和多态等面向对象编程的特性。

3.编码实现:根据设计好的程序结构,使用Java语言进行编码实现。

编写各个类和方法的代码,确保代码的规范和可读性。

4.调试和测试:编写完代码后,进行充分的调试和测试工作。

确保程序能够正确运行并符合预期的功能需求。

5.优化和改进:对程序进行优化和改进,提高程序的性能和可维护性。

可以通过重构代码、增加异常处理等方式进行优化。

6.提交实验报告:实验完成后,撰写实验报告,对实验过程和结果进行总结和分析。

实验结果:实验结果表明,本次实验成功实现了所要求的功能。

通过对Java程序的设计和实现,我加深了对Java编程语言的理解,并掌握了Java程序的基本概念和语法。

同时,通过实验过程中的调试和测试工作,我对程序的错误处理和调试技巧也有了一定的了解和掌握。

实验分析:通过本次实验,我认识到了面向对象编程的重要性和优势。

在程序设计过程中,合理设计类和对象的关系,充分利用面向对象编程的特性,可以提高程序的可读性、可维护性和扩展性。

同时,对于Java编程语言的学习和理解也是很有必要的,它是一种广泛应用于软件开发的编程语言。

总结:本次实验是一次很好的学习和实践机会,通过对Java程序的设计和实现,我加深了对Java编程语言的理解,并掌握了Java程序的基本概念和语法。

在实验过程中,我收获了很多,对面向对象编程有了更深刻的理解,也对程序的调试和测试有了更多的经验。

Java程序设计教程与实训(第2版):实训参考答案

Java程序设计教程与实训(第2版):实训参考答案

实训参考答案【实训内容】见第十章。

【参考答案】10.1 //////////////////////////////////////////////////////////public class Exer10_1{public static void main(String [] args){//System.out.print("Hello "); //第一次运行//System.out.print("Hello \n"); //第二次运行System.out.print("Hello\n李明"); //第二次运行也可以这样写//System.out.print("李明");}}10.2 //////////////////////////////////////////////////////////public class Exer10_2 {public static void main (String args[ ]) {char chinaWord='你', japanWord='ぁ';int p1=20328,p2=12358;System.out.println("汉字\'你\'字在unicode表中的顺序位置:"+(int)chinaWord);System.out.println("日语\'ぁ\'字在unicode表中的顺序位置:"+(int)japanWord);System.out.println("unicode表中第20328位置上的字符是:"+(char)p1);System.out.println("unicode表中第12358位置上的字符是:"+(char)p2);}}10.3(1) //////////////////////////////////////////////////////////public class Exer10_3_1{public static void main(String[] args){int val1=5;int val2=6;int result=0;char op='-';switch(op){case '+' :result=val1+val2;break;case '-' :result=val1-val2;break;case '*' :result=val1*val2;break;case '/' :result=val1/val2;break;case '%' :result=val1%val2;default :System.out.println("没有找到匹配的操作符");}System.out.println("计算结果为:"+val1+op+val2+"="+result);}}(2) //////////////////////////////////////////////////////////class Exer10_3_2{public static void main(String args[]) {int sum=0,i,j;for( i=1;i<=50;i++){ //计算1+3+5+7+9…if(i%2==0){continue;}sum=sum+i;}System.out.println("sum="+sum);for( j=2;j<=50;j++){ //求50以内的素数for( i=2;i<=j/2;i++){if(j%i==0){break;}}if(i>j/2){System.out.println(""+j+"是素数");}}}}10.4 /////////////////////////////////////public class Exer10_4 {public static void main(String args[]) {System.out.println(dengcha(3));System.out.println(dengcha(5));System.out.println(dengcha(10));}public static int dengcha(int n) {return 1+(n-1)*4;}}10.5 ///////////////////////////////class Computer {private String pc_name; //计算机品牌private String pc_color; //计算机颜色private String pc_type; //CPU型号private String pc_ram; //内存容量private String pc_harddisk; //硬盘容量private int pc_price; //价格private String pc_state; //工作状态public Computer() //默认构造函数,不带参数{ pc_name=""; //计算机品牌pc_color=""; //计算机颜色pc_type=""; //CPU型号pc_ram=""; //内存容量pc_harddisk=""; //硬盘容量pc_price=0; //价格pc_state=""; //计算机状态}public Computer(String aname,String acolor,String atype,String aram,String aharddisk,int aprice,String astate)//带参数的构造函数{ pc_name=aname; //计算机品牌初值pc_color=acolor; //计算机颜色初值pc_type=atype; //CPU型号初值pc_ram=aram; //内存容量初值pc_harddisk=aharddisk; //硬盘容量初值pc_price=aprice; //价格初值pc_state=astate; //计算机状态初值}void setcomputer(String aname,String acolor,String atype,String aram,String aharddisk,int aprice,String astate)//设置属性值的方法{ pc_name=aname; //计算机品牌pc_color=acolor; //计算机颜色pc_type=atype; //CPU型号pc_ram=aram; //内存容量pc_harddisk=aharddisk; //硬盘容量pc_price=aprice; //价格pc_state=astate; //计算机状态}void setstate(String astate) //设置状态属性的方法{ pc_state=astate;}void setram(String aram) //设置内存属性的方法{ pc_ram=aram;}public String pc_open() //定义计算机打开的方法{ setstate("打开");System.out.println(pc_name+"_工作状态:"+pc_state);System.out.println(" * ");System.out.println(" * * * ");System.out.println("* * * * *");System.out.println("-------------------");return pc_state;}public String pc_close() //定义计算机关闭的方法{ setstate("关闭");System.out.println(pc_name+"_工作状态:"+pc_state);System.out.println("请稍后,正在关闭计算机");System.out.println("-------------------");return pc_state;}public String pc_hitch() //定义计算机挂起的方法{ setstate("挂起");System.out.println(pc_name+"_工作状态:"+pc_state);System.out.println("启动计算机请按Ctrl+Alt+Delete键");System.out.println("-------------------");return pc_state;}void printcomputer() //输出的方法{ if(pc_price>0)System.out.println("计算机品牌:"+pc_name+" 颜色:"+pc_color+" CPU型号:"+pc_type+" 内存容量:"+pc_ram+"\n硬盘容量:"+pc_harddisk+" 价格:"+pc_price+" 工作状态:"+pc_state);elseSystem.out.println("计算机品牌: 未知"+" 工作状态:"+pc_state);System.out.println("---------------------------------");}}class Mycomputer {public static void main(String[] args) {Computer stu1=new Computer(); //创建计算机类的对象stu1;//调用方法setcomputer设置计算机信息stu1.setcomputer("Dell","黑","PentiumⅣ","256k","20G",7096," 良好");stu1.printcomputer(); //输出计算机的信息Computer stu2=new Computer(); //创建计算机类的对象stu2;stu2.setcomputer("联想","黑","PentiumⅣ","512k","40G",7296," 良好");stu2.printcomputer(); //输出计算机的信息stu1.pc_open();stu2.pc_close();stu1.pc_hitch();stu2.setram("1024");stu1.printcomputer(); //输出计算机的信息stu2.printcomputer(); //输出计算机的信息Computer stu3=new Computer();stu3.setstate("打开");stu3.printcomputer(); //输出计算机的信息}}10.6 //////////////////////////////////package mypackage.factorial;class Factorial{private int n;public Factorial(int n){this.n=n;}private boolean testN(int n){if (n>=0){return true;}else{System.out.println("请输入非负数!");return false;}}public int Factorial(int n) {if (n==0) return 1;return n*Factorial(n-1);}public void print(){if (testN(n)) System.out.println(n+"!="+Factorial(n));}}////////////////////////////////////////////////////////////////////package mypackage.test;import mypackage.factorial.Factorial;class TestFactorial {public static void main(String [] args) {int n=Integer.parseInt(args[0]);Factorial f=new Factorial(n);f.print();}}10.7(1) //////////////////////////////////////////////////////////class Employee {int id;private String name;public void setId(int id) {this.id=id;}public void setName(String name) {=name;}}class Manager extends Employee{public void setId(byte id){this.id=id;}private int departmentID;public void setDepartmentID(int id) {departmentID=id;}}public class ExtendsExam1 {public static void main(String [] args) {Employee e=new Manager();}}(2) //////////////////////////////////////////////////////////class A{static int a=10;static int id=1;static String go(){return "20";}public static String fun(){return "20";}}class B extends A{}public class ExtendsExam2{public static void main(String [] args) {Employee e=new Manager();System.out.println("B.a="+B.a);System.out.println("B.id="+B.id);System.out.println("B.go()="+B.go());System.out.println("B.fun="+B.fun());}}(3) //////////////////////////////////////////////////////////class SuperClass {int x;SuperClass( ) {x=3;System.out.println("in SuperClass : x=" +x);}void doSomething( ){System.out.println(" in SuperClass.doSomething()");}}class SubClass extends SuperClass{int x;SubClass( ) {super( );x=5;System.out.println(" in SubClass :x=" +x);}void doSomething( ) {super.doSomething( );System.out.println(" in SubClass.doSomething()");System.out.println(" super.x="+super.x+" sub.x="+x);}}public class ExtendsExam3 {public static void main(String args[]) {SubClass sub=new SubClass();sub.doSomething();}}10.8(1) //////////////////////////////////////////////////////////class MethodOverload{void receive(int i) {System.out.println("excuted receive(int i)");}void receive(int x, int y) {System.out.println("excuted receive(int x, int y)");}void receive(double d) {System.out.println("excuted receive(double d)");}void receive(String s) {System.out.println("excuted receive(String s)");}}public class MethodOverloadExam1 {public static void main(String args[]) {MethodOverload mo=new MethodOverload();mo.receive(1);mo.receive(2,3);mo.receive(12.56);mo.receive("very interesting, isn’t it?");}}(2) //////////////////////////////////////////////////////////public class xEmployee { //一个构造函数使用另一个构造函数的某方面效果String name;int salary;public xEmployee(String s, int n) {name = s;salary = n;}public xEmployee(String s){this(s, 0);//……// this调用必须作为构造方法中第一个语句}public xEmployee(int n){this("Unknown", n);//……// this调用必须作为构造方法中第一个语句}public xEmployee(){this( "Unknown" );//……// this调用必须作为构造方法中第一个语句}public static void main(String [] args) {xEmployee s1=new xEmployee ("欧阳振国",5200);xEmployee s2=new xEmployee ("欧阳振国");xEmployee s3=new xEmployee (6000);xEmployee s4=new xEmployee ();System.out.println( +"---"+s1.salary);System.out.println( +"---"+s2.salary);System.out.println( +"---"+s3.salary);System.out.println( +"---"+s4.salary);}}(3) //////////////////////////////////////////////////////// 错误原因:SubClass中的fun() 无法覆盖SuperClass中的fun(),被覆盖的方法为final ////////////////////////////////////////////////////////////class SuperClass {int i=1;public final int fun() {return 1;}public void go() {System.out.println(fun());}}class SubClass extends SuperClass {int i=2;public int fun() {return 2;}}public class MethodOverrideExma{public static void main(String [] args) {SuperClass s=new SubClass();s.go();}}10.9(1) ///////////////////////////////////////////////interface A{}interface B{}interface C extends A{}interface D extends A,B,C{}(2) ///////////////////////////////////////////////interface V olume{double calculateV olume();}class Circle implements V olume{double r;public Circle(double r){this.r=r;}public double calculateV olume(){return 3.14*r*r*r;}}class Rectangle implements V olume{double l,w,h;public Rectangle(double l,double w,double h){this.l=l;this.w=w;this.h=h;}public double calculateV olume(){return l*w*h;}}class Test{public static void main (String [] args){Circle c=new Circle(2);System.out.println ("球的体积额为:"+c.calculateV olume());Rectangle r=new Rectangle(1,2,3);System.out.println ("长方体的体积为:"+r.calculateV olume());}}10.10 ///////////////////////////////////////////////class Employee{String name;int number;int age;int salary;public Employee(String name,int number,int age,int salary){ =name;this.number=number;this.age=age;this.salary=salary;}}class EmployeeTest{static Employee [] e=new Employee[5];public static int average(String type){int sum=0;for (int i=0;i<e.length;i++){if (type.equals("age")) sum=sum+e[i].age;if (type.equals("salary")) sum=sum+e[i].salary;}return sum/e.length;}public static int minimum(String type){int min=0;if (type.equals("age")){min=e[0].age;for (int i=1;i<e.length;i++){if (e[i].age<min) min=e[i].age;}}if (type.equals("salary")){min=e[0].salary;for (int i=1;i<e.length;i++){if (e[i].salary<min) min=e[i].salary;}}return min;}public static int maximum(String type){int max=0;if (type.equals("age")){max=e[0].age;for (int i=1;i<e.length;i++){if (e[i].age>max) max=e[i].age;}}if (type.equals("salary")){max=e[0].salary;for (int i=1;i<e.length;i++){if (e[i].salary>max) max=e[i].salary;}}return max;}public static void main(String [] args){e[0]=new Employee("张三",1,25,1500);e[1]=new Employee("李四",2,30,2800);e[2]=new Employee("王五",3,45,4500);e[3]=new Employee("刘六",4,28,2400);e[4]=new Employee("赵七",5,32,3000);if (args.length==2){if (args[0].equals("age")){ if(args[1].equals("min")) {System.out.println("最小年龄是"+minimum("age"));}else if(args[1].equals("max")) {System.out.println("最大年龄是"+maximum("age"));}else if(args[1].equals("avg")) {System.out.println("平均年龄是"+average("age"));}elseSystem.out.println("输入不正确,请正确输入!");}else if(args[0].equals("salary")){if(args[1].equals("min") ) {System.out.println("最低工资是"+minimum("salary"));}else if(args[1].equals("max")) {System.out.println("最高工资是"+maximum("salary"));}else if (args[1].equals("avg")) {System.out.println("平均工资是"+average("salary"));}elseSystem.out.println("输入不正确,请正确输入!");}else System.out.println("输入不正确,请正确输入!");}else System.out.println("输入不正确,请正确输入!");}}10.11(1)///////////////////////////////////////////////class Exer10_11_1{public static void main (String [] args){String s1=args[0];String s2=args[1];if(s1.equals(s2)){System.out.println ("s1==s2");}else if(pareTo(s2)>0){System.out.println ("s1>s2");}else{System.out.println ("s1<s2");}}}(2)///////////////////////////////////////////////class Exer10_11_2{public static void main (String [] args){StringBuffer s=new StringBuffer("Hello java!");System.out.println ("原始字符串:"+s);s=s.replace(6,s.length(),"world!");System.out.println ("替换后:"+s);s=s.insert(6,"new ");System.out.println ("插入后:"+s);s=s.delete(6,10);System.out.println ("删除后:"+s);s=s.append(" Hello java!");System.out.println ("追加后:"+s);s=s.reverse();System.out.println ("翻转后:"+s);}}10.12(1)///////////////////////////////////////////////class Exer10_12_1{public static void main (String [] args){try {String s=args[0];}//此处可能产生的异常类,应该为ArrayIndexOutOfBoundsExceptioncatch (NumberFormatException ex) {System.out.println ("格式转换错误!");}}}// 使用如下的方式之一,可以捕获并处理异常// catch (ArrayIndexOutOfBoundsException ex) {// System.out.println ("格式转换错误!");// }///////////////// catch (IndexOutOfBoundsException ex) {// System.out.println ("格式转换错误!");// }///////////////// catch (Exception ex) {// System.out.println ("格式转换错误!");// }//ng.Object// ng.Throwable// ng.Exception// ng.RuntimeException// ng.IndexOutOfBoundsException// ng.ArrayIndexOutOfBoundsException(2)//////////////////////////////////////////////////class Exer10_12_2{public static void main (String [] args){try {int i=Integer.parseInt(args[0]);}catch(IndexOutOfBoundsException ex){System.out.println ("请输入数据!");}catch (NumberFormatException ex) {System.out.println ("请输入整数!");}}}(3)//////////////////////////////////////////////////class Exer10_12_3{public static void main (String [] args){try {//System.exit(0); //在此处执行System.exit()方法,finally块无法执行String s=args[0];int i=Integer.parseInt(s);}catch(IndexOutOfBoundsException ex){System.out.println ("请输入数据!");System.exit(0);//如果出现IndexOutOfBoundsException异常,会执行System.exit()方法//则finally块无法执行//return;}catch (NumberFormatException ex) {System.out.println ("请输入整数!");return;//如果出现NumberFormatException异常,会执行finally块}finally {System.out.println ("执行finally块!");}}}(4)//////////////////////////////////////////////////class Exer10_12_4{public static void main (String [] args){try {String s=args[0];int i=Integer.parseInt(s);}catch(IndexOutOfBoundsException ex){System.out.println ("请输入数据!");}catch (NumberFormatException ex) {System.out.println ("请输入整数!");}catch(Exception ex){System.out.println ("产生其他异常!");}}}(5)//////////////////////////////////////////////////class Exer10_12_5{public static int getInt(String s) throws NumberFormatException{for(int i=0;i<s.length();i++){if(s.charAt(i)<'0' || s.charAt(i)>'9'){throw new NumberFormatException("请输入数值型数据!");}}int i=Integer.parseInt(s);return i;}public static void main (String [] args){try {String s=args[0];int i=getInt(s);}catch(IndexOutOfBoundsException ex){System.out.println ("请输入数据!");}catch (NumberFormatException ex) {System.out.println (ex.getMessage());}catch(Exception ex){System.out.println ("产生其他异常!");}}}10.13 //////////////////////////////////////////////////import java.io.*;import java.util.*;class Exer10_13{public static void main (String [] args){String dir;String cdate,size,name;int filecount=0,dircount=0;long allsize=0,longsize=0;try{dir=args[0]; //dir是已定义的String对象}catch(ArrayIndexOutOfBoundsException e){dir="./"; //考虑没有参数传入时,dir的值是当前目录}File f=new File(dir);if(!f.exists()){System.out.println("文件或目录不存在!");System.exit(0);}if(f.isFile()){long l=stModified();Date date=new Date(l);cdate=date.toLocaleString();long len =f.length();allsize+=len;name=f.getName();filecount++;System.out.println (cdate+" "+len+" "+name);}else{File [] list=f.listFiles();for(int i=0;i<list.length;i++){if(list[i].isDirectory()){long l=list[i].lastModified();Date date=new Date(l);cdate=date.toLocaleString();name=list[i].getName();dircount++;System.out.println (cdate+"\t<DIR>\t\t\t\t"+name);}else{long l=list[i].lastModified();Date date=new Date(l);cdate=date.toLocaleString();long len =list[i].length();allsize+=len;name=list[i].getName();filecount++;System.out.println (cdate+"\t\t\t"+len+"\t\t"+name);}}}longsize=allsize/1024;System.out.println ("\n"+filecount+"个文件"+longsize+"个字节");System.out.println (dircount+"个文件夹");}}10.14 //////////////////////////////////////////////////import java.io.*;class Exer10_14{static FileInputStream fis;static FileOutputStream fos;public static void main (String [] args){String source=args[0];String dest=args[1];int size=0,i=0;try {fis=new FileInputStream(source);fos=new FileOutputStream(dest);byte[] b=new byte[255];while((i=fis.read(b))!=-1){System.out.println (new String (b,0,i));size+=i;fos.write(b);}fis.close();fos.close();System.out.println ("复制文件完毕!共"+size+"字节!");}catch (Exception ex) {ex.printStackTrace();}finally { }}}10.15 //////////////////////////////////////////////////import java.io.*;class Exer10_15{public static void main (String [] args){try {int n=Integer.parseInt(args[0]);RandomAccessFile ra=new RandomAccessFile("student.dat","r");if(n*19>ra.length()) {System.out.println("记录号超出范围!");return;}ra.seek((n-1)*19);String sno=Integer.toString(ra.readInt());String name=ra.readUTF();int age=ra.readInt();char grade=ra.readChar();boolean sex=ra.readBoolean();System.out.println (sno+"\t"+name+"\t"+age+"\t"+grade+"\t"+sex);ra.close();} catch (Exception ex) {System.out.println ("产生错误!");System.out.println (ex.getMessage());}finally { }}}10.16 //////////////////////////////////////////////////(1)//////////////////////////////////////////////////import java.awt.*;import javax.swing.*;public class Exer10_16_1 extends JFrame{JButton [] button;public Exer10_16_1(){button =new JButton[5];for(int i=0;i<button.length;i++){button[i]=new JButton("Button"+i);this.getContentPane().add(button[i]);}this.getContentPane().setLayout(new FlowLayout(FlowLayout.LEFT));//this.getContentPane().setLayout(new FlowLayout(FlowLayout.CENTER));//this.getContentPane().setLayout(new FlowLayout(FlowLayout.RIGHT));this.setSize(200,100);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setV isible(true);}public static void main(String [] args){new Exer10_16_1();}}(2)//////////////////////////////////////////////////import java.awt.*;import javax.swing.*;public class Exer10_16_2 extends JFrame{JButton [] button;public Exer10_16_2(){button =new JButton[5];for(int i=0;i<button.length;i++){button[i]=new JButton("Button"+i);}this.getContentPane().setLayout(new BorderLayout());this.getContentPane().add(button[0],BorderLayout.NORTH);this.getContentPane().add(button[1],BorderLayout.WEST);this.getContentPane().add(button[2],BorderLayout.CENTER);this.getContentPane().add(button[3],BorderLayout.SOUTH);this.getContentPane().add(button[4],BorderLayout.EAST);this.setSize(200,100);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setV isible(true);}public static void main(String [] args){new Exer10_16_2();}}(3)//////////////////////////////////////////////////import java.awt.*;import javax.swing.*;public class Exer10_16_3 extends JFrame{JButton [] button;public Exer10_16_3(){button =new JButton[13];this.getContentPane().setLayout(new GridLayout(4,4));// this.getContentPane().setLayout(new GridLayout(3,5));// this.getContentPane().setLayout(new GridLayout(5,3));// this.getContentPane().setLayout(new GridLayout(13,0));// this.getContentPane().setLayout(new GridLayout(0,13));for(int i=0;i<button.length;i++){button[i]=new JButton("Button"+i);this.getContentPane().add(button[i]);}this.setSize(400,200);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setV isible(true);}public static void main(String [] args){new Exer10_16_3();}}10.17(1)//////////////////////////////////////////////////import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Exer10_17_1 extends JFrame{JTextArea text=new JTextArea(15,20);JTextField tx=new JTextField(10);JButton button=new JButton("发送");public Exer10_17_1(){this.getContentPane().setLayout(new FlowLayout());this.getContentPane().add(text);this.getContentPane().add(tx);this.getContentPane().add(button);tx.addKeyListener(new KeyAdapter(){public void keyPressed(KeyEvent e){if(e.getKeyCode()==KeyEvent.VK_ENTER){send();}}});button.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){send();}});this.setSize(300,400);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setV isible(true);}private void send(){text.append(tx.getText()+"\n");}public static void main (String [] args){new Exer10_17_1();}}(2)//////////////////////////////////////////////////import javax.swing.*;import java.awt.*;public class Exer10_17_2 extends JFrame{Exer10_17_2(){this.setSize(300,350);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setV isible(true);}public void paint(Graphics g){int x,y,i;g.drawLine(10,40,300,40); //从(10,40)开始到(300,40)画一条黑色直线g.setColor(Color.red);g.drawRect(10,50,50,30); //在(10,50)到(50,30)处画一个红色的矩形框g.drawOval(100,50,40,40); //在(100,50)处画一个半径为40的红色的圆形g.setColor(Color.blue);g.fillOval(170,50,90,40); //在(170,50)处画一个宽为90,高为40的蓝色的实心椭圆g.setColor(Color.pink); //绘制字符串Font fo=new Font("楷体_GB2312",Font.ITALIC|Font.BOLD,32);g.setFont(fo);g.drawString("我们都很快乐!",10,130);Image im=null; //显示图片im=getToolkit().getImage("b.jpg");g.drawImage(im,10,170,200,160,this);}public static void main(String args[]){new Exer10_17_2();}}(3)//////////////////////////////////////////////////import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Exer10_17_3 extends JFrame implements ActionListener{ // 类EventExample实现ActionListener接口,成为事件监听器JPanel p;JPanel p1;JTextField number;JTextField name;JTextField age;JTextArea summary;JButton ok;JButton cancel;public Exer10_17_3 (){super("ActionEvent事件演示示例");p=new JPanel();p1=new JPanel();number=new JTextField (5);name=new JTextField (18);age=new JTextField ("20");summary=new JTextArea("请在此输入个人简介!",4,20);ok=new JButton("确定");ok.addActionListener(this); //注册,添加监听器cancel=new JButton("取消");cancel.addActionListener(this); //注册,添加监听器p.add(new Label("学号:"));p.add(number);p.add(new Label("姓名:"));p.add(name);p.add(new Label("年龄:"));p.add(age);p.add(new Label("个人简介:"));p1.add(ok);p1.add(cancel);this.getContentPane().add(p,BorderLayout.NORTH);this.getContentPane().add(summary);this.getContentPane().add(p1,BorderLayout.SOUTH);this.setSize(600,300);this.setV isible(true);}public void actionPerformed(ActionEvent e){ //重写接口中的全部方法if ((JButton)e.getSource()==ok){ //判断是否为ok按钮发生的事件summary.setText("你输入的学号是:"+number.getText()+" 姓名是:"+name.getText()+" 年龄是:"+age.getText());}else{number.setText("");name.setText("");age.setText("");summary.setText("");}}public static void main(String [] args){new Exer10_17_3 ();}}10.18 ///////////////////////////////////////////////////*操作数据库程序DataBaseOperator.java*/import java.sql.*;class DataBaseOperator{static Connection stucn;static Statement stust;static ResultSet sturs;public static boolean ConnDB(String DSName,String UserName,String Password){ //连接数据库boolean ConnOk=false;try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");System.out.println ("数据库驱动程序加载成功......");stucn=DriverManager.getConnection("jdbc:odbc:"+DSName,UserName,Password);ConnOk=true;System.out.println ("数据库连接成功......");}catch (Exception ex) {System.out.println ("数据库连接失败......");}return ConnOk;}public static boolean searchTable(String SQLString){ //查询数据。

淮海工学院-操作系统-实验2-银行家算法

淮海工学院-操作系统-实验2-银行家算法

#include <stdio.h>#include <string.h>#define false 0#define true 1#define PROCESSES_NUMBER 5 //系统中所有进程数量typedef int bool;typedef struct {int A;int B;int C;}RESOURCE;RESOURCE Max[PROCESSES_NUMBER]; //最大需求矩阵 Max RESOURCE Allocation[PROCESSES_NUMBER]; //已分配资源数矩阵 Allocation RESOURCE Need[PROCESSES_NUMBER]; //需求矩阵RESOURCE Available = {3,3,2}; //可用资源向量int safe[PROCESSES_NUMBER];void inputMax(){int i;printf("请输入最大需求矩阵\n");for (i = 0; i < PROCESSES_NUMBER; i++){scanf("%d%d%d",&Max[i].A,&Max[i].B,&Max[i].C);}}void inputAllocation(){int i;printf("请输入已分配资源数矩阵\n");for (i = 0; i < PROCESSES_NUMBER; i++){scanf("%d%d%d",&Allocation[i].A,&Allocation[i].B,&Allocation[i].C); }}//试探分配void ProbeAlloc(int process,RESOURCE *res){Available.A -= res->A;Available.B -= res->B;Available.C -= res->C;Allocation[process].A += res->A;Allocation[process].B += res->B;Allocation[process].C += res->C;Need[process].A -= res->A;Need[process].B -= res->B;Need[process].C -= res->C;}//若试探分配后进入不安全状态,将分配回滚void RollBack(int process,RESOURCE *res){Available.A += res->A;Available.B += res->B;Available.C += res->C;Allocation[process].A -= res->A;Allocation[process].B -= res->B;Allocation[process].C -= res->C;Need[process].A += res->A;Need[process].B += res->B;Need[process].C += res->C;}//安全性检查bool SafeCheck(){RESOURCE Work = Available;bool Finish[PROCESSES_NUMBER] = {false,false,false,false,false};int i;int j = 0;for (i = 0; i < PROCESSES_NUMBER; i++){//是否已检查过if(Finish[i] == false){//是否有足够的资源分配给该进程if(Need[i].A <= Work.A && Need[i].B <= Work.B && Need[i].C <= Work.C ){//有则使其执行完成,并将已分配给该进程的资源全部回收Work.A += Allocation[i].A;Work.B += Allocation[i].B;Work.C += Allocation[i].C;Finish[i] = true;safe[j++] = i;i = -1; //重新进行遍历}}}//如果所有进程的Finish向量都为true则处于安全状态,否则为不安全状态for (i = 0; i < PROCESSES_NUMBER; i++){if (Finish[i] == false){return false;}}return true;}//资源分配请求bool request(int process,RESOURCE *res){//request向量需小于Need矩阵中对应的向量if(res->A <= Need[process].A && res->B <= Need[process].B && res->C <= Need[process].C){//request向量需小于Available向量if(res->A <= Available.A && res->B <= Available.B && res->C <= Available.C) {//试探分配ProbeAlloc(process,res);//如果安全检查成立,则请求成功,否则将分配回滚并返回失败if(SafeCheck()){return true;}else{printf("安全性检查失败。

JAVA第四版实验2实验报告

JAVA第四版实验2实验报告

实验11.实验要求:编写一个Java应用程序,该程序在命令行窗口输出希腊字母表。

2.实验内容:3.实验分析:(1)将一个double型数据直接赋值给float型变量,程序编译时提示怎样的错误。

可能损失精度。

(2)在应用程序的main()方法中增加语句:float x=0.618,程序能编译通过吗?不能通过编译,提示可能损失精度。

(3)在应用程序的main()方法中增加语句:byte b=128编译能通过吗?在应用程序的main()方法中增加语句:int z=(byte)128;程序输出变量z的值是多少?增加byte b=128时编译不能通过,提示可能损失精度。

增加int z=(byte)128时结果如下所示。

实验21.实验要求:编写一个Java应用程序,该程序在命令行窗口输出数组的引用以及元素的值。

2.实验内容:3.实验分析:(1)在程序的【代码4】之后增加语句”a[3]=200;”,编译是否有错?运行是否有错?(2)在程序的【代码4】之前输出二维数组b的各个一维数组的长度和引用。

(3)在程序的【代码4】之后输出二维数组b的各个一维数组的长度和引用。

实验31.实验要求:编写一个Java应用程序,输出数组a的全部元素,并将数组a的全部或部分元素复制到其他数组中,然后改变其他数组的元素的值,再输出数组a的全部元素。

2.实验内容:3.实验分析:(1)在程序的【代码4】之后增加语句:int []tom=Arrays.copyOf(c,6);System.out.println(Arrays.toString(tom));(2)在程序的最后一个语句之后增加语句:int []jerry=Arrays.copyOf(d,1,8);System.out.println(Arrays.toString(jerry));阳谷一中2014—2015学年第二学期阶段测试高二政治试题第I卷选择题(共70分)一、选择题(本大题共50小题,1-40每小题1.5分,共60分;41-50为附加题,每小题1分,共10分。

实验一-Java程序设计基础(2)-陈正宁-20151323349

实验一-Java程序设计基础(2)-陈正宁-20151323349

淮海工学院计算机工程学院实验报告书课程名:面向对象程序设计题目:实验1—Java程序设计基础(2)班级:软嵌151学号:2015123349姓名:陈正宁一实验目的与要求进一步熟悉Java程序的结构,掌握Java的运算符、表达式、数组及流程控制语句的用法。

二实验内容分别编写Application和Applet程序,实现:将上学期所学的各门课程的名称及考试成绩的信息用数组存放,并在for(或while)循环中利用排序算法,将成绩进行升(或降)序排列,输出排序后的课程成绩、所有课程的平均分数和不及格的门数。

如果基于图形界面实现以上功能,可以获得15分的加分。

三实验步骤//Java Application源程序import javax.swing.*;import java.awt.*;import java.awt.event.*;public class App //程序中的主类{public static void main(String[] args){new FrameInOut();}}/*创建图形界面的类*/class FrameInOut extends Frame implements ActionListener{JButton btn1,btn2,btn3,btn4,btn5,btn6;//定义六个按钮JTextArea ta,ta1;//定义两个文本域JPanel p1,p2,p3;//将面板作为容器String[] courses={"高等数学","离散数学","C语言","大学物理","大学英语","近代史"};int[] scores={89,98,80,78,72,89};FrameInOut(){super("学生基本信息及课程成绩信息!");//设置界面标题this.setFont(new Font("楷体",Font.BOLD,100));//设置界面字体this.setBackground(Color.pink);//设置界面背景色/*初始化各个按钮*/btn1=new JButton("学生基本信息");btn2=new JButton("初始成绩");btn3=new JButton("成绩排序");btn4=new JButton("平均成绩");btn5=new JButton("不及格门数");btn6=new JButton("退出");/*初始化文本域,数字表示文本域行数,后个数字为列数*/ta=new JTextArea(10,25);ta1=new JTextArea(10,25);/*初始化面板,并将各个控件加入容器*/p1=new JPanel();p2=new JPanel();p3=new JPanel();p1.add(btn1);p1.add(btn2);p1.add(btn3);p1.add(btn4);p1.add(btn5);p1.add(btn6);p2.add(ta);p3.add(ta1);add(p1);add(p2);add(p3);setLayout(new FlowLayout());//设置界面采用流式布局/*设置面板背景色*/p1.setBackground(Color.red);/*各个按钮注册事件监听器*/btn1.addActionListener(this);btn2.addActionListener(this);btn3.addActionListener(this);btn4.addActionListener(this);btn5.addActionListener(this);btn6.addActionListener(this);setSize(600,360);//设置界面尺寸setVisible(true);//设置界面可见}/*重载ActionListener接口的方法,实现各按钮名副其实的功能*/ public void actionPerformed(ActionEvent e){/*创建一个新的数组,对其初始化*/String[] courses1={"a","b","c","d","e","f"};for(int i=0;i<courses.length;i++){courses1[i]=courses[i];}int[] scores1={2,2,2,2,2,2};for(int j=0;j<scores.length;j++){scores1[j]=scores[j];}if(e.getSource()==btn1)//显示学生基本信息{ta.setText(null);ta.setForeground(Color.blue);ta.setFont(new Font("黑体",Font.BOLD,14));ta.append("姓名:陈正宁\n");ta.append("性别:男\n");ta.append("籍贯:江苏泰兴\n");ta.append("班级:软嵌151\n");ta.append("学号:2015123349");}if(e.getSource()==btn2)//排序前的课程及成绩信息{ta1.setText(null);ta1.setForeground(Color.black);ta1.setFont(new Font("楷体",Font.BOLD,16));for(int i=0;i<courses.length;i++){ta1.append("课程名:"+courses[i]+" 成绩为:"+scores[i]+"\n");}}if(e.getSource()==btn3)//排序后的课程及成绩信息{for(int i=0;i<scores1.length-1;i++){for(int j=i+1;j<scores1.length;j++){int t;String coursename;if(scores1[i]>scores1[j]){t=scores1[i];scores1[i]=scores1[j];scores1[j]=t;coursename=courses1[i];courses1[i]=courses1[j];courses1[j]=coursename;}}}ta1.setText(null);ta1.setForeground(Color.red);ta1.setFont(new Font("楷体",Font.BOLD,16));for(int i=0;i<courses1.length;i++){ta1.append("课程名:"+courses1[i]+"成绩为:"+scores1[i]+"\n");}}if(e.getSource()==btn4)//平均成绩{int sum=0;for(int i=0;i<scores1.length;i++){sum=sum+scores1[i];}int average=sum/scores1.length;ta1.setText(null);ta1.setForeground(Color.red);ta1.setFont(new Font("楷体",Font.BOLD,16));ta1.append("平均成绩:"+average+"\n");}if(e.getSource()==btn5)//不及格门数{int count=0;for(int i=0;i<scores1.length;i++){if(scores1[i]<60){count++;}}ta1.setText(null);ta1.setForeground(Color.red);ta1.setFont(new Font("楷体",Font.BOLD,16));ta1.append("不及格门数:"+count+"\n");}if(e.getSource()==btn6)//退出程序{dispose();System.exit(0);}}}//Java Applet源程序import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.applet.*;public class applet1 extends Applet implements ActionListener{JButton btn1,btn2,btn3,btn4,btn5;JTextArea ta,ta1;JPanel p1,p2,p3;String courses[]={"高等数学","离散数学","大学英语","近代史","大学物理","C语言"};int scores[]={89,98,80,78,72,89};public void init(){this.setFont(new Font("隶体",Font.BOLD,100));this.setBackground(Color.pink);btn1=new JButton("学生基本信息");btn2=new JButton("初始成绩");btn3=new JButton("成绩排序");btn4=new JButton("平均成绩");btn5=new JButton("不及格门数");ta =new JTextArea(8,20);ta1 =new JTextArea(8,20);p1 =new JPanel();p2 =new JPanel();p3 =new JPanel();p1.add(btn1);p1.add(btn2);p1.add(btn3);p1.add(btn4);p1.add(btn5);p2.add(ta);p3.add(ta1);add(p1);add(p2);add(p3);setLayout(new FlowLayout());p1.setBackground(Color.red);btn1.addActionListener(this);btn2.addActionListener(this);btn3.addActionListener(this);btn4.addActionListener(this);btn5.addActionListener(this);setSize(600,360);setVisible(true);}public void actionPerformed(ActionEvent e) {String courses1[]={"a","b","c","d","e","f"};for(int i=0;i<courses.length;i++){courses1[i]=courses[i];}int scores1[]={2,2,2,2,2,2};for(int j=0;j<scores.length;j++){scores1[j]=scores[j];}if(e.getSource()==btn1){ta.setText(null);ta.setForeground(Color.blue);ta.setFont(new Font("隶体",Font.BOLD,14));ta.append("姓名:陈正宁\n");ta.append("性别:男\n");ta.append("籍贯:江苏泰兴\n");ta.append("班级:软嵌151\n");ta.append("学号:2015123349");}if(e.getSource()==btn2){ta1.setText(null);ta1.setForeground(Color.black);ta1.setFont(new Font("楷体",Font.BOLD,16));for (int i=0;i<courses.length;i++){ta1.append("课程名"+courses[i]+"成绩为"+scores[i]+"\n");}}if(e.getSource()==btn3){for (int i=0;i<scores1.length-1;i++){for (int j=i+1;j<scores1.length;j++){int t;String coursename;if(scores1[i]>scores1[j]){t=scores1[i];scores1[i]=scores1[j];scores1[j]=t;coursename=courses1[i];courses1[i]=courses1[j];courses1[j]=coursename;}}}ta1.setText(null);ta1.setForeground(Color.red);ta1.setFont(new Font("楷体",Font.BOLD,16));for (int i=0;i<courses1.length;i++){ta1.append("课程名:"+courses1[i]+"成绩为:"+scores1[i]+"\n"); }}if(e.getSource()==btn4){int sum=0;for(int i=0;i<scores1.length;i++){sum=sum+scores1[i];}int average=sum/scores1.length;ta1.setText(null);ta1.setForeground(Color.red);ta1.setFont(new Font("楷体",Font.BOLD,16));ta1.append("平均成绩:"+average+"\n");}if(e.getSource()==btn5){int count=0;for(int i=0;i<scores1.length;i++){if(scores1[i]<60){count++;}}ta1.setText(null);ta1.setForeground(Color.red);ta1.setFont(new Font("楷体",Font.BOLD,16));ta1.append("不及格门数:"+count+"\n");}}}四实验结果Java Application实验截图:初始运行界面显示学生基本信息界面显示初始成绩信息界面显示排序后的成绩信息界面显示平均成绩信息界面显示不及格门数信息界面Java Applet源程序实验截图:初始运行界面显示学生基本信息界面显示初始成绩信息界面显示排序后的成绩信息界面显示平均成绩信息界面显示不及格门数信息界面五结果分析与体会这一次实验题目明显比上一次实验长了好多。

软件测试——实验5

软件测试——实验5

淮海工学院计算机工程学院实验报告书课程名:《软件测试技术》题目:上机1 手工测试班级:学号:姓名:一.实验目的二.实验内容三.实验环境实验1:录制回放脚本1.添加项目,文件----连接RFT项目,路径:C:\Training-TST279\Training-TST279 项目名称自动为:Training-TST2792.录制脚本①录制(工具栏的红太阳按钮)----脚本名:Simple_OrderNewSchubertString_01-----完成②录制窗口上点击“启动应用程序”(第三个按钮)-----选择ClassicsJavaA-----确定-----打开ClassicsJavaA③展开Schubert-----选择String Quartets------Place Order------Mermber Logon窗口,直接OK④进入Place an Order窗口,Card Number框中输入:7777 7777 7777 7777 Date框中输入:07/11⑤点击“Place Order”按钮----确定⑥关闭录制窗口,Training-TST279项目里会自动生成脚本文件。

3.回放脚本(工具栏的绿色按钮),自动生成日志,用默认名-----下一步----完成,IE打开日志,允许阻止内容,查看结果。

实验2:录制回放脚本(加入验证点)1.把实验1里生成的脚本和日志文件删除。

2.重新录制(实验1的步骤①--④),加入验证点。

①选择录制窗口中的第四个按钮,打开“验证点和操作向导”,选择“对象查找器”,拖动鼠标用小手去捕获Place Order按钮。

②默认“执行数据验证点”----下一步,默认验证点名称:PlaceOrder_text---下一步----完成③ 点击Place Order 按钮----确定----关闭----生成脚本 3. 回放脚本,生成日志。

实验3:向脚本中插入记录1.添加项目,文件----连接RFT项目,路径:C:\Solutions-TST279\Solutions-TST279 项目名称自动为:Solutions-TST2792.打开脚本VP2_OrderNewBachViolin_023.将//stop();前的//删除,前上方空一行,保存脚本并回放,默认日志名称,点击“完成”----“继续”,日志生成提示有错误。

java报告 —计算器

java报告 —计算器

淮海工学院计算机工程学院实验报告书课程名:《面向对象程序设计》题目:基于图形用户界面的JDBC程序开发班级:网络122学号:2012122665姓名:1、实验内容利用java的GUI控件,实现一个简单的计算器应用程序界面,窗口标题为计算器,在此计算器应用程序中实现“+”,“—”,“*”,“/”运算的功能。

2、实验步骤与源程序实验步骤:首先在计算器面板上,添加控件,也就是,文本域和数字及运算的按钮,文本域有着显示的作用,而按钮则实现各种运算功能。

整个计算器面板采用BorderLayout的布局,在北部添加文本域,在中部嵌套一个面板,采用GridLayout布局,这些就构成了计算器的图形界面。

接着就开始实现其事件响应和处理功能了,我是这样处理的,给每个按钮都添加事件响应,使用ActionEvent,用多个if语句,判断当用户按下的是数字键时,如果此时文本域中,是运算符的话,就用setText()函数,如果文本域中是数字的话,就使用Append()函数追加,这样做,就可以为下面将文本域中的数字型的字符串转化为数字提供了方便。

而当用户按下“+”,“—”,“*”,“/”运算符按钮时,就将此时,文本域中的字符串转化为数字,并且用一个变量将其记录下来,这就是构成运算的两个数之一,然后将运算符打印到文本域中,并且用一个字符串型变量将运算符记录下来。

最后当用户按下“=”时,将进入了最关键的步骤,也是一样的,先将文本域中的数字转化并记录下来,这就是运算中的第二个数字,这时还需要判断之前的运算符,因为之前的运算符已经被记录下来了,这时就可以调用,并用if语句判断,即可在if的代码段里进行计算的过程。

最后,我添加了一个清零的方法,使计算器可以实现“清零”功能。

源代码://简易计算器import java.awt.*;import javax.swing.*;import java.awt.event.*;public class JiSuanQi extends JFrame implements ActionListener{public static void main(String args[]){JiSuanQi jisuan=new JiSuanQi();}JButton qinlin;double d=0,s=0,w=0;String str=null;JPanel mb;JTextArea wbk;JButton an[];JButton jia,jian,chen,chu,den,dian;JiSuanQi(){qinlin=new JButton("清零");qinlin.addActionListener(this);mb=new JPanel();wbk=new JTextArea(3,16);an=new JButton[10];for(int i=0;i<10;i++){an[i]=new JButton(""+i);an[i].addActionListener(this);}jia=new JButton("+");jia.addActionListener(this);jian=new JButton("-");jian.addActionListener(this);chen=new JButton("*");chen.addActionListener(this);chu=new JButton("/");chu.addActionListener(this);den=new JButton("=");dian=new JButton(".");dian.addActionListener(this);mb.setLayout(new GridLayout(4,4));mb.add(an[7]); mb.add(an[8]);mb.add(an[9]);mb.add(jia);mb.add(an[4]); mb.add(an[5]);mb.add(an[6]);mb.add(jian);mb.add(an[1]); mb.add(an[2]);mb.add(an[3]);mb.add(chen);mb.add(an[0]); mb.add(dian);mb.add(den);mb.add(chu);this.add(wbk,BorderLayout.NORTH);this.add(mb,BorderLayout.CENTER);this.add(qinlin,BorderLayout.SOUTH);this.setTitle("简易计算器");this.setBounds(100,100,200,300);this.setResizable(false);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public void actionPerformed(ActionEvent e){try{if(e.getSource()==an[0]){if(wbk.getText().equals("+")||wbk.getText().equals("-")||wbk.getText().equals("*")||wbk.g etText().equals("/"))wbk.setText("0");elsewbk.append("0");}else if(e.getSource()==an[1]){if(wbk.getText().equals("+")||wbk.getText().equals("-")||wbk.getText().equals("*")||wbk.g etText().equals("/"))wbk.setText("1");elsewbk.append("1");}else if(e.getSource()==an[2]){if(wbk.getText().equals("+")||wbk.getText().equals("-")||wbk.getText().equals("*")||wbk.g etText().equals("/"))wbk.setText("2");else}else if(e.getSource()==an[3]){if(wbk.getText().equals("+")||wbk.getText().equals("-")||wbk.getText().equals("*")||wbk.g etText().equals("/"))wbk.setText("3");elsewbk.append("3");}else if(e.getSource()==an[4]){if(wbk.getText().equals("+")||wbk.getText().equals("-")||wbk.getText().equals("*")||wbk.g etText().equals("/"))wbk.setText("4");elsewbk.append("4");}else if(e.getSource()==an[5]){if(wbk.getText().equals("+")||wbk.getText().equals("-")||wbk.getText().equals("*")||wbk.g etText().equals("/"))wbk.setText("5");elsewbk.append("5");}else if(e.getSource()==an[6]){if(wbk.getText().equals("+")||wbk.getText().equals("-")||wbk.getText().equals("*")||wbk.g etText().equals("/"))wbk.setText("6");elsewbk.append("6");}else if(e.getSource()==an[7]){if(wbk.getText().equals("+")||wbk.getText().equals("-")||wbk.getText().equals("*")||wbk.g etText().equals("/"))wbk.setText("7");elsewbk.append("7");if(wbk.getText().equals("+")||wbk.getText().equals("-")||wbk.getText().equals("*")||wbk.g etText().equals("/"))wbk.setText("8");elsewbk.append("8");}else if(e.getSource()==an[9]){if(wbk.getText().equals("+")||wbk.getText().equals("-")||wbk.getText().equals("*")||wbk.g etText().equals("/"))wbk.setText("9");elsewbk.append("9");}else if(e.getSource()==qinlin){wbk.setText(null);}else if(e.getSource()==jia){d=Double.parseDouble(wbk.getText());wbk.setText("+");str=new String("+");}else if(e.getSource()==jian){d=Double.parseDouble(wbk.getText());wbk.setText("-");str="-";}else if(e.getSource()==chen){d=Double.parseDouble(wbk.getText());wbk.setText("*");str="*";}else if(e.getSource()==chu){d=Double.parseDouble(wbk.getText());wbk.setText("/");str="/";wbk.append(".");}else if(e.getSource()==den){s=Double.parseDouble(wbk.getText());if(str.equals("+")){w=d+s;wbk.setText(""+w);}else if(str.equals("-")){w=d-s;wbk.setText(""+w);}else if(str.equals("*")){w=d*s;wbk.setText(""+w);}else if(str.equals("/")){w=d/s;wbk.setText(""+w);}}}catch(Exception ex){}}}3、测试数据与实验结果(可以抓图粘贴)4、结果分析与实验体会这个计算器是很简单的,本以为会很容易就解决,结果发现,考虑的东西还是很多的,就比如如何提取用户输入显示域的文字和运算符,就让我费了不少脑筋,当然我也发现了不好问题,比如我实现的计算器的算法是不够简洁,在网上也看到了不好好的思路,但是我仍然按照自己的思路,因为我觉得只有自己真正想出来的东西才是最有价值的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

淮海工学院计算机工程学院实验报告书课程名:《面向对象程序设计A》题目:实验二Java面向对象编程初步(2)______ 班级:____软嵌151学号:2015123352姓名:韩吉_一.实验目的(1)通过实验,进一步掌握类的定义,尤其是类中方法(包含构造方法)的定义。

掌握对象的创建方法及对象成员变量和方法的调用;(2)通过编写图形界面的程序,完成对象的创建和调用;(3)能够通过类图来描述程序中类的结构。

二. 实验内容及要求(1)定义教师类Teacher,包含属性工号,姓名,性别,所在部门,职称,职位,专业,学历;定义若干个构造方法,完成对象的各种初始化需要;定义若干个分别能够获取和修改成员变量的方法,如获取工号/修改工号;获取学历/修改学历等;定义toString()方法,能够输出教师的所有相关信息。

(40分)(2)编写字符界面的程序,能够创建若干个教师对象,并输出教师的相关信息;(20分)(3)要求在报告中能够画出类图来描述类的结构(15分)(4)编写图形界面的程序,能够创建若干个教师对象,并输出教师的相关信息。

(25分)可以参照实验指导书中第二个实验的最后一个程序示例。

三. 实验步骤public class Teacher {String number;//工号String teachername;//姓名int age; //年龄String sex; //性别String degree;//学位String title;//职称String position;//职位String depart;//部门String major;//专业static String collegeName = "淮海工学院";Teacher(String number){this.number = number;}Teacher(String number,Stringteachername){this(number);this.teachername = teachername;}Teacher(String number,Stringteachername,int age){this(number, teachername);this.age = age;}Teacher(String number,Stringteachername,intage,String sex){this(number, teachername, age);this.sex = sex;}Teacher(String number,Stringteachername,intage,Stringsex,String degree){ this(number, teachername, age,sex);this.degree = degree;}Teacher(String number,Stringteachername,intage,Stringsex,Stringdegree,String title){ this(number, teachername, age, sex, degree);this.title = title;}Teacher(String number,Stringteachername,intage,Stringsex,Stringdegree,Stringtitle,String position){this(number, teachername, age, sex, degree,title);this.position = position;}Teacher(Stringnumber,Stringteachername,intage,Stringsex,Stringdegree,Stringtitle,Stringposition,String depart){this(number, teachername, age, sex, degree, title, position);this.depart = depart;}Teacher(Stringnumber,Stringteachername,intage,Stringsex,Stringdegree,Stringtitle,Stringposition,Stringdepa rt,String major){this(number, teachername, age, sex, degree, title, position, depart);this.major = major;}public void setdegree(String newdegree){degree = newdegree;}public void settitle(String newtitle){title = newtitle;}public void setposition(String newposition){position = newposition;}public void Setdepart(String newdepart){depart = newdepart;}public static String getCollegeName(){return collegeName;}public static void setCollegeName(String newCollegeName){collegeName=newCollegeName;}public String toString(){return "工号:" + number + ";姓名:" + teachername + ";年龄:" + age + ";性别:" + "" + sex + ";学位:" + degree + ";专业: " + major + ";职称:" + title +";职位:" + position + "所在部门:" + depart + ";所在大学" + collegeName;}}import java.util.Scanner;public classtestTeacher{public static void main(String args[]){int count=0;Scanner scanner=new Scanner(System.in);Teacher[] teachers =new Teacher[80];//创建Teacher对象,表示汪老师Teacher wang = new Teacher("1996000021","汪前进",45,"男"," 硕士","软件工程","副教授","系主任","软件工程系");teachers[count++] = wang;//创建Teacher对象,表示张老师Teacher zhang = new Teacher("2006000037","张键",38,"男"," 博士","计算机硬件","副教授","处长","计算机科学系");teachers[count++] = zhang;//创建Teacher对象,表示董老师Teacher dong = new Teacher("1981000038"," 董剑利",58,"男","硕士","数据结构","教授","班主任","软件工程系");teachers[count++] = dong;//创建Teacher对象,表示戴老师Teacher dai = new Teacher("2008000053","戴志强",40,"男"," 博士","机械自动化","副教授","副院长","机械工程系");teachers[count++] = dai;//创建Teacher对象,表示樊老师Teacher fan = new Teacher("2002000018","樊玲",35,"女"," 硕士","法学","讲师","辅导员","软件工程系");teachers[count++] = fan;//创建Teacher对象,表示李老师Teacher li = new Teacher("2009000035","李志敏",34,"女"," 博士","船舶与海洋","副教授","副院长","海洋工程系");teachers[count++] = li;//输出所有的教师的信息count--;for(inti=0;i <= count;i++)System.out.println(teachers[i]);//以下按姓名查找老师System.out.println("请输入待查找的老师姓名:");while(scanner.hasNextLine()){boolean find = false;String teacherName = scanner.nextLine();for(inti=0;i <= count;i++){if(teachers[i].teachername.contains(teacherName)){ find=true;System.out.println("找到"+teacherName);System.out.println(teachers[i]);}}if(find==false)System.out.println("未找到该教师!!");}}}publicclass Teacher{String tno; //教师工号String tname; //教师姓名int age; //年龄String tsex; //性别String tdegree; //学位String ttitle; //职称String tdept; //所在部门static String collegeName="淮海工学院";//定义了若干个构造函数,相互可以调用Teacher(String tno){ this.tno=tno; }Teacher(String tno,String tname){ this(tno);this.tname=tname;}Teacher(String tno,String tname,int age){ this(tno,tname);this.age=age;}Teacher(String tno,String tname,int age,String tsex){ this(tno,tname,age);this.tsex=tsex;}Teacher(String tno,String tname,int age,String tsex,String tdegree){ this(tno,tname,age,tsex);this.tdegree=tdegree;}Teacher(String tno,String tname,int age,String tsex,String tdegree,String ttitle) { this(tno,tname,age,tsex,tdegree);this.ttitle=ttitle;}Teacher(Stringtno,String tname,int age,String tsex,String tdegree,String ttitle,String tdept) { this(tno,tname,age,tsex,tdegree,ttitle);this.tdept=tdept;}publicvoid setDegree(String newDegree){tdegree=newDegree;}publicvoid setTitle(String newTitle){ttitle=newTitle;}publicstatic String getCollegeName(){return collegeName;}publicstaticvoid setCollegeName(String newCollegeName){collegeName=newCollegeName;}public String toString(){return"工号:"+tno+";姓名:"+tname+";年龄:"+age+";性别:"+tsex+";学位:"+tdegree+";\n 职称:"+ttitle+";所在部门"+tdept+";所在大学"+collegeName;}}import java.awt.*;import javax.swing.*;import java.awt.event.*;class myFrame extends JFrame implements ActionListener{JLabel lblTno,lblTname,lblTage,lblTsex,lblTdegree,lblTtitle,lblTdept;JTextField txtTno,txtTname,txtTage,txtTsex,txtTdegree,txtTtitle,txtTdept;JButton btnCreate,btnSearch,btnshowAll;JLabel prompt;JTextArea jta;ButtonGroup group = new ButtonGroup();JRadioButton radio1 = new JRadioButton("男");JRadioButton radio2 = new JRadioButton("女");Teacher[] teachers=new Teacher[80];int count=0;myFrame(){setTitle("创建教师对象,并查找");setLayout(new FlowLayout());setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);lblTno=new JLabel("请输入工号:");txtTno=new JTextField(10);add(lblTno); add(txtTno);lblTname=new JLabel("请输入姓名:");txtTname=new JTextField(10);add(lblTname); add(txtTname);lblTage=new JLabel("请输入年龄:");txtTage=new JTextField(10);add(lblTage); add(txtTage);// lblTsex=new JLabel("请输入性别:");// txtTsex=new JTextField(10);// add(lblTsex); add(txtTsex);add(new JLabel("性别: "));group.add(radio1);group.add(radio2);add(radio1);add(radio2);lblTdegree=new JLabel("请输入学位:");txtTdegree=new JTextField(10);add(lblTdegree); add(txtTdegree);lblTtitle=new JLabel("请输入职称:");txtTtitle=new JTextField(10);add(lblTtitle); add(txtTtitle);lblTdept=new JLabel("请输入部门:");txtTdept=new JTextField(10);add(lblTdept); add(txtTdept);btnCreate=new JButton("创建教师");btnSearch=new JButton("按姓名查询教师");btnshowAll=new JButton("显示所有教师");add(btnCreate);add(btnSearch);add(btnshowAll);prompt=new JLabel(" ");jta=new JTextArea(40,60);add(prompt);add(jta);btnCreate.addActionListener(this);btnSearch.addActionListener(this);btnshowAll.addActionListener(this);}publicvoid actionPerformed(ActionEvent e){if(e.getSource() == btnCreate){String sex = new String();if (radio1.isSelected()){sex = radio1.getText().toString();}else{sex = radio2.getText().toString();}Teacher teacher = new Teacher(txtTno.getText(), txtTname.getText(), Integer.parseInt(txtTage.getText()), sex, txtTdegree.getText(),txtTtitle.getText(), txtTdept.getText());teachers[count++] = teacher;prompt.setText("成功创建" + "第" + count + "个教师!!!");}if(e.getSource() == btnshowAll&&count> 0){jta.setText(" ");for(int i = 0; i<count; i++){jta.append(teachers[i] + "\n");}}if(e.getSource() == btnSearch){jta.setText(" ");boolean find = false;String teacherName = txtTname.getText();for(int i = 0; i<count; i++)if(teachers[i].tname.equals(teacherName)){find = true;prompt.setText("找到" + teacherName);jta.append(teachers[i] + "\n");}if(find == false){prompt.setText("未找到该教师!!!");;}}}}publicclass testTeacher{publicstaticvoid main(String args[]){myFrame mf=new myFrame();mf.setSize(800,600);mf.setVisible(true);}}四.实验结果(请自己补充完整)五.实验的分析体会(请自己补充完整)对于此次试验,本来要求较简单,老师也把代码发给学生,但我本来想将职称之类弄成下拉菜单,但做好后发现无法读入选中的内容,我也不会。

相关文档
最新文档