java课程设计报告
淮 海 工 学 院 计算机工程学院
课程设计报告
设计名称: 选题名称: 姓 名: 瑶 专业班级: 系 (院): 设计时间: 设计地点:
面向对象课程设计 计算器的设计与实现
学 号: 2015123226 网络 151 计算机工程学院 2016.11.28~2016.12.10 软件实验室、教室
指导教师评语:
}
public void actionPerformed(ActionEvent e) {
} else if(e.getSource()==bsub) {
} else if(e.getSource()==bmul)
{
} else if (e.getSource()==bdiv) {
} else if(e.getSource()==bcos) {
JMenuBar mb; JMenu menu; JMenuItem t,t1,t2; JPanel pnl1,pnl2; JTextField textfild; GridLayout grd; JButton b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,bp,bd; JButton badd,bsub,bmul,bdiv,bcos,bsin,bjiecheng,bpow,beql,bclear; String str; boolean end,add,sub,mul,div,cos,sin,jiecheng,pow; double num1,num2; Calculator() {
public double funjiecheng(double i) {
double num=1; if(i==0||i==1)
num=1; else
num=num*funjiecheng(i-1); return num; }
public void Display(int i)
{ String s=null; s=String.valueOf(i); if(end)//如果数字输入结束,则将文本框置零,重新输入 { textfild.setText("0"); end=false; } if((textfild.getText()).equals("0"))//如果文本框的容为零,则覆盖文本框的容 { textfild.setText(s); } else { str=textfild.getText()+s; textfild.setText(str); }
end=true;//输入结束 } else if(e.getSource()==bsin) {
} else if(e.getSource()==bjiecheng) {
} else if(e.getSource()==bpow) {
} else if(e.getSource()==bclear) {
mb=new JMenuBar();; menu=new JMenu("说明书"); t=new JMenuItem("此计算器使用方便,可以实现连续不同优先级的运算。当进 行一次运算后,"); t1=new JMenuItem("再点击数字按钮则开始新一轮的运算,如果在是运算后直接 点运算符号(加减等)"); t2=new JMenuItem("则会直接继续上次的结果进行运算。"); menu.add(t); menu.add(t1); menu.add(t2); mb.add(menu); b0=new JButton("0"); b1=new JButton("1"); b2=new JButton("2"); b3=new JButton("3"); b4=new JButton("4"); b5=new JButton("5"); b6=new JButton("6"); b7=new JButton("7"); b8=new JButton("8"); b9=new JButton("9"); bd=new JButton(".");
bd.setEnabled(true); textfild.setText("0"); } else if(e.getSource()==bd) {
str=textfild.getText(); str+="."; textfild.setText(str); bd.setEnabled(false); } else if(e.getSource()==beql) { bd.setEnabled(true); num2=Double.parseDouble(textfild.getText());//数字类型转化 if(add) {
成绩:
签名:
年月日
1.课程设计目的
《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进 行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和 基础知识的理解,掌握使用 Java 语言进行面向对象设计的基本方法,提高运用面向对象知识分 析实际问题、解决实际问题的能力。 同时复习本学期所学的知识以及运用于实践中去,将基本知识点进行稳定,使之更加熟悉知识点。 通过本次学习了解以下的容: 1)、类、包、接口的定义与使用 2)、Java 常用的标准 GUI 组件及事件处理
Calculator extends JFrame pnl1: JPanel pnl2: JPanel textfild: JTextField grd: GridLayout b0: JButton b1 :JButton b2: JButton b3: JButton b4: JButton b5 :JButton b6: JButton b7: JButton b8: JButton b9: JButton bp: JButton bd: JButton badd:JButton bsub:JButton bmul: :JButton bdiv:JButton bcos: :JButton bsin:JButton bjiecheng:JButton bpow:JButton beql:JButton bclear:JButton num1:double num2:double end:boolean add: boolean sub: boolean mul: boolean div: boolean cos: boolean sin: boolean jiecheng : boolean pow: boolean
{ num1=Math.cos(num1);
} else if(sin) {
num1=Math.sin(num1); } else if(jiecheng) {
num1=funjiecheng(num1); } else if(pow) {
num1=Math.pow(num1,num2);//调用库函数中的 pow 方法 } textfild.setText(String.valueOf(num1));//把所得结果显示在文本框 end=true; } }
Jiecheng
输输
输
输
入入
入
入
一一
一
一
个个
个
个
数数
数
数
字字
字
字Байду номын сангаас
Math. add()
Math. sub()
Math. mul()
Math. div()
Math. cos()
Math. sin()
Math. pow()
Funjiecheng ()
Display()方法显 示
二、概要设计
Calculator 类用来实现所要应用的各种功能:
}
} Text 类是对 Calculator 类的详细实现及其测试:
Text main(String a[])
public class Text {
public static void main(String a[]) {
new Calculator(); } }
三、详细设计
加上代码: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Calculator extends JFrame implements ActionListener {
super("简单的计算器"); grd=new GridLayout(6,4,6,6); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); pnl1=new JPanel(grd); pnl2=new JPanel(grd); Container cp=this.getContentPane();//注意 getContentPane cp.add(pnl1,"North"); cp.add(pnl2,"Center"); pnl1.setBackground(Color.orange);
bdiv=new JButton("÷"); bdiv.setForeground(Color.red); bmul=new JButton("×");
bmul.setForeground(Color.red); badd=new JButton("+"); badd.setForeground(Color.red); bsub=new JButton("-"); bsub.setForeground(Color.red); bcos=new JButton("Cos"); bcos.setForeground(Color.blue); bsin=new JButton("Sin"); bsin.setForeground(Color.blue); bjiecheng=new JButton("n!"); bjiecheng.setForeground(Color.blue); bclear=new JButton("C"); bpow=new JButton("x^y"); bpow.setForeground(Color.blue); beql=new JButton("=");