Java课程设计全球通计费系统解析.docx
- 文档编号:11623094
- 上传时间:2023-03-29
- 格式:DOCX
- 页数:18
- 大小:138.44KB
Java课程设计全球通计费系统解析.docx
《Java课程设计全球通计费系统解析.docx》由会员分享,可在线阅读,更多相关《Java课程设计全球通计费系统解析.docx(18页珍藏版)》请在冰豆网上搜索。
Java课程设计全球通计费系统解析
一、课程设计目的
本课程设计的目的是为了让学生在学习《JAVA基础》课程的基础上,进一步深入巩固所学理论知识、使理论与实际相结合的重要实践环节。
本课程设计通过完成一些具有一定难度的程序的编写、调试、运行工作,掌握面向过程程序设计的基本方法,从而提高学生分析问题、解决问题的能力。
课程设计是教学中很重要的一项实践环节,它可以帮助学生充分理解课堂教学中的内容,对提高学生的实践认识和实际动手能力都有很重要的实际意义。
学生应在一周的时间内,按照课程设计的要求,结合所学的理论知识,查找相关资料,完成好本次课程设计,提高程序编写的能力,为将来的实际工作取得一定的经验。
二、课程设计题目及要求
1.所有题目都要求使用图形界面(Swing)。
2.编写全球通计费程序。
3.要求:
使用真实的全球通资费标准,模拟统计一个特定号码的一个月的实时话费。
能根据输入实现各种用户的话费的计算并显示月实时帐单。
三、程序设计与分析
1、在MySQL数据库中建立相应的表;
注:
SQL语句
createdatabasequan;
usequan;
createtablequanqiutong(
numvarchar(20),
pwdvarchar(10),
typevarchar(10),
yuezufloat,
ldxianshifloat,
shihuafloat,
gnmanyoufloat,
cthuafeifloat,
shihuasumfloat,
changtusumfloat);
+------------+-------------+------+-----+---------+-------+
|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、在MyEclipse中导入JDBC驱动包,并设置路径;
3、链接数据库;
4、界面使用流布局的方式。
四、运行结果
五、总结与思考
通过这次课程设计,加强了我动手、思考和解决问题的能力。
在整个设计过程中,我总共想过两个方案,另一个方案弄了两天,结果总是实现不了题目的要求。
所以我又花了一天的时间做出这个方案,这个相对另一个方案比较简单,包括MySQL和MyEclipse的链接,数据库中表的建立,以及Java的界面划分,事件监听等。
在做课程设计同时也是对课本知识的巩固和加强,平时看课本时,有时问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。
而且还可以记住很多东西。
比如认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。
故一个小小的课程设计,对我们的作用是如此之大。
六、源代码清单
程序源代码
importjava.awt.*;
importjava.awt.Event.*;
importjavax.swing.*;
importjavax.swing.*;
importjavax.swing.JPasswordField;
importcom.mysql.jdbc.PreparedStatement;
importcom.mysql.jdbc.ResultSet;
importjava.io.UnsupportedEncodingException;
importjava.sql.Connection;
importjava.sql.SQLException;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
publicclassQuan
{
publicQuan()
{
//手机用户登录
JFramequan=newJFrame("全球通");
quan.setLayout(newFlowLayout(1,15,30));
quan.setBounds(200,200,250,300);
//添加控件
JLabeljl_welcom=newJLabel("欢迎来到全球通话费查询");
finalJLabeljl_num=newJLabel("用户手机号");
finalJLabeljl_pwd=newJLabel("用户密码");
finalJTextFieldjtf_num=newJTextField(10);
//finalJTextFieldjtf_pwd=newJTextField(10);
finalJButtonjb_check=newJButton("登录");
finalJButtonjb_cancel=newJButton("取消");
finalJPasswordFieldjtf_pwd=newJPasswordField(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(newActionListener()
{
publicvoidactionPerformed(ActionEventarg0)
{
Stringnum=jtf_num.getText();
Stringpwd=jtf_pwd.getText();
DbUtilutil=newDbUtil();
try{
finalConnectioncon=util.getCon();
booleanloginFlag=util.login(con,num,pwd);
if(loginFlag){
if(arg0.getSource()==jb_check)
{
JOptionPane.showMessageDialog(null,"登录成功");
finalJFramequan1=newJFrame("话费查询");
quan1.setLayout(newFlowLayout(1,15,15));
quan1.setBounds(400,200,250,450);
//添加控件
JLabeljl号码=newJLabel("号码");
JLabeljl种类=newJLabel("种类");
JLabeljl月租=newJLabel("月租");
JLabeljl来电显示=newJLabel("来电显示");
JLabeljl市话=newJLabel("市话");
JLabeljl国内漫游=newJLabel("国内漫游");
JLabeljl长途费用=newJLabel("长途费");
JLabeljl市话总和=newJLabel("市话总和");
JLabeljl长途总和=newJLabel("长途总和");
finalJTextFieldjtf号码=newJTextField(10);
finalJTextFieldjtf种类=newJTextField(10);
finalJTextFieldjtf月租=newJTextField(10);
finalJTextFieldjtf来电显示=newJTextField(10);
finalJTextFieldjtf市话=newJTextField(10);
finalJTextFieldjtf国内漫游=newJTextField(10);
finalJTextFieldjtf长途费用=newJTextField(10);
finalJTextFieldjtf市话总和=newJTextField(10);
jtf市话总和.setEditable(false);
finalJTextFieldjtf长途总和=newJTextField(10);
jtf长途总和.setEditable(false);
finalJButtonjb_check1=newJButton("查询");
JButtonjb_cancel1=newJButton("取消");
finalJButtonjb_sum=newJButton("汇总");
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(newActionListener()
{
publicvoidactionPerformed(ActionEvente){
Stringnum=jtf号码.getText();
if(e.getSource()==jb_check1)
{
Connectioncon=null;
ResultSetrs=null;
DbUtilutil=newDbUtil();
//异常处理
try
{
con=util.getCon();
}catch(Exceptione1)
{
e1.printStackTrace();
}
try
{
rs=(ResultSet)util.quancheck(con,num);
}catch(Exceptione1){
e1.printStackTrace();
}
try{
rs=(ResultSet)util.quancheck(con,num);
}catch(NumberFormatExceptione2){
//TODOAuto-generatedcatchblock
e2.printStackTrace();
}catch(Exceptione2){
//TODOAuto-generatedcatchblock
e2.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国内漫游.setText(rs.getString("gnmanyou"));
jtf长途费用.setText(rs.getString("cthuafei"));
}
}catch(SQLExceptione1)
{
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}catch(UnsupportedEncodingExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
}
}
});
//查询话费页面取消按钮
jb_cancel1.addActionListener(newActionListener()
{
publicvoidactionPerformed(ActionEvente)
{
System.exit(0);
}
});
//汇总按钮
jb_sum.addActionListener(newActionListener()
{
publicvoidactionPerformed(ActionEvente){
Stringnum=jtf号码.getText();
if(e.getSource()==jb_sum)
{
Connectioncon=null;
ResultSetrs=null;
DbUtilutil=newDbUtil();
try
{
con=util.getCon();
}catch(Exceptione1)
{
e1.printStackTrace();
}
try
{
rs=(ResultSet)util.sum(con,num);
}catch(Exceptione1){
e1.printStackTrace();
}
try{
rs=(ResultSet)util.sum(con,num);
}catch(NumberFormatExceptione2){
//TODOAuto-generatedcatchblock
e2.printStackTrace();
}catch(Exceptione2){
//TODOAuto-generatedcatchblock
e2.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国内漫游.setText(rs.getString("gnmanyou"));
jtf长途费用.setText(rs.getString("cthuafei"));
jtf市话总和.setText(rs.getString("shihuasum"));
jtf长途总和.setText(rs.getString("changtusum"));
}
}catch(SQLExceptione1)
{
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}catch(UnsupportedEncodingExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
}
}
});
}
}
else
{
JOptionPane.showMessageDialog(null,"登录失败");
}
}
catch(Exceptione){
e.printStackTrace();
}
}
});
//登录页面取消按钮
jb_cancel.addActionListener(newActionListener()
{
publicvoidactionPerformed(ActionEvente)
{
System.exit(0);
}
});
}
publicstaticvoidmain(String[]args)
{
//TODOAuto-generatedmethodstub
newQuan();
}
}
与数据库相连的代码
importjava.sql.Conn
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 课程设计 全球通 计费 系统 解析