《高级语言综合课程设计》设计报告-Hannoi塔+学生信息管理系统+俄罗斯方块(手机版)_第1页
《高级语言综合课程设计》设计报告-Hannoi塔+学生信息管理系统+俄罗斯方块(手机版)_第2页
《高级语言综合课程设计》设计报告-Hannoi塔+学生信息管理系统+俄罗斯方块(手机版)_第3页
《高级语言综合课程设计》设计报告-Hannoi塔+学生信息管理系统+俄罗斯方块(手机版)_第4页
《高级语言综合课程设计》设计报告-Hannoi塔+学生信息管理系统+俄罗斯方块(手机版)_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

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

文档简介

1、. 高级语言综合课程设计设计报告 学院:专业班级:学号:姓名:指导老师:完成时间: ;目录题目一Hannoi塔41.1 题目简介41.2 设计的内容、要求和目标41.2.1设计内容41.2.2设计要求41.2.3设计目标51.3 总体设计51.3.1 类之间组合关系51.3.2 功能模块61.3.3 总体流程图61.4 详细设计及实现71.4.1 操作界面设计71.4.2 类成员变量及方法设计101.4.3 数据库设计141.4.4 源代码分析151.5 系统运行及使用说明18题目二学生信息管理系统192.1 题目简介192.2 设计的内容、要求和目标192.2.1设计内容192.2.2设计要

2、求192.2.3设计目标202.3 总体设计202.3.1类之间的组合关系202.3.2 系统的功能模块212.3.3 系统的总体流程图212.4 详细设计及实现222.4.1 操作界面设计222.4.2 类成员变量及方法设计302.4.3 数据库设计372.4.4 源代码分析432.5 系统运行及使用说明48题目三俄罗斯方块(手机版)493.1 题目简介493.2 需求分析493.2.1 设计目的和意义493.2.2 任务概述493.2.3 需求分析503.3 总体设计513.3.1 系统功能结构图513.3.2 系统总体流程图513.4 详细设计523.4.1 功能分析和描述523.4.2

3、 程序系统的结构533.4.3 游戏的前景和背景设计543.5主要技术的实现553.5.1 开机动画的实现553.5.2 排行榜设计563.5.3 消去方块的实现573.6 系统实现583.6.1 程序系统的结构583.6.2 程序设计说明58总结61附录一 Hannoi游戏的主要代码63附录二 学生管理系统主要代码72附录三 俄罗斯方块主要代码7883题目一Hannoi塔1.1 题目简介Hannoi塔是运用java高级编程语言和MySQL5.1使用MyEclipse8.5实现的一个游戏系统。1.2 设计的内容、要求和目标1.2.1设计内容 我设计的Hannoi塔,除了要编写的6个java文件

4、所给出的类外,还需要java系统提供的一些重要的类,如JButton,JCheckBox等。汉诺塔中有三个座,名字分别为A,B,C。刚开始的时候A塔上有3个大小不等的盘子,这些盘子从座底到座顶按着大小顺序依次摆放在A座上。用户可以用鼠标选中盘子,然后通过拖动鼠标来移动盘子。释放鼠标来放置该盘子。程序要求用户在移动盘子的过程中,不允许吧大盘子放置在小盘子的上面,用户最终要完成的是把A座上的全部盘子移动到B座或C座上。用户可以通过Hannoi塔界面的提供的改变盘子数目功能来改变盘子的数目,同时可以改变盘子的大小以及改变盘子和界面的背景颜色,而且还可以选择控制背景音乐的播放。用户可以通过单击Hann

5、oi塔界面上提供的按钮,让程序自动完成把A座上的盘子全部移动到C座上。用户在移动盘子的过程中,可以随时单击Hannoi塔界面上提供的按钮,重新开始。1.2.2设计要求(1)设计GUI界面的Hannoi塔。Hannoi塔中有三个座,名字分别是A、B 和C。初始状态是A座上有3个大小不等的盘子,这些盘子从座底到座顶按着大小顺序依次摆放在A座上。用户可以用鼠标选中盘子,然后通过拖动鼠标来移动该盘子、释放鼠标来放置该盘子;(2)程序要求用户在移动盘子过程中,不允许把大盘放置在小盘的上面,用户最终要完成的是把A座上的全部盘子移动到B座或C座上;(3)用户可以通过Hannoi塔界面提供的菜单来选择初级、中

