JAVA大作业_2
江苏开放大学JAVA程序设计形考二作业
2023年春江苏开放大学JAV A程序设计形考二作业试题列表单选题题型:单选题客观题分值3分难度:简单得分:31已知有下面类的说明:public class X5_1_1 extends x{private float f =10.6f;int i=16;static int si=10;public static void main(String[] args) {X5_1_1 x=new X5_1_1();}}在main()方法中,下面哪条语句的用法是正确的?()Ax.fBthis.siCX5_1_1.iDX5_1_1.f正确答案:A题型:单选题客观题分值3分难度:简单得分:32下面关于接口的说法中不正确的是()。
A接口中所有的方法都是抽象的B接口中所有的方法都是public访问权限C子接口继承父接口所用的关键字是implements D接口是Java中的特殊类,包含常量和抽象方法正确答案:C老师点评:题型:单选题客观题分值3分难度:简单得分:3 3区分类中重载方法的依据是()A形参列表的类型和顺序B不同的形参名称C返回值的类型不同D访问权限不同正确答案:A题型:单选题客观题分值3分难度:简单得分:3 4Java语言类间的继承关系是()A单继承B多重继承C不能继承D不一定正确答案:A题型:单选题客观题分值3分难度:简单得分:3 5Java语言接口间的继承关系是()。
A单继承B多重继承C不能继承D不能继承正确答案:B老师点评:题型:单选题客观题分值3分难度:简单得分:3 6下列程序的运行结果是()。
public class X5_1_2 extends x{int ab(){static int aa=10;aa++;System.out.println(aa);}public static void main(String[] args) {X5_1_2 x=new X5_1_2();x.ab();}}A10B11C编译错误D运行成功,但不输出正确答案:C题型:单选题客观题分值3分难度:简单得分:3 7一个类实现接口的情况是()。
java程序设计大作业
Java程序设计大作业可能涉及多个方面,具体取决于你的课程要求和教师的要求。
以下是一个可能的Java程序设计大作业的示例:题目:设计并实现一个简单的计算器应用程序。
要求:1. 使用Java编写一个命令行应用程序,能够执行基本的数学运算(加、减、乘、除)。
2. 用户应该能够输入两个数字和一个运算符,程序将根据运算符执行相应的运算并输出结果。
3. 程序应该能够处理不同类型的数字(整数和浮点数)和运算符。
4. 程序应该能够处理输入错误,例如用户输入了无效的运算符或非数字字符。
示例代码:```javaimport java.util.Scanner;public class Calculator {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入第一个数字:");double num1 = scanner.nextDouble();System.out.print("请输入运算符(+、-、*、/):"); String operator = scanner.next();System.out.print("请输入第二个数字:");double num2 = scanner.nextDouble();double result = 0;switch (operator) {case "+":result = num1 + num2;break;case "-":result = num1 - num2;break;case "*":result = num1 * num2;break;case "/":if (num2 == 0) {System.out.println("除数不能为0!");return;} else {result = num1 / num2;}break;default:System.out.println("无效的运算符!");return;}System.out.println(num1 + " " + operator + " " + num2 + " = " + result);}}```在这个示例代码中,我们使用了`Scanner`类从用户那里获取输入。
电大 Java语言和WWW技术 实验作业2
实验1要求
• 读程序,给以下程序添加输出语句,以 显示m的值 • 调试并记录结果 • 画出m变量创建过程中内存的变化
实 验 1 程 序
public class MyDate { private int day = 1; private int month = 1; private int year = 2000; public MyDate(int d, int m, int y) { year = y; month = m; day = d; } public void display() { System.out.println(year + " / " + month+ " / " +day); } public static void main(String[] args) { MyDate m = new MyDate(1, 8, 2003); } }
实验5
• 将程序1 Parent类和程序2 Child类存于同一 包(目录)中,并调试程序,记录结果。 • 将程序1 Parent类存于当前包的子包parent 中,程序2 Child类存于当前包中,并调试 程序,记录结果。 • 比较以lass Parent{ private int f1 = 1; int f2 = 2; protected int f3 = 3; public int f4 = 4; private void fm1() { System.out.println("in fm1() f1=" + f1);} void fm2() { System.out.println("in fm2() f2=" + f2);} protected void fm3() { System.out.println("in fm3() f3=" + f3);} public void fm4() { System.out.println("in fm4() f4=" + f4);} }
JAVA 大作业 2
JA V A 大作业----------------------------------------------------------------------------------------------------------------------班级:计算112学号:110811224姓名:王勤东摘要已知数据库student表stl,编写程序,链接数据库,做图形界面,在其中有多个选项“添加”、“修改”、“删除”、“查询”等,根据用户选择的功能再输入相应的数据并完成相关功能。
用web实现。
目录一.实验步骤 (3)二.主要原代码及界面 (3)1.主界面 (5)2.添加界面 (7)3.修改界面 (9)一实验步骤:在MySQL Command Line Client中建数据库,运行以下代码:Enter password: ********* //密码Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 1Server version: 5.6.12 MySQL Community Server (GPL)Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> create database students;Query OK, 1 row affected (0.14 sec)mysql> use students;Database changedmysql> CREATE TABLE st1-> (-> no CHAR(9) NOT NULL,-> name CHAR(8) NOT NULL,-> sex CHAR(2) NOT NULL,-> birthday DATE NOT NULL,-> major VARCHAR(20) NOT NULL-> );Query OK, 0 rows affected (1.13 sec)mysql> insert into st1 values ('110814102', 'Tom','m','91-01-02','computer');Query OK, 1 row affected (0.09 sec)mysql> select * from st1;+-----------+------+-----+------------+----------+| no | name | sex | birthday | major |+-----------+------+-----+------------+----------+| 110814102 | Tom | m | 1991-01-02 | computer |+-----------+------+-----+------------+----------+1 row in set (0.03 sec)二主要原代码及界面:import java.sql.*;public class operatedb1{String driverName = "com.mysql.jdbc.Driver";String dbURL = "jdbc:mysql://localhost:3306/student";static int flag=0;static Connection dbConn;public operatedb1(String userName,String userPwd){try{dbConn = DriverManager.getConnection(dbURL, userName, userPwd);flag=1;}catch (Exception e) {System.out.println("connection error!");e.printStackTrace();} }}添加功能实现:import java.sql.*;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;public class addwebs1 extends HttpServlet{public void service(HttpServletRequest rq,HttpServletResponse rp) throws ServletException,IOException{String userName = "root"; //默认用户名String userPwd = "123456789"; //密码Connection dbConn;rp.setContentType("text/html;charset=gbk");PrintWriter out=rp.getWriter();String no=new String(rq.getParameter("no").getBytes("iso-8859-1"));String nm=new String(rq.getParameter("nm").getBytes("iso-8859-1"));String sx=new String(rq.getParameter("sx").getBytes("iso-8859-1"));String ag=new String(rq.getParameter("ag").getBytes("iso-8859-1"));String dp=new String(rq.getParameter("dp").getBytes("iso-8859-1"));try{if(operatedb1.flag==0){ new operatedb1(userName,userPwd);//生成operatedb1的对象,连接数据库out.println("flag==0");}if(operatedb1.flag==1){out.println("Connection Successful!");Statement stmt=operatedb1.dbConn.createStatement();String s1="insert into st1 values('";s1=s1+no+"','"+nm+"','"+sx+"','"+ag+"','"+dp+"')";out.println(s1);stmt.executeUpdate(s1);}}catch(Exception e){}out.println("Thank you ");}}Html 代码:<meta http-equiv="Content-Type" content="text/html; charset=gbk" /> <form action=addweb method=get>学号:<input type=text name=no> <br>姓名:<input type=text name=nm> <br>性别:<input type=text name=sx> <br>生日:<input type=date name=ag> <br>专业:<input type=text name=dp> <br><input type=submit value="提交"><input type="button" name="返回" value="返回"onClick="location.href='head.html'"/></form>删除功能实现:import java.sql.*;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;public class deletwebs extends HttpServlet{public void service(HttpServletRequest rq,HttpServletResponse rp) throws ServletException,IOException{String userName = "root"; //默认用户名String userPwd = "123456789"; //密码rp.setContentType("text/html;charset=gbk");PrintWriter out=rp.getWriter();String no=new String(rq.getParameter("yy").getBytes("iso-8859-1"));try{if(operatedb1.flag==0){new operatedb1(userName,userPwd);//生成operatedb1的对象,连接数out.println("flag==0"+ "<br>");}if(operatedb1.flag==1 ){out.println("Connection Successful!"+ "<br>");Statementstmt=operatedb1.dbConn.createStatement();String s1="delete from st1 where no='";String s=s1+no+"'";out.println(s+ "<br>");int f=stmt.executeUpdate(s);if(f==0)out.println("删除失败"+ "<br>");elseout.println("删除成功"+ "<br>");} }catch(Exception e){out.println(e);}out.println("Thank you ");} }Html 代码:<meta http-equiv="Content-Type" content="text/html; charset=gbk" /> <form action=deletweb method=get>输入学号:<input type=text name=yy> <br><input type=submit value="删除"><input type="button" name="返回" value="返回"onClick="location.href='head.html'"/></form>修改功能实现:import java.sql.*;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;public class updatewebs extends HttpServlet{public void service(HttpServletRequest rq,HttpServletResponse rp) throws ServletException,IOException{String userName = "root"; //默认用户名String userPwd = "123456789"; //密码Connection dbConn;rp.setContentType("text/html;charset=gbk");PrintWriter out=rp.getWriter();String no=new String(rq.getParameter("no").getBytes("iso-8859-1"),"gbk");String nm=new String(rq.getParameter("nm").getBytes("iso-8859-1"),"gbk");String sx=new String(rq.getParameter("sx").getBytes("iso-8859-1"),"gbk");String ag=new String(rq.getParameter("ag").getBytes("iso-8859-1"),"gbk");String dp=new String(rq.getParameter("dp").getBytes("iso-8859-1"),"gbk");try{if(operatedb1.flag==0){ new operatedb1(userName,userPwd);//生成operatedb1的对象,连接数据库out.println("flag==0");}if(operatedb1.flag==1){out.println("Connection Successful!"); //如果连接成功控制台输出Connection Successful!Statement stmt=operatedb1.dbConn.createStatement();String s1="update st1 set no='";s1=s1+no+"',name='"+nm+"',sex='"+sx+"',birthday='"+ag+"',major='"+dp +"'";out.println(s1);stmt.executeUpdate(s1); }}catch(Exception e){}out.println("Thank you ");}}Html 代码:<meta http-equiv="Content-Type" content="text/html; charset=gbk"/><form action=updateweb method=get>学号:<input type=text name=no> <br>姓名:<input type=text name=nm> <br>性别:<input type=text name=sx> <br>生日:<input type=date name=ag> <br>专业:<input type=text name=dp> <br><input type=submit value="修改"><input type="button" name="返回" value="返回"onClick="location.href='head.html'"/></form>查询功能实现:import java.sql.*;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;public class showwebs extends HttpServlet{public void service(HttpServletRequest rq,HttpServletResponse rp) throws ServletException,IOException{String userName = "root"; //默认用户名String userPwd = "123456789"; //密码rp.setContentType("text/html;charset=gbk");PrintWriter out=rp.getWriter();String no=new String(rq.getParameter("xx").getBytes("iso-8859-1"));try{if(operatedb1.flag==0){new operatedb1(userName,userPwd);//生成operatedb1的对象,连接数out.println("flag==0"); }if(operatedb1.flag==1){out.println("Connection Successful!"); //如果连接成功控制台输出Connection Successful!Statementstmt=operatedb1.dbConn.createStatement();//String s1="select * from st1 where no='";String s=s1+no+"'";out.println(s + "<br>");ResultSet rset=stmt.executeQuery(s);while(rset.next()){out.println(rset.getString(1)+""+rset.getString(2)+" "+rset.getString(3)+" "+rset.getString(4)+""+rset.getString(5)+"<br>");} } }catch(Exception e){out.println(e);}out.println("Thank you "); } }Html 代码:<meta http-equiv="Content-Type" content="text/html; charset=gbk" /> <form action=showweb method=get>输入学号:<input type=text name=xx> <br><input type=submit value="查询"><input type="button" name="返回" value="返回"onClick="location.href='head.html'"/></form>WEB.xml 代码如下:<web-app xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_2_5.xsd"version="2.5"><display-name>Welcome to Tomcat</display-name><description>Welcome to Tomcat</description><servlet><servlet-name>adds</servlet-name><servlet-class>addwebs1</servlet-class></servlet><servlet-mapping><servlet-name>adds</servlet-name><url-pattern>/addweb</url-pattern></servlet-mapping><servlet><servlet-name>shows</servlet-name><servlet-class>showwebs</servlet-class></servlet><servlet-mapping><servlet-name>shows</servlet-name><url-pattern>/showweb</url-pattern></servlet-mapping><servlet><servlet-name>deles</servlet-name><servlet-class>deletwebs</servlet-class></servlet><servlet-mapping><servlet-name>deles</servlet-name><url-pattern>/deletweb</url-pattern></servlet-mapping><servlet><servlet-name>update</servlet-name><servlet-class>updatewebs</servlet-class> </servlet><servlet-mapping><servlet-name>update</servlet-name><url-pattern>/updateweb</url-pattern></servlet-mapping></web-app>。
java作业2
}
}
class NonSpecialist extends Doctor{
public NonSpecialist(String name, int idNumber, String address) {
super(name, idNumber, address);
}
}
class Specialist extends Doctor{
{
c= a + b;
}
}
class TextConcatenation extvoid add()
{
s3= s1 + s2;
}
}
public class AdditionTest {
public static void main(String[] args)
要求:两道题的文件(包含源程序和.class文件)放在一个文件夹里,文件夹用“学号最后两位+姓名”命名,如:“01张三”。
1、医生有姓名(name)、编号(idNumber)和地址(address)等基本信息,医生又分为专业医生和非专业医生。非专业医生所具有的信息与上述的一样,但专业医生除了具有上述的基本信息外,还有特有的信息:专业(speciality)。试根据他们之间的关系,创建一个Doctor类,以包含有关医生的基本信息,再利用继承创建一个非专业医生类NonSpecialist和一个专业医生类Specialist,并利用这些类的对象显示他们各自的信息。
{
NumberAddition e1 = new NumberAddition();
TextConcatenation e2 = new TextConcatenation();
java课堂作业02
1.用abstract修饰的类必须被继承。
2.一个Java类可以有多个父类,这称作多继承。
3.一个Java源程序中允许有多个公共类。
4.对static方法的调用不需要类实例5.用static修饰的方法称为静态方法,它不属于类的一个具体对象。
6.可以用new来创建一个类的实例,即对象。
7.continue语句用在循环结构中表示继续执行下一次循环。
8.保留字this代表当前对象。
9.声明为final的方法不能在子类中重载。
10.类的public类型的成员变量不可以被继承。
11.Java的double类型是16位的。
12.任何的Applet都完全不能访问本地资源13.Application是从其中的main()方法开始运行的。
14.abstract是抽象修饰符,可以用来修饰类及其属性和方法。
15.用Javac编译Java源文件后得到代码叫字节码。
16.static变量不能是private变量。
17.接口中变量的值其实是常量,是不能改变的。
18.抽象类不能实例化19.一个异常处理中finally语句块只能有一个或者可以没有。
20.Java源程序的文件名必须和公共类的类名相同。
21.Java支持多继承。
22.Java支持多线程机制。
23.Java源代码中定义几个类,编译结果就生成几个以.class为后缀字节码文件。
24.Java中的的字符使用的是16位的Unicode编码。
25.一个类的定义包括定义类头和定义类体两个部分。
26.数组一定占用连续的内存空间。
27.在面向对象方法中,类的实例称为对象。
28.子类的对象能直接向其父类对象赋值。
29.抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。
30.构造方法的方法名可由编程人员任意命名。
31.一个方法最多能有一个return语句。
32.抽象方法只能存在于抽象类中。
33.构造方法没有任何返回类型,哪怕是void也不行34.重载的方法可以通过它们的返回值类型的不同来区分。
java期末考试题及答案大二
java期末考试题及答案大二一、选择题(每题2分,共20分)1. Java中,下列哪个关键字用于声明一个类?A. classB. interfaceC. structD. enum答案:A2. 下列哪个选项是Java中的合法标识符?A. 2variableB. variable2C. -variableD. variable$答案:B3. 在Java中,下列哪个数据类型是引用数据类型?A. intB. floatC. StringD. boolean答案:C4. Java中的main方法必须定义为:A. public static void main(String[] args)B. private static void main(String[] args)C. public static int main(String[] args)D. public static void main()答案:A5. 下列哪个选项是Java中的垃圾回收机制?A. 程序员手动释放内存B. 操作系统自动回收C. 垃圾回收器自动回收D. 编译器自动回收答案:C6. Java中,下列哪个关键字用于实现多态?A. abstractB. finalC. staticD. super答案:A7. 在Java中,下列哪个选项不是线程安全的?A. StringB. IntegerC. VectorD. ArrayList答案:D8. Java中,下列哪个关键字用于声明一个接口?A. classB. interfaceC. abstractD. final答案:B9. 在Java中,下列哪个选项是正确的继承关系?A. 类可以继承多个类B. 类可以实现多个接口C. 接口可以继承多个接口D. 类可以实现多个类答案:C10. Java中,下列哪个关键字用于抛出异常?A. throwB. throwsC. catchD. finally答案:B二、填空题(每题2分,共20分)1. Java中,布尔型数据的两个值是________和________。
大二java期末试题及答案
大二java期末试题及答案(本文按照试题和答案的格式来进行书写)大二Java期末试题及答案试题:题目一:Java的特点以及应用领域。
答案:Java是一种跨平台、面向对象的编程语言,具有以下几个特点:1. 简单易学:Java的语法相对简单,与C++相比,Java去除了一些复杂的特性,使得初学者更容易上手。
2. 跨平台性:Java的编译器将Java源代码编译为字节码,而不是直接编译为机器码,这样可以在不同的操作系统上运行Java程序。
只需要在特定平台上安装Java虚拟机(Java Virtual Machine, JVM),即可实现跨平台运行。
3. 面向对象:Java是一种完全面向对象的编程语言,所有的数据都是对象,所有的操作都是方法调用。
4. 垃圾回收:Java具有自动内存管理的特性,通过垃圾回收器来回收不再使用的对象所占用的内存空间,减轻了开发者的内存管理负担。
5. 安全性:Java拥有安全性机制,如对内存的访问进行控制、强制进行类型检查等,避免了一些常见的安全漏洞。
Java的应用领域包括但不限于:1. 网络编程:Java提供了丰富的网络编程类库,支持TCP/IP和UDP等协议,可以用于开发网络服务器和客户端应用。
2. 移动应用开发:通过Java开发Android应用,可以利用Java的跨平台特性,在不同的Android设备上运行。
3. 企业级应用开发:Java提供了一系列的企业级编程框架(如Spring、Hibernate等),可以用于开发大规模的企业级应用。
4. 大数据处理:Java提供了Hadoop、Spark等大数据处理框架,支持海量数据的分布式处理和分析。
题目二:什么是多态性?请用Java代码示例说明。
答案:多态性是面向对象编程中的重要概念,指的是同一类型的对象,在不同的情况下可以表现出不同的行为。
在Java中,多态性通过继承和接口实现。
Java代码示例:```java// 父类class Animal {void makeSound() {System.out.println("Animal makes sound.");}}// 子类1class Dog extends Animal {@Overridevoid makeSound() {System.out.println("Dog barks."); }}// 子类2class Cat extends Animal {@Overridevoid makeSound() {System.out.println("Cat meows."); }}public class PolymorphismExample {public static void main(String[] args) { Animal animal1 = new Dog();Animal animal2 = new Cat();animal1.makeSound(); // 输出:Dog barks.animal2.makeSound(); // 输出:Cat meows.}}```在上述示例中,Animal作为父类,Dog和Cat作为子类。
JAVA大作业
商务学院课程论文题目: JAVA期末大作业姓名:王姗学号: 2007030331205 学院:商务学院专业:信息管理与信息系统指导教师:沈桂兰2010年12 月7 日JA V A期末大作业一、系统的功能介绍本系统是一个聊天室系统分为服务端与客户端,服务端有发送和退出功能,客户端有连接、发送、退出功能,客户端可以通过连接与服务端连接上,向服务端发送数据,服务端可以通过客户端的连接,接受客户端发送的数据,也可以向客户端发送数据。
且本系统与数据库进行连接,数据库记载了聊天记录和所有登录用户端信息。
二、界面的设计截图(一)服务器(二)客户端三、核心代码说明(一)ClientWindow的代码package ws;import java.awt.*;import javax.swing.*;import java.io.*;import .*;public class ClientWindow extends Thread{static ClientFrame myWindow = new ClientFrame("聊天室:客户");public static void main(String args[]){myWindow.setBounds(50,100,400,300);myWindow.setVisible(true);Thread receiver = new ServerWindow();receiver.setDaemon(true); //后台程序receiver.start();//创建并启动接收线程}public void run() //接收信息线程{boolean done = true;while(done){//接收信息//如不为空,则在输出文本区显示//否则,done=false;try{String str=myWindow.in.readLine(); //接收服务器信息if(str!=null)myWindow.showText("服务器:"+str);}catch(IOException e){System.out.println("连接断开!");done = false;}}}}(二)ClientFrame的代码package ws;import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.io.*;import .*;import javax.swing.border.*;public class ClientFrame extends JFrame //创建JFrame的子类{public Socket socket=null; //连接时获取的socket放在这里public BufferedReader in=null; //从这里读入数据public PrintWriter out=null; //从这里输出数据public boolean connectFlag=false; //当建立连接时,该标志为trueprivate Container content = getContentPane();private JTextArea text= new JTextArea(30,100); //生成输出文本组件private JTextArea keyIn= new JTextArea(30,100); //生成输入文本组件public static final int CONNECT=001; //按钮标示号public static final int SEND=002;public static final int QUIT=003;public ClientFrame(String title) //构造方法{super(title); //调用JFrame的构造方法setDefaultCloseOperation(EXIT_ON_CLOSE);Box room = Box.createVerticalBox(); //创建聊天室text.setEditable(false);text.setLineWrap(true);JScrollPane scrollText=new JScrollPane(text); //加滚动条scrollText.setAutoscrolls(true);scrollText.setPreferredSize(new Dimension(400,1000));room.add(scrollText);keyIn.setLineWrap(true);JScrollPane scrollKey=new JScrollPane(keyIn); //加滚动条scrollKey.setAutoscrolls(true);room.add(scrollKey);JPanel control = new JPanel(); //创建控制面板Dimension size =new Dimension(80,20);Border border = BorderFactory.createRaisedBevelBorder();JButton connect = new JButton("连接") ;JButton send = new JButton("发送");JButton quit = new JButton("退出");connect.setBorder(border);send.setBorder(border);quit.setBorder(border);connect.setPreferredSize(size);send.setPreferredSize(size);quit.setPreferredSize(size);connect.addActionListener(new ControlAction(CONNECT));send.addActionListener(new ControlAction(SEND));quit.addActionListener(new ControlAction(QUIT));control.add(connect);control.add(send);control.add(quit);room.add(control);content.add(room,BorderLayout.CENTER);}public void showText(String str) //在输出文本区显示文本{text.append(str+"\n");}class ControlAction implements ActionListener //按钮事件处理{int controlType=CONNECT;public ControlAction(int type){controlType = type;}public void actionPerformed(ActionEvent e){switch (controlType){case CONNECT: //按了连接键if(!connectFlag){try{socket=newSocket("192.168.1.85",8189); //与服务器建立连接connectFlag = true;in =new BufferedReader(new InputStreamReader(socket.getInputStream())); //输入数据流//创建并启动接收线程out =newPrintWriter(socket.getOutputStream(),true); //输出数据流//boolean done = true;}catch(IOException ie){System.out.println("连接断开!");connectFlag = true;}}break;case SEND://按了发送键if (connectFlag){String keyText= keyIn.getText();//在输出文本区显示输入的文本showText("客户:"+keyText);//发送键入的文本keyIn.setText("");out.println(keyText); //将输入文本发送给服务器}break;case QUIT: //按了退出键connectFlag = false;try{out.println("QUIT");out.close();in.close();System.exit(1);socket.close();}catch (IOException ioe){}}}}}(三)ServerWindow的代码package ws;import java.awt.*;import javax.swing.*;import java.io.*;import .*;public class ServerWindow extends Thread{public static ServerFrame myWindow = new ServerFrame("聊天室:服务器");public static ServerSocket serverSocket = null;public static void main(String args[]){myWindow.setBounds(500,100,400,300);myWindow.setVisible(true);myWindow.showText("等待连接....");try{ServerSocket serverSocket=new ServerSocket(8189); //建立服务器socket,port=8189Socket incoming = serverSocket.accept(); //等待客户建立连接myWindow.connectFlag = true;myWindow.in =new BufferedReader(newInputStreamReader(incoming.getInputStream())); //输入数据流myWindow.out =new PrintWriter(incoming.getOutputStream(),true); //输出数据流*/myWindow.showText("连接建立!");myWindow.out.println("连接建立!请发送信息,输入BYE 结束\n"); //向客户发登录信息Thread receiver = new ServerWindow();receiver.setDaemon(true); //后台程序receiver.start();//创建并启动接收线程}catch (IOException e){myWindow.showText(""+e);}}public void run() //接收信息线程{boolean done = true;while(done){//接收信息//如不为空,则在输出文本区显示//否则,done=false;try{String str=myWindow.in.readLine(); //接收服务器信息if(str!=null)myWindow.showText("客户:"+str);}catch(IOException ie){System.out.println("连接断开!");done = false;}}}}(四)ServerFrame的代码package ws;import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.io.*;import .*;import javax.swing.border.*;public class ServerFrame extends JFrame //创建JFrame的子类{public Socket socket=null; //连接时获取的socket放在这里public BufferedReader in=null; //从这里读入数据public PrintWriter out=null; //从这里输出数据public boolean connectFlag=false; //当建立连接时,该标志为true public static ServerSocket serverSocket = null;private Container content = getContentPane();private JTextArea text= new JTextArea(30,100); //生成输出文本组件private JTextArea keyIn= new JTextArea(30,100); //生成输入文本组件public static final int CONNECT=001;public static final int SEND=002;public static final int QUIT=003;public ServerFrame(String title) //构造方法{super(title); //调用JFrame的构造方法setDefaultCloseOperation(EXIT_ON_CLOSE);Box room = Box.createVerticalBox();text.setEditable(false);text.setLineWrap(true);JScrollPane scrollText=new JScrollPane(text); //加滚动条scrollText.setAutoscrolls(true);scrollText.setPreferredSize(new Dimension(400,1000));room.add(scrollText);keyIn.setLineWrap(true);JScrollPane scrollKey=new JScrollPane(keyIn); //加滚动条scrollKey.setAutoscrolls(true);room.add(scrollKey);JPanel control = new JPanel();Dimension size =new Dimension(80,20);Border border = BorderFactory.createRaisedBevelBorder();JButton connect = new JButton("连接") ;JButton send = new JButton("发送");JButton quit = new JButton("退出");connect.setBorder(border);send.setBorder(border);quit.setBorder(border);connect.setPreferredSize(size);send.setPreferredSize(size);quit.setPreferredSize(size);// connect.addActionListener(new ControlAction(CONNECT));send.addActionListener(new ControlAction(SEND));quit.addActionListener(new ControlAction(QUIT));// control.add(connect);control.add(send);control.add(quit);room.add(control);content.add(room,BorderLayout.CENTER);}public void showText(String str){text.append(str+"\n");}class ControlAction implements ActionListener //按钮事件处理{int controlType=CONNECT;public ControlAction(int type){controlType = type;}public void actionPerformed(ActionEvent e){switch (controlType){case SEND: //按了发送按钮if (connectFlag){String keyText= keyIn.getText();//在输出文本区显示输入的文本showText("服务器:"+keyText);//发送键入的文本keyIn.setText("");out.println(keyText);//将输入文本发送给服务器}break;case QUIT: //按了退出按钮connectFlag = false;try{out.println("QUIT");out.close();in.close();System.exit(1);}catch (IOException ioe){System.out.println("Quit Error!!");}}}}}四、涉及到的知识点的说明窗体(Frame)――容器(Container) ――(设置容器布局)――面板(Panel)――(设置面板布局)――控件、1 窗体在Java 程序中,我们如果想创建并运行一个窗体,就必须让我们编写的类继承自JFrame 类,而使用JFrame 类之前必须导入java.awt.* 和java.swing.* 如:public class ClientWindow extends Thread{static ClientFrame myWindow = new ClientFrame("聊天室:客户");public static void main(String args[]){myWindow.setBounds(50,100,400,300);myWindow.setVisible(true);Thread receiver = new ServerWindow();receiver.setDaemon(true); //后台程序receiver.start();//创建并启动接收线程}public void run() //接收信息线程{boolean done = true;while(done){//接收信息//如不为空,则在输出文本区显示//否则,done=false;try{String str=myWindow.in.readLine(); //接收服务器信息if(str!=null)myWindow.showText("服务器:"+str);}catch(IOException e){System.out.println("连接断开!");done = false;}}}}2窗体中的Container如果我们要往空白的窗体中加入其它东西,我们首先需要一个Container(容器)为基础,就像在一个中空的架子上搭了一块木板,然后我们就可以在板子上放我们想放的东西。
java作业2
学号_________________ 专业______________________ 姓名_____________________实验日期_________________ 教师签字__________________ 成绩______________________实验报告实验名称________________________________________________实验目的(1)熟悉java的异常处理机制(2)掌握java输入输出流,学会从键盘输入(3)掌握java中对文件的操作,学会向文件中输入和从文件读出实验原理(1)java中异常处理是一种非常有用的辅助性程序设计方法,采用这种方法可以使得在程序设计时将程序的正常流程与错误处理分开,有利于代码的编写与维护。
(2)java语言将文件看作字节或字符序列的集合,java语言将文件与标准输入或输出统一起来进行管理。
实验内容1.执行习题6.4,分析其运行结果。
2.编写程序,从命令行输入两个整数进行相除,输出商和余数,并将结果保存在某个文件中,进行必要的异常处理。
3.编写一个程序,在程序中构造一个学生类,成员变量包括学号、姓名、性别、年龄、系别等,可添加其他属性。
新建一个学生类的对象,用自己的相应信息进行初始化,在程序中使用对象串行化将该对象保存到某个文件中,然后从该文件中读出此对象并显示。
(1)代码public class J_Test {public static void mb_createException(){throw new ArrayIndexOutOfBoundsException();}public static void mb_method(){try{mb_createException();System.out.print("a");}catch (ArithmeticException e){System.out.print("b");}finally{System.out.print("c");}}public static void main(String args[]){try{mb_method();}catch (Exception e){System.out.print('m');}System.out.print('n');}}运行结果:cmn结果分析:代码从main入口,在try{mb_method();}中调用mb_method(),在mb_method中定义了异常,所以代码执行到mb_createException()跳出try块,执行catch,但catch捕捉异常与mb_createException() 抛出异常不匹配,所以转到执行finally语句,所以输出c;回到主方法,try块出现异常,catch块捕捉异常,所以输出m,接着代码顺序执行,输出n。
java作业2
【程序1】题目:输入三个整数x,y,z,请把这三个数由小到大输出。
import java.util.*;public class lianxi15 {public static void main(String[] args) {input fnc = new input();int x=0, y=0, z=0;System.out.print("输入第一个数字:");x = fnc.input();System.out.print("输入第二个数字:");y = fnc.input();System.out.print("输入第三个数字:");z = fnc.input();if(x > y) {int t = x;x = y;y = t;}if(x > z) {int t = x;x = z;z = t;}if(y > z) {int t = y;y = z;z = t;}System.out.println( "三个数字由小到大排列为:"+x + " " + y + " " + z);}}class input{public int input() {int value = 0;Scanner s = new Scanner(System.in);value = s.nextInt();return value;}}【程序2】题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
import java.util.*;public class lianxi08 {public static void main(String[] args) {long a , b = 0, sum = 0;Scanner s = new Scanner(System.in);System.out.print("输入数字a的值:");a = s.nextInt();System.out.print("输入相加的项数:");int n = s.nextInt();int i = 0;while(i < n) {b = b + a;sum = sum + b;a = a * 10;++ i;}System.out.println(sum);}}【程序3】题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?public class lianxi10 {public static void main(String[] args) {double h = 100,s = 100;for(int i=1; i<10; i++) {s = s + h;h = h / 2;}System.out.println("经过路程:" + s);System.out.println("反弹高度:" + h / 2);}}【程序4】题目:企业发放的奖金根据利润提成。
java大二期末考试题及答案
java大二期末考试题及答案一、选择题(每题2分,共20分)1. 在Java中,以下哪个关键字用于声明一个类?A. classB. interfaceC. enumD. struct答案:A2. Java中,哪个关键字用于声明一个方法?A. classB. methodC. functionD. void答案:D3. 以下哪个选项是Java中的合法标识符?A. 2variableB. variable2C. variable!D. $variable答案:B4. Java中,哪个关键字用于抛出异常?A. throwB. throwsC. catchD. exception答案:B5. 在Java中,以下哪个是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello\nWorld"D. "Hello\"World"答案:A6. Java中,哪个关键字用于定义一个接口?A. classB. interfaceC. abstractD. package答案:B7. 在Java中,以下哪个是正确的数组声明?A. int[] myArray;B. int myArray[];C. int[] myArray[] = new int[5][5];D. int myArray[] = new int[5][];答案:A8. Java中,哪个关键字用于实现多重继承?A. extendsB. implementsC. interfaceD. abstract答案:B9. 在Java中,以下哪个是正确的循环结构?A. forB. whileC. do-whileD. All of the above答案:D10. Java中,哪个关键字用于声明一个泛型类?A. genericB. typeC. classD. extends答案:C二、填空题(每题2分,共20分)1. Java中,用于声明一个变量的关键字是________。
第二次Java作业
第⼆次Java作业1.编写“⼈”类及其测试类。
1.1 “⼈”类:
类名:Person
属性:姓名、性别、年龄、⾝份证号码
⽅法:在控制台输出各个信息
1.2 测试类
类名:TestPerson
⽅法:main
对象:(张三,男,18,430101010101010101)
(李四,⼥,18,123456789009876543)
属性:⼿机品牌、⼿机型号 ⽅法:在控制台输出⼿机信息2.2 测试类
类名:TestPhone
⽅法:main
对象:(华为,荣耀3C)(联想,A3600D)
(⼩⽶,note)
属性:书名、书号、主编、出版社、出版时间、页数、价格 ⽅法:在控制台输出每本书的信息
3.2 测试类
创建2个对象,并调⽤⽅法
4.编写“圆柱体”类及其测试类。
4.1 “圆柱体”类
属性:圆底半径、⾼,
⽅法1:计算底⾯积
⽅法2:计算体积
⽅法3:打印圆底半径、⾼、底⾯积和体积。
4.2 测试类
创建2个对象,并调⽤⽅法
⼼得体会:对于各类代码的功能的运⽤还不是很熟练,敲打代码的速度并不是很快,还存在着许多问题。
java面向对象课程大作业
(3)参考了书本,并结合其他代码。我又添加了两种方法的音乐【背 景音乐和钟表的伴奏声】:
• • • • • • • • • //第一种方法 //play(getDocumentBase(),"六月的雨.mid "); //播放背景音乐" 六月的 雨.wav "播放一遍 //第一种方法 AudioClip clip;//在下面循环播放歌曲是的定义 clip = getAudioClip(getCodeBase(),"六月的雨.mid");//添加背景声音 clip.play();//循环播放 //循环播放歌曲的功 能 clip.loop();//循环播放 // play(getDocumentBase(),"Device Failed.wav"); //播放音乐"Device Failed.wav"与秒针同步的声音//
(5)由于指针的运动会导致窗口汉字符号随着repaint()和刷新二产生闪烁, 所以又添加克服屏幕闪烁的两种方法,其中双缓冲的比较好。
/* 克服屏幕闪烁的方法一 */ public void update1(Graphics g) { paint(g); } /* 克服屏幕闪烁的方法二 *//* 双缓冲技术 */ Image offImage; Graphics offGraphics; public void update(Graphics g) { if ((offGraphics == null)){ offImage = createImage(getWidth(),getHeight()); offGraphics = offImage.getGraphics(); } offGraphics.setColor(getBackground()); offGraphics.fillRect(0, 0, getWidth(),getHeight()); paint(offGraphics); g.drawImage(offImage, 0, 0, null); }
Java程序设计_大作业
Java程序设计_大作业专业:计算机科学与技术专业学号:1245713131姓名:2014年12月10日目录作业内容: (2)1.IPublisherDao接口: (3)2.IPublisherDao类: (4)3.Publisher类: (13)4.DataBaseConnection类: (15)5.TestFrame类: (18)6.RunApplication类: (29)具体运行结果: (29)总结: (33)大作业:Java 数据库程序设计作业内容:图书馆要进行出版商的统计,如下图所示。
要求创建一个具有交互功能的用户接口的出版商信息应用程序,列表的信息从数据库查询,动态添加。
该应用程序应该使管理人员能够从出版商表中添加、更新信息。
要求使用PreparedStatement对象创建SQL语句。
1.IPublisherDao接口:package com.zy.dao;import java.util.List;import com.zy.entity.Publisher;public interface IPublisherDao {public boolean doCreate(Publisher publisher) throws Exception;public boolean doUpdate(Publisher publisher) throws Exception;public boolean doDelete(String id) throws Exception;public Publisher findById(String id) throws Exception;public List<Publisher> findAll(String keyword) throws Exception;public List<Publisher> all() throws Exception;}2.IPublisherDao类:package com.zy.dao;import java.sql.Connection;import java.sql.ResultSet;import java.sql.PreparedStatement;import java.util.ArrayList;import java.util.List;import com.zy.entity.Publisher;import com.zy.jdbc.DataBaseConnection;public class IPublisherDaoImpl implements IPublisherDao{ private DataBaseConnection jdbc=null;private Connection con=null;public IPublisherDaoImpl(){this.jdbc=new DataBaseConnection();this.con=this.jdbc.getConnection();}@Overridepublic boolean doCreate(Publisher publisher) throws Exception {boolean flag=false;PreparedStatement pstmt=null;ResultSet rs=null;String sql="INSERT INTOPublisher(Publisher_ID,Publisher_Name,Phone_Number,Address, City,State,Zip) VALUES(?,?,?,?,?,?,?)";try{pstmt= this.con.prepareStatement(sql);pstmt.setString(1,publisher.getPublisherId() );pstmt.setString(2, publisher.getPublisherName());pstmt.setString(3,publisher.getPhoneNum());pstmt.setString(4,publisher.getAddress());pstmt.setString(5,publisher.getCity());pstmt.setString(6,publisher.getState());pstmt.setString(7,publisher.getZip());if(pstmt.executeUpdate()>0){flag=true;}}catch(Exception e){throw e;}finally{this.jdbc.closeAll(con, pstmt, rs);}return flag;}@Overridepublic boolean doUpdate(Publisher publisher) throws Exception {boolean flag=false;PreparedStatement pstmt=null;ResultSet rs=null;String sql="UPDATE Publisher SETPublisher_Name=?,Phone_Number=?,Address=?,City=?,State=?,Zi p=? WHERE Publisher_ID=?";try{pstmt= this.con.prepareStatement(sql);pstmt.setString(1, publisher.getPublisherName());pstmt.setString(2,publisher.getPhoneNum());pstmt.setString(3,publisher.getAddress());pstmt.setString(4,publisher.getCity());pstmt.setString(5,publisher.getState());pstmt.setString(6,publisher.getZip());pstmt.setString(7,publisher.getPublisherId());System.out.println("更新成功");if(pstmt.executeUpdate()>0){flag=true;}}catch(Exception e){throw e;}finally{this.jdbc.closeAll(con, pstmt, rs);}return flag;}@Overridepublic boolean doDelete(String id) throws Exception { boolean flag=false;PreparedStatement pstmt=null;ResultSet rs=null;String sql="DELETE FROM Publisher WHERE Publish_ID=?";try{pstmt= this.con.prepareStatement(sql);pstmt.setString(1, id);if(pstmt.executeUpdate()>0){flag=true;}}catch(Exception e){throw e;}finally{this.jdbc.closeAll(con, pstmt, rs);}return flag;}@Overridepublic Publisher findById(String id) throws Exception { Publisher publisher=null;PreparedStatement pstmt=null;ResultSet rs=null;String sql="SELECTPublisher_ID,Publisher_Name,Phone_Number,Address,City,State ,Zip FROM publisher WHERE Publisher_ID like ?";System.out.println(id);try{pstmt= this.con.prepareStatement(sql);System.out.println("*************");//pstmt.setString(1,id);pstmt.setString(1,id);rs=pstmt.executeQuery();if(rs.next()){System.out.println("按照ID查询成功");publisher =new Publisher();publisher.setPublisherId(rs.getString(1));publisher.setPublisherName(rs.getString(2));publisher.setPhoneNum(rs.getString(3));publisher.setAddress(rs.getString(4));publisher.setCity(rs.getString(5));publisher.setState(rs.getString(6));publisher.setZip(rs.getString(7));}}catch(Exception e){throw e;}finally{this.jdbc.closeAll(con, pstmt, rs);}return publisher;}@Overridepublic List<Publisher> findAll(String keyword) throws Exception {List<Publisher> all=new ArrayList<Publisher>();PreparedStatement pstmt=null;ResultSet rs=null;String sql="SELECTPublisher_ID,Publisher_Name,Phone_Number,Address,City,State ,Zip FROM publisher WHERE Publisher_ID like ? OR Publisher_Name like ? OR Phone_Number like ? OR Address like ? OR City like ? OR State like ? OR Zip like ?";try{pstmt= this.con.prepareStatement(sql);pstmt.setString(1,"%"+keyword+"%");pstmt.setString(2,"%"+keyword+"%");pstmt.setString(3,"%"+keyword+"%");pstmt.setString(4,"%"+keyword+"%");pstmt.setString(5,"%"+keyword+"%");pstmt.setString(6,"%"+keyword+"%");pstmt.setString(7,"%"+keyword+"%");rs=pstmt.executeQuery();while(rs.next()){Publisher publisher =new Publisher();publisher.setPublisherId(rs.getString(1));publisher.setPublisherName(rs.getString(2));publisher.setPhoneNum(rs.getString(3));publisher.setAddress(rs.getString(4));publisher.setCity(rs.getString(5));publisher.setState(rs.getString(6));publisher.setZip(rs.getString(7));all.add(publisher);}}catch(Exception e){throw e;}finally{this.jdbc.closeAll(con, pstmt, rs);}return all;}@Overridepublic List<Publisher> all() throws Exception { List<Publisher> all=new ArrayList<Publisher>();PreparedStatement pstmt=null;ResultSet rs=null;String sql="SELECTPublisher_ID,Publisher_Name,Phone_Number,Address,City,State ,Zip From publisher";try{pstmt= this.con.prepareStatement(sql);rs=pstmt.executeQuery();while(rs.next()){Publisher publisher =new Publisher();publisher.setPublisherId(rs.getString(1));publisher.setPublisherName(rs.getString(2));publisher.setPhoneNum(rs.getString(3));publisher.setAddress(rs.getString(4));publisher.setCity(rs.getString(5));publisher.setState(rs.getString(6));publisher.setZip(rs.getString(7));all.add(publisher);}}catch(Exception e){throw e;}finally{this.jdbc.closeAll(con, pstmt, rs);}return all;}}3.Publisher类:package com.zy.entity;public class Publisher {private String publisherId;private String publisherName;private String phoneNum;private String address;private String city;private String state;private String zip;public String getPublisherId() {return publisherId;}public void setPublisherId(String publisherId) { this.publisherId = publisherId;}public String getPublisherName() {return publisherName;}public void setPublisherName(String publisherName) { this.publisherName = publisherName;}public String getPhoneNum() {return phoneNum;}public void setPhoneNum(String phoneNum) { this.phoneNum = phoneNum;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public String getCity() {return city;}public void setCity(String city) {this.city = city;}public String getState() {return state;}public void setState(String state) { this.state = state;}public String getZip() {return zip;}public void setZip(String zip) { this.zip = zip;}}4.DataBaseConnection类:package com.zy.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;import java.util.ResourceBundle;public class DataBaseConnection { private Connection con;// 获取连接的方法public DataBaseConnection() {// 读取数据库配置文件ResourceBundle bundle =ResourceBundle.getBundle("ConnDB");String myDriver = bundle.getString("driver");String url = bundle.getString("url");String username = bundle.getString("username");String pwd = bundle.getString("pwd");try {// 加载驱动Class.forName(myDriver);// 获取链接con = DriverManager.getConnection(url, username, pwd);System.out.println("成功!");} catch (ClassNotFoundException e) {// TODO Auto-generated catch blockSystem.out.println("失败1");e.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blockSystem.out.println("失败2");e.printStackTrace();}}public Connection getConnection() {return this.con;}/*** 关闭连接** @param con* 连接* @param pstmt* 处理器* @param rs* 结果集*/public void closeAll(Connection con, Statement pstmt, java.sql.ResultSet rs) {try {if (rs != null) {rs.close();rs = null;}if (pstmt != null) {pstmt.close();pstmt = null;}if (con != null) {con.close();con = null;}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}5.TestFrame类:package com.zy.ui;import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.util.Vector;import javax.swing.BorderFactory;import javax.swing.Box;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;import com.zy.dao.IPublisherDaoImpl;import com.zy.entity.Publisher;public class TestFrame extends JFrame implements ActionListener, ItemListener {private JButton insertJButton, updateJButton, clearJButton, exitJButton;private JTextField idJTextField, nameJTextField, phonenumJTextField,addressJTextField, cityJTextField, stateJTextField, zipJTextField;private JComboBox<String> jBox;private JLabel title;private JPanel jPanel, jPanel2, jPanel3, jPanel4, jPanel5; private IPublisherDaoImpl IP;private Publisher publisher = null;private Vector<Publisher> vector2 = null;private Vector<String> vector = null;Box boxV1, boxV2;@SuppressWarnings("static-access")public TestFrame() {publisher = new Publisher();IP = new IPublisherDaoImpl();try {vector2 = new Vector<Publisher>(IP.all());} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}vector = new Vector<String>();int k = 0;while (k < vector2.size()) {vector.add(vector2.get(k).getPublisherId());k++;}idJTextField = new JTextField(16); nameJTextField = new JTextField(16); phonenumJTextField = new JTextField(16); addressJTextField = new JTextField(16); cityJTextField = new JTextField(16); stateJTextField = new JTextField(16); zipJTextField = new JTextField(16);boxV1 = Box.createVerticalBox();boxV1.add(new JLabel("Publisher ID:")); boxV1.add(Box.createVerticalStrut(10)); boxV1.add(new JLabel("Publishers Name:")); boxV1.add(Box.createVerticalStrut(10)); boxV1.add(Box.createVerticalStrut(5)); boxV1.add(new JLabel("Phone Number:")); boxV1.add(Box.createVerticalStrut(10)); boxV1.add(Box.createVerticalStrut(10)); boxV1.add(new JLabel("Address:"));boxV1.add(Box.createVerticalStrut(10)); boxV1.add(Box.createVerticalStrut(5)); boxV1.add(new JLabel("City:"));boxV1.add(Box.createVerticalStrut(10)); boxV1.add(Box.createVerticalStrut(5)); boxV1.add(new JLabel("State:"));boxV1.add(Box.createVerticalStrut(10)); boxV1.add(new JLabel("Zip:"));boxV1.add(Box.createVerticalStrut(10)); boxV2 = Box.createVerticalBox();boxV2.add(idJTextField);boxV2.add(boxV1.createVerticalStrut(10)); boxV2.add(nameJTextField);boxV2.add(boxV1.createVerticalStrut(10)); boxV2.add(phonenumJTextField);boxV2.add(boxV1.createVerticalStrut(10)); boxV2.add(addressJTextField);boxV2.add(boxV1.createVerticalStrut(10)); boxV2.add(cityJTextField);boxV2.add(boxV1.createVerticalStrut(10)); boxV2.add(stateJTextField);boxV2.add(boxV1.createVerticalStrut(10)); boxV2.add(zipJTextField);boxV2.add(boxV1.createVerticalStrut(10));jPanel = new JPanel();jPanel2 = new JPanel();jPanel3 = new JPanel();jPanel4 = new JPanel();jPanel5 = new JPanel();insertJButton = new JButton("insert");updateJButton = new JButton("update");clearJButton = new JButton("clear");exitJButton = new JButton("exit");insertJButton.addActionListener(this);updateJButton.addActionListener(this);clearJButton.addActionListener(this);exitJButton.addActionListener(this);title = new JLabel("PUBLISHERS INFORMATION");/* 布局修改 */// title.setBounds(130,60,200,40);jBox = new JComboBox(vector);this.jBox.setBorder(BorderFactory.createTitledBorder("请选择出版商编号"));this.jBox.setSize(300, 100);this.jBox.addItemListener(this);jPanel.add(boxV1);jPanel2.add(jBox);jBox.setBounds(200, 0, 100, 50);jPanel3.add(boxV2);jPanel4.add(title);jPanel5.add(insertJButton);jPanel5.add(updateJButton);jPanel5.add(clearJButton);jPanel5.add(exitJButton);setLayout(new BorderLayout());this.add(jPanel, BorderLayout.WEST);this.add(jPanel2, BorderLayout.CENTER);this.add(jPanel3, BorderLayout.EAST);this.add(jPanel4, BorderLayout.NORTH);this.add(jPanel5, BorderLayout.SOUTH);setVisible(true);this.pack();setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}@Overridepublic void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stubIP = new IPublisherDaoImpl();if (arg0.getSource() == insertJButton) {publisher.setPublisherId(idJTextField.getText()); publisher.setPublisherName(nameJTextField.getText());publisher.setPhoneNum(phonenumJTextField.getText());publisher.setAddress(addressJTextField.getText());publisher.setCity(cityJTextField.getText());publisher.setState(stateJTextField.getText());publisher.setZip(zipJTextField.getText());jBox.addItem(publisher.getPublisherId());try {IP.doCreate(publisher);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();System.out.println("插入失败");}}if (arg0.getSource() == updateJButton) {IP = new IPublisherDaoImpl();publisher.setPublisherId(idJTextField.getText());publisher.setPublisherName(nameJTextField.getText());publisher.setPhoneNum(phonenumJTextField.getText());publisher.setAddress(addressJTextField.getText());publisher.setCity(cityJTextField.getText());publisher.setState(stateJTextField.getText());publisher.setZip(zipJTextField.getText());try {IP.doUpdate(publisher);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();System.out.println("更新失败");}}if (arg0.getSource() == clearJButton) {IP = new IPublisherDaoImpl();idJTextField.setText("");nameJTextField.setText("");phonenumJTextField.setText("");addressJTextField.setText("");cityJTextField.setText("");stateJTextField.setText("");zipJTextField.setText("");}if (arg0.getSource() == exitJButton) {setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);System.exit(0);}}@Overridepublic void itemStateChanged(ItemEvent arg0) { // TODO Auto-generated method stubIP = new IPublisherDaoImpl();if (arg0.getStateChange() == ItemEvent.SELECTED) { // 判断是否是选中try {// int k = jBox.getSelectedIndex();// String selected = vector.get(k);// System.out.println(selected);// 用于检查publisher =IP.findById(jBox.getSelectedItem().toString());System.out.println(publisher.getPhoneNum());} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}idJTextField.setText(publisher.getPublisherId());nameJTextField.setText(publisher.getPublisherName());phonenumJTextField.setText(publisher.getPhoneNum());addressJTextField.setText(publisher.getAddress());cityJTextField.setText(publisher.getCity());stateJTextField.setText(publisher.getState());zipJTextField.setText(publisher.getZip());}}}6.RunApplication类:package com.zy.runapp;import com.zy.ui.TestFrame;public class RunApplication {public static void main(String[] args) {new TestFrame();}}具体运行结果:MySQL数据库中初始数据:运行初始状态:执行插入操作:插入完成后查看数据库:执行update操作:Update编号为20002的内容:下图为初始状态:执行update操作:对Phone Number,Address,City,State,Zip进行更新操作更新完成后查看数据库:可看到编号为20002的出版社数据更新了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
DFS(); } 算法核心:第一次是从所有数字中随机,第二次时从前八个数字中随机,依次类 推, 这样既保证随机, 也不会再重复取已经不符合要求的数字, 提高程序的效率。 程序的相关分析 import java.awt.*; //这个一般在程序开始时用,即置入包。 import javax.awt.event.*;//置入处理由 awt 组件产生的事件,有别于 String 事件 import javax.swing.*;//置入最常用包,最常用的 pachage,包含了各种 swing 组件 的类 public class: 在 java 中用 public class 可以定义一个 java 程序的入口类, 在 asp 用 class ClassName 可以定义一个类 private:在 Java 中是一个关键字, private 是类中的一个属性 用它 表示私有成员, 定义的 feild 和 method 只能在类中被调用.如果定义了 private,就不能被外部类所 访问了 this:java 中 this 有两种用法 1、代表当前类;2、在构造函数中的使用 如: this.setSize(300,300);// 设置窗体的长宽各为:440, 140//它们的计量单位是像素 this.setVisible(true);//显示窗口 this.setResizable(false);//窗口大小不能改变 this.setDefaultCloseOperation(EXIT_ON_CLOSE);//单击窗口按钮时,结束程序运 行; new JPanel(new FlowLayout());//流式布局;GridLayout()//网格布局 texts[i].setEditable(false);//只能显示,不允许编辑; static :声明静态成员变量
static void set_data_zero(){ for(int i=0;i<=9;i++){ for(int j=0;j<=9;j++){ data[i][j]=0; } } }
//数独的初始化
static void setnum(){ //数独数字的设置 setzero(); set_data_zero(); for(int i=1;i<=9;i++){ //尝试填充的次数 int n =(int)(Math.random()*100)+1; //添加任意整数 int j=i*3-((i+2)/3*8-6); data[i][j]=n%9+1; //产生数字 int k=data[i][j]; row[i][k]=1; col[j][k]=1; sql[(i+2)/3][(j+2)/3][k]=1;
《JAVA 语言程序设计》
课程设计报告
Java 数独游戏设计
专业班级: 学生姓名: 学生学号: 小组成员: 指导教师:
计算机科学与技术(嵌入式 13-1) 翟世昌 13031010158 方建峰 殷智玺 冯泽刚 翟世昌 宋强
目录 1.数独游戏与系统概述............................................................................. 3 1.1 设计背景........................................................................................ 3 1.2 数独游戏简介................................................................................ 3 方格................................................................................................. 3 行..................................................................................................... 4 列..................................................................................................... 4 宫..................................................................................................... 5 2.系统可行性分析与相关技术分析.........................................................5 2.1 面向对象程序设计方法................................................................ 5 3.系统设计与关键技术............................................................................. 6 3.1 系统的功能分析............................................................................ 6 3.2 系统的实现.................................................................................... 6 4.系统测试与操作实施方法................................................................... 10 4.1 系统开发环境.............................................................................. 10 4.2 系统实现...................................................................................... 10 5.系统设计总结....................................................................................... 13 6.参考文献............................................................................................... 14 7.源代码................................................................................................... 14
&&
col[j][k]==0
&&
sql[(i+2)/3][(j+2)/3][k]==0 ){
}
} return 1;
}
}
}
} if(k==9) return 0;
data[i][j]=k; row[i][k]=1; col[j][k]=1; sql[(i+2)/3][(j+2)/3][k]=1; if( DFS()==1 ) return 1; else{ data[i][j]=0; row[i][k]=0; col[j][k]=0; sql[(i+2)/3][(j+2)/3][k]=0; }
方格
水平方向有九横行,垂直方向有九纵列的矩形,画分八十一个小正方形,称
为九宫格(Grid) ,如图一所示,是数独(Sudoku)的作用范围。
数独元素 - 九宫格
行
水平方向的每一横行有九格,每一横行称为行(Row) ,如图二所示。
数独元素 - 单元
列
垂直方向的每一纵列有九格,每一纵列称为列(Column) ,如图三所示。
1.数独游戏与系统概述
1.1 设计背景
单机游戏是一种比较流行的游戏,其画面都比较简单,很少有复杂的游戏特 效, 但是通常用到人工智能的算法来控制游戏的难度。而算法的优化是开发该类 游戏的难点。这类游戏游戏主要包括棋牌类游戏和智力测试类游戏,例如麻将, 扫雷、五子棋、扑克牌等。 数独就是单机益智游戏的一种,玩法简单单数字的排列方式千变万化,很多 人认为数独是练头脑的绝佳方式。本章通过讲解数独游戏在 java 平台的设计与 实现,使读者了解此类游戏的开发过程,掌握实用的开发技巧,学会此类游戏的 开发。
1.2 数独游戏简介
数独(すうどく,Sūdoku)是一种运用纸、笔进行演算的逻辑游戏。玩家需 要根据 9×9 盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每 一列、每一个粗线宫内的数字均含 1-9,不重复。 数独盘面是个九宫, 每一宫又分为九个小格。在这八十一格中给出一定的已 知数字和解题条件,利用逻辑和推理,在其他的空格上填入 1-9 的数字。使 1-9 每个数字在每一行、每一列和每一宫中都只出现一次,所以又称“九宫格”。 起源 既然“数独”有一个字是“数”,人们也往往会联想到数学,那就不妨从大家都 知道的数学家欧拉说起,但凡想了解数独历史的玩家在网络、书籍中搜索时,都 会提到的就是欧拉的“拉丁方块(Latin square)”, 拉丁方块的规则:每一行(Row) 、每一列(Column)均含 1-N(N 即盘面 的规格) ,不重复。这与前面提到的标准数独非常相似,但少了一个宫的规则。 组成元素:
3.系统设计与关键技术
3.1 系统的功能分析
框架的合理布局。对于一个应用程序,界面的简单明了是很重要的,既 要简单明了还要实用,不能华而不实。 异常处理的实现。对于一个独立运行的程序,能够独立的处理运行中的 问题,并提示错误也是很重要的。 算法的实现,要准确的得出九宫格数字的正确排布,要保证随机,也要 保证数字的不重复,使得已经尝试过的数字不再取到,这是比较困难的。 创建对话框,并设置监听器处理相应的事件,例如语句: item_exit.addCaretListener(this);用于监听单击事件。 算法的实现,宫格的布局。 异常处理的实现,使用 try-catch 去捕捉异常事件,当出现异常时用跳出 错误提示对话框,提示错误信息,例如: {JOptionPane.showMessageDialog(null,” 数据中包括非数字, 请重新输入! ” );}