搜档网
当前位置:搜档网 › 小日历-JAVA课程设计实验报告

小日历-JAVA课程设计实验报告

小日历-JAVA课程设计实验报告
小日历-JAVA课程设计实验报告

湖南农业大学JAVA课程设计报告

JAV A小日历组件

学生姓名:杨姣姣

学号:200741841210

年级专业:07级电子商务2班

指导老师:王明宇

学院:信息科学技术学院

湖南·长沙

提交日期:2009年11月

目录

1.设计目标 (3)

2.设计思想 (3)

3.类及对象设计 (3)

4.程序源代码 (4)

5.调试记录 (14)

6.总结 (15)

7.参考文献 (17)

8.致谢 (17)

JA V A小日历组件设计

1.设计目标

本课程设计是一个JA VA小日历组件的设计,利用Frame框架类、面板类进行图形化界面设计,实现小日历的公历显示等功能。

2.设计思想

(1)本小日历设计主体结构为:设计一个框架MainFrame,然后在MainFrame里添加一个MainPanel面板。定义一个MainPanel面板类,该面板以边布局格式,所有其他面板、标签等均添加到该面板中。

(2)MainPanel面板北部(上方),添加一个年月面板YearMonthPanel。该年月面板主要放年份显示、月份显示、标题显示。YearMonthPanel面板也使用边布局格式,西部添加一个年份面板,放年份信息;中部添加一个TextPanel面板,放标题文本显示信息;东部添加一个月份面板MonthPanel,放月份下拉框信息。

(3)MainPanel主面板的中部,添加一个DaysPanel面板用于放置月份的天数表格信息。

(4)MainPanel主面板的南部(下方),添加一个InfoPanel面板,主要用于放置显示个人信息。

(5)InfoPanel面板上设计添加一个超级链接标签,链接到个人博客。

3.设计类及对象设计

在本程序中:定义了一个Frame类,主要定义一个窗体框架,用于显示日历信息,并在主函数中只创建一个该窗体对象实现程序功能。

定义了一个主日历面板类Xiaorili,其中包含了日历设计所用到的全局变量、功能函数等,在Frame类里定义了其对象。在该日历面板类里又设计了一个内部类CalendarTable表格类,用于布局日历天的显示格式。

为了设计一个超级链接,定义了一个LinkLable类,单独保存在一个文件LinkTbale.java中,在日历面板类Xiaorili里定义了其对象。

4.程序源代码

(1)xiaoril.java文件代码:

import java.awt.*;

import java.awt.event.*;

import java.util.*;

import javax.swing.*;

import javax.swing.event.*;

import javax.swing.table.*;

