完整word版全球通计费程序 JAVA课程设计.docx

上传人:b****5 文档编号:14380023 上传时间:2023-06-22 格式:DOCX 页数:11 大小:34.85KB
下载 相关 举报
完整word版全球通计费程序 JAVA课程设计.docx_第1页
第1页 / 共11页
完整word版全球通计费程序 JAVA课程设计.docx_第2页
第2页 / 共11页
完整word版全球通计费程序 JAVA课程设计.docx_第3页
第3页 / 共11页
完整word版全球通计费程序 JAVA课程设计.docx_第4页
第4页 / 共11页
完整word版全球通计费程序 JAVA课程设计.docx_第5页
第5页 / 共11页
完整word版全球通计费程序 JAVA课程设计.docx_第6页
第6页 / 共11页
完整word版全球通计费程序 JAVA课程设计.docx_第7页
第7页 / 共11页
完整word版全球通计费程序 JAVA课程设计.docx_第8页
第8页 / 共11页
完整word版全球通计费程序 JAVA课程设计.docx_第9页
第9页 / 共11页
完整word版全球通计费程序 JAVA课程设计.docx_第10页
第10页 / 共11页
完整word版全球通计费程序 JAVA课程设计.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

完整word版全球通计费程序 JAVA课程设计.docx

《完整word版全球通计费程序 JAVA课程设计.docx》由会员分享,可在线阅读,更多相关《完整word版全球通计费程序 JAVA课程设计.docx(11页珍藏版)》请在冰点文库上搜索。

完整word版全球通计费程序 JAVA课程设计.docx

完整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

成绩评定

成绩教师签字

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 军事政治

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2