需求分析:
一、语言和环境
A、实现语言:Java
B、环境要求:JDK 8.0、Eclipse 、MySQL 5.6
二、功能要求
学校即将举办第五届春季运动会,为更方便管理报名信息,现要求开发基于控制台的学校运动会报名系统。具体要求如下:
1.主菜单:显示系统主菜单,每执行完一项功能后菜单循环显示,如图1所示,菜单功能包括:
1) 学生报名
2) 按比赛项目查询
3) 按班级查询
4) 取消报名
5) 退出系统
2.学生报名:输入学生姓名、年龄、班级号、报名项目编号,正确录入以上信息后,显示“报名成功!”。
3.按比赛项目查询:提示选择要查询的比赛项目,查询出相关学生信息,包括项目名、姓名、班级、年龄。
4.按班级查询:提示选择要查询的班级,查询出相关学生信息,包括项目名、姓名、班级、年龄。
5.取消报名:提示输入要取消报名的学生姓名,从报名信息表中删除该学生记录。成功后提示“取消报名成功!”
6.退出系统:提示“谢谢使用!”后退出系统
三、具体要求及推荐实现步骤
1.创建数据库表apply_info,添加测试数据不少于4条,表结构如表1所示。
系统目录结构如下图所示:
2.创建实体类ApplyInfo,根据业务提供需要的构造方法和setter/getter方法。
1 packagetop.hinux.entity;2
3 /**
4 *
报名信息实体类
5 *@authorHSH6 *7 */8 public classApplyInfo {9
10 private int applyId;//编号
11 private String name;//姓名
12 private int age;//年龄
13 private String className;//班级
14 private String game;//比赛项目
15
16
17 /**
18 * 生成构造方法19 *@paramapplyId20 *@paramname21 *@paramage22 *@paramclassName23 *@paramgame24 */
25 public ApplyInfo(String name, intage, String className, String game) {26 this.name =name;27 this.age =age;28 this.className =className;29 this.game =game;30 }31
32
33 //生成get(),set() 方法。
34 public intgetApplyId() {35 returnapplyId;36 }37 public void setApplyId(intapplyId) {38 this.applyId =applyId;39 }40 publicString getName() {41 returnname;42 }43 public voidsetName(String name) {44 this.name =name;45 }46 public intgetAge() {47 returnage;48 }49 public void setAge(intage) {50 this.age =age;51 }52 publicString getClassName() {53 returnclassName;54 }55 public voidsetClassName(String className) {56 this.className =className;57 }58 publicString getGame() {59 returngame;60 }61 public voidsetGame(String game) {62 this.game =game;63 }64
65
66 @Override67 publicString toString() {68 return "ApplyInfo [applyId=" + applyId + ", name=" + name + ", age=" + age + ", className=" +className69 + ", game=" + game + "]";70 }71
72
73
74 }
3.创建JDBCTools类,实现数据库连接和关闭功能。
1 packagetop.hinux.dao;2
3 importjava.io.IOException;4
5 importjava.io.InputStream;6 importjava.sql.Connection;7 importjava.sql.DriverManager;8 importjava.sql.Pre