课程设计报告模板文档格式.docx
- 文档编号:19828842
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:28
- 大小:400.75KB
课程设计报告模板文档格式.docx
《课程设计报告模板文档格式.docx》由会员分享,可在线阅读,更多相关《课程设计报告模板文档格式.docx(28页珍藏版)》请在冰豆网上搜索。
综合应用能力评价
综合评定等级
课程设计评阅意见
评阅人黄建华职称副教授
2014年1月6日
课程设计内容及要求
关键词:
JAV
计算器;
程序设计;
四则运算;
>
内容:
(1)设计总体框架,根据设计计算器的要求设置相应多个按钮,总体界面用BorderLayout布局,文本框放置在最NORTH,然后0到9以及+,-,*/等按钮放置到一个面板Panel中,完成界面设计。
每一个按钮都要为其注册事件监听器,实现功能。
(2)设计计算流程,首先点击数字按钮时,将按钮数值添加到文本框当中,并将该数值保存到一个字符串中,再次点击数字按钮时,将之前保存的字符串与新的数值拼接起来,再添加到文本框当中,直到点击运算符按钮时,将文本框当中的字符串保存在一个字符串变量中,然后重置文本框内容,将运算符号显示到文本框中,随后输入第二个计算数据时,同样的办法保存数据,最后通过控制“=”运算符先将字符串数据转化成双精度类型,然后计算出结果并显示到文本框当中。
(3)基本运算设计完成以后则开始考虑其他个别功能的实现,例如倒数、清零、退格等功能的实现,清零直接重置文本框内容,退格功能则采用substring函数,截取字符串长度。
>
基本要求:
1,根据所学知识,设计一个可视界面的简单计算器,计算器必须具备一般的计算功能:
加法,减法,乘法,除法。
2,使用图形用户界面编写计算器,加深对GUI的了解。
3,使用图形用户界面的基本组件完成,包扩swing组件awt组件。
4,对于在设计代码和调试代码的时候出现的相关问题自己查阅相关的文献,相关的资料,对于不明确的方法自己查看API文档
总体设计
2.1.程序设计的组件
这个计算器程序设计包括swing组件,不过大部分用的是awt组件.
importjava.awt.Container;
importjava.awt.GridBagConstraints;
importjava.awt.GridBagLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.io.BufferedReader;
importjava.io.FileReader;
importjava.io.FileWriter;
importjavax.swing.JButton;
importjavax.swing.JFileChooser;
importjavax.swing.JFrame;
importjavax.swing.JMenu;
importjavax.swing.JMenuBar;
importjavax.swing.JMenuItem;
importjavax.swing.JOptionPane;
importjavax.swing.JScrollPane;
importjavax.swing.JTextArea;
importjavax.swing.JTextField;
2.2程序设计的框架
首先明确该实验设计的要求实现的基本功能,其次设计布局,空间划分为由行和列组成的网格单元,每个单元放一个组件,网格单元大小可以不同,尽量将相同属性的按钮放在一个区域,方便操作。
程序流程图如下图
程序中所涉及到的基本组件:
//声明一个菜单栏,用于存放菜单
privateJMenuBarmenuBar;
//声明菜单,菜单中科放置菜单项
privateJMenumenuFile,menuHelp,menuHandle;
//声明菜单项,将菜单项放置在菜单中
PrivateJMenuItemmiNew,miOpen,miSave,miExit,miAbout,miCalculator;
//声明一个滚动面板
privateJScrollPanesp;
//声明一个文本域
privateJTextAreatxtContent;
运行代码就会出现一个对话框,单击文件显示此菜单列表。
单击“新建”:
会显示出“记事本”,“word文档”,“c++”,
单击“打开”:
弹出一个对话框,根据自己的需求打开想要的文件
//打开文件的方法
privatevoidopenFile(){
//实例化一个文件对话框对象
JFileChooserfc=newJFileChooser();
//显示文件打开的对话框
intrVal=fc.showOpenDialog(this);
//如果单击“确定”(TES、NO)按钮
if(rVal==JFileChooser.APPROVE_OPTION){
//获取文件对话框中用户名选中的文件名
StringfileName=fc.getSelectedFile().getName();
//获取文件对话框中用户选中的文件所在的路径
Stringpath=fc.getCurrentDirectory().toString();
try{
//创建一个文件输出流,用于读文件
FileReaderfread=newFileReader(path+"
/"
+fileName);
//创建一个缓冲流
BufferedReaderbread=newBufferedReader(fread);
//从文件中读一行信息
Stringline=bread.readLine();
//循环读文件中的内容,并显示到文本域中
while(line!
=null){
txtContent.append(line+"
\n"
);
//读下一行
line=bread.readLine();
}
bread.close();
fread.close();
}catch(Exceptione){
e.printStackTrace();
}
}
}
单击“保存”:
弹出一个对话框,根据自己的要求选择保存文件的路径,保存文件的额类型
//保存方法
privatevoidsaveFile(){
//显示文件保存对话框
intrVal=fc.showSaveDialog(this);
//如果单击“确定”(yes/no)按钮
//获取文件对话框中用户选中的文件名
//获取文件对话框中用户所在的路径
//创建一个文件输入流,用于写文件
FileWriterfWriter=newFileWriter(path+"
//将文本域中的信息写入文件中
fWriter.write(txtContent.getText());
fWriter.close();
}catch(Exceptione){
单击“退出”:
退出运行程序
单击“关于”:
弹出一个对话框,对话框中显示作者的相关信息
JOptionPane.showMessageDialog(this,
"
班级:
12计科
(1)班\n姓名:
肖拔赟\n学号:
20120210440118"
"
关于"
JOptionPane.WARNING_MESSAGE);
计算器实现:
(1)使用图形用户界面:
一个文本框;
0-9数字按钮;
加、减、乘、除、取余运算符“=”符号;
复清零按钮;
(2)完成整数、实数的四则运算(加、减、乘、除、取余),及取余;
加法运算:
用数字按钮和“+”按钮进行运算;
减法运算:
用数字按钮和“-”按钮进行运算
乘法运算:
用数字按钮和“*”按钮进行运算;
除法运算:
用数字按钮和“/”按钮进行运算
退格运算:
用符号按钮“←”进行运算;
(3)通过按钮点击实现数据的复位(清零);
(4)实数运算中小数位的精度一致。
//定义一个数组,将计算器中的按钮都放置在该数组中
PrivateStringnames[]={"
←"
*"
-"
7"
8"
9"
+"
4"
5"
6"
1"
2"
3"
0"
."
="
};
//鉴于我设计的计算器采用的是键盘显示,采用边界布局管理器,或者采用卡片布局管理器会比较繁琐,所以我用空布局,对于每个基本的组件设定其位置。
privateintboundsName[][]={{0,5,45,45},{50,5,45,45},{100,5,45,45},
{150,5,45,45},{0,55,45,45},{50,55,45,45},
{100,55,45,45},{150,55,45,95},{0,105,45,45},
{50,105,45,45},{100,105,45,45},{0,155,45,45},
{50,155,45,45},{100,155,45,45},{0,205,95,45},
{100,205,45,45},{150,155,45,95}};
//采用循环对数组中的每一个对象都注册监听,对每个对象都设置相应的位置,并且将所有的组件都添加到面板中去
for(inti=0;
i<
b.length;
i++){
b[i]=newButton(names[i]);
//注册监听
b[i].addActionListener(ba);
b[i].addKeyListener(ka);
p.add(b[i]);
b[i].setBounds(boundsName[i][0],boundsName[i][1],boundsName[i][2],boundsName[i][3]);
功能实现
计算器具有一般计算器所具有的功能,加减乘除功能都具备,另外我还添加了一个退格的功能
//数据计算实现
publicvoidcalculator(doublex){
if(lastCommand.equals("
))
result+=x;
//计算加法
elseif(lastCommand.equals("
result-=x;
//计算减法
elseif(lastCommand.equals("
result*=x;
//计算乘法
elseif(lastCommand.equals("
result/=x;
//计算除法
elseif(lastCommand.equals("
result=x;
//计算并返回计算结果
//将结果显示在文本栏
txtResult.setText("
"
+result);
//实现退格功能
if(input.equals("
)){
//Strings=txtResult.setText();
StringBuffers=newStringBuffer(txtResult.getText());
if(s.length()>
0){
txtResult.setText(s.delete(s.length()-1,s.length()).toString());
测试
3.1运行程序的主界面
3.2单击文件弹出一系列的菜单
3.3单击打开,弹出一个对话框,根据自己的需求打开自己要打开的文件
3.4这里我打开一个以前编写好的java源代码为例,被打开的源代码会在下面的文本域中显示出来
3.5打击保存弹出一个对话框,根据自己的要求选择要保存的路径和要保存文件的类型
3.6单击帮助按钮,就会弹出一个会话框,再单击确定就会弹出计算器的画面
3.7单击确定就会弹出计算器的对话框,用户就可以根据自己的需求使用计算器进行运算
3.8退格功能实现,每单击一次退格键就会退格一位
3.9计算器还实现了,键盘监听,还可以通过键盘的输入进行运算.
课程设计心得
该程序是一个图形界面的简单的java计算器,使用人员能快捷简单地进行操作。
即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。
可以进行简单的四则运算(加、减、乘、除,以及求倒数,求相反数),有退格功能,归零表示初始化,界面颜色为灰白,该程序支持键盘操作。
随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。
文本编辑器是个人计算机最司空见惯的应用程序了,在学习了Java语言之后,我决定使用Java语言编写一个简单的计算器,可以实现简单的运算功能,满足日常基本的工作学习和娱乐需要。
Java是由Sun公司开发的新一代纯面向对象的网络编程语言。
其目标是建立一种在任意种机器、任一种操作系统的网络环境中运行的软件,实行所谓的“程序写一次,到处运行”的目标。
正因为如此,Java已成为当今Internet上最流行、最受欢迎的一种程序开发语言。
Java开发小组把Java按特性分为基本版、移动版、企业版,每个版本有一个软件开发包。
Java基本版本叫Java2标准版(Java2StandardEdition,J2SE),它包含建立Java应用程序或者是Applet所需的应用程序编程接口(API)。
Java2移动版(TheJava2MobileEdition,J2ME)包含创建无线Java应用程序的API。
还有Java2企业版(TheJava2Enterprise,J2EE)是J2SE的增强版本,包含建立多层架构应用程序API
Java是一门编程语言,也是一个平台,它基于Java虚拟机技术,机为主这个东西建立了跨平台优势。
本计算器可以进行简单的四则运算(加、减、乘、除),但仅限于十进制。
还有清零和退格功能。
该程序显示GUI界面。
在做本项目时候,我会v遇到很多小问题,比如说:
如何保存输入的数字和下一个数进行加、减、乘、除、取余运算。
还有如何判断它是第几个输入的数字。
怎样设计不同的运算机制。
后来进行多次研
究和查询才知道可以通过设运算符标志位来判断是输入的第几个数值。
在做本题目中困扰我时间最长的问题就是怎样给按钮添加侦听器。
怎样判断是哪个按钮发生了事件。
怎样处理事件。
及最重要的运算。
始用switch的方法根据按钮的不同直接进行运算,发现很麻烦,并且有很多错误。
后来通过查询,才明白要通过保存一个运算符的方法来进行设计。
其中怎样设计等号的处理方法也是通过保存上一个运算符的方法实现的。
此次课程设计让我更了解熟悉了技巧,对GUI界面的设计方面有了更多的受和稍微理解了抽象的概念,在完成课题的过程中也不断充实了自己,学习到了很多以前没有学习到的知识,对Java的各种操作也有了自己的认识,收获很大。
最大的收获就是对大学学习的总结和培养了解决困难的信心和能力,不怕繁琐,使我对所学知识能够融会贯通,又不断丰富了新知识。
Java计算器设计使得我们对所学的专业课有了更为深刻的认识,使得知识得到了巩固和提高。
在本次课程设计中感受最深的是在实践过程中,将各章学习的知识点融合在一起,使用起来更加的顺畅,不再是僵化的一块一块的知识区。
对Java认识更加深,下学期学习会更加的轻松,对新知识点接受更快,并且学习过程中会信心百倍。
参考文献
[1]谢希仁.计算机网络(第五版)[M].北京:
电子工业出版社,2008年2月
[2]胡小强计算机网络[M]北京:
北京邮电大学出版社2005年1月
[3]林邓伟,孟军霞java程序设计(第2版)北京理工大学出版社
[4]陈丹丹java学校手册电子工业出版社
[5]青岛海尔软件有限公司javaSE程序设计高级教程电子工业出版社
附件(程序代码)
//记事本java源代码
publicclassNoteextendsJFrameimplementsActionListener{
privateJMenuBarmenuBar;
privateJMenumenuFile,menuHelp,menuHandle;
privateJMenuItemmiNew,miOpen,miSave,miExit,miAbout,miCalculator;
privateJScrollPanesp;
privateJTextAreatxtContent;
publicNote(){
super("
记事本"
menuBar=newJMenuBar();
this.setJMenuBar(menuBar);
menuFile=newJMenu("
文件"
menuHelp=newJMenu("
帮助"
menuHandle=newJMenu("
操作"
menuBar.add(menuFile);
menuBar.add(menuHelp);
menuHelp.add(menuHandle);
miSave=newJMenuItem("
保存"
miOpen=newJMenuItem("
打开"
miNew=newJMenuItem("
新建"
miExit=newJMenuItem("
退出"
miAbout=newJMenuItem("
miCalculator=newJMenuItem("
计算器"
menuFile.add(miNew);
menuFile.add(miOpen);
menuFile.add(miSave);
menuFile.addSeparator();
menuFile.add(miExit);
menuFile.add(miAbout);
menuHandle.add(miCalculator);
//注册监听
miNew.addActionListener(this);
miSave.addActionListener(this);
miOpen.addActionListener(this);
miExit.addActionListener(this);
miAbout.addActionListener(this);
miCalculator.addActionListener(this);
txtContent=newJTextArea(20,30);
sp=newJScrollPane(txtContent);
this.add(sp);
this.setSize(400,300);
this.setLocation(100,100);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
publicvoidactionPerformed(ActionEvente){
Objectsource=e.getSource();
if(source==miNew){
//清空文本域中的内容
txtContent.setText("
if(source==miOpen){
txtContent.setTex
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告 模板