Java课程设计全球通计费系统解析_第1页
Java课程设计全球通计费系统解析_第2页
免费预览已结束,剩余12页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1一、课程设计目的本课程设计的目的是为了让学生在学习 JAVA 基础课程的基础上,进一步 深入巩固所学理论知识、 使理论与实际相结合的重要实践环节。 本课程设计通过完 成一些具有一定难度的程序的编写、 调试、运行工作, 掌握面向过程程序设计的基 本方法,从而提高学生分析问题、解决问题的能力。课程设计是教学中很重要的一项实践环节, 它可以帮助学生充分理解课堂教学中 的内容,对提高学生的实践认识和实际动手能力都有很重要的实际意义。学生应在一 周的时间内,按照课程设计的要求,结合所学的理论知识,查找相关资料,完成好本 次课程设计,提高程序编写的能力,为将来的实际工作取得一定的经验。二、课程设计题目及

2、要求1. 所有题目都要求使用图形界面 (Swing) 。2. 编写全球通计费程序。3. 要求:使用真实的全球通资费标准,模拟统计一个特定号码的一个月的实时话费。 能根据输入实现各种用户的话费的计算并显示月实时帐单。三、程序设计与分析1 在 My SQL 数据库中建立相应的表; 注:SQL 语句 create database quan; usequan;create table quanqiutong( num varchar(20), pwd varchar(10), typevarchar(10), yuezu float, ldxianshi float, shihua float, g

3、nmanyou float,cthuafei float, shihuasum float, changtusum float);| Field | Type | Null | Key | Default | Extra | varchar(20) | YES | NULL | varchar(10) | YES | NULL | type | varchar(10) | YES | NULL| yuezu |float| ldxianshi | float| shihua | float| gnmanyou | float| YES | NULL | YES | NULL | YES | N

4、ULL | YES |NULL| cthuafei | float| YES | NULL | num| pwd2-| shihuasum | float | YES | NULL | cha ngtusum | float | YES | NULL |2、 在 My Eclipse 中导入 JDBC 驱动包,并设置路径;3、 链接数据库;DriverManager(驱动程序管理器)(链接)二建立与攵据库的连接)JDBC驱动程序一|返回数据结果集4、界面使用流布局的方式。ResultSet3-四、运行结果登录失硕4-5五、总结与思考通过这次课程设计, 加强了我动手、 思考和解决问题的能力。 在

5、整个设计过程中, 我总共想过两个方案,另一个方案弄了两天,结果总是实现不了题目的要求。所以我 又花了一天的时间做出这个方案,这个相对另一个方案比较简单,包括My SQL 和 MyEclipse 的链接,数据库中表的建立,以及 Java 的界面划分,事件监听等。在做课程 设计同时也是对课本知识的巩固和加强,平时看课本时,有时问题老是弄不懂,做完 课程设计,那些问题就迎刃而解了。而且还可以记住很多东西。比如认识来源于实践, 实践是认识的动力和最终目的,实践是检验真理的唯一标准。故一个小小的课程设计, 对我们的作用是如此之大。六、源代码清单程序源代码import java.awt.*; import

6、 java.awt.Event.*; import javax.swing.*; importjavax.swing.*; import javax.swing.JPasswordField; import com.mysql.jdbc.PreparedStatement; importcom.mysql.jdbc.ResultSet; import java.io.UnsupportedEncodingException; import java.sql.Connection; importjava.sql.SQLException; import java.awt.event.Action

7、Event; import java.awt.event.ActionListener; public classQuanpublic Quan()/手机用户登录JFrame quan = new JFrame(全球通); quan.setLayout(new FlowLayout(1,15,30);quan.setBounds(200, 200, 250, 300);/添加控件final JTextField jtf_num=new JTextField(10);/final JTextField jtf_pwd=new JTextField(10); final JButton jb_ch

8、eck=new JButton(登录);final JButton jb_cancel=new JButton(取消);final JPasswordField jtf_pwd=new JPasswordField(10); (JPasswordField) jtf_pwd).setEchoChar(*);JLabel jl_welcom = new JLabel(final JLabel jl_num = new JLabel(final JLabel jl_pwd = new JLabel(欢迎来到全球通话费查询);用户手机号);用户密码);6quan.add(jl_welcom); qu

