收藏 分销(赏)

Java课程设计全球通计费系统解析.doc

上传人:天**** 文档编号:4657029 上传时间:2024-10-08 格式:DOC 页数:14 大小:195.01KB
下载 相关 举报
Java课程设计全球通计费系统解析.doc_第1页
第1页 / 共14页
Java课程设计全球通计费系统解析.doc_第2页
第2页 / 共14页
点击查看更多>>
资源描述
一、课程设计目的 本课程设计的目的是为了让学生在学习《JAVA基础》课程的基础上,进一步深入巩固所学理论知识、使理论与实际相结合的重要实践环节。本课程设计通过完成一些具有一定难度的程序的编写、调试、运行工作,掌握面向过程程序设计的基本方法,从而提高学生分析问题、解决问题的能力。 课程设计是教学中很重要的一项实践环节,它可以帮助学生充分理解课堂教学中的内容,对提高学生的实践认识和实际动手能力都有很重要的实际意义。学生应在一周的时间内,按照课程设计的要求,结合所学的理论知识,查找相关资料,完成好本次课程设计,提高程序编写的能力,为将来的实际工作取得一定的经验。 二、课程设计题目及要求 1.所有题目都要求使用图形界面(Swing)。 2.编写全球通计费程序。 3. 要求:使用真实的全球通资费标准,模拟统计一个特定号码的一个月的实时话费。 能根据输入实现各种用户的话费的计算并显示月实时帐单。 三、程序设计与分析 1、在My SQL数据库中建立相应的表; 注:SQL语句 create database quan; use quan; create table quanqiutong( num varchar(20), pwd varchar(10), type varchar(10), yuezu float, ldxianshi float, shihua float, gnmanyou float, cthuafei float, shihuasum float, changtusum float); +------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+-------+ | num | varchar(20) | YES | | NULL | | | pwd | varchar(10) | YES | | NULL | | | type | varchar(10) | YES | | NULL | | | yuezu | float | YES | | NULL | | | ldxianshi | float | YES | | NULL | | | shihua | float | YES | | NULL | | | gnmanyou | float | YES | | NULL | | | cthuafei | float | YES | | NULL | | | shihuasum | float | YES | | NULL | | | changtusum | float | YES | | NULL | | +------------+-------------+------+-----+---------+-------+ 2、在My Eclipse中导入JDBC驱动包,并设置路径; 3、链接数据库; 4、界面使用流布局的方式。 四、运行结果 五、总结与思考 通过这次课程设计,加强了我动手、思考和解决问题的能力。在整个设计过程中,我总共想过两个方案,另一个方案弄了两天,结果总是实现不了题目的要求。所以我又花了一天的时间做出这个方案,这个相对另一个方案比较简单,包括My SQL和My Eclipse的链接,数据库中表的建立,以及Java的界面划分,事件监听等。在做课程设计同时也是对课本知识的巩固和加强,平时看课本时,有时问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。而且还可以记住很多东西。比如认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。故一个小小的课程设计,对我们的作用是如此之大。 六、源代码清单 程序源代码 import java.awt.*; import java.awt.Event.*; import javax.swing.*; import javax.swing.*; import javax.swing.JPasswordField; import com.mysql.jdbc.PreparedStatement; import com.mysql.jdbc.ResultSet; import java.io.UnsupportedEncodingException; import java.sql.Connection; import java.sql.SQLException; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class Quan { public Quan() { //手机用户登录 JFrame quan = new JFrame("全球通"); quan.setLayout(new FlowLayout(1,15,30)); quan.setBounds(200, 200, 250, 300); //添加控件 JLabel jl_welcom = new JLabel("欢迎来到全球通话费查询"); final JLabel jl_num = new JLabel("用户手机号"); final JLabel jl_pwd = new JLabel("用户密码"); final JTextField jtf_num=new JTextField(10); //final JTextField jtf_pwd=new JTextField(10); final JButton jb_check=new JButton("登录"); final JButton jb_cancel=new JButton("取消"); final JPasswordField jtf_pwd=new JPasswordField(10); ((JPasswordField) jtf_pwd).setEchoChar('*'); quan.add(jl_welcom); quan.add(jl_num); quan.add(jtf_num); quan.add(jl_pwd); quan.add(jtf_pwd); quan.add(jb_check); quan.add(jb_cancel); quan.setVisible(true); quan.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //话费查询 //添加查询按钮事件监听 jb_check.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { String num = jtf_num.getText(); String pwd = jtf_pwd.getText(); DbUtil util = new DbUtil(); try { final Connection con = util.getCon(); boolean loginFlag = util.login(con, num, pwd); if(loginFlag){ if(arg0.getSource()==jb_check) { JOptionPane.showMessageDialog(null, "登录成功"); final JFrame quan1=new JFrame("话费查询"); quan1.setLayout(new FlowLayout(1,15,15)); quan1.setBounds(400, 200, 250, 450); //添加控件 JLabel jl号码=new JLabel(" 号码"); JLabel jl种类=new JLabel(" 种类"); JLabel jl月租=new JLabel(" 月租"); JLabel jl来电显示=new JLabel("来电显示"); JLabel jl市话=new JLabel(" 市话"); JLabel jl国内漫游=new JLabel("国内漫游"); JLabel jl长途费用=new JLabel("长途费"); JLabel jl市话总和=new JLabel("市话总和"); JLabel jl长途总和=new JLabel("长途总和"); final JTextField jtf号码=new JTextField(10); final JTextField jtf种类=new JTextField(10); final JTextField jtf月租=new JTextField(10); final JTextField jtf来电显示=new JTextField(10); final JTextField jtf市话=new JTextField(10); final JTextField jtf国内漫游=new JTextField(10); final JTextField jtf长途费用=new JTextField(10); final JTextField jtf市话总和=new JTextField(10); jtf市话总和.setEditable(false); final JTextField jtf长途总和=new JTextField(10); jtf长途总和.setEditable(false); final JButton jb_check1=new JButton("查询"); JButton jb_cancel1=new JButton("取消"); final JButton jb_sum=new JButton("汇总"); quan1.add(jl号码); quan1.add(jtf号码); quan1.add(jl种类); quan1.add(jtf种类); quan1.add(jl月租); quan1.add(jtf月租); quan1.add(jl来电显示); quan1.add(jtf来电显示); quan1.add(jl市话); quan1.add(jtf市话); quan1.add(jl国内漫游); quan1.add(jtf国内漫游); quan1.add(jl长途费用); quan1.add(jtf长途费用); quan1.add(jb_check1); quan1.add(jb_cancel1); quan1.add(jb_sum); quan1.add(jtf市话总和); quan1.add(jtf长途总和); quan1.setVisible(true); jb_check1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e){ String num =jtf号码.getText(); if(e.getSource()==jb_check1) { Connection con = null ; ResultSet rs=null; DbUtil util = new DbUtil(); //异常处理 try { con = util.getCon(); } catch (Exception e1) { e1.printStackTrace(); } try { rs=(ResultSet)util.quancheck(con, num); } catch (Exception e1) { e1.printStackTrace(); } try { rs=(ResultSet)util.quancheck(con, num); } catch (NumberFormatException e2) { // TODO Auto-generated catch block e2.printStackTrace(); } catch (Exception e2) { // TODO Auto-generated catch block e2.printStackTrace(); } try { //读取数据库中的内容,并放到相应文本框中 while(rs.next()) { jtf号码.setText(rs.getString("num")); jtf种类.setText(new String(rs.getString("type").getBytes("ISO-8859-1"),("GBK"))); jtf月租.setText(rs.getString("yuezu"));//把字节转换成中文 jtf来电显示.setText(rs.getString("ldxianshi")); jtf市话.setText(rs.getString("shihua")); jtf国内漫游.setText(rs.getString("gnmanyou")); jtf长途费用.setText(rs.getString("cthuafei")); } } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (UnsupportedEncodingException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } }); //查询话费页面取消按钮 jb_cancel1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); //汇总按钮 jb_sum.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e){ String num =jtf号码.getText(); if(e.getSource()==jb_sum) { Connection con = null ; ResultSet rs=null; DbUtil util = new DbUtil(); try { con = util.getCon(); } catch (Exception e1) { e1.printStackTrace(); } try { rs=(ResultSet)util.sum(con,num); } catch (Exception e1) { e1.printStackTrace(); } try { rs=(ResultSet)util.sum(con,num); } catch (NumberFormatException e2) { // TODO Auto-generated catch block e2.printStackTrace(); } catch (Exception e2) { // TODO Auto-generated catch block e2.printStackTrace(); } try { //汇总查询,读取数据库中的内容,并放到相应文本框中 while(rs.next()) { jtf号码.setText(rs.getString("num")); jtf种类.setText(new String(rs.getString("type").getBytes("ISO-8859-1"),("GBK"))); jtf月租.setText(rs.getString("yuezu"));//把字节转换成中文 jtf来电显示.setText(rs.getString("ldxianshi")); jtf市话.setText(rs.getString("shihua")); jtf国内漫游.setText(rs.getString("gnmanyou")); jtf长途费用.setText(rs.getString("cthuafei")); jtf市话总和.setText(rs.getString("shihuasum")); jtf长途总和.setText(rs.getString("changtusum")); } } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (UnsupportedEncodingException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } }); } } else { JOptionPane.showMessageDialog(null, "登录失败"); } } catch (Exception e) { e.printStackTrace(); } } }); //登录页面取消按钮 jb_cancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); } public static void main(String[] args) { // TODO Auto-generated method stub new Quan(); } } 与数据库相连的代码 import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class DbUtil { private String dbUrl = "jdbc:mysql://127.0.0.1:3306/quan"; // 数据库用户名 private String dbUser = "root"; // 数据库密码 private String dbPwd = "sa"; // JDBC驱动名称 private String jdbcName = "com.mysql.jdbc.Driver"; // 获取数据库连接 public Connection getCon() throws Exception{ // 加载数据库驱动 Class.forName(jdbcName); // 创建数据库连接 Connection con = DriverManager.getConnection(dbUrl,dbUser,dbPwd); // 返回数据库连接对象 return con; } // 关闭数据库连接 public void closeCon(Connection con) throws Exception{ if(con!=null){ con.close(); } } //用户登录判断 public boolean login(Connection con,String num,String pwd) throws Exception{ String sql = "select * from quanqiutong where num=? and pwd=?"; PreparedStatement pstmt = con.prepareStatement(sql); pstmt.setString(1, num); pstmt.setString(2, pwd); ResultSet rs = pstmt.executeQuery(); //if(rs.next()){ // return true; //}else{ //return false; //} return rs.next(); } //话费查询判断 public ResultSet quancheck(Connection con,String num) throws Exception{ String sql="select * from quanqiutong where num=?"; PreparedStatement pstmt = con.prepareStatement(sql); pstmt.setString(1,num); ResultSet rs = pstmt.executeQuery(); return rs; } //汇总查询 public ResultSet sum(Connection con,String num) throws Exception{ String sql="select * from quanqiutong where num=?"; PreparedStatement pstmt = con.prepareStatement(sql); pstmt.setString(1,num); ResultSet rs = pstmt.executeQuery(); return rs; } public static void main(String arg[]) throws Exception { DbUtil quancheck=new DbUtil(); } } 教师评语: 教师签名:______ 日  期: -13-
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服