public class Xiaorili extends JApplet {

//==================================================

/*定义全局变量*/

public static final Color background = Color.white;//背景色

public static final Color foreground = Color.black;//前景色

public static final Color headerBackground = Color.DARK_GRAY;//星期public static final Color headerForeground = Color.white;//星期前景色public static final Color selectedBackground = Color.green;//选中背景色public static final Color selectedForeground = Color.white;//选中前景色public static final String WeekSun = "星期日"; //星期标签名称

public static final String WeekMon = "星期一";

public static final String WeekTue = "星期二";

public static final String WeekWed = "星期三";

public static final String WeekThu = "星期四";

public static final String WeekFri = "星期五";

public static final String WeekSat = "星期六";

private JPanel MainPanel;//日历面板

private JLabel yearsLabel;//“年份”标签

private JSpinner yearsSpinner;//年份组合框

private JLabel monthsLabel;//“月份”标签

private JComboBox monthsComboBox; //12月份下拉框

private JLabel textLabel;//标题显示标签

private JLabel InfoLabel;//个人信息显示标签

private JTable daysTable; //日表格

private AbstractTableModel daysModel;//天单元表格

private Calendar calendar;//日历对象

//==================================================

/*函数定义*/

public Xiaorili() {//构造函数

MainPanel = (JPanel) getContentPane();

}

public void init() {//初始化面板界面函数

MainPanel.setLayout(new BorderLayout());

calendar = Calendar.getInstance();//默认方式,以本地的时区和地区来构造Calendar

//--------------------------------------

yearsLabel = new JLabel("年份: "); //设置年份标签显示

yearsSpinner = new JSpinner();//构造年份spinner组合框

yearsSpinner.setEditor(new JSpinner.NumberEditor(yearsSpinner, "0000"));

yearsSpinner.setV alue(new Integer(calendar.get(Calendar.YEAR)));

yearsSpinner.addChangeListener(new ChangeListener() {//注册该组合框的事件监听器

public void stateChanged(ChangeEvent changeEvent) {

int day = calendar.get(Calendar.DAY_OF_MONTH);

calendar.set(Calendar.DAY_OF_MONTH, 1);

calendar.set(Calendar.YEAR, ((Integer) yearsSpinner.getV alue()).intV alue());

int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

calendar.set(Calendar.DAY_OF_MONTH, day > maxDay ?

maxDay : day);

updateView();//更新显示

}

});

//--------------------------------------

JPanel yearMonthPanel = new JPanel();//定义年月面板

MainPanel.add(yearMonthPanel, BorderLayout.NORTH);//添加年月面板到日历面板的南面(最上方)

yearMonthPanel.setLayout(new BorderLayout());//边布局模式

JPanel yearPanel = new JPanel();//构建年份面板

yearMonthPanel.add(yearPanel, BorderLayout.WEST);//年份面板添加到年月面板西部(左边)

yearPanel.setLayout(new BorderLayout());//设置年份面板为边布局并添加年份标签和组合框

yearPanel.add(yearsLabel, BorderLayout.WEST);

yearPanel.add(yearsSpinner, BorderLayout.CENTER);

//--------------------------------------

monthsLabel = new JLabel("月份: "); //设置月份标签显示

monthsComboBox = new JComboBox();//月份下拉框

for (int i = 1; i <= 12; i++) { //构造下拉框的12个月份

monthsComboBox.addItem(new Integer(i));

}

monthsComboBox.setSelectedIndex(calendar.get(Calendar.MONTH));//下拉框当前月份为选中状态

monthsComboBox.addActionListener(new ActionListener() { //注册月份下拉框的事件监听器

public void actionPerformed(ActionEvent actionEvent) {

int day = calendar.get(Calendar.DAY_OF_MONTH);

calendar.set(Calendar.DAY_OF_MONTH, 1);

calendar.set(Calendar.MONTH,

monthsComboBox.getSelectedIndex());

int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

calendar.set(Calendar.DAY_OF_MONTH, day > maxDay ? maxDay : day);

updateView();//更新面板显示

}

});

//--------------------------------------

JPanel monthPanel = new JPanel();//定义月份面板

yearMonthPanel.add(monthPanel, BorderLayout.EAST);//添加月份面板到年月面板的东面(右面)

monthPanel.setLayout(new BorderLayout());//月份面板设为边布局方式

monthPanel.add(monthsLabel, BorderLayout.WEST);//添加月份名称标签到月份面板西面(左面)

monthPanel.add(monthsComboBox, BorderLayout.CENTER);//添加月份下拉框到月份面板中间

//--------------------------------------

textLabel = new JLabel("JAV A小日历-061114052"); //设置标题标签显示

JPanel txetPanel = new JPanel();//定义标题文本显示面板

yearMonthPanel.add(txetPanel,BorderLayout.CENTER);//添加标题文本显示面板到年月面板中间

txetPanel.add(textLabel,BorderLayout.CENTER);//添加标题文本标签到面板

//--------------------------------------

InfoLabel = new JLabel("学号:061114052 姓名:李志文班级:06教育班"); //设置个人信息标签显示

JPanel InfoPanel = new JPanel();//定义底部个人信息显示面板

MainPanel.add(InfoPanel,BorderLayout.SOUTH);//添加个人信息显示面板到日历面板南方(下方)

InfoPanel.add(InfoLabel);//添加信息标签文本标签到面板

//--------------------------------------

JPanel Link = new JPanel();//设置超级链接到我的博客

InfoPanel.add(new LinkLabel("访问志文工作室", "https://www.sodocs.net/doc/a37116730.html,")); //--------------------------------------

daysModel = new AbstractTableModel() { //设置7行7列

public int getRowCount() {

return 7;

}

public int getColumnCount() {

return 7;

}

public Object getV alueAt(int row, int column) {

if (row == 0) { //第一行显示星期

return getHeader(column);

}

row--;

Calendar calendar = (Calendar) Xiaorili.this.calendar.clone();

calendar.set(Calendar.DAY_OF_MONTH, 1);

int dayCount = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

int moreDayCount = calendar.get(Calendar.DAY_OF_WEEK) - 1;

int index = row * 7 + column;

int dayIndex = index - moreDayCount + 1;

if (index < moreDayCount || dayIndex > dayCount) {

return null;

} else {

return new Integer(dayIndex);

}

}

};

daysTable = new CalendarTable(daysModel, calendar); //构造日表格

daysTable.setCellSelectionEnabled(true);//设置表格单元格可选择

daysTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

daysTable.setDefaultRenderer(daysTable.getColumnClass(0), new TableCellRenderer() {

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,

boolean hasFocus, int row, int column) {

String text = (value == null) ? "" : value.toString();

JLabel cell = new JLabel(text);

cell.setOpaque(true); //绘制边界内的所有像素

if (row == 0) { //第一行显示星期,设置为星期的前景色和背景色

cell.setForeground(headerForeground);

cell.setBackground(headerBackground);

} else {

if (isSelected) { //日期单元格如果选中,则设置为日期选中的前、背景色

cell.setForeground(selectedForeground);

cell.setBackground(selectedBackground);

} else { //设置日期单元格的普通前、背景色

cell.setForeground(foreground);

cell.setBackground(background);

}

}

return cell;

}

});

updateView();

MainPanel.add(daysTable, BorderLayout.CENTER);//添加日面板到日历面板中间

}

//--------------------------------------

public static String getHeader(int index) {//设置第一行星期的显示

switch (index) {

case 0:

return WeekSun;

case 1:

return WeekMon;

case 2:

return WeekTue;

case 3:

return WeekWed;

case 4:

return WeekThu;

case 5:

return WeekFri;

case 6:

return WeekSat;

default:

return null;

}

}

//--------------------------------------

public void updateView() {//更新面板显示方法

daysModel.fireTableDataChanged();

daysTable.setRowSelectionInterval(calendar.get(Calendar.WEEK_OF_MONTH),

calendar.get(Calendar.WEEK_OF_MONTH));

daysTable.setColumnSelectionInterval(calendar.get(Calendar.DAY_OF_WEEK) - 1,

calendar.get(Calendar.DAY_OF_WEEK) - 1);

}

