成绩计算.docx
- 文档编号:13745776
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:12
- 大小:94.94KB
成绩计算.docx
《成绩计算.docx》由会员分享,可在线阅读,更多相关《成绩计算.docx(12页珍藏版)》请在冰点文库上搜索。
成绩计算
java
专业:
物联网工程
姓名:
赵小龙、张冰霜
指导老师:
付辉
日期:
2013.11.25
课程设计
1、设计目的及内容要求
1.1设计目的
通过课程设计,主要要达到两个目的,一是检验和巩固专业知识、二是提高综合素质和能力。
该课程设计主要是Java语言程序设计的实现。
通过该课程设计,可以将学生课堂上掌握的理论知识与处理数据的业务相结合,以检验我们掌握知识的宽度、深度及对知识的综合运用能力。
1.2内容要求
设计一图形界面实现成绩的统计。
实现要点:
输入三门课程的成绩,显示总成绩和平均成绩。
提示:
在界面上放置三个标签提示输入语文、数学、英语成绩,一个计算按钮,两个分别显示总成绩和平均成绩的文本框。
2、系统结构设计
3、详细设计
3.1系统主界面的设计
在界面上的设计,一个成绩输入和一个结果显示。
创建一个成绩统计的界面,首先KevinTest的监听类,在此类中声明以下变量:
privateJFrameframe;
privateJLabelchineseLabel;
privateJLabelenglishLabel;
privateJLabelmathLabel;
privateJTextFieldchineseText;
privateJTextFieldenglishText;
privateJTextFieldmathText;
privateJLabelresultLabel;
privateJLabelresultLabelTitle;
privateJButtoncomputeBtn;
在此类中创建InIT方法,在InIT方法中设置窗口标题:
成绩的计算,设置窗口可是化采用绝对是布局,frame.setVisible(true);窗口关闭,创建WindowAdapterEventHandle()监听窗口关闭。
设置窗体的大小:
宽:
400,高:
400,frame.setSize(400,400)。
其次在框架中添加三个标签:
语文、数学、英语作为提示输入成绩,还有结果表标签,还有隐藏的文本框用来显示三门成绩的总成绩和平均成绩。
在此程序中创建InIT主方法,并在KevinTest类中调用此方法。
3.2定义InIT的构造方法
定义InIT构造方法并在主类中调用此方法,在InIT方法中设置界面的布局,采用绝对是布局内容如:
resultLabelTitle.setBounds(20,20,100,20);
resultLabel.setBounds(50,50,300,100);
chineseLabel.setBounds(20,180,50,20);
chineseText.setBounds(60,180,50,20);
englishLabel.setBounds(140,180,50,20);
englishText.setBounds(180,180,50,20);
mathLabel.setBounds(260,180,50,20);
mathText.setBounds(300,180,50,20);
computeBtn.setBounds(260,240,80,30);
并把文本框、标签、按钮添加到框架里。
对按钮添加computeBtn.addActionListener监听器并创建actionPerformed(ActionEvente)覆写按钮监听事件来处理按钮上的动作事件。
3.3创建IntegerDocument
创建IntegerDocument并继承PlainDocument在此类中创建IntegerDocument方法,在此方法中设置条件表示在设置的文本框中的数字不能超过四位数字。
此方法要在InIT方法中调用它即为:
chineseText.setDocument(newIntegerDocument(4));
englishText.setDocument(newIntegerDocument(4));
mathText.setDocument(newIntegerDocument(4));
3.4创建WindowAdapterEventHandle类
创建WindowAdapterEventHandle类并继承WindowAdapter,在此类中创建WindowAdapterEventHandle方法,主要任务是监听窗口的关闭。
创建的这个类中的方法要在InIT调用即为:
frame.addWindowListener(newWindowAdapterEventHandle());
4
错误!
未找到目录项。
、运行及结果分析
4.1运行程序得到输入界面,得到成绩计算系统,如图所示:
4.1输入语文、英语、数学三门成绩以后计算的结果
总结
参考文献
源程序
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JTextField;
publicclassKevinTestimplementsActionListener{
privateJFrameframe;
privateJLabelchineseLabel;
privateJLabelenglishLabel;
privateJLabelmathLabel;
privateJTextFieldchineseText;
privateJTextFieldenglishText;
privateJTextFieldmathText;
privateJLabelresultLabel;
privateJLabelresultLabelTitle;
privateJButtoncomputeBtn;
publicKevinTest(){
inIt();
}
/************************************************************************
*功能:
初始化
*
************************************************************************/
privatevoidinIt(){
//实例化对象
frame=newJFrame("成绩统计");//实例化窗口
chineseLabel=newJLabel("语文:
");
englishLabel=newJLabel("英语:
");
mathLabel=newJLabel("数学:
");
computeBtn=newJButton("计算");
resultLabelTitle=newJLabel("结果:
");
resultLabel=newJLabel();
chineseText=newJTextField();
englishText=newJTextField();
mathText=newJTextField();
//采用绝对布局定位
resultLabelTitle.setBounds(20,20,100,20);
resultLabel.setBounds(50,50,300,100);
chineseLabel.setBounds(20,180,50,20);
chineseText.setBounds(60,180,50,20);
englishLabel.setBounds(140,180,50,20);
englishText.setBounds(180,180,50,20);
mathLabel.setBounds(260,180,50,20);
mathText.setBounds(300,180,50,20);
computeBtn.setBounds(260,240,80,30);
//添加到窗体
frame.setLayout(null);
frame.add(resultLabelTitle);
frame.add(resultLabel);
frame.add(chineseLabel);
frame.add(chineseText);
frame.add(englishLabel);
frame.add(englishText);
frame.add(chineseText);
frame.add(mathLabel);
frame.add(mathText);
frame.add(computeBtn);
//设置输入框只能输入数字(4位以内的数字)
chineseText.setDocument(newIntegerDocument(4));
englishText.setDocument(newIntegerDocument(4));
mathText.setDocument(newIntegerDocument(4));
//设置窗体大小
frame.setSize(400,400);
//让组件显示
frame.setVisible(true);
//设置按钮监听
computeBtn.addActionListener(this);
//监听窗体事件(如果不设置的话程序进程不会关闭)
frame.addWindowListener(newWindowAdapterEventHandle());
}
/************************************************************************
*功能:
覆写按钮监听事件
*
************************************************************************/
publicvoidactionPerformed(ActionEvente){
floatresult=compute();
Stringstr="总分:
"+result+"平均分:
"+(result/3);
resultLabel.setText(str);
}
/************************************************************************
*功能:
计算总分
*
************************************************************************/
privatefloatcompute(){
floatresult;
//计算总分类型转换
result=Float.parseFloat(chineseText.getText())+
Float.parseFloat(englishText.getText())+
Float.parseFloat(mathText.getText());
returnresult;
}
/************************************************************************
*功能:
main方法
*
************************************************************************/
publicstaticvoidmain(Stringargs[])throwsException{
newKevinTest();
}
}
importjavax.swing.text.AttributeSet;
importjavax.swing.text.BadLocationException;
importjavax.swing.text.PlainDocument;
publicclassIntegerDocumentextendsPlainDocument{
privatestaticfinallongserialVersionUID=1L;
privateintlimit;
publicIntegerDocument(intlimit){
super();
this.limit=limit;
}
publicvoidinsertString
(intoffset,Stringstr,AttributeSetattr)
throwsBadLocationException{
if(str==null){
return;
}
if((getLength()+str.length())<=limit){
char[]upper=str.toCharArray();
intlength=0;
for(inti=0;i if(upper[i]>='0'&&upper[i]<='9'||upper[i]=='.'){ upper[length++]=upper[i]; } } super.insertString(offset,newString(upper,0,length),attr); } } } importjava.awt.event.WindowAdapter; importjava.awt.event.WindowEvent; publicclassWindowAdapterEventHandleextendsWindowAdapter{ publicvoidwindowClosing(WindowEvente){ super.windowClosing(e); System.exit (1); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 成绩 计算