Java实验报告_图形化界面计算器

Java实验报告_图形化界面计算器
Java实验报告_图形化界面计算器

封面/lzj,2015/11/29

Java实验报告

--图形化界面计算器

计算机22班

清哥荡漾

2120505047

目录

封面/lzj,2015/11/29 ..................................................................................................................- 1 - 目录 ..............................................................................................................................................- 2 -

一、实验要求.......................................................................................................................- 3 -

二、实验流程.......................................................................................................................- 3 -

1. 需求分析.......................................................................................................................- 3 -

2. 概要设计.......................................................................................................................- 3 -

3. 详细设计.......................................................................................................................- 4 -

3-1.代码结构 .............................................................................................................- 4 -

3-2.结构说明 .............................................................................................................- 4 -

4. 编码实现.......................................................................................................................- 5 -

5. 测试纠错.......................................................................................................................- 5 -

三、实验结果.......................................................................................................................- 6 -

1. 初始化界面...................................................................................................................- 6 -

2. 界面说明.......................................................................................................................- 7 -

2-1 显示部分 ...............................................................................................................- 7 -

2-2 控制部分 ...............................................................................................................- 8 -

3. 结果演示.......................................................................................................................- 8 -

3-1 单目运算 ...............................................................................................................- 8 -

3-2 双目运算 ...............................................................................................................- 9 -

3-3 混合运算 ............................................................................................................ - 10 -

3-4 错误演示 ............................................................................................................ - 11 -

3-5 保存本地操作结果 ............................................................................................ - 11 -

3-6 上传服务器操作演示 ........................................................................................ - 12 -

4. 总结结果.................................................................................................................... - 13 -

四、总结分析.................................................................................................................... - 13 -

五、实验代码.................................................................................................................... - 14 -

1. gui包.......................................................................................................................... - 14 -

GUI.java ...................................................................................................................... - 14 -

DispPanel.java ............................................................................................................ - 15 -

CtrlPanel.java ............................................................................................................. - 17 -

2. component 包 ........................................................................................................... - 18 -

MyButton.java ............................................................................................................ - 18 -

MyTestField.java ......................................................................................................... - 18 -

3. actionlistener包 ........................................................................................................ - 19 -

MyButtonActionListener.java ..................................................................................... - 19 -

4. operation包............................................................................................................... - 23 -

ArithmeLogic.java ....................................................................................................... - 23 -

UploadOperate.java ................................................................................................... - 35 -

SavaOparete.java ........................................................................................................ - 35 -

5. Main.java .................................................................................................................... - 37 -

一、实验要求

1.实现图形化界面计算器,完成基本功能

2.实现保存计算历史纪录到本地的功能

3.实现上传计算历史纪录到服务器的功能

二、实验流程

1.需求分析

1-1.对于基本功能,要求实现图形化界面计算器,则可参照电脑或手机上的计算器进行页面布局,最后加上各种监听器即可。

1-2.附加要求实现保存到本地,只需将内存中的历史纪录通过文件读写到本地即可。

1-3.附加要求实现上传至服务器,可以用TCP或者UDP报文通信实现

2.概要设计

2-1. 整体采用手机计算器布局架构

2-2. 屏幕显示用文本框实现

2-3. 按钮监听自定义ActionListener类

2-4. 输入时应限制错误输入

2-5. 运算时采用逆波兰式

2-6.保存本地功能采用随机读写方式添加至文件尾部

2-7. 上传采用UDP数据报方式

3.详细设计

3-1.代码结构

3-2.结构说明

gui包:实现图形化界面

GUI.java :整体架构

DispPanel.java:显示面板部分

CtrlPanel.java:控制面板部分

component包:用到的部件

MyButton.java:自定义JButton类,进行自定义设定

MyTextField.java:自定义JTextField类,用于屏幕显示

actionlistener包:监听器

MyButtonActionListener.java:对按钮进行监听操作,分别进行不同操作

operation包:计算、保存上传操作

ArithmeticLogic.java:获取屏幕输入字符串进行运算后返回结果

SaveOperate.java:保存计算历史到本地

UploadOperate.java:上传计算历史到服务器

Main.java: main函数所在,调用整个工程

4.编码实现

工具:Eclipse

环境:jse1.8

人员:我

耗时:数十小时

经历:小问题有些,debug很煎熬

结果:基本功能完成,保存功能完成,上传功能完成但未验证

5.测试纠错

每一个模块完成后都及时进行纠错处理,最后整体进行大量测试,对发现的错误进行纠正。发现错误包括:

输入限制逻辑错误

运算逻辑错误

异常监听错误

函数调用错误

经过鏖战,干掉bug!

三、实验结果

1.初始化界面

2.界面说明

2-1 显示部分

屏幕区域由上到下分为三个区域,依次显示:

提示信息:正常显示“Let’sROCK”,发生错误提示错误信息,及其他操作信息

上次运算历史:如图“sin(2.5*pi)=1”

本次运算结果:如图“1.0”

2-2控制部分

控制部分整体采用Gridlayout布局进行排列:按钮布局仿照红米1s的计算器

3.结果演示

3-1 单目运算

3-4错误演示

3-5保存本地操作结果

注意:采用特定输入序列(88224466!!^^)启动操作

3-6上传服务器操作演示

注意:采用特定输入序列(82824646!^!^)启动操作

4.总结结果

基本功能堪称完美,经大量测试不再有未知错误发生,已发现bug已经全部解决

上传操作发送数据报报文,时间原因来不及测试了

保存本地操作没有任何问题,测试结果良好

四、总结分析

通过本次实验,发现了平时许多没有发现的问题。首先此前没有学过java,上课时学到的知识在课后没能及时复习回顾,遗漏了一些很小但是却致命的问题,幸而在本次实验中及时发现,亡羊补牢,结果还大体满意。

