java汇率转换课程设计报告lx.docx
《java汇率转换课程设计报告lx.docx》由会员分享,可在线阅读,更多相关《java汇率转换课程设计报告lx.docx(11页珍藏版)》请在冰豆网上搜索。
java汇率转换课程设计报告lx
软件学院
课程设计报告书
课程名称面向对象程序设计
设计题目汇率转换查询程序
专业班级软件08-2班
学号0820010206
姓名LX
指导教师于美娜
2010年12月
1设计时间1
2设计目的1
3设计任务1
4设计内容1
4.1概要设计1
4.2程序整体设计说明1
4.2.1程序基本流程图2
4.2.2程序中所用类及方法说明2
5.总结与展望8
6.程序设计代码9
参考文献12
成绩评定12
1设计时间
2010年12月13日-2010年12月26日
2设计目的
《面向对象程序设计课程设计》的教学目的是培养学生软件系统开发方案综合设计能力和创新精神。
在老师的启发和引导下,学生能自主地进行科技文献检索,进行方案设计、编写代码、调试程序、对方案进行综合分析与评述等。
3设计任务
汇率转换查询程序。
要求如下:
(1)使用图形用户界面实现。
(2)可以查询人民币与美元、日元、欧元、港币等目前国际上常用流通货币的兑换(至少要实现十种)。
例如,100元人民币可兑换多少美元,100美元可兑换多少人民币。
(3)可以查询各种货币两两之间的兑换情况(兑换情况如
(2)所给的例子),如美元与韩元之间,日元与欧元之间(至少实现十对)。
(4)系统使用的GUI组件不得少于5种,越全面越好,但要合适(和谐界面)。
4设计内容
4.1概要设计
Java程序编辑器是:
图形界面、流与文件等技术的综合应用。
图形界面的实现:
考虑到简单、实用、高效等特点,就选择了Swing来完成实现,在选择组件上,选用了Jframe作为主要的部件。
主窗口含有一任务栏,任务栏包括兑换金额,通过数字框输入金币金额,采用JComboBox()构造方法用来选择输入金币的种类和兑换后输出金额的种类,金币的种类包括:
美元、人民币、日元、欧元、英镑、瑞郎、澳元、加元、港币、坡元、纽元、瑞典克朗、韩元、泰铢、台币等,之后点击兑换按钮输出兑换金额。
程序整体在设计类的时候,为了便利于用户操作,设立了一个类,简单明了,有利于
对程序的理解,采用了JComboBoxJFrameJLabelJTextFieldJButton等组件。
在编写程序前通过上网查找美元、日元、欧元、英镑、瑞郎、澳元、加元、港币、坡元、纽元、瑞典克朗、韩元、泰铢、台币等货币与人民币之间的汇率转换。
4.2程序整体设计说明
421程序基本流程图
422程序中所用类及方法说明
1.程序中的类:
ExchanageRate
继承Applet
实现ActionListener接口
本程序共有一个类作为总体框架,添加JtextField、JcomboBox、Jlabel、Panel等组件实
现整体框架设计。
部分代码如下:
publicclassExchanageRateextendsAppletimplementsActionListenef
privateJFrameframe=newJFrame("匚率转换”);
privateJTextFieldtext1=newJTextField();
privateJTextFieldtext2=newJTextField();
privateStrings[]={"美元","人民币","日元",
"欧元","英镑","瑞郎","澳元","加元","港币","坡元","纽元","瑞典克朗","韩元","泰铢
privatefloatrate[]={1,(float)6.8276,(float)89.1,(float)0.6841,(float)0.615.
……(float)33.12,(float)32.2};privateJComboBoxcb=nuII;
privateJComboBoxcb1=null;
privatedoublesum;//兑换后的金额
JLabelnum=newJLabel("兑换金额");
JLabelbnum=newJLabel('兑换后的金额为");
Panelp1;
Panelp5;
JButtonbutton;
}
2.主要成员变量:
私有变量:
frame,标题为”汇率转换”作为总体框架向其中添加组件。
内容如下:
privateJFrameframe=newJFrame(汇率转换");
私有变量text1,text2,作为两个单行输入文本,分别输入兑换金额”兑换后金额
内容如下:
privateJTextFieldtext仁newJTextField();
privateJTextFieldtext2=newJTextField();
私有变量:
字符串型数组s[],作为下拉选框的货币名称内容。
内容如下:
privateStrings[]={"美元","人民币","日元",
"欧元","英镑","瑞郎","澳元","加元","港币","坡元","纽元","瑞典克朗","韩元","泰铢
私有变量:
浮点型数组rate[],作为变换汇率比例。
内容如下:
(float)
privatefloatrate[]={1,(float)6.8276,(float)89.1,(float)0.6841,(float)0.615,(float)1.0346,(float)1.0956
1.0601,(float)7.7503,(float)1.3913,(float)1.3794,(float)7.1208,(float)0.116,(float)33.12,(float)32.2};
私有变量:
JcomboBox型cb和cb1。
将按钮或可编辑字段与下拉列表组合的组件。
用户可以从下拉列表中选择值,下拉列表在用户请求时显示。
如果使组合框处于可编辑状态,则组合框将包括用户可在其中键入值的可编辑字段。
内容如下:
privateJComboBoxcb=nuII;
privateJComboBoxcb1=null;
privatedoublesum;//兑换后的金额
公有变量:
四个标签作为注释信息。
内容如下:
JLabelnum=newJLabel("兑换金额");
JLabelmoney=newJLabel('由");
JLabelbmoney=newJLabel("兑换至");
JLabelbnum=newJLabel('兑换后的金额为");
3•主要的成员方法:
init()方法,为整体框架添加所定义的组件。
部分内容如下:
publicvoidinit()
{
cb=newJComboBox(s);
cb1=newJComboBox(s);
text1=newJTextField(15);
text2=newJTextField(10);
p1=newPanel();
p5=newPanel();
p1.add(num,BorderLayout.WEST);
add(p1,BorderLayout.NORTH);
button=newJButton("兑换");
p4.add(button,BorderLayout.WEST);
add(p4);
p5.add(bnum,BorderLayout.WEST);
注册监听器部分内容。
cb.addActionListener(this);
cb1.addActionListener(this);
button.addActionListener(this);
}
4.实现的接口方法:
actionPeformed()方法,实现监听的方法。
选择兑换币种后实现兑换率转换部分代码如下:
publicvoidactionPeformed(ActionEvente){
JButtonbutto门仁(JButton)e.getSource();
java.text.DecimalFormatdf=newjava.text.DecimalFormat("#.OOOOOO");
Stringtext=text1.getText();
Stringsum1;
intcbx=cb.getSelectedIndex();//记录下标
intcb1x=cb1.getSelectedIndex();
if(button1==button)
{
sum=Float.parseFloat(text);
if(sum>0)
sum1=df.format((double)rate[cb1x]/(double)rate[cbx]*sum);text2.setText(sum1);
}
else
text2.setText("你输入的金额错误!
");
}
}
5.程序运行主要界面如下:
a.主界面,如图1.2所示
图1.2程序主界面
b.输入界面,如图1.3所示
图1.3输入界面
C.输出界面,如图1.4所示
图1.4输出界面
5.总结与展望
通过2周的上机时间终于完成了面向对象程序设计这门课程课程设计,整个过程中有喜有忧,起初在看到自己课程设计的题目的时候是一头雾水,根本不知道从何下手,之后通过同学的帮助和慢慢的探索终于有了起点,首先通过课程要求应该大体设计个主界面的窗口,然后添加“兑换金额”和所需要输入金币金额的数字框,之后根据题中要求需要添加“由输入金额的种类兑换至所需兑换后金额的种类”输入金额的种类与兑
换后金额的种类采用JcomboBox组件添加,然后添加个兑换的button按钮,最后输入“兑换后的金额为”。
通过上网查找了日元、欧元、英镑、瑞郎、澳元、加元、港币、坡元、纽元、瑞典克朗、韩元、泰铢、台币等通用货币,之后将这些货币添加到JcomboBox组件中,查阅了通
用货币与人民币之间的汇率情况,最后通过上机调试,调试过程中也出现了许多错误,如:
输入了金币金额也选择了金币种类与兑换后金币的种类,点击兑换按钮后没有什么反应,没有输出结果,还有金币金额与兑换后金币金额相同等等,最后通过老师与同学的帮助也终于完成这个java程序。
通过这次的课程设计让我学会了遇到自己不知道从何下手的问题时,应该先从大体上分析,也就是由大体到细微,由远及近,由浅入深的办法来解决问题,此次的课程设计业锻炼了自己的动手能力,同时也认识到了自己能力的不足,知识面的匮乏。
在以后的学习中不能再闭门造车,应该拓宽自己的知识,拓展思维,开阔自己的视野,多锻炼自己的动手能力,此次课程设计为我在以后的学习生活中提供了宝贵的财富。
6.程序设计代码
importjava.applet.*;
importjava.awt.*;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.JButton;
importjavax.swing.JComboBox;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JTextField;
publicclassExchanageRateextendsAppletimplementsActionListener
{
privateJFrameframe=newJFrame("汇率转换");
privateJTextFieldtext仁newJTextField();
privateJTextFieldtext2=newJTextField();
privateStrings[]={"美元”,”人民币”,”日元”,”欧元”,”英镑”,"瑞郎",”澳元”,"加元”,"港币”,”坡
元”,”纽元”,”瑞典克朗”,"韩元”,”泰铢”,”台币"};
privatefloatrate[]={1,(float)68276,(float)89.1,(float)0.6841,(float)0.615,(float)1.0346,(float)1.0956,(float)
1.0601,(float)7.7503,(float)1.3913,(float)1.3794,(float)7.1208,(float)0.116,(float)33.12,(float)32.2};
privateJComboBoxcb=null;
privateJComboBoxcb1=null;
privatedoublesum;//兑换后的金额
JLabelnum=newJLabel("兑换金额");
JLabelmoney=newJLabel("由");
JLabelbmoney=newJLabel("兑换至”);
JLabelbnum=newJLabel("兑换后的金额为”);
Panelp1;
Panelp2;
Panelp3;
Panelp4;
Panelp5;
JButtonbutton;
publicvoidinit()
{
cb=newJComboBox(s);
cb1=newJComboBox(s);text1=newJTextField(15);
text2=newJTextField(10);
p1=newPanel();p2=newPanel();p3=newPanel();p4=newPanel();p5=newPanel();
p1.add(num,BorderLayout.WEST);p1.add(text1,BorderLayout.EAST);p2.add(money,BorderLayout.WEST);p2.add(cb,BorderLayout.EAST);
p3.add(bmoney,BorderLayout.WEST);p3.add(cb1,BorderLayout.EAST);add(p1,BorderLayout.NORTH);add(p2,BorderLayout.CENTER);add(p3,BorderLayout.SOUTH);button=newJButton("兑换");p4.add(button,BorderLayout.WEST);add(p4);
p5.add(bnum,BorderLayout.WEST);
p5.add(text2,BorderLayout.EAST);
add(p5);
cb.addActionListener(this);
cb1.addActionListener(this);
button.addActionListener(this);
}
publicvoidactionPerformed(ActionEvente){
JButtonbutton1=(JButton)e.getSource();
java.text.DecimalFormatdf=newjava.text.DecimalFormat("#.000000");
Stringtext=text1.getText();
Stringsum1;
intcbx=cb.getSelectedIndex();〃记录下标
intcb1x=cb1.getSelectedlndex();
if(button1==button)
{
sum=Float.parseFloat(text);
if(sum>0)
{
sum仁df.format((double)rate[cb1x]/(double)rate[cbx]*sum);
text2.setText(sum1);
}
else
text2.setText("你输入的金额错误!
”);
}
}
}
参考文献
[1]《Java6程序设计实践教程》作者:
刘万军,郑少京,王松波,梁清华等清华大学出版社
[2]《java2程序设计教程》作者:
HarveyM.Deitel和PaulJ.Deitel机械工业出版社
[3]JSP网站编程教程[M].第1版作者:
屈辉立,陈可明,石武信.北京希望电子出版社,2005
[4]XX网站
成绩评定
成绩
教师签字