完整word版全球通计费程序 JAVA课程设计.docx
- 文档编号:26808718
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:11
- 大小:34.85KB
完整word版全球通计费程序 JAVA课程设计.docx
《完整word版全球通计费程序 JAVA课程设计.docx》由会员分享,可在线阅读,更多相关《完整word版全球通计费程序 JAVA课程设计.docx(11页珍藏版)》请在冰豆网上搜索。
完整word版全球通计费程序JAVA课程设计
软件学院
课程设计报告书
课程名称面向对象程序设计课程设计
设计题目全球通计费程序
专业班级
学号
姓名
指导教师
2011年6月
1、设计时间---------------------------------------------------------------3
2、设计目的---------------------------------------------------------------3
三、设计任务---------------------------------------------------------------3
四、设计内容---------------------------------------------------------------3
1、问题描述---------------------------------------------------------3
2、设计思路---------------------------------------------------------3
3、代码实现---------------------------------------------------------4
4、程序运行---------------------------------------------------------10
五、总结与展望------------------------------------------------------------10
六、参考文献---------------------------------------------------------------12
1设计时间
2011年6月6日--2011年6月11日
2设计目的
《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。
其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。
3设计任务
设计一个全球通计费程序,能够实现如下功能:
(1)使用图形用户界面。
(2)使用真实的全球通资费标准,模拟统计一个特定号码的一个月的实时话费。
(3)能根据输入实现各种用户的话费的计算并显示月实时帐单。
4设计内容
4.1问题描述
4.1.1设计要求:
全球通计费程序实现的功能要求:
(1)使用图形用户界面。
(2)使用真实的全球通资费标准,模拟统计一个特定号码的一个月的实时话费。
(3)能根据输入实现各种用户的话费的计算并显示月实时帐单。
4.1.2实验提示:
使用接口和多个子类实现分别表示金卡、银卡等各种套餐的话费计算。
4.2设计思路
将全球通的各种增值业务做成接口,定义两个类做全球通的两种套餐(金卡套餐、银卡套餐),定义框架,然后在定义两个面板,一个面板上定义姓名、电话、通话时长、套餐类型、话费总金额等标签及其对应的文本域,另一个面板是用来显示详细账单汇总信息,通过事件监听操作,最后实现输入电话号码等文本域后则能出现其账单信息的功能。
4.3代码实现
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
importjava.awt.GridBagLayout;
importjava.awt.GridBagConstraints;
importjava.awt.event.ActionEvent;
interfaceYeWu
{
publicvoidguoJiManYou139YeWu();
publicvoidGPRSxinTaoCan();
publicvoidtaiGangAoJiGuoJiChangTu();
publicvoidIP17911();
publicvoidguoNeiYouHuiGanXianYeWuJieShao12593();
}
interfacecommon
{
doublecountFees(inttime);
}
//金卡
classGoldenimplementscommon{
publicdoublecountFees(inttime){
//计算金卡费用
doublefees=0;
doublecount=300;
fees=0.29*time;
returnfees;
}
}
//银卡
classSliverimplementscommon{
publicdoublecountFees(inttime){
//计算银卡费用
doublefees=0;
doublecount=200;
fees=0.39*time;
returnfees;
}
};
publicclassTextDemoextendsJFrameimplementsActionListener
{
privateJLabellbName,lbTel,lbTime,lbType,lbFee;
privateJTextFieldtfName,tfTel,tfTime,tfType,tfFee;
privateJTextAreaBilling;
privateJPanelInputPanel,BillPanel;
privateGridBagConstraintsconstraints;
privateContainercontainer;
privatedoublefees;
privateStringa="金卡套餐";Stringb="银卡套餐";
privateintn;
privatebooleanx=false;booleany=false;
publicTextDemo()
{
setSize(300,260);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
container=this.getContentPane();
container.setLayout(newGridLayout(2,1));
}
privatevoidAddComponent(JPanelpanel,GridBagLayoutLayout,GridBagConstraintsgbc,Componentcom,introw,intcolumn,intnumRows,intnumColumns,intWeightx,intWeighty)
{gbc.gridx=row;
gbc.gridy=column;
gbc.gridwidth=numRows;
gbc.gridheight=numColumns;
gbc.weightx=Weightx;
gbc.weighty=Weighty;
Layout.setConstraints(com,gbc);
panel.add(com);
}
publicvoidsetLayout()
{InputPanel=newJPanel();
constraints=newGridBagConstraints();
InputPanel.setLayout(newGridLayout(5,2));
//创建姓名标签并添加到输入面板
//constraints.anchor=GridBagConstraints.CENTER;
lbName=newJLabel("姓名");
constraints.fill=GridBagConstraints.NONE;
AddComponent(InputPanel,newGridBagLayout(),constraints,lbName,0,0,1,1,10,0);
//创建姓名文本框并添加到输入面板
tfName=newJTextField();
constraints.fill=GridBagConstraints.HORIZONTAL;
AddComponent(InputPanel,newGridBagLayout(),constraints,tfName,1,0,1,1,90,100);
//创建电话标签
lbTel=newJLabel("电话");
constraints.fill=GridBagConstraints.NONE;
AddComponent(InputPanel,newGridBagLayout(),constraints,lbTel,0,1,1,1,10,0);
//创建电话文本框
tfTel=newJTextField();
constraints.fill=GridBagConstraints.HORIZONTAL;
AddComponent(InputPanel,newGridBagLayout(),constraints,tfTel,1,1,1,1,90,100);
//创建通话时长
lbTime=newJLabel("通话时长");
constraints.fill=GridBagConstraints.NONE;
AddComponent(InputPanel,newGridBagLayout(),constraints,lbTime,0,2,1,1,10,0);
//创建通话时长文本框
tfTime=newJTextField();
constraints.fill=GridBagConstraints.HORIZONTAL;
AddComponent(InputPanel,newGridBagLayout(),constraints,tfTime,1,2,1,1,90,100);
//创建套餐类型
lbType=newJLabel("套餐类型");
constraints.fill=GridBagConstraints.NONE;
AddComponent(InputPanel,newGridBagLayout(),constraints,lbType,1,2,1,1,10,0);
//创建套餐类型文本框
tfType=newJTextField();
tfType.addActionListener(this);
constraints.fill=GridBagConstraints.HORIZONTAL;
AddComponent(InputPanel,newGridBagLayout(),constraints,tfType,2,2,1,1,90,100);
//创建话费总金额
lbFee=newJLabel("话费总金额");
constraints.fill=GridBagConstraints.NONE;
AddComponent(InputPanel,newGridBagLayout(),constraints,lbFee,2,2,1,1,10,0);
//创建话费总金额文本框
tfFee=newJTextField();
tfFee.addActionListener(this);
constraints.fill=GridBagConstraints.HORIZONTAL;
AddComponent(InputPanel,newGridBagLayout(),constraints,tfFee,2,1,1,1,90,100);
//添加账单面板
BillPanel=newJPanel();
BillPanel.setLayout(newBorderLayout());
Billing=newJTextArea("详细账单");
Billing.enable(false);
BillPanel.add(Billing);
//将输入面板和账单面板添加到框架中
container.add(InputPanel);
container.add(BillPanel);
}
publicstaticvoidmain(String[]args)
{
TextDemoframe=newTextDemo();
frame.setLayout();
frame.show();
}
publicvoidactionPerformed(ActionEvente)
{
if(e.getSource()instanceofJTextField)
{
if(x=tfType.getText().equals(a))
{
intn=Integer.parseInt(tfTime.getText());
tfFee.setText(""+(fees=0.29*n+300));
}
if(y=tfType.getText().equals(b))
{
intn=Integer.parseInt(tfTime.getText());
tfFee.setText(""+(fees=0.39*n+200));
}
Billing.append("\n");
Billing.append("姓名:
"+tfName.getText()+"\n");
Billing.append("电话:
"+tfTel.getText()+"\n");
Billing.append("通话时长:
"+tfTime.getText()+"\n");
Billing.append("话费总金额:
"+tfFee.getText()+"\n");
}
}
}
4.4程序运行
4.4.1运行结果
4.4.2结果分析
运行过程中,向文本域中输入姓名、电话、通话时长、套餐类型,输入完之后,将光标移到套餐类型文本框里,在输入的套餐类型之后敲下Enter键,则在话费总金额的文本框里自动生成数据,即真正的话费总金额,而且在BillPanel中也生成详细账单。
5总结与展望
在这次试验中遇到了很多问题,从程序不能运行到可以运行经过了一个艰难的过程,在老师和同学的帮助下,最后成功的将程序运行出来了。
通过这次实验,更进一步了解了Java语言,用java语言面向对象的思想进行编程设计,程序调试也很关键,通过调试使程序更完善了。
本次程序设计是在学习了《面向对象课程设计》后进行的初次实验,主要通过对程序设计来实现想要达到的功能,知道利用计算机编程的步骤。
通过本次程序设计我发现在程序开发的过程中,上机调试程序是一个不可缺少的重要环节。
“三分编程七分调试”,亦说明程序调试的工作量要比编程大得多。
我们初学者最容易犯的错误是:
没有区分开教材上的数字1和字母l,字母o和数字0的区别,造成变量未定义的错误。
另一个易错点是将英文状态下的逗号,分号;括号()双引号""输入出入成中文状态下的逗号,分号;括号(),双引号“”造成非法字符错误。
而且学习设计运行一个程序时要讲究方法才更便于记忆,理解,吸收。
上机调试时先将输入的Java程序的基础上进行试验性的修改,运行一下程序看一看程序结果发生了什么变化,分析结果变化的原因,加深新学知识点的理解。
事实上这和第一步时同步进行的,实现“输入”加深知识的记忆,“修改”加深对知识的理解。
记忆和理解是相辅相成的,相互促进。
本次程序设计试验使我感悟了java设计语言的面向对象的设计思想,理解利用Java语言来进行编程的方法和步骤。
我感觉这次试验的难点是如何用面向对象的设计思想来思考问题。
参考文献
[1]刘万军、梁清华、王松波、宋强等编著《Java程序设计实践教程》北京:
清华大学出版社,2006.9
成绩评定
成绩教师签字
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整word版全球通计费程序 JAVA课程设计 完整 word 全球通 计费 程序 JAVA 课程设计