数据结构课程设计报告JAVA实现(停车场管理、运动会成绩管理、哈弗曼压缩).doc

上传人:bao****ty 文档编号:132477137 上传时间:2020-05-16 格式:DOC 页数:109 大小:2.15MB
返回 下载 相关 举报
数据结构课程设计报告JAVA实现(停车场管理、运动会成绩管理、哈弗曼压缩).doc_第1页
第1页 / 共109页
数据结构课程设计报告JAVA实现(停车场管理、运动会成绩管理、哈弗曼压缩).doc_第2页
第2页 / 共109页
数据结构课程设计报告JAVA实现(停车场管理、运动会成绩管理、哈弗曼压缩).doc_第3页
第3页 / 共109页
数据结构课程设计报告JAVA实现(停车场管理、运动会成绩管理、哈弗曼压缩).doc_第4页
第4页 / 共109页
数据结构课程设计报告JAVA实现(停车场管理、运动会成绩管理、哈弗曼压缩).doc_第5页
第5页 / 共109页
点击查看更多>>
资源描述

《数据结构课程设计报告JAVA实现(停车场管理、运动会成绩管理、哈弗曼压缩).doc》由会员分享,可在线阅读,更多相关《数据结构课程设计报告JAVA实现(停车场管理、运动会成绩管理、哈弗曼压缩).doc(109页珍藏版)》请在金锄头文库上搜索。

1、题目一:学生运动会成绩管理题目二:停车场管理题目三:哈弗曼编译器姓名:李众力学号:0909103001专业班级:物联网工程1002数据结构课程设计实验报告2020年5月16日目录程序一:学生运动会成绩管理(JAVA)1一、需求分析:1二、概要设计2三、详细设计4四、调试分析:9五、用户手册:10附:程序源代码12Data.java12ItemNode.java13MainUI.java15MyTable.java32ResTab.java35ResTab2.java38SchoolNode.java40Tools.java43程序二:停车场管理(JAVA)46一、需求分析:46二、概要设计:4

2、6三、详细设计:47四、调试分析:49五、用户手册:52附录:54CarInfo.java54Data.java54ListNode.java58MyListQueue.java59MyStack.java61UI.java64程序三:哈弗曼编译器(JAVA)71一、需求分析71二、概要设计:71三、详细设计:72四、调试分析:75五、测试结果:79附1:基础版源代码80Code.java80HafNode.java81Line.java83MainF.java84MyWindow.java89Shape.java90Word.java91附2:完整版版源代码93Code.java93HafN

3、ode.java94LoadFile.java96readFile.java100数据结构课程设计报告0909103001物联网1002班李众力程序一:学生运动会成绩管理(JAVA)一、需求分析:本程序的主要用途是对学生运动会成绩进行输入、存储以及查询。本程序有以下几个功能模块:1. 学校信息输入模块:本模块功能为输入学校的名称以及编号,由于编号必须为唯一,且按照顺序,所以本程序只允许用户进行学校名称的输入,学校编号自动生成,当输入学校名称为空或者重复是会有错误提示。2. 项目信息输入模块:此模块用于添加运动会项目,项目分为男子大项、男子小项、女子大项以及女子小项四个类别,大项取前五名,小项取

4、前三名。为了防止用户输入错误,项目类型为下拉列表供用户选择,项目编号为自动生成,当输入项目名称为空或项目名称重复是会有错误提示。3. 成绩输入模块:此模块功能为输入各学校在各项目上所取得的名次,同样为了防止用户输入错误,项目名称、学校名称以及取得名次都是从下拉列表中选择,当成绩输入重复时(一个学校在同一项目上取得不同名次、不同学校在一个项目上取得相同名次)都会提示错误信息。4. 成绩信息保存模块:此模块对于输入的信息进行保存,将数据从内存中爆出到硬盘的文件中,使数据持久保存。5. 成绩排序模块:此模块可以将学校按照学校编号、项目总分、男子项目总分、女子项目中分进行升序、降序的排序,方便对成绩有