6、级、高级和自定义四个级别。初级级别A座上有3个大小不等盘子、中级级别A座上有4个大小不等盘子、高级级别A座上有5个大小不等盘子、自定义级别A座用户可以任意输入盘子数目;(4)用户可以通过单击Hannoi塔界面上提供的按钮,让程序自动完成把A座上的盘子全部移动到C座上;(5)用户在移动盘子的过程中,可以随时单击Hannoi塔界面上提供的按钮,重新开始当前的级别;(6)有计时功能,即显示用户完成移动盘子所花费的时间;(7)用户可以根据自己的需要设置盘子的数量;(8)实现帮助功能,用户有不明白的地方可以查看帮助文档;(9)用户可以设置盘子的颜色以及背景的颜色;(10)实现与数据库的连接,用户使用时必

7、须登录。1.2.3设计目标Hannoi程序设计的设计目标是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,以及熟悉的运用Java Swing实现一些综合的项目为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。1.3 总体设计1.3.1 类之间组合关系Hannoi的类之间的组合关系图如下: 图1-1 类之间组合关系图1.3.2 功能模块Hannoi塔总共分为五个模块:(1) 主模块,该模块主要是实现一个整体的布局,其中调用了登陆模块,注册模块,游戏模块和帮助模块。(2) 登陆模块,这个模块主要实现与数据库的

8、连接,用户需要登陆游戏后才可开始游戏。(3) 注册模块,这个模块主要是实现帐号的注册。对一些没有账号的玩家可以先进行注册,然后再登陆游戏。(4) 帮助模块,这个模块是实现一个树形的帮助文档,方便用户对游戏的开发以及对游戏的操作有个了解。(5) 游戏模块,该模块实现的游戏的主界面,包括游戏中底座、盘子、塔点的实现。1.3.3 总体流程图图1-2 项目总体流程图1.4 详细设计及实现1.4.1 操作界面设计 首先,用户进入游戏所展示给玩家的是欢迎界面,该界面用的是BorderLayout布局,界面的中央是一块大的Jlabel(带有图标)Jlabel的中央添加了“汉诺塔” 三个字字体为华文行楷,粗体

9、,60号,而在界面的菜单栏里的最左端是两个JMenu,最右端是两个Jlabel(显示用户当前状态)和一个“注销”Jbutton该按钮颜色与菜单栏的颜色一致,菜单栏的颜色是水绿色,整个窗口的大小为500*460(像素)。JButtonJMenuJlabel图1-3游戏欢迎界面其次,用户进入的是登陆界面,该界面总体布局是BorderLayout,NORTH放置的是一个带有图标的JLabel;CENTER放置的是一块面板,该面板上的布局为BoxLayout,放置了两个JTextField和三个JLabel,面板的背景色为pink(粉色);在界面的SOUTH放置的也是一块面板,上面加载三个按钮。整个界

10、面的大小为345*250(像素)。JLabelJButtonJTextFieldJLabel图1-4 用户登陆界面图1-5 用户注册界面接下来,用户进入的是注册界面,该界面的总体设计与登陆界面大致相等,窗口大小为345*200。JButtonJTextFieldJPanelJButton图1-6 游戏界面然后,用户进入的是游戏界面。该界面总体布局为BorderLayout,NORTH放置的是一块面板,背景色为绿色,布局为FlowLayout,上面放置了两个JButton和一个JLabel;CENTER放置的是该游戏的主要内容,是一块面板,背景色为粉红色。SOUTH放置的也是一块面板,上面加载了

