一、内容编写 Java 的 GUI 程序,完成学生的选课信息管理。
课程信息存储在文件 courses.txt 中,每门课程信息包括课程名、课程编号、课程学分、主讲讲师姓名、上课地点(假设每门课程的上课地点是唯一的)、课程的其他信息(如多少实验课时、多少理论课时等)。
文件 courses.txt 的示例内容与格式如下所示:
Academic English I,31060101,3,Liang ZHU-GE,8-102
Two hours each week-day.
Advanced Mathematics I1,31060102,4.5,ChongZhi ZU,8-101
Two lectures in a week.
Introduction to IT,31060103,3.5,ChuanLiang LIU,9-201
The course includes 16 lab hours.
Programming Fundamental,31060104,3.5,Donald E. KNUTH,9-203
The course includes 28 lab hours.
上面的示例文件中,包含有 4 门课程的信息。
如第一行是课程“Academic English I”,其编号为“31060101”,学分为“3”,主讲教师为“Liang ZHU-GE”,上课地点为“8-102”。第二行则是该课程的其他信息“Two hours each week-day.”。
类似的,第三行、第四行是第二门课“Advanced Mathematics I1”的相关信息;第五行、第六行是第三门课
“Introduction to IT”的相关信息;第七行、第八行是第四门课“Programming Fundamental”的相关信息。
学生信息存储在文件 students.txt 中。每位学生的信息包括学生姓名、学号、性别、专业、选课数目、选课的课程编号列表。
文件 students.txt 的示例内容与格式如下所示:
Harry POTTER,1766060101,m,Computer Science and Technology 4 31060101 31060102 31060103 31060104
WuKong SUN,1766060102,m,Computer Science and Technology 2 31060103 31060104
XiaoTiao MA,1766060103,m,Computer Science and Technology 1 31060104
MuLan HUA,1766060104,f,Computer Science and Technology 3 31060102 31060103 31060104
Bill GATES,1766060105,m,Computer Science and Technology 0
上面的示例文件中,包含有 5 位学生的信息。
如第一行是学生“Harry POTTER”,其学号为“1766060101”,性别为“m”表示男性,专业为“Computer Science
and Technology”。第二行则是该学生所选课程的数量“4”,该数字表示接下来的 4 行分别列出了此学生选的 4 门
课程的编号,分别是第三行的“31060101”、第四行的“31060102”、第五行的“31060103”、第六行的“31060104”。通过查课程文件 courses.txt 内容,我们知道该生选的课程名称分别是“Academic English I”、“Advanced Mathematics I1”、“Introduction to IT”和“Programming Fundamental”。
类似的,学生“WuKong SUN”选了两门课程,信息共占四行;学生“XiaoTiao MA” 选了 1 门课程,信息共占 3 行;“MuLan HUA” 选了三门课程,信息共占五行;学生“Bill GATES” 选了 0 门课程,信息共占 2 行(由于没选课程,所以选课程数“0”后没有课程编号对应的行)。
在本次大作业中,需要对课程信息、学生信息进行维护。
1.课程信息的维护
维护课程信息时,提供以下操作:
列出所有课程信息供查阅,对应的命令为“show”。
列出某一门课程信息供查阅(需要提供课程编号),对应的命令为“search”。特别注意:待查阅的课程编号不存在时,应提示相应信息。
增加一门课程,对应的命令为“add”,特别注意:当新增加的课程编号与已有课程编号重复时,应提示相应信息。
删除一门课程(需要提供课程编号),对应的命令为“remove”,特别注意:待删除的课程编号不存在时,应提示相应信息。另外,还需注意,当某门课程被成功删除时,所有选择该课程的学生信息中的对应课程编号也应被删除。
修改某一门课程的信息(需要提供课程编号),注意被修改的信息不能是课程编号本身,对应的命令为“update”。
特别注意:待修改的课程编号不存在时,应提示相应信息。
2.学生信息的维护
维护学生信息时,提供以下操作:
列出所有学生信息供查阅,对应的命令为“display”。
列出某一位学生信息供查阅(需要提供学生学号),对应的命令为“retrieve”。特别注意:待查阅的学生学号不存在时,应提示相应信息。
增加一位学生,对应的命令为“insert”,特别注意:当新增加的学生学号与已有学生学号重复时,应提示相应信息。
删除一位学生(需要提供学生学号),对应的命令为“delete”,特别注意:待删除的学生学号不存在时,应提示相应信息。
修改某一位学生的信息(需要提供学生学号),注意被修改的信息不能是学生学号本身,对应的命令为“modify”。
特别注意:待修改的学生学号不存在时,应提示相应信息。
当待修改学生学号存在时,除了修改学生自身信息以外,还有以下两种子命令供用户选择:
子命令“enroll”的功能是,为该生增加一门选修的课程。特别注意:当输入的选修课程编号不存在时,应提示相应信息;当输入的选修课程编号与该生已修课程重复时,应提示相应信息。
子命令“drop”的功能是,为该生退掉一门选修的课程。特别注意:当输入的选修课程编号不存在时,应提示相应信息;当输入的选修课程编号不在该生已修课程中时,应提示相应信息。
二、任务
1.编写类 Course 的相关方法。
2.编写类 Student 的相关方法。
3.编写类 Main 的相关方法。
0 Main 需要两个空列表:课程信息列表 courses_list 和学生信息列表 students_list。之后将对应两个文件 courses.txt
0 students.txt 的内容读到列表 courses_list 和 students_list 中,注意两个列表的元素分别是类 Course 的对象和类 Student
的对象。
之后,程序显示 Java 的 GUI 界面,类似图 1 所示,等待用户进行三类操作。
图 1 程序界面示意图
第一类是维护课程信息的,五种命令上文已经讨论过;第二类是维护学生信息的,五种命令上文已经讨论过;第三类是退出命令(“Quit”)、清空命令(“Clear”)。
用户在界面中单击相应的按钮,激发对应的命令,系统完成相应的任务。当用户选择清空命令时,会将按钮最右侧文本域清空。
当用户选择退出命令时,需要调用写文件操作,将两个列表中的元素按照前文规定的文件格式写入两个新文件
“new_courses.txt”、“new_students.txt”中。最后提示程序终止。
三、要求
1.以小组为开发单位,每组 5 人。每人参与界面设计,协同完成类似于图 1 所示的界面;每人完成至少 2 个
按钮对应命令的事件处理程序。
2.根据自己完成的工作撰写“程序设计综合实训报告”,报告中包含小组任务概述、自己完成任务概述、任务的详细设计(用流程图与文字结合说明)、Java 实现该任务的技术要点、工作总结。
3.以小组为单位,参加答辩,展示工作成果;每人回答指导老师提出的关于自己开发代码的问题。
代写计算机编程类/金融/高数/论文/英文
本网站支持淘宝 支付宝 微信支付 paypal等等交易。如果不放心可以用淘宝或者Upwork交易!
E-mail:[email protected] 微信:csghostwriting 工作时间:无休息工作日-早上8点到凌晨3点
如果您用的手机请先保存二维码到手机里面,识别图中二维码。如果用电脑,直接掏出手机果断扫描。