理论学习固然重要,实际应用也必不可少,在实践中把学过的知识应用出来才能最大程

度的加深自己的学习理解程度,也可以将自己平时没有注意到的错误即使解决掉。

最后,感谢老师的教导!

五、实验代码

1.gui包

GUI.java

package com.lzj.caculator_javaexp.gui;

import java.awt.Color;

import java.awt.Dimension;

import java.awt.Panel;

import java.awt.Toolkit;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

public class GUI extends JFrame{//图形化界面

private int midScreenX;//屏幕中心点x

private int midScreenY;//屏幕中心点y

private final int windowWidth = 320;//窗口宽度

private final int windowHeight = 480;//窗口高度

private final int dispPanelX = 10;

private final int dispPanelY = 10;

private final int dispPanelWidth = 300;

private final int dispPanelHeight = 165;

private final int ctrlPanelX = 20;

private final int ctrlPanelY = 185;

private final int ctrlPanelWidth = 280;

private final int ctrlPanelHeight = 275;

public GUI() {

// TODO Auto-generated constructor stub

ImageIcon icon = new ImageIcon("res/icon.png");//设定图标

setIconImage(icon.getImage());

setTitle("计算器Beta1.0");

setBounds();//调用自定义函数设定边界

setContent();//调用自定义函数设定内容

setResizable(false);

// setUndecorated(true);

setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

//自定义setBounds,使窗口位于屏幕中央

private void setBounds(){

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

midScreenX = (int) (screenSize.getWidth()/2);

midScreenY = (int) (screenSize.getHeight()/2);

//有边框,保持内部大小故在宽度高度上补全

setBounds(midScreenX - windowWidth/2, midScreenY - windowHeight/2, windowWidth + 6, windowHeight + 29);

}

private void setContent(){

setLayout(null);

//面板

Panel panel = new Panel(null);

panel.setBounds(0, 0, windowWidth, windowHeight);

panel.setBackground(new Color(51, 51, 51));//整体颜色,仿计算器

add(panel);

//显示面板

DispPanel dispPanel = new DispPanel(dispPanelWidth,dispPanelHeight);

dispPanel.setBounds(dispPanelX, dispPanelY, dispPanelWidth, dispPanelHeight);

panel.add(dispPanel);

//控制面板

CtrlPanel ctrlPanel = new CtrlPanel(ctrlPanelWidth,ctrlPanelWidth);

ctrlPanel.setBounds(ctrlPanelX, ctrlPanelY, ctrlPanelWidth, ctrlPanelHeight);

panel.add(ctrlPanel);

}

}

DispPanel.java

package com.lzj.caculator_javaexp.gui;

import java.awt.Color;

import java.awt.Font;

import java.awt.Panel;

import com.lzj.caculator_https://www.360docs.net/doc/fb5036600.html,ponent.MyTextField;

public class DispPanel extends Panel{//显示面板类

public static MyTextField showHintInfo_TextField;

public static MyTextField lastCaculation_TextField;

public static MyTextField currentCaculation_TextField;

public DispPanel(int width,int height) {

// TODO Auto-generated constructor stub

setBackground(new Color(204, 255, 204));//仿屏幕颜色

setLayout(null);

//操作提示信息

showHintInfo_TextField = new MyTextField();

showHintInfo_TextField.setBounds(0, 0, width, height/4);

showHintInfo_TextField.setFont(new Font(null, Font.PLAIN, 16));

showHintInfo_TextField.setText("Let's ROCK");

add(showHintInfo_TextField);

//上次运算

lastCaculation_TextField = new MyTextField();

lastCaculation_TextField.setBounds(5, height/4, width-10, height/4);

lastCaculation_TextField.setFont(new Font(null, Font.PLAIN, 16));

lastCaculation_TextField.setText("");

add(lastCaculation_TextField);

//本次运算

currentCaculation_TextField = new MyTextField();

currentCaculation_TextField.setBounds(5, height/2, width-10, height/2);

currentCaculation_TextField.setFont(new Font(null, Font.PLAIN, 32));

currentCaculation_TextField.setText("0");

add(currentCaculation_TextField);

}

}

CtrlPanel.java

package com.lzj.caculator_javaexp.gui;

import java.awt.GridLayout;

import java.awt.Panel;

import com.lzj.caculator_https://www.360docs.net/doc/fb5036600.html,ponent.MyButton; public class CtrlPanel extends Panel{

public CtrlPanel(int width,int height) {

// TODO Auto-generated constructor stub

setLayout(new GridLayout(6, 5));

add(new MyButton("!"));

add(new MyButton("^"));

add(new MyButton("√"));

add(new MyButton("π"));

add(new MyButton("C"));

add(new MyButton("sin"));

add(new MyButton("("));

add(new MyButton(")"));

add(new MyButton("e"));

add(new MyButton("←"));

add(new MyButton("cos"));

add(new MyButton("7"));

add(new MyButton("8"));

add(new MyButton("9"));

add(new MyButton("÷"));

add(new MyButton("tan"));

add(new MyButton("4"));

add(new MyButton("5"));

add(new MyButton("6"));

add(new MyButton("×"));

add(new MyButton("ln"));

add(new MyButton("1"));

add(new MyButton("2"));

add(new MyButton("3"));

add(new MyButton("-"));

add(new MyButton("log"));

add(new MyButton("0"));

add(new MyButton("."));

add(new MyButton("="));

add(new MyButton("+"));

}

}

https://www.360docs.net/doc/fb5036600.html,ponent包

MyButton.java

package com.lzj.caculator_https://www.360docs.net/doc/fb5036600.html,ponent;

import java.awt.Color;

import java.awt.Font;