11、两个JLabel和一个不可编辑的JTextField。整个窗口的大小为500*460。图1-7 帮助界面最后,用户看到的是帮助文档界面。该界面是一个JDialog窗口,是由一个JSplitPane组成,左边是一个树形结构,右边是一个JPanel或者JTextArea这取决于右边要显示的内容,如果是文本的话则显示JTextArea,否则显示欢迎界面。整个窗口的大小500*535。1.4.2 类成员变量及方法设计1、HannoiWindow.java(主类):负责创建Hannoi塔的主窗口,该类含有main方法,Hannoi塔从该类开始执行。HannoiWindow类的成员变量中有六种重要类型的对

12、象、一个int基本型数据和一个char类型。六种对象分别是:Tower、JMenuItem、JMenuBar、JMenu、JButton、JLabel对象。以下是该类中成员变量和方法的详细介绍。1) 成员变量Ø tower是Tower创建的对象。Ø amountOfDisc是int型数据,它的默认值是3,用来刻画对象中盘子的数量,即Disc 的数量。Ø towerName是char型数组,用来确定三个底座的名字。Ø renew和autoButton是JButton创建的按钮对象。名字依次序为“重新开始”和“自动演示”。2) 方法Ø Hannoi

13、Window( )是构造方法,负责完成窗口的初始化。Ø Main方法是主程序入口的方法。Ø Actionperformed(ActionEvent)方法是HannoiWindow 类实现的Action Listener 接口中的方法。图1-8 HannoiWindow类的UML图2、Tower类是javax.swing包中JPanel容器的一个子类,创建的对象tower是HannoiWindow窗口的成员之一,被添加到HannoiWindow窗口的中心位置。标明Tower类的主要成员变量和方法以及和HannoiWindow类之间组合关系的UML图如图1-9所示。图1-9 T

14、ower 类的UML图以下是UML图中有关数据和方法的详细说明。1)成员变量Ø amountOfDisc是int型数据。amountOfDisc值用来确定tower对象中盘子的数目,即确定tower对象中Disc类型数组disc的长度。Ø disc是Disc型数组,该数组的长度由amountOfDisc值来确定。Disc数组的每个单元中存放一个Disc对象,依次表明tower对象中有怎样多的盘子。Ø towerName是char型数组,长度为3,其三个单元的默认取值依次是A、B和C。towerName是数组的单元的值用来确定tower中三个座的名字。Ø

15、maxDiscWidth和minDiscWidth的值分别用来确定最大盘子的宽度和最小盘子的宽度,discHeight的值确定每个盘子的高度。Ø pointA、pointB和pointC都是TowerPoint型数组,三个数组的长度与盘子数目相同,即都是amountOfDisc。pointA、pointB和pointC单元都是TowerPoint创建对象,分别用来表示Hannoi塔中三个座上的塔点。A座、B座和C座上的三个塔点分别由pointA、pointB和pointC中的单元来确定。每个座上的三个塔点都是从座顶依次对应数组的相应单元中的TowerPoint对象。例如,A座最上面的

16、塔点是pointA0,中间的塔点是pointA1,最下面的塔点是pointA2。Ø handleMouse是HandleMouse类创建的鼠标事件监视器,用来监视disc数组的Disc对象上触发的鼠标事件。Ø autoMoveDisc是AutoMoveDisc创建的对话框。通过该对话框可以实现程序自动移动盘子。2)方法Ø Tower(char)是构造方法,负责完成tower容器的初始化。Ø tower容器调用setAmountOfDisc(int)方法可以设置amountOfDisc值。Ø tower容器调用setMaxDiscWidth(in

17、t)方法可以设置最大盘子的大小。Ø tower容器调用setMinDiscWidth(int)方法可以设置最小盘子的大小。Ø tower容器调用setDiscHeight(int)方法可以设置盘子的高度。Ø tower容器调用putDiscOnTower ()方法可以将盘子放置在Hannoi塔的A座上,即在pointA指定的塔点上放置disc数组的成员。Ø tower容器调用getAutoMoveDisc ()方法返回其中的AutoMoveDisc对象:autoMoveDisc。tower是HannoiWindow窗口中的成员,当用户单击HannoiWi

