java课程设计报告_第1页
java课程设计报告_第2页
java课程设计报告_第3页
java课程设计报告_第4页
java课程设计报告_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、. . . . . . .专业 . .“高级语言综合课程设计“设计报告学院:信息工程学院专业班级:学号:23号姓名:指导教师:完成时间:成 绩:目录TOC o 1-3 h u HYPERLINK l _Toc19 题目一 计算器 PAGEREF _Toc19 2 HYPERLINK l _Toc8047 1.1 需求分析 PAGEREF _Toc8047 2 HYPERLINK l _Toc13073 1.2 总体设计 PAGEREF _Toc13073 2 HYPERLINK l _Toc2046 1.2.1 功能设计 PAGEREF _Toc2046 2 HYPERLINK l _Toc2

2、7375 1.2.2 用户界面设计 PAGEREF _Toc27375 3 HYPERLINK l _Toc10594 1.2.3 关键算法分析 PAGEREF _Toc10594 4 HYPERLINK l _Toc21221 1.3 代码实现 PAGEREF _Toc21221 6 HYPERLINK l _Toc6073 1.3.1 类之间的关系 PAGEREF _Toc6073 6 HYPERLINK l _Toc30033 1.3.2 运行效果 PAGEREF _Toc30033 7 HYPERLINK l _Toc18362 1.3.3 打包发布 PAGEREF _Toc18362

3、 7 HYPERLINK l _Toc157 1.4 程序测试 PAGEREF _Toc157 7 HYPERLINK l _Toc12427 1.5 实验总结 PAGEREF _Toc12427 8 HYPERLINK l _Toc4143 附录2 局部源码 PAGEREF _Toc4143 9题目一 计算器1.1 需求分析设计一个计算器,用户可以通过鼠标依次输入参加计算的数值,进展加减乘除等混合运算,使之具有普通的功能外,还能有显示计算过程,保存计算过程的功能。这个计算器拥有常见的函数,例如:sin,cos,tan,平方,log等。数字键用图片代替,要求所设计GUI界面计算器是一个使用方便

4、的程序,能实现根本的加减乘除功能,同时实现退格、清零等运算。1.2 总体设计1.2.1 功能设计1)单击“计算器上的数字按钮0、1、2、3、4、5、6、7、8、9可以设置参与计算的运算数。2单击“计算器上的运算符按钮+,-,*,/可以选择运算符号。3单击“计算器的函数按钮可以计算出相应的函数值。 (4)单击“计算器的“=按钮宣示计算结果。 (5)在一个文本框中显示当前的计算过程,在一个文本区中显示以往的计算过程。 (6)单击“保存按钮可以文本区的全部计算过程保存的文件;单击“复制按钮可以将文本区中选中的文本复制的剪切板;单击“去除按钮可以去除文本区中所有容。1.2.2 用户界面设计图1.2-2

5、图1.2-2是与用户交互的友好操作界面,在计算器的标准型中,其中数字键为图片,采用了传统计算器的按钮图片,数字键让人感觉起来更有计算器的气息。函数功能主要有sin,cos,sqrt等几个计算器功能实现对简单计算器的*些功能扩展,根本数学运算中主要有+,*,/等常用的简单运算。首先是设计一个大小为330,270的窗口,界面布局应用了borderlayout布局,将六个面板组合好添加到窗体里面。其中将文本框放置在窗体的下部,窗体的西部放置了计算器的功能按钮,将数字键安置在窗体的东间,而下部则是放置了运算键。用户可以利用鼠标点击数值或操作符按键完成计算的输入,计算的结果将被显示在窗口下部的文本框中。

6、1.2.3 关键算法分析 开场流程图 初始化输入第一个数连加连减? Y N将上次结果作为第一个数保存数字和运算符输入第二个数 函数按键修正运算符符号修正运算符 Y 保存第二个数 N 输出 完毕NumberButton类的设计效果图:NumberButton创立的数字按钮的效果如下列图:Numberbutton创立数字的效果图,用图片代替。UML 图NuberButton是java*.swing包中utton组件的子类。所创立的对象是CalculatorWindow类中Nubutton型数组;nuberButton中的元素。handleBack类Uml图:HandleBack类实现了Action

7、Listener接口,创立的对象handleBack是CalculatorWindow窗口成员之一。Handle函数类,取tan作为模版效果图HandleTan类创立对象无效果图。UML图HandleTan是我们编写的一个函数类,此类实现类ActionListener接口,创立对象handletan是主类窗口成员之一。1.3 代码实现1.3.1 类之间的关系图 1.3-1Numberbuttonl类创立的对象是主类Calculatorwindow窗口的一个“数字按钮。NuberButton类有一个int类型的成员nuber,标明所创立的按钮所含有的数字。OperqtionButton类创立的对