import javax.swing.JButton;

import com.lzj.caculator_javaexp.actionlistener.MyButtonActionListener; public class MyButton extends JButton{

public MyButton(String str) {

// TODO Auto-generated constructor stub

new JButton();

setText(str);

if(str.equals("=")){

setBackground(new Color(255, 102, 00));

}

setFont(new Font(null, Font.PLAIN, 16));

setFocusPainted(false);

addActionListener(new MyButtonActionListener());

}

}

MyTestField.java

package com.lzj.caculator_https://www.360docs.net/doc/fb5036600.html,ponent;

import javax.swing.JTextField;

public class MyTextField extends JTextField {

public MyTextField() {// 自定义JTextField类

new JTextField();

setEditable(false);

setBackground(null);

setBorder(null);

setHorizontalAlignment(JTextField.RIGHT);

}

public void append(String str) {// 追加字符串

String string = getText();

setText(string+str);

if( string.length()==0){

setText(str);

}else{

if (string.charAt(string.length() - 1) == '0' && !str.equals(".")) {// 末尾为"0"且不是追加"."

if (string.length() == 1) {// 只有一个"0"

string = "";

} else if (string.charAt(string.length() - 2) < '1' && string.charAt(string.length() - 2) > '9') {// "0"之前不是数字

string = string.substring(0, string.length() - 1);

}

}

setText(string + str);

}

}

public void removeEnd() {// 删除最后一个字符

String string = getText();

if (string.length() <= 1) {

setText("0");

} else {

setText(string.substring(0, string.length() - 1));

}

}

}

3.actionlistener包

MyButtonActionListener.java

package com.lzj.caculator_javaexp.actionlistener;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import com.lzj.caculator_https://www.360docs.net/doc/fb5036600.html,ponent.MyButton;

import com.lzj.caculator_javaexp.gui.DispPanel;

import com.lzj.caculator_javaexp.operation.ArithmeticLogic;

import com.lzj.caculator_javaexp.operation.SaveOperate;

import com.lzj.caculator_javaexp.operation.UploadOperate;

