图形用户界面GUI测试实验报告1-2
- 格式:pdf
- 大小:590.05 KB
- 文档页数:12
实验图形用户界面2 (4学时)【实验目的】1.了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,2.了解如何使用布局管理器对组件进行管理,以及如何使用Java 的事件处理机制。
【实验要求】1. 掌握在容器中添加组件的方法,掌握使用布局管理器对组件进行管理的方法。
2. 理解Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。
3. 掌握编写独立运行的窗口界面的方法。
4. 了解Java Swing 组件的使用方法。
5. 了解对话框的使用方法。
【实验内容】三.在Applet容器中添加组件的方法1.创建一个小应用程序,在其中添加组件(1)程序功能:在用户名及电话号码中输入完信息后,信息显示在最上面的文本域中;点击显示按钮,在相应的文本框中显示;点击退出按钮退出程序。
(2)编写appletTest.java 程序文件,源代码如下。
import java.awt.*;import java.awt.event.*;import javax.swing.*;public class appletTest extends JApplet implements ActionListener { Button btn1, btn2;TextField f,tf1,tf2;TextArea Area;JPanel pane1,pane2,pane3;Container pane;public void init() {setSize(500,300);pane=getContentPane();pane1= new JPanel();pane2= new JPanel();pane3= new JPanel();pane.setLayout(new GridLayout(1,3));pane.add(pane1);pane.add(pane2);pane.add(pane3);setLayout(new GridLayout(3,3));Area=new TextArea (4,40);tf1=new TextField(10); tf2=new TextField(10);btn1=new Button("显示"); btn2=new Button("退出");f=new TextField(20);pane1.add(Area); pane2.add(new Label("用户名"));pane2.add(tf1); pane2.add(new Label("电话"));pane2.add(tf2); pane3.add(f); pane3.add(btn1); pane3.add(btn2);tf1.addActionListener(this); tf2.addActionListener(this);btn1.addActionListener(this); btn2.addActionListener(this);}public void actionPerformed(ActionEvent e) {if (e.getSource()==btn1)f.setText("你按下了“" + e.getActionCommand() + "”按钮");if (e.getSource()==tf1)Area.append("用户名:"+tf1.getText()+"\n");if (e.getSource()==tf2)Area.append("电话:"+tf2.getText()+"\n");if (e.getSource()==btn2) {System.exit(0);}}}(3)编译并运行程序。
实验一图形用户界面设计一实验目的和要求1)熟悉图形用户界面的设计原则遵循用户友好原则、一致性原则、帮助和提示等原则设计用户界面。
2)利用一种设计工具完成图形化的用户界面设计二实验内容与步骤(一)实验内容利用常用的设计工具(UI界面设计工具GUI Design Studio)完成一个通用图形用户界面设计,要遵循界面设计的一般原则(一致性、快捷方式、提供错误处理),注意颜色的使用,学会图标、按钮、屏幕布局、菜单和对话框的设计。
软件的界面如同人的脸一样,软件界面的好坏决定了用户对软件的第一印象。
设计好的界面能够引导用户自己完成相应的操作,起到引导作用。
设计合理的界面能给用户带来轻松愉悦的感受。
一些专家指出:对于用户,人机界面就是系统本身。
这充分说明了软件界面设计的重要性。
请完成各自的系统用户界面的设计。
(二)实验步骤1.设计多个对话框,完成填表输入界面的设计,合理使用图标、按钮、颜色;2.设计不同形式的菜单,完成对不同对话框的调用;3.提供简单的错误处理、联机帮助。
GUI Design Studio主界面三界面示例1、登录界面2、主界面3、聊天界面4、QQ空间界面四实验总结1.界面要具有一致性、常用操作要有快捷方式、提供简单的错误处理、对操作人员的重要操作要有信息反馈、操作可逆、设计良好的联机帮助、合理划分并高效地使用显示屏、保证信息显示方式与数据输入方式的协调一致。
2.颜色是一种有效的强化手段,同时具有美学价值。
使用颜色时应注意如下几点:限制同时显示的颜色数;画面中活动对象的颜色应鲜明,而非活动对象应暗淡;尽量避免不相容的颜色放在一起,如黄与蓝,红与绿等,除非作对比时用;若用颜色表示某种信息或对象属性,要使用户理解这种表示,并尽量采用通用的表示规则。
3.图标是可视地表示实体信息的简洁、抽象的符号。
图标设计是方寸艺术,需要在很小的范围内表现出图标的内涵。
设计图标时应该着重考虑视觉冲击力,要使用简单的颜色,利用眼镜对色彩和网点的空间混合效果,做出精彩图标。
python图形用户界面实验报告本实验主要是介绍Python图形用户界面(GUI)的基本概念和使用方法,包括使用Python 中的Tkinter模块创建GUI应用程序的基本结构、常用控件和事件处理方式。
一、实验目的1.掌握Python图形用户界面(GUI)的基本概念和使用方法。
2.学习使用Python中的Tkinter模块创建GUI应用程序。
3.了解在Tkinter中使用控件和事件处理方式。
二、实验内容1.创建基本的GUI应用程序Python的Tkinter模块提供了一系列GUI控件,如Label、Button、Entry、Canvas、Menu等。
下面我们将介绍如何使用Tkinter创建一个基本的GUI应用程序。
代码如下:```from tkinter import *#创建主窗口root = Tk()#设置窗口标题root.title("我的第一个GUI程序")#设置窗口大小(宽x高)root.geometry('400x300')# 创建一个Label控件label = Label(root, text="欢迎来到Python世界!")# 将Label控件添加到主窗口label.pack()#进入消息循环root.mainloop()```上述代码中,我们首先导入了Tkinter模块,然后创建了一个名为root的主窗口。
接下来,我们设置了窗口的标题和大小,并创建了一个Label(标签)控件,文本为“欢迎来到Python 世界!”并将其添加到主窗口。
最后,我们调用root.mainloop()方法以便程序能够执行GUI循环。
2.GUI控件的使用下面介绍一些常用的Tkinter控件的用法。
其中,控件的属性和方法的详细说明可参考Python 官方文档或其它相关资料。
Label(标签)控件Label控件用来显示文本或图像。
如下是一个Label控件的例子:```label = Label(root, text="Hello, world!")label.pack()```Button(按钮)控件Button控件用来响应用户点击事件。
图形用户接口081180015 戴稚晖通信工程一、实验目的1、了解嵌入式系统图形用户界面的基本编程方法。
2、探讨软件结构的层次关系,学习图形库的制作。
一、实验原理概述1、图形用户界面简介图形用户界面(GUI)是一种图形化为基础的用户界面,使用统一的图形操作方式,如可移动的视图,选项及鼠标,作为用户与操作系统之间的桥梁,从而使用户摆脱了在命令行提示符下与操作系统进行交互的方式。
在嵌入式系统设计中,常被选择作为GUI系统进行开发的有:MiniGUI、MicroWindows、OpenGUI和QT/Embedded。
这些GUI系统都是以Frame Buffer作为图形驱动。
Frame Buffer作为Linux内核提供的一种底层图形接口,将显示设备映射到进程地址空间,是大多数GUI的基础。
2、Frame Buffer简介Frame Buffer又称之为帧缓冲或显存,是系统内的一段存储空间,与显示屏的整个显示区域相对应,通过改变帧缓冲区的内容来改变显示信息。
Frame Buffer的空间大小由显示屏的大小和显示模式决定。
显示屏可以以单色或者彩色显示,单色用一位来表示颜色,彩色可以用2、4、8、16、24、32等位色。
显示屏有单屏和双屏显示模式。
其中双屏显示模式将整个屏幕分为两部分,每个部分有各自的Frame Buffer,它们的地址无需连续,并有独立的两个通道将Frame Buffer中的数据传输到显示屏。
3、Frame Buffer与图像色彩Frame Buffer支持多种颜色显示方式:单色,伪彩色,真彩色,直接色,灰度。
伪彩色的RGB值不能直接从Frame Buffer中得到,而是通过调色板间接得到,此时Frame Buffer中存放的是调色板的索引值,通过索引值获得颜色。
真彩色的RGB值直接从Frame Buffer中得到,且不需要经过调色板。
直接彩色Frame Buffer里存放的是RGB值,但需要经过调色板调色后传输到显示屏。
java图形用户界面实验报告Java图形用户界面实验报告一、引言图形用户界面(Graphical User Interface,简称GUI)是现代软件开发中不可或缺的一部分。
通过GUI,用户能够直观地与程序进行交互,提高了软件的易用性和用户体验。
本实验旨在通过使用Java编程语言,实现一个简单的GUI应用程序,并介绍相关的技术和方法。
二、实验目标本实验的目标是设计并实现一个简单的GUI应用程序,要求具备以下功能:1. 显示一个窗口,并在窗口中心显示一个标签;2. 在窗口中添加一个按钮,并实现按钮的点击事件;3. 当按钮被点击时,标签的文本发生变化。
三、实验过程1. 环境准备在开始实验之前,需要确保已经安装了Java开发环境(JDK)和集成开发环境(IDE),例如Eclipse或IntelliJ IDEA。
2. 创建GUI应用程序首先,创建一个Java项目,并创建一个名为"GUIApplication"的类。
在该类中,引入Java的GUI库,并继承JFrame类,实现一个窗口。
3. 设计窗口布局在窗口的构造方法中,设置窗口的标题、大小和关闭方式。
然后,创建一个JPanel对象,并将其添加到窗口中。
在JPanel中,使用布局管理器(例如FlowLayout或GridBagLayout)来安排组件的位置和大小。
4. 添加标签和按钮在JPanel中,创建一个JLabel对象,并设置其文本和位置。
然后,创建一个JButton对象,并设置其文本和点击事件。
在点击事件中,通过修改JLabel的文本来实现标签内容的变化。
5. 运行程序完成以上步骤后,编译并运行程序。
将会显示一个窗口,其中包含一个标签和一个按钮。
当按钮被点击时,标签的文本会发生变化。
四、实验结果经过以上步骤,成功实现了一个简单的GUI应用程序。
运行程序后,窗口显示如下图所示:(插入程序运行截图)在窗口中心显示了一个标签,标签的文本为"Hello, GUI!"。
实验报告2013学年第 1 学期任课老师:课程名称Java语言与系统设计班级学号姓名实验名称实验4 图形用户界面(GUI)实验时间实验环境PC/windows2000/2003/XP/Jcreator Pro/JBuild/JDK Eclipse/。
实验目的和内容要求实验4 图形用户界面(GUI)1.实验目的掌握布局管理器的使用,掌握JFrame框架、JButton按钮、JLabel标签、JTextField文本框、对话框等组件的使用及其事件处理。
2.实验内容(1)编程:创建有一个文本框和三个按钮的小程序。
当按下每个按钮时,使不同的文字显示在文本框中。
(2)编程:创建一用户登录界面,接受用户输入的帐号和密码,给三次输入机会。
实验过程记录(学生写出实验步骤及中间的结果与现象,在实验中做了什么,怎么做,发生的现象和中间结果)实验步骤:1.建立一个类继承JFrame,然后初始化界面,给三个按钮添加监听器,点击之后进行判断。
然后根据接收信息是不同的文字出现在文本框中。
2.登录界面共有5个键,登录提示有只能输入3次密码,在登录按钮上添加监听器,每次点击之后都判断,不成功就显示失败,成功就弹出成功弹窗;实验结果分析与总结1、程序运行结果(请提供所完成的各道题运行结果界面截图):2、实验过程中的发现与收获,未解决或需进一步解决的问题:实现的比较简单,界面做的非常简陋,但还算实现了基本功能。
指导老师评阅意见指导老师:***填写内容时,可把表格扩大。
附:实验源程序代码//第一题package com.miao;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextField;public class Example extends JFrame implements ActionListener { private static final long serialVersionUID = 1L;private JPanel jPanel;private JButton jButton1,jButton2,jButton3;private JTextField tf1;public void test(String title) {init();}private void init() {jPanel=new JPanel();jPanel.setLayout(new FlowLayout());tf1=new JTextField(20);jButton1=new JButton("按钮1");jButton2=new JButton("按钮2");jButton3=new JButton("按钮3");jButton1.addActionListener(this);jButton2.addActionListener(this);jButton3.addActionListener(this);jPanel.add(tf1);jPanel.add(jButton1);jPanel.add(jButton2);jPanel.add(jButton3);this.add(jPanel);this.setSize(300,100);this.setResizable(false);this.setTitle("Show");this.setVisible(true);this.addWindowListener(new WindowAdapter() {public void windowClosing(final WindowEvent e) {System.exit(0);}});}public void actionPerformed(ActionEvent e) {if(e.getSource().equals(jButton1)){tf1.setText("lalalalalala");}if(e.getSource().equals(jButton2)){tf1.setText("heihei");}if(e.getSource().equals(jButton3)){tf1.setText("gaga");}}public static void main(String[] args){String s="文字转化";Example test=new Example();test.test(s);}}//第二题,登录package com.miao;import java.awt.HeadlessException;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;@SuppressWarnings("serial")public class Test extends JFrame {JLabel lbl1 = new JLabel("用户名:");JLabel lbl2 = new JLabel("密码:");JTextField txt = new JTextField("admin",20);JPasswordField pwd = new JPasswordField(20);JButton btn = new JButton("登录");JPanel pnl = new JPanel();private int error = 0;public void text() throws HeadlessException {init();}private void init() {this.setResizable(false);this.setTitle("测试");pnl.add(lbl1);pnl.add(txt);pnl.add(lbl2);pnl.add(pwd);pnl.add(btn);this.getContentPane().add(pnl);btn.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {if (error<3&&"123".equals(new String(pwd.getPassword()))){// pnl.removeAll();// JLabel lbl3 = new JLabel();// pnl.add(lbl3);JOptionPane.showMessageDialog(null,"登陆成功!");}else if(error < 3){JOptionPane.showMessageDialog(null,"密码输入错误,请再试一次");error++;}else if(error >=3){JOptionPane.showMessageDialog(null,"对不起,您不是合法用户"); // txt.setEnabled(false);// pwd.setEnabled(false);// btn.setEnabled(false);error++;}}});}public static void main(String[] args) {// String str="测试";Test frm = new Test();frm.text();frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frm.setBounds(100, 100, 300, 120);frm.setVisible(true);frm.setLocationRelativeTo(null);// frm.text("测试");}}。
图形化用户界面的可用性测试一、图形化用户界面概述图形化用户界面(GUI)是计算机系统与用户之间交互的重要桥梁。
它通过图形化的方式展示信息,使得用户能够更直观、更便捷地进行操作和控制。
随着计算机技术的不断发展,GUI在各种应用程序和操作系统中扮演着越来越重要的角色。
本文将探讨图形化用户界面的可用性测试,分析其重要性、挑战以及实现途径。
1.1 GUI的核心特性GUI的核心特性主要包括以下几个方面:- 直观性:GUI通过图形化的方式展示信息,使得用户能够直观地理解操作和功能。
- 易用性:GUI设计应简洁明了,易于用户理解和操作。
- 一致性:GUI应保持一致的设计风格和操作逻辑,避免用户在不同界面间感到困惑。
- 可访问性:GUI应考虑到不同用户的需求,包括残障用户,确保所有用户都能方便地使用。
1.2 GUI的应用场景GUI的应用场景非常广泛,包括但不限于以下几个方面:- 操作系统:如Windows、macOS等,通过GUI提供用户与计算机系统交互的界面。
- 应用程序:如办公软件、图像处理软件等,通过GUI 提供用户操作应用程序的界面。
- 移动设备:如智能手机、平板电脑等,通过GUI提供用户与移动设备交互的界面。
二、图形化用户界面的可用性测试可用性测试是评估GUI设计是否满足用户需求的重要手段。
它通过模拟用户操作,检测GUI的易用性、一致性、可访问性等方面的表现。
以下是可用性测试的关键步骤和方法。
2.1 可用性测试的目标可用性测试的主要目标包括:- 评估GUI的易用性:检查用户是否能够轻松地完成任务。
- 评估GUI的一致性:检查GUI在不同界面和操作中的一致性。
- 评估GUI的可访问性:检查不同用户群体是否都能方便地使用GUI。
- 识别问题和改进点:通过测试发现GUI设计中的问题,并提出改进建议。
2.2 可用性测试的方法可用性测试的方法主要包括:- 启发式评估:通过专家评审,检查GUI是否符合设计原则和标准。
gui实验报告《GUI实验报告》摘要:本实验利用图形用户界面(GUI)技术进行了一系列实验,包括界面设计、用户交互、数据展示等方面的内容。
通过实验,我们深入了解了GUI技术的原理和应用,掌握了相关的开发工具和技能。
本报告将详细介绍实验的过程和结果,并对GUI技术的发展和应用进行了简要的展望。
1. 引言GUI技术是计算机界面设计中的重要组成部分,它通过图形化的方式为用户提供了更加直观、友好的操作界面。
随着计算机技术的发展,GUI技术已经成为了各种软件和应用程序的标配,因此对GUI技术的研究和应用具有重要意义。
2. 实验目的本实验旨在通过对GUI技术的学习和实践,深入理解其原理和应用,掌握相关的开发工具和技能,为今后的软件开发和界面设计打下基础。
3. 实验内容本次实验主要包括以下内容:- GUI界面设计:通过使用开发工具,设计一个简单的图形用户界面,包括按钮、输入框、标签等组件。
- 用户交互:实现用户与界面的交互,包括按钮点击、输入框输入等操作。
- 数据展示:将用户输入的数据通过界面展示出来,实现数据的可视化。
4. 实验过程在实验过程中,我们首先学习了GUI界面设计的基本原理和技巧,然后使用开发工具进行了界面的设计和布局。
接着,我们实现了用户与界面的交互,包括按钮点击事件的处理、输入框数据的获取等。
最后,我们将用户输入的数据通过界面展示出来,实现了数据的可视化。
5. 实验结果通过实验,我们成功设计并实现了一个简单的GUI界面,包括按钮、输入框、标签等组件。
用户可以通过界面进行按钮点击、输入框输入等操作,并将输入的数据通过界面展示出来。
实验结果表明,我们已经掌握了GUI技术的基本原理和应用技能。
6. 结论通过本次实验,我们深入了解了GUI技术的原理和应用,掌握了相关的开发工具和技能。
GUI技术的发展和应用前景广阔,我们将继续深入学习和实践,为今后的软件开发和界面设计做好准备。
7. 展望随着计算机技术的不断发展,GUI技术将会越来越重要,它将成为各种软件和应用程序的标配。
gui实验报告GUI实验报告一、引言Graphical User Interface(图形用户界面,简称GUI)是一种用户与计算机交互的方式,通过图形化的界面和用户友好的操作,使用户能够直观地使用计算机。
本实验旨在探究GUI的设计原理和应用,通过实际操作和观察,深入理解GUI的功能和优势。
二、实验目的1. 了解GUI的基本概念和原理;2. 学习使用GUI设计工具和编程语言;3. 掌握GUI的常见组件和布局方式;4. 实践GUI设计和开发过程。
三、实验过程在实验中,我们选择了Java语言和Swing库作为GUI设计和开发的工具。
首先,我们使用Eclipse IDE创建了一个Java项目,并添加了Swing库的依赖。
接下来,我们创建了一个主窗口,并在窗口中添加了各种GUI组件,如按钮、文本框、标签等。
通过设置组件的属性和监听器,我们实现了用户与程序的交互。
四、实验结果我们成功地创建了一个简单的GUI应用程序,该程序包含了一个登录界面。
用户可以在文本框中输入用户名和密码,并点击登录按钮进行验证。
程序会根据用户输入的内容进行判断,并给出相应的提示信息。
通过实验,我们发现GUI的设计可以大大提高用户的交互体验,使操作更加直观和便捷。
五、实验总结通过本次实验,我们深入了解了GUI的设计原理和应用。
GUI作为一种用户友好的交互方式,已经广泛应用于各个领域,如操作系统、应用软件等。
GUI的设计需要考虑用户的习惯和需求,合理布局和组织界面元素,使用户能够轻松地完成操作。
同时,GUI的开发过程需要掌握相应的工具和编程语言,如Swing、Java等。
通过不断练习和实践,我们可以提高GUI设计和开发的能力。
六、实验心得本次实验让我对GUI有了更深入的了解。
在设计GUI界面时,我学会了如何选择合适的布局方式,如流式布局、网格布局等。
同时,我也学会了如何使用监听器来实现用户与程序的交互。
通过实际操作,我发现GUI的设计需要注重用户体验,尽量简化操作步骤,提供直观的界面和友好的提示。
实验报告(五)GUI程序设计(完整代码)福建农林⼤学计算机与信息学院实验报告实验(五)GUI程序设计⼀、实验⽬的和要求1.掌握简单GUI的设计和实现2.理解并掌握GUI事件驱动的程序设计3.理解⽹络程序设计⼆、实验内容和原理实现⼀个程序,⽤于浏览⽤户指定的⽂本⽂件。
界⾯如图1所⽰:图1 ⽂本⽂件浏览的⽤户界⾯2、界⾯实现// Panel p to hold a label, a text field, and a button Panel p = new Panel();p.setLayout(new BorderLayout());p.add(new Label("Filename"), BorderLayout.WEST);p.add(jtfFilename, BorderLayout.CENTER);p.add(jbtView, BorderLayout.EAST);// Add jsp and p to the frameadd(jsp, BorderLayout.CENTER);add(p, BorderLayout.SOUTH);3、事件驱动// Register listenerjbtView.addActionListener(new ActionListener() {/**Handle the View button*/public void actionPerformed(ActionEvent e) {if (e.getSource() == jbtView)showFile(); //⾃⼰实现这个⽅法,在textArea中浏览⽂本⽂件内容}});4、⽹络程序设计(可选)实现⼀个⽹络服务,⽤于把指定的⽂件内容传给客户端(见Exp_5_Server.java),在“事件驱动”中调⽤⽅法“showFileFromServer()”package com.fafu.training;import java.awt.BorderLayout;import java.awt.Panel;import java.awt.TextArea;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileOutputStream; import java.io.FileReader;import java.io.IOException; importjava.io.Inputream;import java.io.Reader;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JScrollPane;import javax.swing.JTextField;public classOpenFileFrame {JTextField textFiled;TextArea fileText;public OpenFileFrame(){super("Exp__GUI");Panel panel=new Panel();setLayout(new BorderLayout()); JScrollPane jsp=new JScrollPane(); panel.setLayout(new BorderLayout()); fileText=new TextArea();JLabel jlabel=new JLabel("FileName"); textFiled=new JTextField();JButtons~jButton=new~JButton("View"); panel.add(jlabel,BorderLayout.WEST); panel.add(textFiled,BorderLayout.CENTER); panel.add(jButton,BorderLayout.EAST);add(panel,BorderLayout.SOUTH);add(jsp,BorderLayout.EAST);add(fileTextBorderLayout.CENTER); jButton.addActionListener( ActionListener(){ @Overridepublic void actionPerformed(ActionEvent ee) { // TODO Auto-generated method stubString s tr=textFiled.getText(); BufferedReader reader;try {reader = new Buffered(new FileReader(str)); String s="";while((s=reader.readLine())!=null){String string =reader.readLine();fileText.append(string +"\r\n");}reader.close();}catch (FileNotFoundException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}});setVisible;setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }三、实验环境1.硬件环境:2.软件环境:JDK1.5四、算法描述及实验步骤1.算法描述(可以⽤类图、流程图、伪代码或源程序描述)2.实验步骤●界⾯设计与实现●事件驱动程序设计●进⾏编译●进⾏测试,使⽤的测试⽤例:输⼊:预期输出:五、调试过程1.编译过程记录算法实现中发现的语法错误及改正2.调试过程记录算法实现中发现的逻辑错误及改正,对每个测试⽤例,记录实际输出,并与预期输出进⾏⽐较,如果不同,分析产⽣错误的原因并改正。
(1 利用Matlab 的图形用户界面(GUI )功能,设计与实现实验主界面;(2 实现在“数值计算”图形用户界面中的各项数值计算,如实现Matlab 的线性方程组的求解、数据统计与分析、数值插值、曲线拟合、常微分方程的数值求解等数值计算;(3 利用Matlab 的二维、三维绘图功能,实现图形用户界面(GUI )中的数值计算的可视化,即给出数值计算实例的同时实现该实例的图形化描述。
如下图给出了一个简单的GUI 界面,学生可以参考如下图设计出自己的GUI 界面。
figure('Color' ,[1,1,1],'Position' ,[100,100,700,600],...'Name' , '' , ...'NumberTitle' , 'off' , 'MenuBar' , 'none' ;uicontrol('Style' , 'Frame' , 'Position' ,[0,0.08,0.45,1],...'Units' , 'normalized' , 'Back' ,[0,1,1];XIANQIU=['a=str2num(get(xishu,''String'';', ...'b=str2num(get(changshu,''String'';', ...'b=b'';x=a\b;', ...'set(jieguo,''string'',x;'];uicontrol('Style' , 'Push' , 'Position' ,[0.02,0.92,0.20,0.06],...'String' , 'ÏßÐÔ·½³Ì×éÇó½â', 'Units' , 'normalized' , 'Call' ,XIANQIU;uicontrol('Style' , 'Text' , 'Position' ,[0.01,0.83,0.1,0.05],... 'Units' , 'normalized' , 'Horizontal' , 'center' , ...'String' , 'ϵÊý¾ØÕó', 'Back' ,[0,1,1];xishu=uicontrol('Style' , 'Edit' , 'Position' ,[0.16,0.83,0.25,0.06],... 'Units' ,'normalized' , 'Back' ,[0,1,0];uicontrol('Style' , 'Text' , 'Position' ,[0.01,0.72,0.1,0.05],... 'Units' , 'normalized' , 'Horizontal' , 'center' , ...'String' , '³£ÊýÏî¾ØÕó', 'Back' ,[0,1,1];changshu=uicontrol('Style' , 'Edit' , 'Position' ,[0.16,0.72,0.25,0.06],.. .'Units' , 'normalized' , 'Back' ,[0,1,0];uicontrol('Style' , 'Push' , 'Position' ,[0.02,0.63,0.20,0.06],... 'String' ,'Êýֵͳ¼ÆÓë·ÖÎö';uicontrol('Style' , 'Text' , 'Position' ,[0.23,0.63,0.2,0.05],... 'Units' , 'normalized' , 'Horizontal' , 'center' , ...'String' , 'ÔÚϵÊý¾ØÕóÊäÈë¿òÖÐÊäÈëÒª·ÖÎöµÄ¾ØÕó', 'Back' ,[0,1,1];uicontrol('Style' , 'Push' , 'Position' ,[0.06,0.55,0.1,0.05],... 'String' , 'ÊýÖµ²åÖµ';uicontrol('Style' , 'Push' , 'Position' ,[0.22,0.55,0.1,0.05],... 'String' , 'ÇúÏßÄâºÏ';uicontrol('Style' , 'Text' , 'Position' ,[0.005,0.45,0.05,0.05],... 'Units' , 'normalized' , 'Horizontal' , 'center' , ...'String' , 'X' , 'Back' ,[0,1,1];chazhi=uicontrol('Style' , 'Edit' , 'Position' ,[0.05,0.45,0.15,0.06],... 'Units' ,'normalized' , 'Back' ,[0,1,0];uicontrol('Style' , 'Text' , 'Position' ,[0.2,0.45,0.05,0.05],... 'Units' , 'normalized' , 'Horizontal' , 'center' , ...'String' , 'Y' , 'Back' ,[0,1,1];nihe=uicontrol('Style' , 'Edit' , 'Position' ,[0.25,0.45,0.15,0.06],... 'Units' ,'normalized' , 'Back' ,[0,1,0];XIANXING=['s=(get(changwei,''String'';', ...'c=(get(tiaojian,''String'';', ...'c_f=dsolve(''s'',''b'',''x'';', ...'set(jieguo,''string'',char(c_f;'];uicontrol('Style' , 'Push' , 'Position' ,[0.02,0.35,0.25,0.06],...'String' , '³£Î¢·Ö·½³ÌÊýÖµÇó½â', 'Units' , 'normalized' , 'Call' ,XIANXING;chengwei=uicontrol('Style' , 'Edit' , 'Position' ,[0.16,0.25,0.25,0.06],.. .'Units' , 'normalized' , 'Back' ,[0,1,0];uicontrol('Style' , 'Text' , 'Position' ,[0.01,0.25,0.1,0.05],... 'Units' , 'normalized' ,'Horizontal' , 'center' , ...'String' , '΢·Ö·½³Ì', 'Back' ,[0,1,1];tiaojian=uicontrol('Style' , 'Edit' , 'Position' ,[0.16,0.15,0.25,0.06],.. .'Units' , 'normalized' , 'Back' ,[0,1,0];uicontrol('Style' , 'Text' , 'Position' ,[0.01,0.15,0.1,0.05],... 'Units' , 'normalized' ,'Horizontal' , 'center' , ...'String' , '³õÖµÌõ¼þ', 'Back' ,[0,1,1];h_axes=axes('position' ,[0.5,0.15,0.4,0.4];jieguo=uicontrol('Style' , 'text' , 'Position' ,[0.5,0.6,0.45,0.25],... 'Units' , 'normalized' , 'Back' ,[0,1,0];uicontrol('Style' , 'Text' , 'Position' ,[0.6,0.85,0.3,0.1],... 'Units' , 'normalized' ,'Horizontal' , 'center' , ...'String' , '½á¹û', 'Back' ,[1,1,1],'FontSize' ,35;uicontrol('Style' , 'Push' , 'Position' ,[0.018,0.02,0.08,0.05],... 'String' , 'Í˳ö', 'Units' , 'normalized' , 'Call' , 'close' ;uicontrol('Style' , 'Push' , 'Position' ,[0.65,0.025,0.08,0.05],...'String' , '°¡Êµ´òʵ', 'Units' , 'normalized' , 'Call' , '»æÍ¼º¯Êý°´Å¥';。
实验二图形用户界面设计与应用一、实验目的1、了解GUI 的基本控件2、掌握通过GUIDE 创建GUI 的方法3、掌握通过程序创建GUI 的方法二、实验仪器1、计算机2、MATLAB 软件环境三、实验指导1. 通过GUIDE 创建GUI本例GUI 的功能为在一个界面中绘制两个图形,为的图像及其快速傅立叶(FFT)的图像。
其中参数、和的值由界面输入。
该GUI 的界面图形如图:该GUI 中需要解决的问题有:a.控制绘图命令的目标坐标系;b.通过文本编辑器输入MATLAB 表达式的参数。
创建GUI 界面打开GUIDE,新建GUI,保存为two_axes。
向其中添加控件并设置这些控件的属性。
设置f1 的Tag 属性为f1_input,初始值为50,f2 的Tag 属性为f2_input,的初始值为120,t 的Tag 属性为t_input,的初始值为0:.001:0.25。
这些初始值为打开该GUI 时的默认值。
由于该GUI 中包含两个图形,在绘制图形时必须指定坐标系。
为实现这一功能,可以使用handles 结构体,该结构体中包含GUI 中所有控件的句柄。
该结构体中的域名为控件的Tag 属性值。
在本GUI 中,我们设置绘制函数时域的坐标系的句柄为time_axes,绘制频域图形的坐标系为frequency_axes,如图所示。
设置后,在响应函数中,可以通过handles.frequency_axes 实现对该坐标系的调用。
设置控件完成后,设置GUI 的属性。
在Tools 菜单中选择GUI options…,弹出窗口如图所示。
该GUI 需要从界面中读入参数,利用读入的参数计算函数的快速傅立叶变换,之后绘制图形。
需要的响应函数只有一个,即按钮的响应函数。
该函数的内容为:function plot_button_Callback(hObject, eventdata, handles)% hObject handle to plot_button (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Get user input from GUIf1 = str2double(get(handles.f1_input,'String'));f2 = str2double(get(handles.f2_input,'String'));t = eval(get(handles.t_input,'String'));% Calculate datax = sin(2*pi*f1*t) + sin(2*pi*f2*t);y = fft(x,512);m = y.*conj(y)/512;f = 1000*(0:256)/512;% Create frequency plotaxes(handles.frequency_axes) % Select the proper axesplot(f,m(1:257))set(handles.frequency_axes,'XMinorTick','on')grid on% Create time plotaxes(handles.time_axes) % Select the proper axesplot(t,x)set(handles.time_axes,'XMinorTick','on')grid on代码完成后保存,运行该GUI,得到结果如图:2. 通过程序创建GUI1)需要实现的功能及需要包含的控件要创建的GUI 其功能为在坐标系内绘制用户选定的数据,包含的控件包括:坐标系;弹出菜单,其中包含五个绘图选项;按钮,更新坐标系中的内容;菜单栏,其中包含File 菜单,菜单中包含三个选项,为Open、Print 和Close;工具栏,包含两个按钮,为Open 和Print。
实验二图形用户界面设计一、实验目的通过编程和上机实验,了解图形用户界面基本组件窗口、按钮、文本框、选择框等的使用方法,了解如何使用布局管理器对组件进行管理,以及如何使用Java 的事件处理机制。
二、实验要求1.掌握在窗体中添加组件的方法,掌握使用布局管理器对组件进行管理的方法。
2.理解Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。
3.掌握编写独立运行的窗口界面的方法。
三、实验内容Ⅰ基本指导图形用户界面(Graphic User Interface ,简称GUI)是为方便用户使用设计的窗口界面,在图形用户界面中用户可以看到什么就操作什么,取代了在字符方式下知道是什么后才能操作什么的方式。
组件(Component)是构成GUI 的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。
组件一般作为一个对象放置在容器(Container)内,容器是能容纳和排列组件的对象,如Applet、Panel(面板)、Frame(窗口)等。
通过容器的add()方法把组件加入到容器中。
Awt和swing的基本使用方法是一致的,在本实验中大部分以awt为例。
1 实现基本的登录窗口,掌握窗体以及常用组件的使用方式。
import java.awt.*;import javax.swing.*;public class LoginFrame extends JFrame{public LoginFrame(){super("User Login");this.setSize(200,120); //设置框架尺寸this.setLocation(300,240);this.setLayout(new FlowLayout()); //框架流布局,居中this.add(new Label("userid")); //创建标签,添加到框架上this.add(new TextField("user1",10)); //创建文本行this.add(new Label("password"));this.add(new TextField(10)); //创建20列的文本行this.add(new Button("Ok")); //创建按钮this.add(new Button("Cancel"));this.setVisible(true); //显示框架}public static void main(String arg[]){new LoginFrame();}}2观察以下程序并自己尝试布局管理器的使用import java.awt.*;import javax.swing.*;class HelloSwing {public static void main(String[] args) {JFrame frame = new JFrame("HelloSwing");// frame.setLayout(new FlowLayout( FlowLayout.RIGHT));frame.setSize(600,400);/*Button btnEast=new Button("东");btnEast.setPreferredSize(new Dimension(220,12));Button btnWest=new Button("西");Button btnNorth=new Button("北");Button btnSouth=new Button("南");Button btnCenter=new Button("中");frame.add(btnEast,BorderLayout.EAST);frame.add(btnWest,BorderLayout.WEST);frame.add(btnNorth,BorderLayout.NORTH);frame.add(btnSouth,BorderLayout.SOUTH);frame.add(btnCenter,BorderLayout.CENTER);frame.setVisible(true);*/Button btn[]; // 声明按钮数组String str[]={"1","2","3","4","5","6","7","8","9"};frame.setLayout(new GridLayout(3,3));btn=new Button[str.length]; // 创建按钮数组for(int i=0;i<str.length;i++){btn[i]=new Button(str[i]); frame.add(btn[i]);}frame.setVisible(true); }}3 编程实现简单的标签、按钮组件,实现点击按钮,改变标签的功能。
Java图形用户界面设计实验总结1. 简介本文档是关于Java图形用户界面(GUI)设计实验的总结。
我们将对Java GUI 的基本概念和原理进行介绍,并提供一些实验总结和经验分享。
Java GUI是一种用于创建用户友好界面的技术,在开发各种应用程序时非常重要。
2. Java GUI的基本概念和原理2.1 Java GUI库Java提供了一些库来帮助开发人员创建GUI应用程序。
其中最常用的库是Java Swing和JavaFX。
Swing提供了一组类和方法,用于创建和管理各种GUI组件,例如按钮、文本框、标签等。
JavaFX是一个更现代化的GUI库,提供了更好的图形渲染和动画效果。
2.2 GUI组件Java GUI应用程序通常由一系列GUI组件组成。
最常见的GUI组件包括:•按钮(Button):用于触发各种操作;•标签(Label):用于展示文本信息;•文本框(TextField):用于输入文本;•列表框(ListBox):用于显示一个选项列表;•组合框(ComboBox):同时兼具列表框和文本框的功能;•复选框(CheckBox):用于选择一个或多个选项;•单选按钮(RadioButton):用于从一组选项中选择一个。
2.3 事件处理Java GUI应用程序通常需要对用户的操作做出响应。
为此,需要使用事件处理机制。
事件处理机制通常由两个主要部分组成:事件源和事件监听器。
事件源可以是任何GUI组件,例如按钮、文本框等。
事件监听器是一个类,用于响应和处理特定事件。
3. 实验总结和经验分享在完成Java GUI设计实验时,我得出了以下总结和经验分享:•熟悉GUI组件的使用:在开始实验之前,我花了一些时间学习和理解不同GUI组件的使用方法。
这让我能够更好地选择和使用适当的组件来实现我的GUI应用程序。
•构建用户友好的界面:一个好的GUI应用程序应该是用户友好的。
在实验中,我学会了如何通过合理的布局、适当的颜色和字体选择来创建一个用户友好的界面。
实验报告GUI程序设计1.引言GUI(Graphical User Interface,图形用户界面)是计算机系统中用户与计算机之间进行交互的一种方式,它使用了图形和图标等视觉元素来代替传统的文本命令行界面。
在本次实验中,我们学习了GUI程序设计的基本原理和开发方法,并使用Python语言编写了一个简单的GUI程序。
2.实验目的通过本次实验,我们的主要目的是学习以下几个方面的内容:-了解GUI程序设计的基本原理和概念;- 熟悉Python语言中的GUI开发库;-掌握使用GUI开发工具设计和实现简单的GUI程序。
3.实验过程3.1确定需求在开始开发GUI程序之前,我们首先需要确定程序的需求。
在本次实验中,我们决定开发一个简单的计算器程序,该程序能够进行基本的四则运算,并显示计算结果。
3.2设计界面3.3编写代码3.4调试程序在完成代码的编写之后,我们对程序进行了调试。
在调试过程中,我们发现了一些错误,比如按钮的事件处理函数没有正确设置,导致无法进行相应的计算。
通过不断地调试和修改,我们最终成功地解决了这些问题。
3.5测试程序在完成调试之后,我们对程序进行了测试。
测试的过程包括输入不同的表达式,进行相应的计算,并对比计算结果是否正确。
通过多次测试,我们发现程序能够正确地进行四则运算,并显示出正确的计算结果。
4.实验结果通过本次实验,我们成功地实现了一个简单的GUI程序,该程序能够进行基本的四则运算,并显示出正确的计算结果。
该程序界面简洁明了,易于操作,符合用户的需求。
5.实验总结通过本次实验,我们深入学习了GUI程序设计的基本原理和开发方法,并通过实践运用了Python语言编写了一个简单的GUI程序。
在实验过程中,我们遇到了一些问题,并通过调试和测试最终解决了这些问题。
通过实验,我们对GUI程序的开发有了更深入的理解,并掌握了一定的开发技巧。
在今后的学习和工作中,我们将继续学习和探索GUI程序设计的更多内容,提高自己的技术水平,为用户提供更好的使用体验。