1.1. 课程性质
JAVA 程序设计是计算机专业本科生的必修专业主干课程,授课对象为计算
机科学与技术专业、数字媒体技术、信息安全专业等相关专业的本科生。
课程全面、系统地介绍 JAVA 语言的基本知识及程序设计技术,使学生掌握
Java 语言的语法、数据类型、流程控制等基本知识和面向对象程序设计思想的
Java 实现;了解 Java 常用的系统类;学习异常处理、线程、图形用户界面设计、
网络通信等内容。使学生的专业知识进一步完善和丰富,为将来的开发和研究工
作打下一定的基础。
1.2. 课程任务
(1) 巩固和加深学生对 Java 语言课程的基本知识的理解和掌握;
(2) 掌握 Java 语言编程和程序调试的基本技能;
(3) 利用 Java 语言进行基本的程序设计;
(4) 掌握书写程序设计说明文档的能力;
(5) 提高运用 Java 语言解决实际问题的能力。
2. 课程设计要求
编写一个计算器,可实现加减乘除等一系列运算。
编程要求:选择某一种运算后,根据输入的数据给出运算结果。
编程提示:在设计出的计算器界面上,通过按钮来实现基本的功能。
3. 课程设计内容
3.1. 选题描述
使用图形用户界面,设计计算器,用户通过鼠标依次输入需要计算的数值,
点击相应计算功能按钮,可以完成以下功能:
按键功能
±同时做“加减”运算
=等号键
%取余键,做“取余”运算
+-*/做“和差积商”运算
sqrt平方根
in反向
cos余弦
sin正弦
CE清除键,清除当前输入的数据或符号
3.2. 画出流程图
(1) 核心功能流程图
3.3. 题目设计 (代码)
public classCalculator extendsMouseAdapter {
JFrame list;
// Container con;
JTextField show;
JButton[] jbNum= newJButton[10];
JPanel jpMain; // 主面板
JPanel jpRight; // 右子面板主要用于存放运算符和等号
JPanel jpLight; // 左子面板用于存放数字,符号, “.”
JButton dight; // 小数点
JButton sign; // 正负号
JButton add; // 加号
JButton sub; // 减号
JButton multiply; // 乘号
JButton divide; // 除号
JButton power; // 求幂
JButton cos; // cos
JButton sin; // sin
JButton ln; // ln
JButton ce; // 清除
JButton equal; // 等于
JButton mod; // 取余
JButton sqrt; // sqrt
double sum= 0; // 临时结果
boolean b= false; // 监控运算符是否被点击,错误是否出现,用于实现下一次点击按钮时清空
operator i= operator.un; // 记录等号符点击前某一运算符点击次数,用于实现连加或者连减等
int op; // 记录操作符
// 操作符一包括+-*/%^
enumoperator {
add, sub, mul, div, mod, pow, sin, cos, sqrt, ln, un
}
voiddisplay() {
// 创建主窗口,添加一个Text框,
list= newJFrame("计算器");
list.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
list.setSize(360, 230);
list.setLocation(400, 300);
list.setBackground(Color.LIGHT_GRAY); // 设置窗口背景颜色
list.setResizable(false);
list.setLayout(newFlowLayout(FlowLayout.CENTER));
show= newJTextField(31);
show.setHorizontalAlignment(JTextField.RIGHT); // 文本框内文字右对齐
show.setEditable(false); // 文本框不可编辑
list.add(show);
// 创建面板并设置布局
jpMain= newJPanel();
jpRight= newJPanel();
jpLight= newJPanel();
jpMain.setLayout(newGridLayout(1, 2));
jpRight.setLayout(newGridLayout(4, 3, 3, 3));
jpLight.setLayout(newGridLayout(4, 3, 3, 3));
list.add(jpMain);
jpMain.add(jpLight);
jpMain.add(jpRight);
// 创建0~9按钮对象
for(int i= 9; i>= 0; i--) {
jbNum[i] = newJButton(String.valueOf(i));
jbNum[i].setForeground(Color.BLUE);
jpLight.add(jbNum[i]);
jbNum[i].addMouseListener(this);
}
add= newJButton("+");
sub= newJButton("-");
multiply= newJButton("*");
divide= newJButton("/");
power= newJButton("x^y");
sin= newJButton("sin");
cos= newJButton("cos");
ln= newJButton("ln");
ce= newJButton("CE");
equal= newJButton("=");
mod= newJButton("%");
sqrt= newJButton("sqrt");
jpRight.add(divide);
jpRight.add(sqrt);
jpRight.add(ln);
jpRight.add(multiply);
jpRight.add(sin);
jpRight.add(mod);
jpRight.add(sub);
jpRight.add(cos);
jpRight.add(ce);
jpRight.add(add);
jpRight.add(power);
jpRight.add(equal);
// 给所有按钮注册监听器
dight= newJButton(".");
sign= newJButton("±");
jpLight.add(sign);
jpLight.add(dight);
add.addMouseListener(this);
sub.addMouseListener(this);
multiply.addMouseListener(this);
divide.addMouseListener(this);
power.addMouseListener(this);
sin.addMouseListener(this);
cos.addMouseListener(this);
ln.addMouseListener(this);
ce.addMouseListener(this);
equal.addMouseListener(this);
mod.addMouseListener(this);
sqrt.addMouseListener(this);
dight.addMouseListener(this);
sign.addMouseListener(this);
list.setVisible(true);
}
3.4. 运行程序(结果截图)
(1) 运行界面
(2)加减乘除(+-*/)
(3)清除运算(CE)
(4)开平方根(sqrt)
(5)三角函数(sin\cos)
4. 总结
该文章分析了一个系统设计与实现,实际上就是让我们建立一个技术体现出来,最主要是要明白自己开发的这个程序它到底有哪些功能,这都是需要我们一开始就需要思考并且根据流程图来设计的。
为此,从题目上来讲,这个系统是需要JAVA一定基础及图形化界面的知识,但仅靠这两个是不行的,中间会运用到网页相关模块。而且开发这个系统我也需要去思考这个开发环境和开发的工具,我在做这个项目的时候,中途很多不会的技术需要自己去学习,比如运算符的实现,界面api函数的调用,都需要解决,经过网上资料的查阅,及同学的帮助。最终设计出一个比较完整的图形化GUI计算器系统。
5. 参考文献
[1]张墨华,张永强.Java程序设计[M].北京:清华大学出版社,.2021:123-124.
[2]贾素玲等编译.J2EE技术实践[M]. 高等教育出版社. 2018.
[3]柳永坡,刘雪梅,赵长海.JSP应用开发技术[M].北京:人民邮电出版, 2019.
[4]林帅,林雄.Java泛型研究[J]. 电脑开发与应用. 2018(03).
免费源码获得:扫码关注微信公众号:ancenok,然后回复:011