18、ndow窗口中的autoButton按钮时,窗口中的actionPerformed(ActionEvent)方法将被执行,该方法所进行的操作是让tower对象返回其中的AutoMoveDisc对象,该对象是一个对话框,用户可以通过该对话框让程序自动地移动盘子。Ø tower容器调用removeDisk ()方法可以移调tower容器中的盘子。Ø tower容器调用paintComponent (Graphics)方法绘制出塔点的位置和必要的视图。综上所述,Tower创建的容器效果如图1-10所示。图1-10 Tower创建的容器3、Disc类是javax.swing包中Jb

19、utton类的子类,所创建的对象称作Hannoi塔中的“盘子”。Tower类有Disc类型的数组disc。Disc数组的单元是用Disc创建的对象,被放置在Tower所创建的容器tower中,用来表示tower中的“盘子”。标明Disc类的主要成员变量、方法以及和Tower类之间组合关系的UML如图1-11所示。图1-11 Disc 类的UML图以下是UML图中有关数据和方法的详细说明。1)成员变量Ø number的值确定所创建的“盘子”上的数字号码,通过该号码的大小来确定盘子的大小关系,即号码大的盘子大于号码小的盘子。Ø point是TowerPoint对象,是Disc所

20、创建的“盘子”的一个重要成员。Ø “盘子” 被放置在tower容器的塔点上(TowerPoint对象称作塔点),“盘子”通过使用point对象表明自己所在的塔点。2)方法Ø Disc()构造方法。创建盘子对象时需要使用该构造方法。Ø setNumber(int)。盘子调用该方法设置其上的数字号码。Ø getNumber()方法。盘子调用该方法返回其上的数字号码。Ø setPoint(TowerPoint)方法。盘子调用该方法设置其所在的塔点。Ø getPoint()方法。盘子调用该方法返回其所在的塔点。因此Disc创建的按钮的效果如图

21、1-12所示。图1-12 Disc创建的三个按钮4、改变背景颜色的方法可以用javax.swing包中的JcolorChooser类的静态方法:Public static Color showDialog(Component component, String title,Color initialColor)创建一个颜色对话框,其中参数component指定对话框所依赖的组件;title指定对话框的标题;initialColor指定对话框返回的初始颜色,即对话框消失后,返回的默认值。颜色对话框可根据用户在颜色对话框中选择的颜色返回一个颜色对象。本程序代码中,当用户单击选择颜色菜单的下拉菜单项

22、背景颜色,都将弹出相应的颜色对话框,然后根据用户选择的颜色来改变背景的颜色。1.4.3 数据库设计Hannoi塔所用到的数据库是MySQL数据库,数据库名称是student,表名为admin,主要是存储用户的信息,里面包含两个字段。name字段,类型为varchar,长度为50,不能为空,设为主键;password字段,类型为varchar,长度为50,不能为空,不是主键。1.4.4 源代码分析1、汉诺塔的盘子的实现。汉诺塔盘子的实现是由Disc类来实现的。以下是代码分析:public class Disc extends JButton implements ActionListener i

23、nt number; / 盘子的编号 TowerPoint point; / 盘子所在的塔点 static Timer timer; int usedTime = 0; / 所用时间 Disc() timer = new Timer(1000, this); / 每过1 秒检测一次 setBackground(Color.cyan); / 设置盘子的背景颜色 public void setNumber(int n) / 设置盘子的编号 number=n; public int getNumber() / 获取盘子的编号 return number; public void setPoint(T

24、owerPoint p) / 设置盘子所在的塔点 point=p; public TowerPoint getPoint() / 获取盘子所在塔点 return point; public void actionPerformed(ActionEvent e) if(e.getSource() = timer) / 触发时间事件 usedTime+; HannoiWindow.showTime.setText(usedTime+""); 2、系统判断小盘子不能放在大盘子上方法。系统是通过给盘子进行编号来判断盘子的大小。号码越小,盘子就越小,系统就是判定盘子编号的大小来确定盘