//==================================================

public static class CalendarTable extends JTable {//表格类

private Calendar calendar;

public CalendarTable(TableModel model, Calendar calendar) {//构造方法

super(model);

this.calendar = calendar;

}

//--------------------------------------

public void changeSelection(int row, int column, boolean toggle, boolean extend) {//选择表格单元格时

super.changeSelection(row, column, toggle, extend);

if (row == 0) {//选择为第一行(星期)时不改变单元格

return;

}

Object obj = getV alueAt(row, column);

if (obj != null) {

calendar.set(Calendar.DAY_OF_MONTH, ((Integer)obj).intV alue());

}

}

}

}

(2)LinkLabel.java文件代码:

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

public class LinkLabel extends JLabel {

private String text, url;

private boolean isSupported;

public LinkLabel(String text, String url) {

this.text = text;//显示文本

this.url = url;//链接地址

try {

this.isSupported = Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE);

}

catch (Exception e) {//捕获浏览器异常

this.isSupported = false;

}

setText(false);

addMouseListener(new MouseAdapter() {//注册鼠标单击事件监听器

public void mouseEntered(MouseEvent e) {

setText(isSupported);

if (isSupported)

setCursor(new Cursor(Cursor.HAND_CURSOR));//鼠标形状为hand 形式

}

public void mouseExited(MouseEvent e) {//移开鼠标时

setText(false);

}

public void mouseClicked(MouseEvent e) {//鼠标单击时

try {

Desktop.getDesktop().browse(new https://www.sodocs.net/doc/a37116730.html,.URI(LinkLabel.this.url));//调用默认浏览器打开链接

}

catch (Exception ex) {

}

}

});

}

private void setText(boolean b) {//设置标签显示文本

if (!b)

setText("" + text);//鼠标移到标签外显示为红色字体

else

setText("" + text);//鼠标移到标签上面显示为绿色字体

}

}

(3)MainFrame.java文件代码:

/**

* @(#) MainFrame.java

* 主窗体

* @author 志文工作室:https://www.sodocs.net/doc/a37116730.html,

*/

import java.awt.*;

import javax.swing.*;

//构造窗体类

public class MainFrame extends JFrame{

public MainFrame(){

super("JAV A小日历-志文工作室-https://www.sodocs.net/doc/a37116730.html,");//创建窗体并设置标题

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//单击窗口关闭按钮关闭窗体

Xiaorili Xiaorili = new Xiaorili();//创建小日历对象

Xiaorili.init();//初始化面板

this.getContentPane().add(Xiaorili);

this.setSize(450, 200); //框架大小

this.setVisible(true);//设置可见性

this.setResizable(false);//窗体不可改变大小

this.pack();

}

/*主函数调用*/

public static void main(String[] args){

new MainFrame();

}

}

5.调试记录

程序功能调试如下:

(1)运行程序,出现日历界面:

(2)单击年份的组合框侧边箭头,改变年份,则日历跟随改变:

(3)单击月份下拉框,改变月份,则日历也跟随改变:

(4)鼠标移动到“访问志文工作室”标签上,则字体颜色变为绿色:

(5)鼠标单击超级链接标签,则调用默认浏览器打开了我的博客主页:

6.总结

(1)选题目的:本次课程设计为课本后设计题目任选一题进行设计。思考一段时间后,我决定做一个小日历组件的设计。主要考虑到本学期时间少课程内容多,JA VA 课程基础内容掌握并不是很抓实,而对于设计一个小日历组件,由于其功能简单设计也相对较易,对于我个人的学习情况比较合适,并且通过设计这样的一个日历小组件,也能使自己对JA VA的一些基础知识掌握的更加牢固。

(2)对于本小日历的设计,首先考虑其功能有哪些,需要显示什么,如何进行窗体构建布局,需要用哪些知识点,如相关的类和对象等。最后,就是根据初步设计的功能和布局构架,考虑用源代码进行实现了。

(3)本小日历组件在设计过程中参考了一些网络上的日历组件设计程序,只是那些程序大都使用功能相对较丰富,涉及到的知识也比较多,对于自己目前所掌握的内容来说有点广博。不过那些程序对日历实现的一些思想对我确实有很多启发。本小日历组件设计过程中也参考了一些他人设计的代码。在设计本小日历组件过程中遇到过许多问题,最后都是在网络搜集询问的帮助下一一得以解决。下面列举几个参考中比较重要的相关内容:

◆.JA VA Calendar方法:Calendar 抽象类定义了足够的方法,让我们能够表述日历的规则。我们也可以自己的Calendar 实现类,然后将它作为Calendar 对象返回(面向对象的特性)。在Calendar 的方法中,get() 和add() 会让Calendar 立刻刷新。本程序的中心设计即是利用Calendar类来实现。

◆javax.swing.JSpinner用法:让用户从一个有序序列中选择一个数字或者一个对象值的单行输入字段。它能够方便地选择日期、数字或列表中的选项。Spinner 通常提供一对带小箭头的按钮以便逐步遍历序列元素。键盘的向上/向下方向键也可循环遍历元素。也允许用户在spinner 中直接输入合法值。JSpinner显示不同的内容,采用不同的模型,像SpinnerDateModel,SpinnerListModel,SpinnerNumberModel,只要对模型修改,就可以实现想要的精确的功能。本程序利用该组件实现了年份的修改。

