云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 数据结构课程设计实验报告 - 图文

数据结构课程设计实验报告 - 图文

  • 62 次阅读
  • 3 次下载
  • 2025/6/5 4:08:16

class Class Model JFrameManageStu+ - - - - - - - - - - - - + - - + StudentSystemJFrameMyMessagePanelJPanel+ f: File = new File(\isSave: boolean = true- serialVersionUID: long = 1L {readOnly}- fileChooser: JFileChooserjbtDel: JButton = new JButton(\删除\- fileMenu: JMenu = new JMenu(\文件\jbtEdit: JButton = new JButton(\修改\# paintComponent(Graphics) : void- fileMenuClose: JMenuItem = new JMenuItem(\关闭\jlb1: JLabel = new JLabel(\学号\- fileMenuNew: JMenuItem = new JMenuItem(\新建\jlb2: JLabel = new JLabel(\姓名\- fileMenuOpen: JMenuItem = new JMenuItem(\打开\jlb3: JLabel = new JLabel(\数据结...- fileMenuSave: JMenuItem = new JMenuItem(\保存\JFramejlb4: JLabel = new JLabel(\操作系...- fileMenuSaveAs: JMenuItem = new JMenuItem(\另存为\jlb5: JLabel = new JLabel(\数值计...ReadStu- jbt1: JButton = new JButton(\查看\jtfDS: JTextField = new JTextField()- jbt2: JButton = new JButton(\录入\- jbt1: JButton = new JButton(\学号\jtfId: JTextField = new JTextField()- jbt3: JButton = new JButton(\管理\- jbt2: JButton = new JButton(\数据结构\jtfName: JTextField = new JTextField()- jbt4: JButton = new JButton(\查找\- jbt3: JButton = new JButton(\操作系统\jtfNC: JTextField = new JTextField()+ manageStu: ManageStu- jbt4: JButton = new JButton(\数值计算\jtfOS: JTextField = new JTextField()+manageStu+ MAX_NUMBER: int = 50 {readOnly}- jbt5: JButton = new JButton(\总分\newStu: Student = StudentSystem.s...- menuBar: JMenuBar = new JMenuBar()+readStu- jsp1: JScrollPanepoint: Point+ readStu: ReadStu+ jta1: JTextArea = new JTextArea()serialVersionUID: long = 1L {readOnly}- serialVersionUID: long = 1L {readOnly}- point: PointstuId: String- stateBar: JLabel = new JLabel(\未修改\- serialVersionUID: long = 1L {readOnly}+ stuClass1: StuClass = new StuClass(MA...+ delete() : void+ thePoint: Point+ ReadStu()+ edit() : void+ writeStu: WriteStu- setUpEventListener() : void+ find() : void- setUpUIComponent() : void- getScore(String) : int- closeFile() : void+ ManageStu()- find() : void- setUpEventListener() : void- isCurrentFileSaved() : boolean- setUpUIComponent() : voidSerializable+ main(String[]) : voidStuClass- newFile() : void- open() : void+stuClass1- nElems: int- openFile() : void- serialVersionUID: long = 1L {readOnly}+ processStateBar() : void- stu: Student ([])+ readStuClass(File) : voidJFrame- saveFile() : void+ compareTo(String, String) : booleanWriteStu- saveFileAs() : void+ delete(String) : Student- setUpEventListener() : void- jbtNext: JButton = new JButton(\+ find(String) : Student- jbtPre: JButton = new JButton(\+writeStu- setUpUIComponent() : void+ find(int) : Student+ start() : void- jbtSave: JButton = new JButton(\保存\+ findIndex(String) : int+ StudentSystem()- jlb1: JLabel = new JLabel(\学号\+ insert(Student) : void+ takePoint() : void- jlb2: JLabel = new JLabel(\姓名\+ setStuScore(String, int, int, int) : void+ writeStuClass() : void- jlb3: JLabel = new JLabel(\数据结...+ size() : int- jlb4: JLabel = new JLabel(\操作系...+ SortByDS() : void+newStu- jlb5: JLabel = new JLabel(\数值计...+ SortById() : voidStudent- jlbId: JLabel = new JLabel()+ SortByNC() : void- jlbName: JLabel = new JLabel()+ SortByOS() : void- dataStructure: int- jtfDS: JTextField = new JTextField()+ SortBySum() : void- id: String- jtfNC: JTextField = new JTextField()+ StuClass(int)- name: String- jtfOS: JTextField = new JTextField()+ toString() : String- numericalComptation: int-stu- newStu: Student = StudentSystem.s...- operatingSystem: int- point: Point- sum: int-newStu- serialVersionUID: long = 1L {readOnly}- + - - + + + + getScore(String) : intsave() : voidsetUpEventListener() : voidsetUpUIComponent() : voidshowNewStu() : voidtoNextId() : voidtoPreId() : voidWriteStu()+ + + + + + + + + + + + + + getDS() : intgetId() : StringgetName() : StringgetNC() : intgetOS() : intgetSum() : intmain(String[]) : voidsetId(String) : voidsetName(String) : voidsetScore(int, int, int) : voidStudent()Student(String, String)Student(String, String, int, int, int)toString() : String- 15 -

2.4. 调试分析

调试过程中遇到的部分问题及解决方法列举:

1、主界面点击按钮弹出界面,再次点击会弹出一个新的界面,原来的界面没有关闭。这样就出现了两个相同的界面,但只有一个是可以正确的。后来在设计了每个按钮事件,设置一个界面检查条件,如果界面对象存在则关闭,否则打开。

2、单击主界面的“查找”按钮,弹出输入对话框,点击“取消”,会弹出消息对话框,这是个逻辑错误,按“取消”按钮,或窗口的“关闭”按钮应该直接退出才对的。本来是将showInputDialog返回的值直接强制转换为String类型的,所以没办法判断用户点击了“确定”或“取消”还是关闭窗口。解决的思路是通过查看API,发现当单击showInputDialog的“取消”按钮时,返回的是null,故可以将showInputDialog的返回值先引用给Object,在查找前添加一个if语句,判断Object是否不为null,只有满足这一条件才进行查找操作,这样问题便解决了。

3、主界面的一些设定也遇到不少问题,首先我在程序中设定的是,在点击按钮时,会弹出对应的窗口,这样方便就行一些操作,但弹出来的窗口位置总是处于屏幕的中间,这样就覆盖了原来已经打开的界面,每次操作都得用鼠标将新打开的界面拖开。这样很不方便,最后是通过窗体的getLocationOnScreen()方法获取主界面左上角在屏幕上点的坐标,然后在其它界面的setLocation()方法中,以thePoint为参数,可以简单的设置界面打开时出现在主界面的相对位置。

4、在查看界面使用的文本域显示所有学生的信息的。这样造成的后果是用户可以在文本域里面的文本内容进行修改。通过查看API得知TextArea具有setEditable()可以设置为不可修改,然后就在文本域控件上调用这个方法,才解决问题。另外在成绩录入界面跟管理界面里,我们并不希望用户对学生的学号或者名字进行修改,所以也调用了setEditable()这个方法。

2.5. 测试结果

每个界面的测试结果如下: 1. 主界面:

测试1:分别点击“查看”“录入”“管理”按钮 结果:弹出对应的界面

测试2:再次点击“查看”“录入”“管理”按钮 结果:关闭对应的界面

测试3:点击“查找”按钮 结果:弹出输入对话框

测试4:点击“查找”按钮,弹出的输入对话框 ,在文本框中输入学号“0001” 结果:弹出消息对话框,显示学号“0001”学生的信息;

- 16 -

测试5:点击“查找”按钮,弹出的输入对话框 ,在文本框中输入学号“dfkdf”,“测试”;

结果:弹出信息对话框,提醒“没找到该学生,请检查学号”。

测试6:点击菜单栏的“新建““打开”“保存”“另存为”等子菜单

结果:各子菜单无法达到预期的目标,经常出现错误的情况。有待完善!

2.“学生信息查看”界面:

测试1:点击“学号”“数据结构”“操作系统”“数值计算”“总分”按钮 结果:对文本域中的学生进行相应的排序显示

3.“学生成绩录入”界面:

测试1:输入学号:0001;姓名:张三;数据结构:89;操作系统:65;数值计算:35,然后点击“《==”“保存”“==》”按钮。

结果:将输入的信息保存,并显示在“学生信息查看”界面的文本域中。如果是按“《==”则学号减一,按“==》”则相反,但进行保存操作时,有时会出现java.lang.NullPointerException异常,但不是每次都会,不知怎么处理,有待完善。

测试2:在“学号”文本框中输入“dfkdf” 或者在“姓名”文本框中输入“54648”,“测试”,单击“保存”。

结果:弹出信息对话框,提醒“输入错误,请检查学号”或“输入错误,请检查姓名”。

测试3:在“操作系统”文本框中输入“”(空字符串),-1,56.6,102, 结果:弹出信息对话框,提醒“输入错误,请检查分数”。

4.“学生信息管理”界面:

“修改”操作测试

测试1:在“学号”文本框中输入存在的学号,如“0001”,单击“修改”按钮 结果:在“姓名”等文本框中显示该学生信息。

测试2:在“学号”文本框中输入不存在的学号,如“1000” ,单击“修改”按钮 结果:弹出信息对话框,提醒“没找到该学号的学生,请检查学号”。

测试3:在“学号”文本框中输入“dfkdf”“测试”,单击“修改”按钮 结果:弹出信息对话框,提醒“输入错误,请检查学号”。

测试3:在“姓名”文本框中输入“54648”“测试”, 单击“修改”按钮 结果:弹出信息对话框,提醒“输入错误,请检查姓名”。

测试4:在“操作系统”文本框中输入“”(空字符串),-1,56.6,102,单击“修改”按钮

结果:弹出信息对话框,提醒“输入错误,请检查分数”。

- 17 -

“删除”按钮测试

测试1:在“学号”文本框中输入“0001”,单击“删除”按钮 结果:弹出信息对话框,显示学生信息,确认是否删除。

测试2:在“学号”文本框中输入“1000”, 单击“删除”按钮 结果:弹出信息对话框,提醒“没找到该学号的学生,请检查学号”。

测试3:在“学号”文本框中输入“dfkdf”,“测试”,单击“删除”按钮 结果:弹出信息对话框,提醒“输入错误,请检查学号”。

2.6. 用户使用说明

这个程序是一个简单的学生成绩管理系统,只能够实现一些基本的操作,像录入成绩,修改成绩,删除记录。具体操作说明如下:

2.6.1.主界面

1.单击“查看”“录入”“管理”按钮,弹出对应的界面;再次单击“查看”“录入”“管理”按钮,关闭对应的界面;

2.单击“查找”按钮,弹出输入对话框,根据提示信息进行操作;

3.输入一个正确的学号,如“0001”,弹出消息对话框,显示该学生成绩信息;

- 18 -

搜索更多关于: 数据结构课程设计实验报告 - 图文 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

class Class Model JFrameManageStu+ - - - - - - - - - - - - + - - + StudentSystemJFrameMyMessagePanelJPanel+ f: File = new File(\isSave: boolean = true- serialVersionUID: long = 1L {readOnly}- fileChooser: JFileChooserjbtDel: JButton = new JButton(\删除\- fileMenu: JMenu = new JMenu(\文件\jbtEdit: JButton = new JButton(\修改\# paintComponent(Graphics) : void- fileMenuClose: JMe

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com