9、an.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

10、 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.set

11、Layout(newFlowLayout(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(市话总

12、和); JLabel jl长途总和=new JLabel(长途总和);final JTextField jtf号码=newJTextField(10);7quan1.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

13、=jtf号码.getText();if(e.getSource()=jb_check1)final JTextField jtffinal JTextField jtffinal JTextField jtffinal JTextField jtffinal JTextField jtffinal JTextField jtf种类=new JTextField(10);月租=new JTextField(10);来电显示=new JTextField(10);市话=new JTextField(10);国内漫游=new JTextField(10);长途费用=newJTextField(10)

14、;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(取消); finalJButton jb_sum=new JButton(汇总);quan1.add(jlquan1.add(jtfquan1.add(jlquan1.

15、add(jtfquan1.add(jlquan1.add(jtfquan1.add(jlquan1.add(jtfquan1.add(jlquan1.add(jtfquan1.add(jlquan1.add(jtfquan1.add(jlquan1.add(jtf号码);号码);种类);种类);月租);月租);来电显示);来电显示);市话);市话);国内漫游);国内漫游);长途费用);长途费用);8Connection con = null ;ResultSet rs=null;DbUtil util = new DbUtil();/异常处理trycon = util.getCon(); ca

16、tch (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 blocke2.printStackTrace(); catch (Exception e2) / TODO Auto-generated

17、catch blocke2.printStackTrace();try/读取数据库中的内容,并放到相应文本框中while(rs.next()jtf号码.setText(rs.getString(num);jtf种类.setText(newString(rs.getString(type).getBytes(ISO-8859-1),(GBK);jtf月租.setText(rs.getString(yuezu);/把字节转换成中文jtf来电显示.setText(rs.getString(ldxianshi);jtf市话.setText(rs.getString(shihua);jtf国内漫游.se

18、tText(rs.getString(gnmanyou);jtf长途费用.setText(rs.getString(cthuafei); catch (SQLException e1)/ TODO Auto-generated catch block e1.printStackTrace(); catch (UnsupportedEncodingException e1) / TODOAuto-generated catch block e1.printStackTrace();9);/查询话费页面取消按钮jb_cancel1.addActionListener(newActionListen

19、er()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();trycon = util.getCon();

20、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) 10/ TODO Auto-generated catch blocke2.printStackTrace(); catch (Exception e2) / TODO Auto-generated catch bloc

21、ke2.printStackTrace();文本框中示.setText(rs.getStri ng(ldxianshi);话.setText(rs.getStri ng(shihua);游.setText(rs.getStri ng(g nmanyou);用.setText(rs.getString(cthuafei);禾口.setText(rs.getString(shihuasum);禾口.setText(rs.getStri ng(changtusum); catch (SQLException e1)/ TODO Auto-generated catch blocke1.printSt

22、ackTrace(); catch (UnsupportedEncodingException e1) / TODO Auto-generated catch blocke1.printStackTrace();try/汇总查询, 读取数据库中的内容,并放到相应while(rs.next()jtf jtfString(rs.getString(type).getBytes(ISO-8859-1),(GBK);jtf把字节转换成中文jtf租.setText(rs.getStri ng(yuezu);号码.setText(rs.getString(num);种类.setText(new来电显jtf

23、jtf国内漫jtf长途费jtf市话总jtf长途总);else11JOptionPane.showMessageDialog(null, 登录失败);12catch (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 s

24、tubnew 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:/:3306/quan;/数据库用户名private String dbUser = root;/数据库密码private String dbPwd = sa;/ JDBC驱动名称private

25、 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) throwsException String sq

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论