8、象是主类CalculatorWindow窗口中的一个“运算符按钮。OperationButton类有个String类型的成员opwerateSign,用于标明所创立的按钮所俺都有的运算符号。HandleDot类是创立的对象负责处理ActionEvent事件,当用户单击“.按钮小数点)时,HandleDot类所创立的类负责处理小数点。HandleSin类所创立的对象负责处理ActionEvent事件。当用户点击sin按钮时,handleSin类所创立的对象负责计算三角函数值。这些类都是从主类开场的,然后再调用所需要的类。1.3.2 运行效果1.3.3 打包发布Myeclipse的打包方法:选中C

9、alculator这个工程,右击,然后选择E*port,找到java里的Runnable JAR file进展打包发布,主类选择Calculatorwindow类来进展发布。得到了Calculator.jar即为可执行文件,但由于文件中采取了图片,因此,需将图片文件置于Runnable JAR file同一目录下。1.4 程序测试1.5 实验总结总体来说,本次java工程的课程设计在规定期间顺利完成,计算器的界面、根本函数的计算、局部科学型计算也都一一实现。缺乏之处在于该计算器的函数功能不强大,界面还有待改良。JAVA是一门优秀的编程语言,具有面向对象、与平台无关,平安、稳定和多线程等特点,是

10、目前软件设计中极为强健的语言。在经过了一个学期的JAVA学习,JAVA编程有了一定的认识,对在做这个课程设计的时候,刚开场感觉自己无从下手,不知道该怎么开场,很茫然。最终利用网络资源和查阅图书馆的书籍,在教师与同学的指导和讨论下,经过一段时间终于完成了这个设计。当程序运行完毕看到弹出的计算器的界面时,感到很欣慰,虽然只是一个小小的程序,但却是自己起步的成就,从中学到了很多书本知识不能表达的东西,对JAVA的学习有了一定的兴趣。也通过这次的程序设计感觉到自己平时对于编程实际操作的贫乏,没 有把书本上的知识真正的掌握结实,在我们对程序的编写以及对查错过程中,更可以使我们更加细心,为我们以后的工作及

11、学习打好根底。附录2 局部源码 主类import java.awt.BorderLayout;import java.awt.Color;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import

12、 java.io.IOE*ception;import java.io.StringReader;import java.util.LinkedList;import java*.swing.ImageIcon;import java*.swing.utton;import java*.swing.JFileChooser;import java*.swing.JFrame;import java*.swing.JPanel;import java*.swing.JScrollPane;import java*.swing.JSplitPane;import java*.swing.JTe*t

13、Area;import java*.swing.JTe*tField;import java*.swing.border.BevelBorder;import java*.swing.border.SoftBevelBorder;public class CalculatorWindow e*tends JFrame implements ActionListener NumberButton numberButton; OperationButton operationButton; utton 小数点操作,正负号操作,退格操作,等号操作,清零操作,sin,cos,sqrt,tan,pow,

14、log; JTe*tField resultShow; /显示计算结果 JTe*tField showputerProcess; /显示当前计算过程 JTe*tArea saveputerProcess; /显示计算步骤 utton saveButton,copyButton,clearButton; LinkedList list; /链表用来存放第一个运算数、运算符号和第二个运算数 HandleDigit handleDigit; /负责处理ActionEvent事件 HandleOperation handleOperation ; HandleBack handleBack; Hand

15、leClear handleClear; HandleEquality handleEquality; HandleDot handleDot; HandlePOrN handlePOrN; HandleSin handleSin; HandleCos handleCos; HandleSqrt handleSqrt; HandleTan handleTan; HandleLog handleLog; HandlePow handlePow; public CalculatorWindow() setTitle(计算器); JPanel panelLeft,panelRight; list=n