◆setOpaque 用法:setOpaque (false)的作用是将button的背景色改为其parent的背景色。如果为true,则该组件绘制其边界内的所有像素。否则该组件可能不绘制其某些或所有像素,从而允许其下面的像素透视出来。

◆基于Java Swing的超链接标签和超链接按钮的实现:java.awt.Desktop类的java.awt.Desktop.isDesktopSupported()可以获取当前系统是否支持java awt桌面扩展.如果支持可以获取当前系统的Desktop ,则使用:

java.awt.Desktop dp = java.awt.Desktop.getDesktop();

dp.browse(https://www.sodocs.net/doc/a37116730.html,.URI); 就可以启动系统默认的浏览器。本程序自定义一个超链接标签控件[LinkLabel]类进行实现该功能。

◆java中实现表格的多表头显示:主要就是三个应用类ColumnGroup,

GroupableTableHeader,GroupableTableHeaderU和一个示例类GroupableHeaderExample。

经过了长时间的反复编写调试,课本和网上查阅相关资料相关文章,终于完成了整个课程设计。在这个过程中,在把书本上的知识给系统的复习了一下的同时,同时也发现了自己的太多不足,对JA VA2语言整体知识构架不够熟悉,不能灵活地运用所学的知识点。自己的编程方式也不是太标准,经常出现代码写错而调试很久的低级错误情况出现。

通过这次课程设计,我明白了编写程序,不仅要求对课本知识有较深刻的了解,同时要求程序设计者有较强的思维和动手能力。还要熟悉常用的编程技巧和编程思想,不能只关心程序的运行结果,更要注重程序代码的结构,编程者更要有严谨地态度。还有通过设计过程中大量地查阅网络文章,对一些关键知识点逐个地了解并解决相关问题。所以网络这个强大的工具,确实是我们学习之中可以借助的一个很好的帮手。网络是我们学习的最好的老师之一。有问题,问网络,是一个很好的习惯。

7. 参考资料:

[1] 叶核亚.《JA V A2程序设计实用教程(第2版)》,北京:电子工业出版社,2008.4.

[2] https://www.sodocs.net/doc/a37116730.html,/eredlab/blog/item/000f9cec33b8562463d09f1b.html

[3] https://www.sodocs.net/doc/a37116730.html,/index.php/36770/viewspace-11956

[4] https://www.sodocs.net/doc/a37116730.html,/articleview/2007-1-23/article_view_1031.htm

[5] https://www.sodocs.net/doc/a37116730.html,/dispbbs.asp?boardid=41&id=52488&star=1

[6] https://www.sodocs.net/doc/a37116730.html,/t/20060128/11/4536759.html

[7] https://www.sodocs.net/doc/a37116730.html,/kissjava/articles/187739.html

[8] https://www.sodocs.net/doc/a37116730.html,/doc/604.htm

8. 致谢:本论文是在指导老师王明宇的悉心指导下完成的。这次毕业设计能够顺利的完成,要感谢很多人无私的帮助。

首先是王明宇老师,在技术上给了我很大的帮助和启发,他在实验课上的讲解让我对java语言有了大概的了解。同时激起我对java编程的兴趣。

其次,感谢班上同学对我的帮助和指点。没有他们的帮助和提供资料对于我一个对编程知识不是很精通的人来说要想在短短的几个月的时间里完成一个系统的设计是几

乎不可能的事情。

在此表示最诚挚的感谢!

数电EDA课程设计电子日历

燕山大学 EDA课程设计报告书 电子日历 姓名:王斌 班级:05级电子信息工程3班 学号:050104020064 日期:2007/11/05——2007/11/14 一、设计题目:电子日历 二、设计要求:

1.能显示年,月,日,星期; 2.例如: 01.11.08. 6,星期日显示8; 3.年月日,星期可调; 4.不考虑闰年 三.设计思路: 为实现本电路得功能,采取模块电路设计方法,本电路系统主要包括以下三三大模块:. 1: 电子日历记数模块 2: 中间控制模块 3: 译码器显示模块 由于不同的月份,决定了不同的天数,因此须设计反馈电路,协调月日的关系,通过不同的月选择相应的天数:比如二月二十八天,十二月三十一天,……..这是利用真值表列出逻辑表达式,从而画出电路图如图1: 仿真图如下: 四、设计过程: 一、电子日历记数模块 1、实现星期计时: 为实现星期计时模块,计到星期日时,显示“8”,采用一般的计数器难以实现,

即可通过四个jk触发器设计而成。其电路图如下: 仿真图如下: 2、实现天数计时: 由于不同的月份,决定了不同的天数,因此须设计三个独立完成计数的计数器电路,如日计数器周期性的(28,30或31)向月计数器进位调月日的关系,即通过三个选择端(c28,c30,c31),同一时刻只能有一个有效,由其中的任一个有效端来控制相应日计数器。其电路原理图

3、实现月份及年份计时: 由用两个74160采用整体同步置数分别构成100进制和12进制计数器,分别完成年,月的计数功能。然后将两者依次异步连接,每隔12个月,月计数器向年计数器进一位,从而实现年月的周期性计数。 月份计数器电路原理图如下: 年份计数器电路图如下:

心得体会数据库VB课程设计心得体会

三一文库(https://www.sodocs.net/doc/a37116730.html,)/心得体会范文/心得体会数据库VB课程设计心得体会 数据库课程设计大赛的尘嚣渐渐远去,怀着对这次大赛的些许不舍,怀着对当初课程设计开始时候的豪情万丈的决心的留恋,怀着通过这次课程设计积累的信心与斗志,我开始写这篇*,为自己的足迹留下哪怕是微不足道但是对自己弥足珍贵的痕迹 并期望与大家共勉。 首先,让我的记忆追溯到大二暑假,在老大的指引下(老大劝我学https://www.sodocs.net/doc/a37116730.html,),我接触到microsoft公司的.net产品。那个时候我已经学过vc和asp,因为windows程序设计实验的课的关系,接触过vb,但是没有专门去学他,因为习惯了c++里面的class,int,觉得vb的sub,var看着就不是很顺心。我是一个好奇心很强的人,突然看到了一个号称“.net是用于创建下一代应用程序的理想而又现实的开发工具”,而且主推c#语言,由于对c语言的一贯好感,我几乎是立刻对他产生了兴趣。我就开始了对c#的学习,任何语言都不是孤立存在的,所以数据交互是很重要的,暑假的时候我把我们这学期的课本数据库系统概论看了一遍。我记得以前用c语言编程的时候,数据是在内存中申请空间,譬如

使用数组等等。很耗费内存空间。这个时候就是数据库站出来的时候啦,于是我又装上了sqlserverxx,以前学asp的时候用的是access,那个时候只是照着人家做,理论是什么也不是很清楚。 通过一个暑假的学习,基本搞清楚了理论方面的东西,具体怎么用也不是很清楚。但是这为这学期的课程设计打下了铺垫。 来到学校后,随着这学期的数据库课程大赛开始了,我有一个看法就是我自己应该具备的能力不是我会多少,而是我应该具备快速学会东西的能力。遇到什么就学什么。我们有时候很容易被一些专业名词说吓着,包括什么建模,软件工程,数据分析,数据挖掘等等。我身边就有很多同学被这些纸老虎所唬住,而没有勇气去接触他们,总是说这个太难了之类的退堂鼓的话,他们低估了自己的潜力同时也压抑住了他们自己的好奇心。其实都是纸老虎,又不是什么国家科研难题,只是去用一些工具,发明工具是很难,但是用一个工具就容易多了,justdoit!我记得我做这个数据库之前,我们老师说要做好前期分析,我就在网上搜索用什么分析工具好。最后我选择了roseuml建模工具。在此之前,我脑袋里面没有软件建模的思想,什么uml建模对我而言就是一张空白的纸。但是真正接触后并没有想象的那么难,有什么不懂的上网去搜索,这是一个信息横流的世界,有google,baidu就没有不能解决的知识难题。以及后来的数据库分析的时候用到的powerdesigner也是一样。

大学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.sodocs.net/doc/a37116730.html,ng.String; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; import https://www.sodocs.net/doc/a37116730.html,ng.Math; class Calculator extends JFrame implements ActionListener

单片机课程设计 电子日历时钟显示器设计

目录 1.题目设计要求 (1) 2.开发平台简介 (1) 3.系统硬件设计 (2) 3.1设计原理 (2) 3.2器件的功能与作用 (2) 3.2.1 MCS51单片机AT89C51 (2) 3.2.2复位电路 (3) 3.2.3晶振电路 (4) 3.2.4 DS1302时钟模块 (4) 3.2.5 引脚功能及结构 (4) 3.2.6 DS1302的控制字节 (5) 3.2.7 数据输入输出(I/O) (5) 3.2.8 DS1302的寄存器 (6) 3.2.9 液晶显示LCD1602 (6) 3.2.10 串行时钟日历片DS1302 (8) 4.系统软件设计 (10) 4.1程序流程 (10) 4.2程序代码 (10) 5.系统仿真调试 (20) 5.1仿真原理图设计 (20) 5.2仿真运行过程 (21) 5.3仿真运行结果 (21) 6.总结 (21) 7.参考文献 (22)

1.题目设计要求 通过串行日历时钟芯片DS1302生成当前日期和是时间,通过IO口传输到AT89c52芯片中,然后再将AT89c52接收到的数据输出到LCD上。要求LCD上显示的日期和时间与当前系统时间保持一致。 2.开发平台简介 2.1系统仿真平台Proteus Proteus软件是由英国Labcenter Electronics公司开发的EDA工具软件,已有近20年的历史,在全球得到了广泛应用。Proteus软件的功能强大,它集电路设计、制版及仿真等多种功能于一身,不仅能够对电工、电子技术学科涉及的电路进行设计,还能够对微处理器进行设计和仿真,并且功能齐全,界面多彩。和我们手头其他的电路设计仿真软件,他最大的不同即它的功能不是单一的。另外,它独特的单片机仿真功能是任何其他仿真软件都不具备的。 2.2软件开发平台Keil C Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。Keil C51生成的目标代码效率之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。

Vb课程设计-学生成绩处理

学生成绩处理设计报告 一、设计思路 1.要达到的目的 学习VB程序设计的方法,充分体会VB在程序设计方面的强大功能和特点,培养运用VB解决实际问题的能力。通过本次课程设计,使学生进一步巩固课堂上学到的知识,能利用VB中的基本控件和数组编写一个小的应用软件—学生成绩处理。 2.关键问题的解决 ①设计程序界面 ②选取ProgressBar 控件 ③添加TXT文件 二、模块之间的调用关系,或程序流程图 三、部分程序关键源代码及注释 Dim data(100, 3) As String Dim num As Integer Private Sub Command1_Click(Index As Integer) Close #1 Select Case Index Case 0 Open "d:\成绩.txt" For Append As #1 Dim flag As Boolean For i = 0 To 3 If Text1(i) = "" Then MsgBox "请确认学号,姓名,分数都已输入", vbOKOnly, "提示" flag = True

Next If Not flag Then Write #1, Text1(0).Text; Text1(1).Text; Val(Text1(2).Text); Val(Text1(3).Text) MsgBox "添加成功" End If Case 1 Picture1.Cls Dim StrLine As String, a() As String Dim x As Integer, b As Integer Open "D:\成绩.txt" For Input As #1 i = 0 Do While Not EOF(1) Line Input #1, StrLine If StrLine <> "" Then a() = Split(StrLine, ",") For j = 0 To 3 data(i, j) = a(j) Next End If i = i + 1 Loop num = i For x = 0 To num For j = 0 To 3 Picture1.Print data(x, j) + " "; Next Picture1.Print Next Case 2 Picture2.Cls Open "d:\成绩.txt" For Input As #1 While Not EOF(1) Line Input #1, StrLine ss = ss + StrLine + vbCrLf Wend Picture2.Print ss End Select Close #1 End Sub Private Sub Form_Load() Open "D:\成绩.txt" For Append As #1

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语言与系统设计》 实验报告 题目运用运用JavaFx画时钟运用JavaFx实现时钟动画学生姓名 指导教师 学院信息科学与工程学院 专业班级 完成时间

目录 第一章绪论............................................................................................... 1.1实验背景............................................................................................... 1.2实验意义.............................................................................................. 1.3JavaFX介绍......................................................................................... 第二章需求分析..................................................................................... 2.1题目描述............................................................................................. 2.1.1 实验一.................................................................................... 2.1.2 实验二.................................................................................... 2.2 概要设计........................................................................................... 2.2.1 实验一.................................................................................... 2.2.2 实验二.................................................................................... 2.3 程序清单........................................................................................... 2.3.1 实验一代码............................................................................ 2.3.2 实验二代码............................................................................ 第三章调试分析.................................................................................... 3.1 结果分析......................................................................................... 3.1.1 实验一结果............................................................................ 3.1.2 实验二结果............................................................................ 3.2 调试报告........................................................................................ 心得体会.................................................................................................

Java日历记事本课程设计报告

Java日历记事本课程设计报告 在设计日历记事本时,需要编写6个JAVA源文件:、、、、和 效果图如下 . CalendarWindow类 import .*; import .*; import .*; import .*; public class CalendarWindow extends JFrame implements ActionListener,MouseListener,FocusListener{ int year,month,day; CalendarMessage calendarMessage; CalendarPad calendarPad; NotePad notePad;

JTextField showYear,showMonth; JTextField[] showDay; CalendarImage calendarImage; String picturename; Clock clock; JButton nextYear,previousYear,nextMonth,previousMonth; JButton saveDailyRecord,deleteDailyRecord,readDailyRecord; JButton getPicture; File dir; Color backColor= ; public CalendarWindow(){ dir=new File("./dailyRecord"); (); showDay=new JTextField[42]; for(int i=0;i<;i++){ showDay[i]=new JTextField(); showDay[i].setBackground(backColor); showDay[i].setLayout(new GridLayout(3,3)); showDay[i].addMouseListener(this); showDay[i].addFocusListener(this); } calendarMessage=new CalendarMessage(); calendarPad=new CalendarPad(); notePad=new NotePad(); Calendar calendar=(); (new Date()); year=; month=+1; day=; (year); (month); (day); (calendarMessage); (showDay); (year,month,day); (); doMark(); calendarImage=new CalendarImage(); (new File("")); clock=new Clock(); JSplitPane splitV1=new JSplitPane,calendarPad,calendarImage); JSplitPane splitV2=new JSplitPane,notePad,clock); JSplitPane splitH=new JSplitPane,splitV1,splitV2);

VB图书管理系统 课程设计报告

VB语言程序设计课程设计报告 系 (部) 专业班级 学生姓名 学号/序号 指导教师 完成时间

图书管理系统 一、功能描述 使用VB6.0中各种控件的常用属性和事件、数组的各种操作以及数据库的相关操作(数据库的建立、编辑、查找、删除等),建立了这个简易的图书管理系统,方便图书管理人员对图书的管理。用户可以通过此系统的添加、删除,还回,借出等功能对书籍信息、书籍流通进行编辑同时也可以通过直接输入想要查询的书籍信息来获得书籍的流通及库存等相关信息。 二、概要设计 1、系统功能模块框图设计 首先程序运行,出现一个MDI主窗体,里面分别有登录,书籍信息管理系统,退出三个菜单选项,登录前,管理按钮不可用,当正确输入用户名以及密码以后,点管理按钮,图书管理窗体显示,用户可对图书信息进行管理。 2、数据库设计 创建一个数据库为mydb.mdb,该数据库共包含3张表,分别为“书籍信息表”、“图书归还表”和“图书借出表”,表结构如下:

书籍信息表:图书编号、图书名、作者、出版社、数量、出版日期、价格 图1. 书籍信息表 图书归还表:图书编号、图书名、作者、出版社、数量、图书是否损坏、借出日期、归还日期; 图2. 图书归还表 图书借出表:图书编号、图书名、作者、出版社、借出数量、借出时间、联系电话、借出期限、借出者姓名。 图3. 图书借出表

三、详细设计 1、MDI主界面 用户登录模块中登录与取消两按钮,单击登录会进入系统进行下一步的操作,用户名文本框与数据库相连接,当在用户名文本框输入用户名后点击登录按钮后,会在数据库中进行查询看数据库中是否会有该用户名,且该用户名的密码是否与密码框中输入的相同,如果相同会进入系统,如果不存在该用户名或密码与用户名不相匹配,则会提示“密码错误”,用户名文本框会得到焦点,让重新输入。 (1)窗体截图(如图5.1) 图1 MDI主界面

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页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。整体程序运行流畅、功能齐全、符合操作习惯。 下面是程序运行效果截图: 日历主界面(可以实现每个月的日历,可以按年或按月前后翻动,能够显示当前日期,并能够选择背景图片):

课程设计(数字日历钟表的设计)

课程设计说明书(论文) 课程名称:课程设计1 设计题目:数字日历钟表的设计 院系: 班级: 设计者: 学号: 设计时间:2013-6-19

哈尔滨工业大学 哈尔滨工业大学课程设计任务书 姓名:院(系): 专业:班号: 任务起至日期:2013 年 5 月日至2013 年 6 月19 日 课程设计题目:数字日历钟的设计 已知技术参数和设计要求: 1.数码管显示:秒、分、时(可同时显示,也可轮换显示) 2.能够设置时间,“设置按键”数量不限,以简单合理易用为好。 3.误差:1 秒/天(报告中要论述分析是否满足要求) 扩展(优秀必作) 1.设置校准键:当数字钟显示在“整点±30 秒”范围时,按动“校准键”,数字钟即刻被调整到整点,消除了±30 秒的误差。 2.加上“星期”显示(可以预置),并可以对其进行设置。 其他要求: 1.按动员老师的要求、课程设计报告规范进行设计 2.不允许使用时数字钟表、日历专用IC 电路。 3.可以使用通用器件:模拟、数字、单片机、EPLD、模块电路等。 4.设计方法不限。

工作量: 1. 查找资料 2. 设计论证方案 3. 具体各个电路选择、元器件选择和数值计算 4. 具体说明各部分电路图的工作原理 5. 绘制电路原理图 6. 绘制印刷电路图 7. 元器件列表 8. 编写调试操作 9. 打印论文 工作计划安排: 1. 查阅资料: 2. 方案论证 3. 设计、分析、计算、模拟调试、仿真、设计原理 4. 撰写报告:课程设计要求、方案论证、原理论述(原理框图、原理图)、分析、计算、仿真, PCB 图的设计,误差分析、总结,参考文献等 5. 上交课程设计论文2013-6-19 同组设计者及分工:

VB程序设计课程设计报告完整版

V B程序设计课程设计 报告 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

《VB程序设计》 课程设计报告(2016 — 2017 学年第 1 学期) 题目:排序演示 学院:经济与管理学院 班级:物流管理1502 学号: 姓名: 指导教师:阮冰 时间:起 2017年1月3日止 1月6日

一、课程设计基本信息 课程代码:05190124 课程名称:计算机基础课程设计 课程英文名称: Computer-based Course Design 课程所属单位(院(系)、教研室):数学与计算机学院计算机基础课程群 课程面向专业:生物科学类、制药工程、制药工程(生物制药)、药物制 剂、物流管理 课程类型:必修课 先修课程:大学计算机基础通识选修课程、Visual Basic程序设计课程学分:1 总学时:16 二、课程设计目标 掌握所学语言程序设计的方法,熟悉所学语言的开发环境及调试过程,熟悉所学语言中的数据类型,数据结构、语句结构、运算方法,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力。通过综合设计要求达到下列基本技能: 1.培养查阅参考资料、手册的自学能力,通过独立思考深入钻研问题,学会自己分析、解决问题。 2.通过对所选题目方案分析比较,确立方案,编制与调试程序,初步掌握程序设计的方法,能熟练调试程序。 3.系统设计编程简练,可用,功能全面,并有一定的容错能力。用户界面良好,有较好的输出功能。在完成课题基本要求后,具有创新型设计,具有一定的实用价值。 4.根据个人的设计调试过程,撰写设计报告。 三、课程设计内容 利用已掌握的VB程序设计语言基础,以及面向对象的程序设计方法、事件驱动的编程方式,进行应用程序和系统的开发设计。在强化巩固已有编程知识基础之上,训练新的设计与编程思路,通过综合应用所学知识设计、编制、调试实用的Visual Basic程序。 四、课程设计要求 1.要求每个同学都要认真对待,积极参与。 2.课程设计结束时,提交完成的所有源程序、相关文件和可执行文件。同 时填写并完成《课程设计报告册》。 3.不符合要求的程序、设计报告、抄袭的设计报告或源程序代码、在设计 中完全未参与的将作不及格处理。 五、考核方式

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、订单管理:对用户的订单进行管理。

电子万年历课程设计

烟台南山学院单片机课程设计题目电子万年历 姓名: 所在学院:烟台南山学院 所学专业:自动化 班级: 学号: 指导教师: 完成时间:

摘要 单片机作为当今领域应用广泛的电子器件,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。以AT89C51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由5V直流电源供电,通过数码管能够准确显示时间,日期,调整时间,日期,从而到达学习、设计、开发软、硬件的能力。 时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:DS1302,DS12887,X1203等都可以满足高精度的要求。本设计由单片机AT89C51芯片和LED数码管为核心,运用DS1302时钟芯片,辅以必要的电路,构成了一个单片机电子时钟。

1 绪论 (1) 2 总体方案设计与论证 (2) 2.1数字时钟方案 (2) 2.2显示方案 (3) 3 硬件系统的方案设计 (4) 3.1 系统框图 (4) 3.2 单片机的选择 (4) 3.3 时钟电路DS1302 (7) 3.4 时钟电路及复位电路 (9) 3.5 驱动电路 (9) 3.6 显示电路 (10) 3.7 按键接口 (11) 4 软件系统设计 (12) 4.1 时间信息获取程序 (12) 4.2 显示程序 (12) 5 系统调试 (13) 5.1 系统调试 (13) 5.2 时钟显示 (13) 5.3 DS1302的调试 (13) 5.4 按键电路调试 (13) 6 总结 (14) 参考文献 (15) 附录:系统程序 (16)

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()

-vb点菜系统-课程设计报告书

基于VB6.0饭店点菜系统设计 单位分院(系) 专业 学号 学生姓名 指导教师 完成日期 2011年 8 月 31日

摘要 进行点菜是饭店为顾客服务的重要环节之一。传统的点菜环节由于是手工操作,工作量大且容易出错。随着计算机和网络技术的迅速发展,越来越多的饭店、酒店都拥有自己的点菜系统,制作一个方便、快捷的点菜系统能使点菜环节显得更加美观且便于操作。 饭店点菜系统技术基础是VB6.0,它有许多优点,例如:“编写一次、随处运行”的特性、方便存取数据的数据库, 使用者只需在窗体上进行操作而不用关心程序代码等等。饭店点菜系统提供给顾客一个用来满足高可用性、高可靠性以及可扩展性的应用需求的软件,给饭店点菜提供了良好的机制、使饭店的工作流程更加顺利。 本文基于VB6.0,采用多窗体结构,设计并实现了顾客在饭店消费时的点菜、结账、抽奖、留言及工作人员管理等多项功能。 本文首先介绍了软件设计涉及的相关技术,围绕VB6.0的相关技术进行软件的解释。其次,介绍了饭店点菜系统的总体分析与设计,包括需求分析、功能模块分析和数据库设计。最后,对于主要功能进行了实现,并作了详细描述,主要采用图片与代码结合的方式详细地叙述了系统功能的实现。 关键词:文件、数据库、控件使用、图片载入

目录 1.选题的意义................................................... 2.系统功能分析。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 2.1系统概述。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 2.2系统的组成及各模块的功能 ........................................... 2 .3系统运行环境。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3.系统设计 ................................................... 3.1总体结构设计....................................................... 3.2数据库设计......................................................... 4.系统实现 ................................................... 4.1点菜系统的设计与实现 ............................................... 4.2管理系统模块的设计与实现 ........................................... 5.总结....................................................... 5.1总结................................................................ 5.2致谢词 ............................................................. 5.3存在的主要问题...................................................... 参考文献......................................................

java课程设计实验报告

一实验目的 加深学生对课堂讲授内容的理解,从计算机语言的基本概念、程序设计的基本方法、语法规则等方面加深理解,打好程序设计、开发软件的良好基础。在上机实验中,提高学生对Java语言各部分内容的综合使用能力,逐步掌握Java语言程序设计的规律与技巧。在对Java 程序的调试过程中,提高学生分析程序中出现的错误和排除这些错误的能力。通过上机实践,加深学生对计算机软件运行环境,以及对操作系统与计算机语言支持系统相互关系的了解。 二、实验要求 (1)问题描述准确、规范; (2)程序结构合理,调试数据准确、有代表性; (3)界面布局整齐,人机交互方便; (4)输出结果正确; (5)正确撰写实验报告。 三、设计内容 1、计算器 计算器要有GUI界面,用户可以输入所需计算的数值,可以进行加、减、乘、除四种最基本的运算和混合运算,可以求一个数值的平方及倒数,可以进行阶乘运算,要能运算小数,并且不会产生精度损失,在必要情况下,可以进行四舍五入的运算。允许正负数间的运算。要求使用Applet实现该计算器,当用浏览器运行程序时,点击网页中的按钮,则计算器弹出,浮在网页上,再次点击按钮时,计算器消失。 2、文本编辑器 可以设置文本的字体、大小、颜色等基本参数,可以读取计算机中TXT文件,可以生成一个新的TXT文件。其他功能参照windows的文本编辑器。

四.实验步骤 (1)上机实验之前,为课程设计的内容作好充分准备。对每次上机需要完成的任务进行认真的分析,画出程序流程图,手工写出符合任务要求的程序清单,准备出调试程序使用的数据,以便提高上机实验的效率。 (2)按照实验目的和实验内容进行上机操作。录入程序,编译调试,反复修改,直到使程序正常运行,得出正确的输出结果为止。 (3)根据实验结果,写出实验报告。 五. 源代码及运行结果 1.计算器源代码 import .*; import .*; import .*; public class jisuanqi extends WindowAdapter { , "=", "+","n!" ,"关闭" }; static double a, sum=1; static String s, str ;rame(); } public void frame() { etBackground; txt = new TextField(""); (false);ddActionListener(new buttonlistener());ddActionListener(new close()); (this); (new BorderLayout());.计算器运行界面(1)计算器主界面