25、子的大小。有关代码如下:public void mouseReleased(MouseEvent e) Disc disc=null; disc=(Disc)e.getSource(); / 将鼠标源转换为盘子 Rectangle rect=disc.getBounds(); / 获取盘子的区域 boolean location=false; int x=-1,y=-1; for(int i=0;i<pointA.length;i+) x=pointAi.getX(); y=pointAi.getY(); if(rect.contains(x,y) endPoint=pointAi; i

26、f(i=pointA.length-1&&endPoint.isHaveDisc()=false) location=true; break; /* 当符合以下条件时,盘子才可以移动,鼠标起点有盘子,末点不存在盘子,并且下面一个点的盘子的号码大于移动盘子的号码*/ else if(i<pointA.length-1&&pointAi+1.isHaveDisc()=true &&endPoint.isHaveDisc()=false &&pointAi+1.getDiscOnPoint().getNumber() >di

27、sc.getNumber() location=true; break; 3、系统的帮助文档的实现。系统的帮助文档是一个对话框,该对话框是由一个JSplitPane放在对话框中央实现的。分割窗的左边是一个JTree,右边是一个JTextArea。具体实现代码如下:public class HelpDialog extends JDialog implements TreeSelectionListenerJTextArea showArea; / 右边的显示区域JScrollPane showScrollPane,showAreaPane,showPane; / 两个滚动框JSplitPane

28、 showTree; / 分割窗JLabel label;JPanel panel;File helpFile; / 右边区域所要显示的内容的文件BufferedReader br; / 输出流读取文件里的内容String s;JTree tree; / 树DefaultMutableTreeNode totalRoot,oneRoot1,oneRoot2,oneRoot3,oneRoot11; DefaultMutableTreeNode oneRoot12,oneRoot13,oneRoot21,oneRoot22;/节点DefaultTreeModel TreeModel;public

29、HelpDialog() label = new JLabel();label.setIcon(new ImageIcon("imagehelpFile2.jpg");/label.setFont(new Font("华文新魏",Font.PLAIN,45);label.setHorizontalTextPosition(SwingConstants.CENTER);label.setForeground(Color.red);panel = new JPanel();panel.add(label);showArea = new JTextArea()

30、;showArea.add(panel,BorderLayout.CENTER);showArea.setLineWrap(true); / 设置文本区域里的换行策略showArea.setBackground(new Color(211,200,200); / 设置文本区背景色 / 下面是更改树的节点的图标Icon leafIcon = new ImageIcon("imageleaf1.gif"); Icon openIcon = new ImageIcon("imageopen1.gif"); Icon closedIcon = new Image

31、Icon("imageclosed2.gif"); Icon expandedIcon = new ImageIcon("imagecollapsed.gif"); Icon collapsedIcon = new ImageIcon("imageexpanded.gif"); UIManager.put("Tree.leafIcon", leafIcon); UIManager.put("Tree.openIcon", openIcon); UIManager.put("Tree.c

32、losedIcon", closedIcon); UIManager.put("Tree.expandedIcon", expandedIcon); UIManager.put("Tree.collapsedIcon", collapsedIcon); TreeModel = new DefaultTreeModel(totalRoot);tree = new JTree(TreeModel); / 创建出树 showScrollPane = new JScrollPane(tree); showAreaPane = new JScrollPa

33、ne(panel); showPane = new JScrollPane(showArea);/ 把树和文本区分别加到分割窗的左右showTree = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,false,showScrollPane,showAreaPane); showTree.setDividerLocation(140); / 设置分割条的初始位置 showTree.setDividerSize(5); / 设置分割条的粗细 tree.addTreeSelectionListener(this); / 给树添加监视器 add(showTre

34、e,BorderLayout.CENTER);Toolkit tk = Toolkit.getDefaultToolkit(); Image im = tk.createImage("image图标1.gif"); setIconImage(im);setTitle("About This Game");setResizable(false);setBounds(200, 50, 500, 535);public void valueChanged(TreeSelectionEvent e) / 实现触发事件/ 把鼠标选中的对象转换为节点类型 Defau

35、ltMutableTreeNode fileNode = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent(); if(fileNode!=null) if(fileNode.isLeaf() showTree.setBottomComponent(showPane); showArea.setText(null); if(fileNode.toString().equals(new String("布局设计 ") / 当点击节点时 try helpFile = new File("filehelp

36、1.txt"); / 创建文件br = new BufferedReader(new FileReader(helpFile); / 文件字符流 if(helpFile.length()!=0)/ 当读取内容不为空时显示在文本区里 while(s=br.readLine()!= null) showArea.append(s); showArea.append("n"); else br.close(); catch (Exception ex) ex.printStackTrace(); 1.5 系统运行及使用说明本游戏是在jdk1.6环境下开发而成,使用时请务

37、必配好环境。使用说明:游戏玩家必须首先注册一个属于自己的帐号,然后用这个帐号登录后就可以进行游戏了。进入游戏后,选择菜单中的“开始游戏”,界面会自动转到游戏界面,然后玩家开始游戏,游戏规则是,运用最短的移动次数把A座上的盘子原封不动的移到C座上,游戏借助B座过渡,注意,不能把大盘子放在小盘子上面。当然,当你觉得有困难是你可以点击“自动演示”系统会按照最少次数演示给你看的!题目二学生信息管理系统2.1 题目简介学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段.但一直以来人们使用传统人工的

38、方式管理文件档案,这种管理方式存在着许多缺点,如效率低,保密性差,另外时间一长,将产生大量的文件和数据,这对于查找, 更新和维护都带来了不少的困难. 本系统是采用 MyEclipse 8.5和JDK 1.6 作为开发工具, Java 为开发语言,采用MySQL建立数据库成功的实现了对学生信息的一些基本操作的学生信息管理系统。2.2 设计的内容、要求和目标2.2.1设计内容学生信息管理系统是一个教育单位不可缺少的部分 ,它的内容对于学校的决策者和管理者来说都至关重要.随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长.面对庞大的信息量需要有学生管理系统来提高学生管理工作的效

39、率。一个完善的学生信息管理系统能够极大地提高学生信息管理的效率,具有检索迅速,查找方便,可靠性高,存储量大,更新快,寿命长,成本低等优点。本学生信息管理系统包括学籍信息管理,院系信息管理,专业信息管理,班级信息管理3大模块.本系统设置了管理员身份,管理员可以拥有完全的权限管理系统,例如,添加,删除,查询,修改学生的基本信息,以及对学院,专业,班级的一些操作。2.2.2设计要求 设计一个简单的基于 C/S 结构的学生个人信息管理系统,该系统具有对学生信息的录入,查询,修改,删除四项基本功能,以及实现对学院,专业,班级的一些录入,删除等基本功能。以下为基本要求:(1) 使用图形用户界面实现。(2)

40、 使用系统的某些功能必须要通过省份验证,即必须包含登录窗口,只有登陆后才能进行操作。(3) 学生个人信息必须包括:学号、姓名、性别、年龄、学院、专业班级、 手机号,邮箱,其余可自行丰富。(4) 具有简单的录入,查询和修改的GUI。查询学生信息可通过学号或姓名进行查找; 修改学生信息必须输入学号,然后对姓名、性别和专业等进行修改。 (5) 数据库中必须实现多个表(学生信息,学院信息,专业信息,班级信息,管理员信息)的物理连接,要求使用外键。(6) 具有对手机号,邮箱进行简单效验的功能。(7) 系统使用的 GUI 组件,越全面越好,但要合适(和谐界面),界面要美观,布局合适。2.2.3设计目标(1

41、)系统可以准确地记录和查询学生信息,包括学生的姓名,学号,院系,专 业,班级,性别,年龄 ,联系方式等。(2) 系统可以对学校的院系,专业,班级情况进行管理,包括添加修改删除学院信息,添加修改删除 某学院某专业信息等。(3) 系统可以准确地删除和修改学生信息。(4) 系统需要通过身份的验证后才能进行某些操作。2.3 总体设计2.3.1类之间的组合关系管理系统的类之间的组合关系图如2-1所示:图2-1 信息系统各类之间组合关系图2.3.2 系统的功能模块本系统一共采用了五个模块: (1) 用户管理模块,该模块主要实现信息的管理,管理者需要进行身份的验证才能进行操作。(2) 学生信息模块。该模块主

42、要实现对学生信息的添加,删除,查询,修改。(3) 学院信息模块。该模块主要实现对学院信息的添加,删除等操作。(4) 专业信息模块。该模块主要实现对专业信息的添加,删除等操作。(5) 班级信息模块。该模块主要实现对班级信息的添加,删除等操作。2.3.3 系统的总体流程图管理系统的总体流程图如2-2所示:图2-2 系统总体流程图2.4 详细设计及实现2.4.1 操作界面设计(1) 系统的欢迎界面。该界面用的是BorderLayout布局,界面的中央是一块大的JLabel(带有图标)JLabel的中央添加了“学生信息管理系统” 八个字字体为华文行楷,粗体,60号,而在界面的菜单栏里的最左端是五个JM

43、enu,最右端是两个JLabel(显示用户当前状态)和一个“注销”JButton该按钮颜色与菜单栏的颜色一致,菜单栏的颜色是水绿色,整个窗口的大小为503*600(像素)。JLabelJButtonJLabelJMenu图2-3 系统欢迎界面(2) 系统的登录界面。该界面使用的是BorderLayout布局,在NORTH放的是一个JLabel(带有图片),然后在CENTER放的是一个JPanel,颜色为new Color(135,206,235),JPanel上的布局是BoxLayout,第一行从左到右依次为:JLabel,JLabel,JTextField,JButton。第二行也是一样的。

44、第三行放了两个JButton,然后由这三行组成一个纵向的盒子布局,窗口的大小为:370*250。JButtonJLabel图2-4 系统登录界面(3) 用户注册界面。该界面与系统登录界面的布局是一样的。窗口大小为:380*360(像素)。JComBox图2-5 用户注册界面(4) 用户找回密码界面。该界面布局与登录和注册界面的布局都是一样的,只不过在这个对话框里第二行的JTextField是不可编辑的,在CENTER的JPanel的背景色为Color(135,206,235 ),窗口的大小为:380*300(像素)。图2-6 用户找回密码界面(5) 学生信息录入界面。该界面中央放的是一个JPa

45、nel,在JPanel上加载了一幅图片,然后在JPanel上的布局为BoxLayout布局。每一行是一个横向的盒子布局,然后由这些横向的盒子组成一个大的纵向的盒子布局。JRadioGroupJButtonJTextFieldJLabelJComBox图2-7 学生信息录入界面(6) 学生信息查询界面。该界面的设计布局与学生信息录入界面的布局是相同的,只是背景图片不同而已。主要实现对学生信息的查询,当点击查询时,就会把学生的信息按照要求显示在相应的文本框里。图2-8 学生信息查询界面(7) 学生信息修改界面。图2-9 学生信息修改界面(8) 学生信息删除界面。图2-10 学生信息删除界面(9)

46、学院、专业、班级信息添加界面。图2-11 学院信息添加界面图2-12 专业信息添加界面图2-13 班级信息添加界面(11) 学院信息删除界面。图2-14 学院信息删除界面2.4.2 类成员变量及方法设计下面是一些主要的类的详细介绍:2.4.2.1 MainData(主类)(1) 成员变量Ø welcomePanel 是JPanel的一个实例,主要构造的是整个系统的欢迎界面。在这个JPanel上放了一个带有“学生信息管理系统”字样的JLabel。Ø zhuangtaiLabel 是JLabel的一个实例。主要记录当前操作的账户,初始状态时“未登录”,用户只有在登陆后才有权操作

47、。Ø card 是CardLayout的一个实例。主要是实现整个系统的布局。Ø inputStu 是InputStuIn类的一个实例。主要是构造系统的学生信息录入界面。Ø findPanel 是 FindPanel的一个实例,主要是实现系统的信息查询界面。Ø xiugaixinxi 是 XiugaiPanel的一个实例,主要是实现系统的信息修改界面。Ø deletePanel 是 DeletePanel的一个实例,主要是实现系统的信息删除界面。Ø zhuxiaoButton是JButton的一个实例,主要是帮助用户注销登录。Ø

48、; JMenuBar是菜单栏,上面加载着“菜单”、“学院信息”、“专业信息”、“班级信息”和“帮助”。(2) 方法Ø MainData()是构造方法,负责完成窗口的初始化。Ø main方法是学生信息管理系统程序运行的入口方法。Ø actionPerformed(ActionEvent)是MainData类实现的ActionListener接口中的方法。MainData创建的窗口是addIn,updateIn,deleteIn,skanIn,welcome,enter,about,registerItem,dayingItem,xiugaiXueyuan,addZh

49、uanye,addBanji,deleteXueyuan十三个菜单项以及zhuxiaoButton按钮的ActionEvent事件监视器。当用户选择某个菜单项时,actionPerformed(ActionEvent)方法所执行的操作就是显示出相应的页面来供用户操作。例如,当用户选中addIn时,系统将会自动转入学生信息添加的页面。当用户单击zhuxiaoButton按钮时,actionPerformed(ActionEvent)方法所进行的操作是将状态栏置为“未登录”同时页面跳转到欢迎界面。(3) 类的UML图图2-15 MainData类UML图2.4.2.2 MyDialog类(1) 成

50、员变量Ø yonghuming 是JTextField类的一个实例,用来记录用户登录时的用户名。Ø mima 是JPasswordField类的一个实例,用来记录用户登录时的密码。Ø yesButton,noButton,zhuceButton,zhaohuiButton是三个按钮,yesButton负责“登录”,noButton负责“取消”,zhuceButton负责弹出注册对话框,zhaohuiButton负责弹出找回密码对话框。(2) 方法Ø MyDialog()方法是该类的构造方法,负责构造出登录对话框。Ø actionPerforme

51、d(ActionEvent) 是MyDialog类实现的ActionListener接口中的方法。MyDialog创建的窗口是yesButton,noButton,zhuceButton,zhaohuiButton四个按钮ActionEvent事件监视器。当用户单击某个按钮时,actionPerformed(ActionEvent)方法所执行的相应的操作。例如,当用户选中yesButton时,系统将会判断用户名和密码是否正确,然后根据判断确定是否能进入系统。(3) MyDialog类的UML图图2-16 MyDialog类UML图2.4.2.3 Register类(1) 成员变量Ø

52、yonghuming 和answerField 都是JtextField的实例,主要是记录登录的用户名和密保问题答案。Ø mima 是JPasswordField类的一个实例,用来记录用户登录时的密码。Ø question 是JcomboBox 的一个实例。主要是让用户选择密保问题。Ø registerButton和cancelButton是两个按钮,主要是实现“注册”和“取消”。(2) 方法Ø Register()方法是该类的构造方法,负责构造出注册对话框。Ø actionPerformed(ActionEvent) 是Register类实现

53、的ActionListener接口中的方法。Register创建的窗口是registerButton和cancelButton两个按钮ActionEvent事件监视器。例如,当用户选中registerButton时,系统将会判断信息是否完整从而将信息录入到数据库。(3) Register类的UML图图2-17 Register类UML图2.4.2.4 InputStuIn类(1) 成员变量Ø xingming,nianling,xuehao,telField,mailField 是JtextField的实例,分别记录学生信息的“姓名”,“学号”,“手机号”,“邮箱”。Ø x

54、ueyuan,zhuanye,beizhu 是JcomboBox的实例,分别供用户选择学生所在的“学院”,“专业”,“班级”。Ø boy,girl是两个单选按钮,供用户选择学生的性别。Ø inputButton,cancelButton分别是“录入”和“取消”按钮。(2) 方法Ø InputStuIn()是该类的构造方法,负责构造出学生管理系统的学生信息录入界面。Ø paintComponent(Graphics)负责把背景图片加载到窗口。Ø actionPerformed(ActionEvent) 是InputStuIn类实现的ActionListener接口中的方法。InputStuIn创建的窗口是inputButton和cancelButton两个按钮ActionEvent事件监视器。Ø itemStateChanged(ItemEvent) 是InputStuIn类实现的ItemListener接口中的方法。主要实现的是级联下拉菜单,动态的读取数据库里面的内容。(3) InputStuIn类的UML图图2-18 InputStuI

温馨提示

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

评论

0/150

提交评论