5、一个直观的了解。6. 成绩信息读取模块:此模块可以将以前保存在硬盘中的数据读取出来,并将数据提供给其他模块进行相应操作。7. 成绩查询模块:此模块可以按多种方式对输入的数据进行查询:可以按照学校编号查询该学校在哪些项目上获得了什么名次或者在某一个项目上获得了什么名次,也可以按照项目编号查询都有那些学校在该项目上取得了名次,如果项目编号或者学校编号输入错误会有错误提示信息。二、概要设计本程序有两个自定义的数据类,学校类(SchoolNode)和项目类(ItemNode),分别用来保存参加的学校的信息以及项目的信息。Data类存放着程序运行时的数据,以及保存打开的操作另外Tools类为对于数据操作

6、的具体方法:本程序通过界面与用户进行交互,有界面类MainUI以及界面的配置类。三、详细设计1.输入学校信息模块功能框图如下:输入学校名称是否为空,是否重复自动编号添加对象至学校信息队列否是关键代码:public void actionPerformed(ActionEvent e) na = SclName.getText();if (!na.equals() & to.checkScl(na) int n = da.getSlist().size();jTextField1.setText(n + 1) + );to.addScl(na, n + 1);n = da.getSlist().

7、size();jTextField1.setText(n + 1) + );SclName.setText();javax.swing.JOptionPane.showMessageDialog(null, 添加成功!);jComboBox_SclName.addItem(na); else javax.swing.JOptionPane.showMessageDialog(null, 名称重复或为空!);2.输入项目信息模块功能框图如下:项目名称及类别是否为空,是否重复自动编号添加对象至项目信息队列否是关键代码:public void actionPerformed(ActionEvent

8、e) na = jTextField2.getText();if (to.checkItem(na) & (!na.equals() int n = da.getIlist().size();boolean isMan, isBig;jTextField3.setText( + n + 1);if (jComboBox_setItem.getSelectedItem().equals(男子大项) System.out.println(男子大项);isMan = true;isBig = true; else if (jComboBox_setItem.getSelectedItem().equ

9、als(男子小项) System.out.println(男子小项);isMan = true;isBig = false; else if (jComboBox_setItem.getSelectedItem().equals(女子大项) System.out.println(女子大项);isMan = false;isBig = true; else System.out.println(女子小项);isMan = false;isBig = false;to.addItem(na, n + 1, isBig, isMan);n = da.getIlist().size();jTextFi

10、eld3.setText(n + 1) + );jTextField2.setText();javax.swing.JOptionPane.showMessageDialog(null, 添加成功!);jComboBox_Item.addItem(na); else javax.swing.JOptionPane.showMessageDialog(null, 名称重复或为空!);3. 输入比赛成绩信息模块:学校的成绩信息输入数据是否错误添加成绩信息到相应学校添加学校信息到相应项目否是判断语句在鼠标监听器中,具体代码如下:public void actionPerformed(ActionEv

11、ent e) / 获得学校的名字String na = (String) jComboBox_SclName.getSelectedItem();/ 获得项目的名字String Iname = (String) jComboBox_Item.getSelectedItem();/ 获得取得名次String Score = (String) (jComboBox_score.getSelectedItem();/ System.out.println(学校名字 + na);/ 通过名字查找学校节点SchoolNode sc = to.findScByName(na);boolean ch1 =

12、false;/ 查找学校输入过的项目名字ArrayList IN = to.findScByName(na).getItemName();/ 检查是否重复添加成绩for (int i = 0; i IN.size(); i+) if (String) jComboBox_Item.getSelectedItem().equals(IN.get(i) ch1 = true;/ 检查是否重复添加成绩if (ch1) javax.swing.JOptionPane.showMessageDialog(null, 已经添加过该校该项目的成绩!);System.out.println(成绩重复); el

13、se / 获得该项目节点ItemNode it = to.findItByName(Iname);/ 检查该项目的对应名次是否经被别人取得if (it.getSchools().containsKey(Score) javax.swing.JOptionPane.showMessageDialog(null,已经有别的学校取得该成绩!); else / 根据学校添加成绩信息sc.addScore(Iname, Score, to);javax.swing.JOptionPane.showMessageDialog(null,输入成绩成功);it.getSchools().put(Score, na);4. 排序模块:通过选择条件对数据进行排序,关键代码如下:public void actionPerformed(ActionEvent e) int a = jComboBox2.getSelectedIndex();jTable1Model.setPri(a);if (String) jComboBox1.getSelectedItem().equals(升序) System.out.println(升序);jTable1Model.OpForm();jTable1.updateUI();5. 查询模块,根据选择项目的不同进行查询,关键代码如下:public void acti

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号