public class MyButtonActionListener implements ActionListener {

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

String string = ((MyButton) e.getSource()).getText();// 按钮上的文本

switch (string) {// 各个按钮的功能

// 直接在最后面追加本次输入

case "0":

case "1":

case "2":

case "3":

case "4":

case "5":

case "6":

case "7":

case "8":

case "9":

case "π":

case "e":

case "!":

case "^":

case "(":

case ")":

DispPanel.currentCaculation_TextField.append(string);

break;

// 后跟一个"("

case "√":

case "sin":

case "cos":

case "tan":

case "ln":

case "log":

用户界面设计实验报告(中南民族大学)

《用户界面设计》实验报告 学号: 姓名: 班级名称: 指导教师:李波 实验日期:

目录 Experiment 1: Evaluation Practices (1) Experiment 2: Design a graphic user interface (3) Experiment 3: Error Messages GUI (12) Experiment 4: Help Document (14)

Experiment 1: Evaluation Practices Use the blank provided to answer the questions. Answer the questions on a scale of 1 to 5, where 1 is a strong no, 5 is a strong yes, and 3 is neutral. If the question does not apply, use a 0.

Experiment 2: Design a graphic user interface Now, you can use the usability measurement to design a graphic user interface .First, you must select a system to finish sessions or tasks for users, so users’ requirements must be analyzed to define all functions you want to realize. Second, you must draw a graphic UI using the software tools, such as Microsoft visual studio, or Visio, or others. All functions must be appeared in this GUI include a main interface and all assistant interfaces. Finally, you must explain why and how you design these GUIs according to the usability measurement and the EIGTH GOLDEN RULES. The document format is described as follow. You can finish this work by PPT or word. 1. The system requirement The system requirement is described here. The main contents include the aims and what the users want to do. 随着信息时代的发展,计算机管理的应用越来越广泛,随着计算机的普及,就连调查问卷也慢慢的脱离了纸质化。对于一个比较大的公司而言,对其客户进行调查问卷是很有必要进行的,而由于客户的分布广,进行纸质的调查问卷不仅浪费财力,还浪费了物力,因此网上调查就避开这一缺点。因此,我设计了一个网上调查问卷系统。这个系统的用户有两类,一类是经销商,一类是经销商的客户,客户通过网上填写问卷,经销商则对客户的问卷进行回收,统计,分析,以做出相应的出售方案。 The aims 1)用户管理

大学java课程设计实验报告_计算器

JAVA课程设计报告 组员信息: 第(二)组 计算器的实现问题 问题描述:制作一个计算器 基本要求:要求实现类似Windows操作系统里面的标准计算器。 在此基础上实现部分科学性的功能。 测试数据:分别对加、减、乘、除和sin、cos、tan函数进行测试 算法思想:使用String定义的数组a[25]对每个按钮进行按钮赋值,创建一个Panel进行字符和数字的存放,调用 addActionListener()对各个时间进行监听。调用 系统库函数对数值进行运算。 模块划分:1、主函数main()创建一个计算器。 2、void actionPerformed(ActionEvent e)对鼠标 点击的事件进行响应以及在文本框中的显示。 3、各Buuton对应的功能: “开方”:对输入数字开方 “平方”:对输入数字平方

“getResult()”:对四则运算进行分别运算操 作 “backspace”:取消上一次的操作 “CE”:取消上一次运算的操作 “C”:清空作用 “sin”:对输入数据进行sin运算 “cos”:对输入数据进行cos运算 “tan”:对输入数据进行tan运算 “+/-”:对输入的数据取反 “+”,“-”,“*”,“/”:对数据进行四则 运算 源程序: package hechongwei; import https://www.360docs.net/doc/fb5036600.html,ng.String; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; import https://www.360docs.net/doc/fb5036600.html,ng.Math; class Calculator extends JFrame implements ActionListener

java图形界面之电子算盘

Java图形用户界面 院系: 计算机系姓名:后人好乘凉 一实验目的 ●使学生综合运用图形用户界面设计的概念; ●使学生熟悉使用中间面板,组成层次复杂的GUI界面; ●使学生掌握使用事件驱动编程; 二实验环境及实验准备 ●所需硬件环境为微机; ●所需软件环境为JDK、Eclipse; ●掌握Java下界面容器与基本组件的基本知识与应用; ●掌握Java下事件处理模型; ●掌握Java下图形绘制的方法; 三实验内容 (一)、设计实现电子算盘,并完成测试; [题目描述及要求] 给小朋友设计一个电子算盘。要求绘制电子算盘界面,设计并实现打珠算过程(界面参考如下图示)。 电子算盘参考界面示意 程序源代码: package calculator;

import java、awt、Color; //导入 import java、awt、GridLayout; import java、awt、Container; import javax、swing、JLabel; import javax、swing、JButton; import javax、swing、ImageIcon; import javax、swing、JPanel; import javax、swing、JFrame; import javax、swing、JTextField; import java、awt、event、*; public class Calculator extends JFrame{ public int totalNumber; public int t = 0; public boolean[] isAddFive = new boolean[5]; public int number[] = new int[5]; public ImageIcon picture = new ImageIcon(System、getProperty("user、 dir") + "/算珠、jpg" ); //添加图片 public ImageIcon picture1= new ImageIcon(System、getProperty("user、 dir") + "/算珠1、jpg" ); Container con = getContentPane(); JPanel j1 = new JPanel(); JPanel j2 = new JPanel(); JPanel j3 = new JPanel(); JPanel time=new JPanel(); JLabel q = new JLabel(); JLabel nA = new JLabel(); JLabel Time=new JLabel(new ImageIcon("、/时钟、jpg")); //添加时钟标签的图片 JTextField a = new JTextField(); JButton Buttons_1[][] = new JButton[2][5]; JButton Buttons_2[][] = new JButton[5][5]; GridLayout gl_1 = new GridLayout(2,5); GridLayout gl_2 = new GridLayout(5,5); GridLayout gl_3 =new GridLayout(); public Calculator() { super("电子算盘"); setDefaultCloseOperation(JFrame、EXIT_ON_CLOSE); setBounds(100,100,600,400); setVisible(true); setLayout(null); AbacusPanel(); } public void AbacusPanel() // 算盘面板

java实验报告_计算器_记事本_井字游戏

课程设计报告 实验内容:综合课程设计 相关课程: Java程序设计 学期: 2009-2010学年第2学期 学时学分: 48学时 3学分 专业班级: xxxxxxxx 学号: xxxxxxxxxxx 姓名: xxxxxxx 指导老师: xxx 提交日期: xxxx年 xx月xx日

题目JAVA课程设计 一、实验目的 通过课程设计,主要要达到两个目的,一是检验和巩固专业知识、二是提高综合素质和能力。信科0821班学生的课程设计主要是Java语言程序设计的实现。通过该课程设计,可以将学生课堂上掌握的理论知识与处理数据的业务相结合,以检验我们同学们掌握知识的宽度、深度及对知识的综合运用能力。 二、实验环境 硬件环境CPU:AMD5000+ 双核主板:华硕M2N-X 显示器: 1024x768/256色 操作系统:Windows XP;JDK:jdk-6u18-windows-i586; 运行环境以及调试软件:JCreator Pro 三、实验内容 内容一:设计一个计算器,利用它可以进行简单的四则运算(加、减、乘、除、开方)等,但仅限于十进制下,此外还可以进行(八进制,十进制,十六进制)之间的相互转换。 内容二:设计一个记事本,菜单中要求有文件,编辑,和帮助。文 件中有新建、打开、保存和退出;编辑中有剪切、复制和粘贴;帮助中 显示开发人和版本信息。 内容三:编写tic-tac-toe游戏程序。即 3*3的9个方格子,每人 下一次看谁先连成一行3个 四、算法分析、设计与描述 1.算法分析和设计 内容(1) 算法分析: 首先,设计对输入数字的进行转换,不进行转换操作则默认为十进制,然后进行符号转换操作以及正弦函数等,接着可以进行加减乘除等 运算,添加“C”、“CE”按钮进行退格和清空操作,清空操作显示“0”,最后在帮助中显示开发人信息。 功能及界面设计: 功能1:按下数字键在液晶平上会显示数字,这时计算器最基本的 功能。 功能2:输入数字后,点击进制转换,可转换成二、八进制;按“exp”“log”键,则进行e次幂运算和自然对数运算;按“tan”“cos”“sin”则进行三角函数运算。 功能3:按“+”“-”“*”“/”分别进行四则运算 功能4:在任何时候按下“+/-”键,计算器文本框上的数字置反号。 功能5:第一次按下“运算”键,再按下数字键,将重新输入第二个数字。再次按下“运算”键,将算出前两个数字运算的结果,然后按下数

实验8MATLAB图形用户界面设计实验报告

实验8 MATLAB图形用户界面设计实验报告实验报告 课程名称:MATLAB应用成绩: 实验项目名称:MATLAB图形用户界面设计实验时间:11.6 指导教师(签名): 班级:XXXXX 姓名:XXXXX 学号:XXX 实验目的: 1. 熟悉MATLAB的菜单设计方法 2. 熟悉MATLAB的主要控件使用方法 3. 熟悉MATLAB的GUI设计流程 实验环境: MATLAB 7.1 实验内容及过程: 简单计算器的设计:在MATLAB GUI的实验环境中,通过MATLAB图形用户界面设计的方法,设计一个 简单的计算器,以实现简单数据的退出、清屏、删除、四则运算等基本功能。 实验过程、结果及分析:

计算器代码: function varargout = jsq(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 第 1 页共 6 页 'gui_OpeningFcn', @jsq_OpeningFcn, ... 'gui_OutputFcn', @jsq_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else

Java课程设计实验报告

Java课程设计实验报告 导语:日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。以下是小编为大家整理分享的Java课程设计实验报告,欢迎阅读参考。 1、加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。 2、使用本学期学习的Java SE技术完成多功能日历GUI 程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。 3、在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。 1、问题描述准确、规范。 2、程序结构合理,调试数据准确、有代表性、。 3、界面布局整齐,人机交互方便。 4、输出结果正确。 5、正确撰写实验报告。 编写一个GUI程序实现日历的功能。一年日历用12页

显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期以及当前农 历,可以为每页日历选择背景图片。可以实现显示时钟,时钟能进行整点报 时。可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。 1、在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。 2、在第一次上机实验时讨论分工,分工明确之后,分头合作进行。 3、各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。 4、根据实验结果,写出合肥工业大学实验报告。实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。 5、详细的上机实验步骤见任务分工及程序设计进度表。 经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。整体程序运行流畅、功能

java实验报告实验六Java图形用户界面

信息工程学院 Java程序设计实习报告 JAVA图形用户界面 实验六Java图形用户界面 1.实验目的 (1)掌握图形用户界面基本组件。 (2)了解如何使用布局管理器对组件进行管理。 (3)掌握Java事件处理机制。 2.实验内容 实验题 1 编写一个模拟计算器的程序,使用面板与网格布局,添加一个文本框,10个数字按钮(0-9),4个加减乘除按钮,一个等号按钮,一个清除按钮,要求将计算公式与结果显示在文本框中。 运行结果: 实验报告的内容与格式按任课教师的要求书写。

加法: 主要代码: private void initComponents() { jButton1 = new javax、swing、JButton(); jButton2 = new javax、swing、JButton(); jButton3 = new javax、swing、JButton(); jButton4 = new javax、swing、JButton(); jButton5 = new javax、swing、JButton(); jButton6 = new javax、swing、JButton(); jButton7 = new javax、swing、JButton(); jButton8 = new javax、swing、JButton(); jButton9 = new javax、swing、JButton(); jButton10 = new javax、swing、JButton(); jButton11 = new javax、swing、JButton(); jButton12 = new javax、swing、JButton(); jButton13 = new javax、swing、JButton(); jButton14 = new javax、swing、JButton(); jButton15 = new javax、swing、JButton(); jTextField1 = new javax、swing、JTextField(); setStub(null); jButton1、setText("3"); jButton1、addActionListener(new java、awt、event、

Visual FoxPro 程序设计实验报告

VF程序设计实验报告 图书馆管理系统 专业: 学号: 姓名: 指导教师: 2010年12月31日

目录 第一部分系统概述--------------------------------2 第二部分系统功能模块设计------------------------2 第三部分系统数据库及表设计----------------------2 第四部分系统菜单设计----------------------------5 第五部分系统界面设计----------------------------6 第六部分系统相关程序代码-----------------------13 第七部分实验报告小结---------------------------22 第八部分参考资料-------------------------------22

一、系统概述 近年来,随着图书馆规模的不断扩大,图书数量相应的增加,有关图书的各种信息量也成倍增加,面对庞大的信息量,传统的人工管理户导致图书管理的混乱,人力与物力过多的浪费,图书管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理。因此,为了充分发挥了图书馆的功效,最大限度地为读者服务,必须制定一套合理、有效,规范和实用的图书馆管理系统,对图书资料进行集中统一的管理。 根据上述需要,我们建立本图书馆管理系统。 根据图书、读者和管理员三者之间的关系,本系统主要实现读者对图书的查询、个人信息的修改和管理员对读者、图书的管理。 本系统采用VF6.0作为开发工具。 二、系统功能模块设计 本系统可以完成一般图书馆关于图书查询、借阅及书库管理的主要功能。其中:图书查询模块可以查询所需要的图书;读者管理模块中,读者可以查看自己的信息,对登陆密码进行修改,管理员可以对读者进行添加和删除;图书管理模块中,管理员可以为读者进行图书的借阅和归还操作,以及对图书的信息进行修改,如加入新书、删除不能使用的图书和更新图书的信息;报表打印模块中,实现对需要的信息进行打印输出。系统结构下图所示。 三、数据库及表设计 经分析,图书馆管理系统主要涉及了学生、管理员和图书三部分。因此需要建立的实体就是学生、管理员和图书三个。 根据系统模块的设计,可以的到本系统需要建立的基本表为:读者信息表、

Java课程设计实验报告及全部源码流程图

课程设计 一、实验目的 1.加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。 2. 使用本学期学习的Java SE技术(也可以使用课堂教学中没有学习过的Java技术,但是应当以Java SE技术为主)完成多功能日历GUI程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。 3.在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。 二、实验要求 1.问题描述准确、规范。 2.程序结构合理,调试数据准确、有代表性.。 3.界面布局整齐,人机交互方便。 4.输出结果正确。 5.正确撰写实验报告。 三、实验内容 编写一个GUI程序实现日历的功能。一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期以及当前农历,可以为每页日历选择背景图片。可以实现显示时钟,时钟能进行整点报

时。可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。 四、实验步骤 1.在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。 2.在第一次上机实验时讨论分工,分工明确之后,分头合作进行。 3.各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。 4. 根据实验结果,写出合肥工业大学实验报告。实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。 5.详细的上机实验步骤见任务分工及程序设计进度表。 五、实验结果 经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。整体程序运行流畅、功能齐全、符合操作习惯。 下面是程序运行效果截图: 日历主界面(可以实现每个月的日历,可以按年或按月前后翻动,能够显示当前日期,并能够选择背景图片):

JAVA实验-图形界面设计

广州大学学生实验报告 开课学院及实验室:计算机科学与工程实验室2014年11月14日 一、实验目的 实验十图形用户界面(1) 1.了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法, 2.了解如何使用布局管理器对组件进行管理,以及如何使用Java 的事件处理机制。 实验十一图形用户界面(2) 1.了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法, 2.了解如何使用布局管理器对组件进行管理,以及如何使用Java 的事件处理机制。 二、实验器材 MacBook Pro一台 操作系统:OS X Yosemite

编程软件:eclipse 三、实验要求 实验十图形用户界面(1) 1. 理解Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。 2. 掌握编写独立运行的窗口界面的方法。 3. 了解Java Swing 组件的使用方法。 4. 了解对话框的使用方法。 实验十一图形用户界面(2) 1. 理解Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。 2. 掌握编写独立运行的窗口界面的方法。 3. 了解Java Swing 组件的使用方法。 4. 了解对话框的使用方法。 四、实验过程原始数据记录 实验十图形用户界面(1) 1. 如下图所示,用了三个文本框,第一个文本框给用户输入商品单价,第二个则是给 用户输入商品数量,第三个用于显示总金额。 代码: import class test_2_1_1 extends JFrame implements

ActionListener{ public static void main(String[] args) { ddDocumentListener(new DocumentListener() { @Override public void removeUpdate(DocumentEvent e) { ddDocumentListener(new DocumentListener() { @Override public void removeUpdate(DocumentEvent e){ quals("计算")){ if (!canCal){ showMessage("输入的数据不合法"); return; } double sum = ()) * ());

JAVA实验报告一

Java语言程序设计实验报告一 班级:姓名:学号: 一、实验教学目的与基本要求 Java程序设计的实验是Java程序设计课程重要的实践教学环节。实验的目的不仅仅是验证理论知识,更重要的是通过上机加强学生的动手能力,掌握常用Java开发环境的使用方法,培养学生分析问题、解决问题、应用知识的能力和创新精神。充分放手让学生自行设计、自主调试,真正培养学生的实践动手能力,全面提高学生的综合素质。 本课程是一门程序设计语言课程,通过本课程的学习,学生能够掌握Java 语言程序的基本特点、基本编程方法和基本开发技巧,培养学生阅读、分析、设计和调试Java语言的能力,并具备一定的面向对象程序设计思想。 本课程的主要任务是在已学习的编程语言基础上,讲述Java语言的数据结构和语法规则;基本控制结构和编程技巧;Java语言面向对象的特点、编程方法和程序设计思路;Java语言的GUI程序和文件及I/O流的编程方法;能够正确配置Java开发环境,并使用相关的编辑、编译、调试、运行命令。 (1)掌握Java语言的编程技巧,能够独立进行面向对象的开发能力。 (2)具有根据编程需求独立查询Java类库文档及相关资料,完成系统的能力。 (3)具有分析、寻找和排除程序中常见问题的能力。

二、实验内容与收获 (1)Java的安装与配置。熟悉语言环境及简单程序设计的使用练习,正确配置Java 开发环境(Eclipse 集成开发环境的安装、配置与使用) a)安装JDK Sun公司为所有的Java程序员提供了一套免费的Java开发和运行环境。 可以通过IE或Netscape浏览器浏览网址:https://www.360docs.net/doc/fb5036600.html,/j2se,根据提示可以下载支持Microsoft Windows操作系统的jdk-1_5_0-windows-i586.exe到本地硬盘。 安装的时候可以选择安装到任意的硬盘驱动器上,例如安装到D:\jdk1.5.0目录下,如图1-2。正确安装后,在JDK目录下有bin、demo、lib、jre等子目录,如图1-3,其中bin目录保存了javac、java、appletviewer等命令文件,demo目录保存了许多java的例子,lib目录保存了Java的类库文件,jre目录保存的是Java的运行时环境(JRE)。 图1-2

Java基础实验报告-图形用户界面设计

南京工程学院 实验报告 课程名称 JAVA基础 实验项目名称图形用户界面设计 实验学生班级 实验学生姓名 学号 同组学生姓名 实验时间 实验地点 实验成绩评定 指导教师签字年月日

一、实验目的和要求 1.掌握Java Swing组建的使用方法,包括窗口、框架、对话框、面板、文本编辑框、按钮、组合框等多种布局方式,掌握窗口菜单和快捷菜单设计方式。 2.理解委托时间处理模型,掌握不同组件、不同事件的事件处理方法,设计出能够响应事件的Java图形用户界面。 3.熟悉在组件上绘图的方法。 二、实验题目 用表格存储并显示个人所得税税率表,给定一个月收入值,计算应缴的个人所得税。 三、实验方法与步骤(需求分析、算法设计思路、流程图等) 算法设计思路:本次实验题目为计算个人所得税,所以本人从网上找到了国家最新的税收政策,以下为截图:

因此,我设计了以下核心算法 public void actionPerformed(ActionEvent e) { if(e.getSource()==button_b) { double wage=Double.parseDouble((String)text_wage.getText()); double tax = 0; if(wage<=3500) tax=0; if(wage>3500&&wage<=5000) tax=(wage-3500)*0.03; if(wage>5000&&wage<=8000) tax=(wage-3500)*0.1-105; if(wage>8000&&wage<=12500) tax=(wage-3500)*0.2-555; if(wage>12500&&wage<=38500)

JavaWeb课程设计实验报告

湖南科技大学计算机科学与工程学院 WEB编程课程设计报告 题目:网上购物商店 学号:1111111111 姓名: 1 指导老师: 1 完成时间:111111111

目录 一、设计内容 (3) 二、设计方法 (4) 1、网站的整体结构设计 (4) 2、网站设计的技术方案 (5) 3、网站的界面设计 (6) 三、实现方法 (8) 1、数据库的设计 (8) 2、网站具体的实现过程 (10) 开发环境: (10) 设计思路 (10) 四、心得体会 (11)

随着互联网时代的迅猛发展,人们的生活方式已经发生了翻天覆地的变化,传统的实体店购物方式已经不能满足人们的需求,传统购物方式购物不方便,非得出门才能购物,去到了实体店有不一定有自己满意的商品,有时候会浪费大量的时间和精力。 随着网络的全面覆盖,网上支付系统的逐步完善,物流业的快速兴起,网上购物已经成为了当今购物的潮流。 网上购物商店主要满足人们足不出户就能买到自己想要的物品的需要,同时也为商家省去了昂贵的门面租赁费用,而且商品还可以卖到全国各地,大大的扩大了客源又节省了成本。 网上购物商店主要有以下几个方面的功能: 顾客可以浏览整个网站的商品,可以再网站进行注册,注册之后可以登录并购买商品,同时也可以查看和修改自己的个人信息,为了安全的需求,还可以修改密码。 商家,也就是店主,管理员,可以管理网站所出售的所有商品,同时也可以对在网站进行注册的用户进行管理。 1、用户登录、注册功能 (1)注册功能:用户进入网站,如果有兴趣在该商店购买商品,那么用户就可以注册。 (2)登录功能。已经注册的用户可以登录,登录之后方可购买商品。 (3)查看、修改用户信息功能。 (4)修改密码,为了用户安全的需要,经常更换密码可以保证用户账户的安全。 2、购物功能 (1)物品浏览:顾客进入网站,就可以浏览网站的商品。 (2)商品购买:顾客注册自己的账户,并登录之后就可以在网站购买商品了。购买商品的步骤如下; a)添加商品到购物车 b)确定购买 3、商品管理:管理网站所出售的商品。 4、用户管理:管理员对在网站注册的用户进行管理。 5、订单管理:对用户的订单进行管理。

java计算器实验报告

Java计算器实验报告 计算机032 胡勇健 03095218 2005年5月5日

目录 1.设计名称与要求 2.各模块功能的介绍和实现3.系统的特色和不足4.参考书

一. 实验名称及其要求: A)名称: java计算器的设计 B)要求:1.实验目的:图形界面设计。 熟悉java.awt包中的组件,掌握图形界面设计方法,理解委托事件处理模型。 2.题意: 请设计并实现Windows系统中“计算器”的窗口及功能。 3.实验要求: (1)设计图形界面添加菜单:窗口上添加各种组件及菜单,并处理组件及菜单的事件监听程序。 (2)运算:实现多种运算,保证运算正确性。 二.各模块功能的介绍和实现: A)GUI图形界面的组件: a)所用到的Java类库包: java.awt.*; 基本的图形界面组件来源于awt包。 java.awt.event.*; 事件的属性处理来源于awt.event包。 javax.swing.*; swing组件增加了awt包中所不具备的各种优越功能。 java.awt.datatransfer.*; 用于计算器与外部的程序进行复制粘贴。 b)所用的各部分图形组件的定义: Frame mainFrame; //主框架 JTextField answerText; //显示计算结果 JTextField memoryState; //显示计算器内存的使用情况MenuBar menuGroup; //菜单栏 Menu editMenu,viewMenu,helpMenu; //编辑,查看,帮助菜单 MenuItem copyItem,pasteItem; //复制,粘贴 MenuItem standardModel; //标准型 CheckboxMenuItem numGroup; //数字分组 MenuItem aboutCal; //关于计算器 Button buttonBackSpace,buttonCE,buttonC; //退格,清除,清空按钮 Button buttonMC,buttonMR,buttonMS,buttonMADD; //内存操作按钮 Button buttonNum[]; //数字按钮 Button buttonAdd,buttonSub,buttonMul,buttonDiv; //+,-,*,/ Button buttonDot,buttonSign,buttonEqual; //. +/- =

oracle设计实验报告材料

课程设计 课程题目:ORACLE应用系统设计设计题目:音像店信息管理系统 专业:计算机科学与技术 班级:计131 组员:李霆桑珠扎西虞洲 学号: 130761 130767 130762 日期: 2016-03-04 信息工程学院计算机科学与技术

目录 一.课程目的………………………………………………………. 二.题目要求……………………………………………………… 三.日期安排………………………………………………………. 四.组内分工……………………………………………………… 五.实验条件......................................................... ........................... 六.实验内容......................................................... ........................... (1)第一部分:Oracle管理技术……………………………………… 1.数据库管理…………………………………………………….. 2.角色和用户管理………………………………………………... 3.表和视图管理………………………………………………….. 4.索引和序列管理………………………………………………... 5.PL/SQL编程…………………………………………………… 6.使用游标、存储过程和触发器………………………………… 7.表空间管理……………………………………………………… 8.文件管理………………………………………………………… (2)第二部分:Oracle开发技术……………………………………….. ①数据库设计………………………………………………………………… ②界面设计.................................................... ③结果测试…………………………………………………………………… 七.问题及解决…………………………………………………….. 八.总结...............................................

java课程设计实验报告

Java课程设计实验报告实验题目:打字游戏小程序 专业:计算机科学与技术系 班级:1202班 成员:

Java课程设计(打字游戏小程序) 一、课程设计目的 经过一学期的java学习,能灵活运用书中和实验中所学习的各类知识和技巧,并且能在程序开发中得以很好的运用和发挥。在以后的学习和工作中,可以从中获取很好的经验,并且锻炼自己开发程序和创新的意识。 二、课程设计内容 1.课程设计简介 设计的是一个打字的小游戏,屏幕上不断地有英文字母下落,键盘输入字母,屏幕上与输入的字母形同的就会消失,并计分,如果有没有消去的字母掉到屏幕底,将扣分。 2.设计说明 因为要进行键盘操作,所以引用了event包,还要注册事件监听。字母是随机产生的,又要用。注册了线程。还要对窗口定义坐标,防止字母出现在同一位子。并且通过一位数组来给随机出现的字母做坐标定义。主要通过一位数组来控制字母的坐标,并且通过字母坐标的改变来对整个游戏的流程进行控制。 3.设计流程图 4.实现功能 随机产生字母,运用了键盘操作当按对屏幕中出现的字母时,该字母全部消失,并且在分数上相应的增加或减少。 5.详细设计(源代码) 1) packageDownCharGame; import import import /** *下落的字母实体类 *@authorshenbf * */ publicclassCharEntity{ raw(g); } etY()>=480){ etX((int)()*580)+30); chs[i].setY(0);

chs[i].setColor(newColor((int)()*256), (int)()*256),(int)()*256))); chs[i].setCh((char)(65+(int)()*26))); } chs[i].down(); } repaint();tart(); } publicvoidkeyTyped(KeyEvente){ } publicvoidkeyPressed(KeyEvente){ } publicvoidkeyReleased(KeyEvente){ etCh()||key==chs[i].getCh()+32){ etY()

Java图形用户界面实验报告

西安邮电大学 (计算机学院) 课内实验报告 实验名称:图形用户界面 专业名称:计算机科学与技术 班级:计科1405班 学生姓名:高宏伟 学号:04141152 指导教师:刘霞林 实验日期:2016.11.24

一、实验目的 了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,了解如何使用布局管理器对组件进行管理,以及如何使用Java 的事件处理机制。 二、实验要求 1. 掌握使用布局管理器对组件进行管理的方法。 2. 理解Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。 3. 掌握编写独立运行的窗口界面的方法。 4. 掌握组件的使用方法。 5. 了解对话框的使用方法。 三、实验内容 (一)算术测试。 ?实验要求: 编写一个算术测试小软件,用来训练小学生的算术能力。程序由3个类组成,其中Teacher类对象负责给出算术题目,并判断回答者的答案是否正确; ComputerFrame类对象负责为算术题目提供视图,比如用户可以通过ComputerFrame 类对象提供的GUI界面看到题目,并通过该GUI界面给出题目的答案;MainClass是 软件的主类。 ?程序模板: Teacher.java public class Teacher { int numberOne,numberTwo; String operator=""; boolean right; public int giveNumberOne(int n) { numberOne=(int)(Math.random()*n)+1; return numberOne; } public int giveNumberT wo(int n) { numberTwo=(int)(Math.random()*n)+1; return numberTwo; } public String giveOperator() { double d=Math.random();

JAVA计算器实验报告

实验:计算器java程序 班级:XXXXXXX 姓名:XXXXX 学号:XXXXXXXX 实验地点:XXXXX 一、实验目的: 通过制作一个计算器让我们了解到组件的运用以及如何制作一个窗口,怎么样使用各种布局管理器,怎么样注册事件的监听,以及怎么样设置按钮或者说组件的监听程序,学会使用java语言的语法规则,掌握接口的使用,了解组建的背景颜色的设置等方法。 二、实验要求: 1.编写一个java计算器程序; 2. 运用组件的方法来布局窗口,运用接口,事件监听程序来完成计算器的功能。 三,实验步骤 1、新建一个类,注册各种组件; 2、获取窗格;设置布局管理器; 3、为各个组件注册监听程序; 4、设置组件的事件监听程序; 5、运行程序,对结果进行截图; 四,设计思路: 1.界面设置布置模块: 使用了awt,swing的类里面的方法来完成界面的布置。其中,容器布置选择了BorderLayout方法来布置面板,选择了GirdLayout方法来布置按钮。 文本区域接收字符从数字按钮的监听中获得。按钮是常规思路添加到面板上。并为按钮注册监听。 2.监听程序思路: 使用tf.getText()+"n"来实现获得文本区域显示按钮字符串,n等于所设置监听的数字按钮。tf.setText()来保存并输出获得的字符串。

使用Double.parseDouble()实现文本区域字符串转换成Double 型数据来完成计算。把ft.setText()中的字符转换成数字。 使用biaozhi==n。的方法来获得启发值。完成运算符按钮的监听。构造方法,运用biaozhi=n,来完成加减乘除小数点的不同运算。 运算后获得结果flag3。ft.setText()获得值显示在文本区域上3.数字按钮输入使用循环会更加简单,减少了十个数字按钮的逐个输入,添加,注册监听 for (int i=0;i<=9;i++){ btn[i]=new Button(String.valueOf(i)); centerPanel.add(btn[i]); btn[i].addActionListener(); } 五,程序实现: package yyy; import java.awt.BorderLayout;//导入边界布局管理器类 import java.awt.Button; import java.awt.GridLayout;//导入网格布局管理器类 import java.awt.TextField;//导入文本区域类 import java.awt.event.ActionEvent;//导入事件类 import java.awt.event.ActionListener;//导入事件监听者类 import javax.swing.JButton;//导入按钮类 import javax.swing.JFrame;//导入窗体 import javax.swing.JPanel;//导入面板 public class jisuanqi8{ //新建对象,在构造函数中进行初始化 JFrame f;//新建窗体对象 JButton buttonzero,buttondot,buttonequal;//新建按钮“0”“.”“=”

相关文档
最新文档