赞
踩
摘 要
随着现代科学技术的持续发展,互联网与计算机等技术被广泛应用到人们的日常生活、工作中。智能化技术的的发展推动了相应软件的开发,软件开发编程语言种类众多,其中使用范围比较广泛的是Java编程语言,为此,以Java编程语言为例,分析了其在计算机软件中的开发应用。
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
本文采用Java语言实现了一个猜数字小游戏,此款游戏中用户进行猜数字游戏,系统根据用户键入的数值进行判断并给出判断是大了还是小了,猜对即提示用户,键入的数值不符合要求系统也会给于提示。最后给出随机数值及猜数所用次数和时间。
连接数据库可查看用户猜题信息。
关键词 Java编程语言 软件开发 猜数游戏 数据库
第一章 概述
1.1.1Java特点
1、Java语言是简单的,Java语言的语法与c语言和c++语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别的,Java语言不使用指针,并提供了自动的废料收集,使程序员不必为内存管理而担忧。
2、Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java.net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。
3、Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以放恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制,如分配不同的名字空间以防代替本地的同名类、字节代码检查,并提供安全管理机制让Java应用设置安全哨兵。
4、Java语言是体系结构中立的。Java程序在Java平台上被编译为体系结构中立的字节代码格式,然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的开发。
5、Java语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java海洋人规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的。
6、Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在连接阶段被载入到运行环境中。
1.1.2Java平台介绍
J2SE:称为Java标准版或Java标准平台,J2SE提供了标准的SDK开发平台。利用该平台乐意开发Java桌面应用程序和低端的服务器应用程序。
J2ME:是Java 2的一个组成部分,它与J2SE、J2EE并称。根据Sun的定义:J2ME是一种高度优化的Java运行环境,主要针对消费类电子设备的,例如蜂窝电话和可视电话、数字机顶盒、汽车导航系统等等。J2ME技术在1999年的JavaOne Developer Conference大会上正式推出,它将Java语言的与平台无关的特性移植到小型电子设备上,允许移动无线设备之间共享应用程序。
J2EE:一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,导致企业内部或外部难以互通的窘境。
计算机产生随机数,用户需输入用户名进行游戏,猜中即胜,猜不中会提示猜大了还是猜小了,继续踩,直至猜到,给出所用时间和次数。连接数据库可查看历史游戏记录。
计算机产生随机数,用户可以用户名进行游戏,猜中即胜,猜不中会提示猜大了还是猜小了,继续猜,直至猜到,给出所用时间和次数。
用户可以输入名字进行游戏。
详细代码:JLabel label2 = new JLabel("请输入你的名字");
label2.setFont(new Font("华彩文云",Font.BOLD,16));
label2.setBounds(41,13,119,15);
contentPane.add(label2);
2.2.2排行榜功能
点击界面上的排行榜按钮,可以查看历史游戏记录。
详细代码:JButton button_2 = new JButton("排行榜");
button_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Table t = new Table();
t.show();
}
});//添加监听事件,点出排行榜界面
游戏中会提示用户猜数字的次数和游戏进行时间。
第三章 详细设计
IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。
3.2.1图形化界面的显示
创建图形界面的步骤
3.2.2界面设计
本程序包含一个操作界面,它是由Swing组件进行编写的。Swing实在AWT的基础上构建的一套新的图形界面系统,它提供了AWT所能提供的所有功能,并且用纯粹的Java代码对AWT功能进行了大幅度的扩充。Swing是基于AWT的Java程序,其运行速度比AWT慢,但其功能要比AWT强大的多,而且在基于普通PC或者工作站的标准Java应用中,硬件资源对应用程序所造成的限制往往不是项目中的关键因素,所以我决定使用Swing编写本程序,以牺牲比AWT慢的可以忽略不计的速度来实现程序的功能。
程序源码
Guess.java
import javax.swing.Action; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.border.EmptyBorder; import java.awt.Color; import java.awt.Font; import java.awt.event.*; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; import java.util.Random; public class Guess extends JFrame{ private JPanel contentPane; private JTextField textField; private int number=0; private int guessNum=0; int count=0; long startTime=0; long endTime=0; int time; private JTextField textField_1; public static void main (String args[]) { Guess frame = new Guess(); frame.setVisible(true);//显示图形化界面 } public Guess() { setTitle("猜数游戏"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100,100,450,300); contentPane = new JPanel(); contentPane.setBackground(Color.ORANGE); contentPane.setBorder(new EmptyBorder(5,5,5,5)); setContentPane(contentPane); contentPane.setLayout(null); textField = new JTextField(); textField.setBounds(170,45,83,27); contentPane.add(textField); textField.setColumns(10); JButton button = new JButton("猜"); button.setForeground(Color.BLACK); button.setFont(new Font("幼圆",Font.BOLD,20)); button.setBounds(157,82,108,59); contentPane.add(button); JLabel label = new JLabel("请输入所猜数字"); label.setFont(new Font("华彩文云",Font.BOLD,16)); label.setBounds(41,51,119,15); contentPane.add(label); JLabel label1 = new JLabel(""); label1.setFont(new Font("华彩文云",Font.BOLD,16)); label1.setBounds(69,151,355,53); contentPane.add(label1); JLabel label2 = new JLabel("请输入你的名字"); label2.setFont(new Font("华彩文云",Font.BOLD,16)); label2.setBounds(41,13,119,15); contentPane.add(label2); textField_1 = new JTextField(); textField_1.setBounds(170,7,83,27); contentPane.add(textField_1); textField_1.setColumns(10); JLabel label3 = new JLabel(""); label3.setFont(new Font("华彩文云",Font.BOLD,16)); label3.setBounds(142,214,144,37); contentPane.add(label3); JButton button_1 = new JButton("重新开始"); button_1.setBounds(341,238,93,23); contentPane.add(button_1); JButton button_2 = new JButton("排行榜"); button_2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Table t = new Table(); t.show(); } }); button_2.setBounds(341,0,93,23); contentPane.add(button_2); Random random = new Random();//产生随机数 startTime=System.currentTimeMillis(); number = random.nextInt(100); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { guessNum = Integer.parseInt(textField.getText()); String name = textField_1.getText(); if(guessNum<=100&&guessNum>=0) { if(guessNum>number) { textField.setText(""); label1.setText(name+"猜的有点大啦"); count++; } if(guessNum<number) { textField.setText(""); label1.setText(name+"猜的有点小啦"); count++; } if(guessNum == number) { textField.setText(""); count++; endTime = System.currentTimeMillis(); time = (int)(endTime-startTime)/1000; label1.setText(name+"猜对啦!你一共猜了"+count+"次!"); label3.setText("用时:"+time+"秒"); try { Class.forName("com.mysql.jdbc.Driver"); String ur1 = "jdbc:mysql://localhost:3306/keshe"; String user = "root"; String password = "123456"; Connection conn = DriverManager.getConnection(ur1,user,password); Statement stmt = conn.createStatement(); String sql = "insert into keshe.guessnum(name,count,time)values('"+name+"','"+count+"','"+time+"')"; int count = stmt.executeUpdate(sql); }catch (ClassNotFoundException e1) { e1.printStackTrace(); }catch (SQLException e1) { e1.printStackTrace(); } } }else { textField.setText(""); label1.setText("输入的值不合法!请重新输入"); } } }); button_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { number = random.nextInt(100); textField.setText(""); label1.setText(""); label3.setText(""); count=0; startTime = System.currentTimeMillis(); } }); } }
Table.java
import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import java.awt.BorderLayout; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Table extends JFrame{ public void show() { JPanel panel; JFrame frame=new JFrame("排行榜"); frame.getContentPane().setLayout(new BorderLayout()); panel = new JPanel(); frame.getContentPane().add(panel,BorderLayout.CENTER); panel.setLayout(null); int count=0; Object[][]rowDate=new Object[100][3]; String[] head = {"名字","所猜次数","时间"}; JTable table = new JTable(rowDate,head); JScrollPane sp = new JScrollPane(table); frame.add(sp); frame.setSize(400,300); frame.setLocation(150,100); frame.setVisible(true); Connection con; String driver = "com.mysql.jdbc.Driver"; String ur1 = "jdbc:mysql://localhost:3306/keshe"; String user = "root"; String password = "123456"; try { Class.forName(driver); con = (Connection)DriverManager.getConnection(ur1,user,password); if(!con.isClosed()) System.out.println("Succeeded connection to the Datebase!"); Statement statement = (Statement)con.createStatement(); String sql = "select * from keshe.guessnum order by time"; ResultSet rs = statement.executeQuery(sql); while(rs.next()) { rowDate[count][0]=rs.getString("name"); rowDate[count][1]=rs.getInt("count"); rowDate[count][2]=rs.getInt("time"); count++; }; rs.close(); con.close(); }catch(ClassNotFoundException e) { e.printStackTrace(); }catch(SQLException e) { e.printStackTrace(); }catch(Exception e) { e.printStackTrace(); } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。