16、ew LinkedList(); resultShow=new JTe*tField(10); resultShow.setHorizontalAlignment(JTe*tField.RIGHT); resultShow.setForeground(Color.blue); resultShow.setFont(new Font(TimesRoman,Font.BOLD,16); resultShow.setBorder(new SoftBevelBorder(BevelBorder.LOWERED); resultShow.setEditable(false); resultShow.se

17、tBackground(Color.white); showputerProcess=new JTe*tField(); showputerProcess.setHorizontalAlignment(JTe*tField.CENTER); showputerProcess.setFont(new Font(Arial,Font.BOLD,16); showputerProcess.setBackground(Color.cyan); showputerProcess.setEditable(false); saveputerProcess=new JTe*tArea(); saveputer

18、Process.setEditable(false); saveputerProcess.setFont(new Font(宋体,Font.PLAIN,16); numberButton=new NumberButton10; handleDigit=new HandleDigit(list,resultShow,showputerProcess); for(int i=0;i=9;i+) numberButtoni=new NumberButton(i); numberButtoni.setIcon(new ImageIcon(E:java学习java工作区计算器计算器符号+i+.jpg);

19、 numberButtoni.setFont(new Font(Arial,Font.BOLD,20); numberButtoni.addActionListener(handleDigit); operationButton=new OperationButton4; handleOperation=new HandleOperation(list,resultShow, showputerProcess,saveputerProcess); String 运算符号=+,-,*,/; for(int i=0;i4;i+) operationButtoni=new OperationButt

20、on(运算符号i); operationButtoni.setFont(new Font(Arial,Font.BOLD,20); operationButtoni.addActionListener(handleOperation); 小数点操作=new utton(.); handleDot=new HandleDot(list,resultShow,showputerProcess); 小数点操作.addActionListener(handleDot); 正负号操作=new utton(+/-); handlePOrN=new HandlePOrN(list,resultShow,sh

21、owputerProcess); 正负号操作.addActionListener(handlePOrN); 等号操作=new utton(=); handleEquality=new HandleEquality(list,resultShow, showputerProcess,saveputerProcess); 等号操作.addActionListener(handleEquality); sin=new utton(sin); handleSin=new HandleSin(list,resultShow, showputerProcess,saveputerProcess); sin

22、.addActionListener(handleSin); cos=new utton(cos); handleCos=new HandleCos(list,resultShow, showputerProcess,saveputerProcess); cos.addActionListener(handleCos); tan=new utton(tan); handleTan=new HandleTan(list,resultShow,showputerProcess,saveputerProcess); tan.addActionListener(handleTan); pow=new

23、utton(平方); handlePow=new HandlePow(list,resultShow, showputerProcess,saveputerProcess); pow.addActionListener(handlePow); log=new utton(lg); handleLog=new HandleLog(list,resultShow, showputerProcess,saveputerProcess); log.addActionListener(handleLog); sqrt=new utton(); handleSqrt=new HandleSqrt(list

24、,resultShow, showputerProcess,saveputerProcess); sqrt.addActionListener(handleSqrt); 退格操作=new utton(退格); handleBack=new HandleBack(list,resultShow,showputerProcess); 退格操作.addActionListener(handleBack); 清零操作=new utton(C); handleClear=new HandleClear(list,resultShow,showputerProcess); 清零操作.addActionLi

25、stener(handleClear); 清零操作.setForeground(Color.blue); 退格操作.setForeground(Color.blue); 等号操作.setForeground(Color.blue); sin.setForeground(Color.blue); cos.setForeground(Color.blue); tan.setForeground(Color.blue); sqrt.setForeground(Color.blue); log.setForeground(Color.blue); pow.setForeground(Color.blu

26、e); 正负号操作.setForeground(Color.blue);小数点操作.setForeground(Color.blue); panelLeft=new JPanel(); panelRight=new JPanel(); panelLeft.setLayout(new BorderLayout(); JPanel centerInLeft=new JPanel(); panelLeft.add(resultShow,BorderLayout.NORTH); panelLeft.add(centerInLeft,BorderLayout.CENTER); centerInLeft.

27、setLayout(new GridLayout(5,5); centerInLeft.add(numberButton1); centerInLeft.add(numberButton2); centerInLeft.add(numberButton3); centerInLeft.add(operationButton0); centerInLeft.add(清零操作); centerInLeft.add(numberButton4); centerInLeft.add(numberButton5); centerInLeft.add(numberButton6); centerInLef

28、t.add(operationButton1); centerInLeft.add(退格操作); centerInLeft.add(numberButton7); centerInLeft.add(numberButton8); centerInLeft.add(numberButton9); centerInLeft.add(operationButton2); centerInLeft.add(sqrt); centerInLeft.add(numberButton0); centerInLeft.add(正负号操作); centerInLeft.add(小数点操作); centerInL

29、eft.add(operationButton3); centerInLeft.add(等号操作); centerInLeft.add(sin); centerInLeft.add(cos); centerInLeft.add(tan); centerInLeft.add(log); centerInLeft.add(pow); panelRight.setLayout(new BorderLayout(); panelRight.add(showputerProcess,BorderLayout.NORTH); saveButton=new utton(保存); copyButton=new

30、 utton(复制); clearButton=new utton(去除); saveButton.setToolTipTe*t(保存计算过程到文件); copyButton.setToolTipTe*t(复制选中的计算过程); clearButton.setToolTipTe*t(去除计算过程); saveButton.addActionListener(this); copyButton.addActionListener(this); clearButton.addActionListener(this); panelRight.add(new JScrollPane(saveputer

31、Process),BorderLayout.CENTER); JPanel southInPanelRight=new JPanel(); southInPanelRight.add(saveButton); southInPanelRight.add(copyButton); southInPanelRight.add(clearButton); panelRight.add(southInPanelRight,BorderLayout.SOUTH); JSplitPane split=new JSplitPane (JSplitPane.HORIZONTAL_SPLIT,panelLeft

32、,panelRight); add(split,BorderLayout.CENTER); setDefaultCloseOperation(JFrame.E*IT_ON_CLOSE); setVisible(true); setBounds(250,200,400,350); validate(); public void actionPerformed(ActionEvent e) if(e.getSource()=copyButton) saveputerProcess.copy(); if(e.getSource()=clearButton) saveputerProcess.setT

33、e*t(null); if(e.getSource()=saveButton) JFileChooser chooser=new JFileChooser(); int state=chooser.showSaveDialog(null); File file=chooser.getSelectedFile(); if(file!=null&state=JFileChooser.APPROVE_OPTION) try String content=saveputerProcess.getTe*t(); StringReader read=new StringReader(content); B

34、ufferedReader in= new BufferedReader(read); FileWriter outOne=new FileWriter(file); BufferedWriter out= new BufferedWriter(outOne); String str=null; while(str=in.readLine()!=null) out.write(str); out.newLine(); in.close(); out.close(); catch(IOE*ception e1) public static void main(String args) new C

35、alculatorWindow(); 题目二学生信息管理系统2.1 系统简介本系统是应用java语言,在eclipse环境下,调用SQL数据库设计的一个简易学生管理系统,系统中包含学院,专业,班级,学生四个根本信息。2.2 设计的容、要求和目标2.2.1设计容:学生管理系统调用数据库进展登录判断和四个根本信息进展查询,添加,修改删除等操作。将查询出来的信息应用表格显示出来,在添加信息面板中,设置该信息的各个组件,要求用户填入数据实现添加功能。修改删除面板中创立该信息的各个组件,从数据库中将该信息显示在组件中,再手动修改数据,实现修改删除功能。2.2.2设计要求 1.用SQL或者mysql设置数

36、据库2.需要登录才能进展各种操作3.在主界面中利用菜单项进展操作4.设置不能添加已存在的5.添加专业,班级,学生时从数据库中已存在的学院中用下拉条选择2.2.3设计目标对数据库的操作,可以实现对用户的密码进展验证,如果登陆成功,则进入管理系统的主界面,通过主界面提供的菜单,可以实现对学生管理系统的根本添加、查询、删除等操作。2.3 总体设计2.3.1功能模块划分根据设计要求我们把该系统分为学院,专业,班级,学生四个模块。模块分布图如图2.1:: 图2.1模块分布图2.3.2功能模块层次及调用关系根据要求设计要求,登录模块调用学院,班级,专业,学生等模块,在这四个模块中又要实现查询添加修改删除等

37、功能,则层次及调用关系如图2.2所示图2.2模块层次关系2.4 详细设计及实现2.4.1 操作界面设计程序首先运行时弹出登陆界面,在登陆界面中提供两个文本框输入用户名和密码,添加确定和取消按钮供用户选择是否登录。在登陆成功后登陆界面隐藏弹出的主界面中添加学院,专业,班级,学生四个菜单项,每个菜单项里面添加查询,添加,修改删除三个子菜单项。登录界面大小为680*530,定义一个面板p将背景图片,文本框和按钮参加,两个文本框和按钮应用setbounds定义初始位置和大小,放置在界面的右下角。2.4.2 类成员变量及方法设计详细阐述各个类的成员变量及方法的实现细节,详细阐述算法逻辑。主要程序应绘制N

38、-S流程图。student.javastudent类继承了Frame类之间组合关系的UML图如图2.3所示。图2.3 student 类的UML图 成员变量 1.(JLabel user,password; 标签,用于显示“用户名,“密码。 2.(JTe*tField) mz 单行文本对象,用于输入用户名。 3.(utton) b1,b2 单按钮对象,用于设置确定取消按钮。 4.JPasswordField mima 密码输入框。 方法student(): 无类型1.student()类的构造方法,为所有组件设置布局,添加组件 2.actionPerformed(ActionEvent e)处

39、理用户登录判定事件方法2. mainFrame.javamainFrame类继承了Frame类之间组合关系的UML图如图2.4所示。图2.4 mainFrame 类的UML图 成员变量 1.(JPanel contentPane 容器 2.( JMenuBar) jMenuBar1用于添加下拉菜单 3.Jmenu 用于添加菜单项 4.JMenuItem用于添加子菜单项 方法Init(): 无类型1. Init()本程序主类的构造方法,为所有组件设置布局,添加组件 2. actionPerformed(ActionEvent e)处理子菜单的事件方法2.4.3 数据库设计1. 学院信息登记,见表2.1域名定义数据类型例子备注D_ID学院代码字符类型01主码D_NAME学院名称字符

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论