信息系统(进阶版)
一、要求:通过键盘输入在控制台实现学生信息系统
二、目的:
(1)搭建简易的学生信息管理系统,具有查看学生、添加学生、删除学生、修改学生信息四个功能
(2)系统功能preview
三、系统实现
1、分析:信息系统具有添加、查看、修改、删除四个功能,建立managerEntry 、controller、service、dao、domain四个功能包实现不同职能。domain定义不同的类(学生类、老师类),dao与数据存储容器紧密联系,实现对象的增删查改,service是业务逻辑处理(判断学号是否存在)/(联系controller和dao的传话筒),controller是子系统入口,用户与系统交流的第一道防线(接待用户功能),managerEntry是系统入口,信息系统主菜单搭建处
2、实现:
(1)系统实现步骤:菜单搭建、功能编写、调试运行
(2)菜单搭建实现手段:展示信息直接输出(sout实现),用户通过输入不同数值切换不同功能(switch语句实现选择),不确定用户使用次数,每个功能使用结束切换回到菜单(while(true)实现循环)
(3)功能编写(以学生系统为主)
(i)添加学生:每个学生对应唯一的学号,因此判断用户输入的学号是否存在(is.Exists ()方法调用目的在于取到系统中没有的学号),将信息封装为新对象,通过有参方法调用将新对象传入数组容器中
(实现逻辑:controller中编写addstudent方法:while(true)循环ID,直到取出系统中不存在的ID,连同其他信息一同封装为Student类。调用service中addstudent方法,将封装好的对象传入service。service调用dao中addstudent方法,dao判断数组中的空位置,或将对象添入,或数组已满无法添入,返回boolean类型结果给service,service又将boolean类型结果返回给controller展示给用户相应提示语句)
(ii)查看学生:数组遍历打印展示给用户即可
(实现逻辑:controller与用户交互,所以controller遍历并打印展示数组。service调用dao中scanstudent方法,获取dao返回的数组并判断数组中是否有内容;controller调用service中scanstudent方法,获取数组地址并判断数组地址是否为空,再进行遍历打印)
(iii)删除学生:学生跟学号一一对应,通过用户输入的学号,is.Exists()方法调用取出系统存在的学号,getindex()方法调用取出学号所在数组中的索引,对该索引处的数组内容赋值为null实现删除学生
(实现逻辑:同理于添加学生,controller中编写deletestudent方法:while(true)循环ID,直到取出系统中已存在的ID,调用service中deletestudent方法传入参数ID。通过service调用dao中deletestudent方法,dao中将传入的ID取出数组中的索引(遍历数组,get方法取出每个索引处的ID与传入的ID对比),该索引处的数组内容作空值赋值运算,实现删除功能)
(iv)修改学生信息:学生跟学号一一对应,通过用户输入的学号,is.Exists()方法调用取出系统存在的学号,用户输入全新的对象信息,封装为新对象,getindex()方法调用取出学号所在数组中的索引,对该索引处的数组内容赋值为新对象实现修改学生信息
(实现逻辑:类似于删除学生,controller中编写updatestudent方法:while(true)循环ID,直到取出系统中已存在的ID,并且键入新的学生信息,封装为Student类的新对。controller中封装好的对象和ID传入service中的updatestudent方法,又在service中传入dao中的updatestudent方法,dao中调用getindex方法取出学号所在数组中的索引,对该索引处的数组内容赋值为新对象,实现修改功能)
(4)代码优化之方法封装:getindex方法、inputinformation方法、isExists方法
代码实现如下:
€1 新项目、模块、包、学生类的创建、类之间访问规则
€2 项目preview以及managerEntry中系统主菜单搭建
€3 controller中学生系统菜单搭建
€4 添加功能实现方法编写
StudentController中:
StudentService中:
StudentDao中:
€5 查看功能实现方法编写
StudentController中:
StudentService中:
StudentDao中:
€6 删除功能方法编写
StudentController中:
StudentService中:
StudentDao中:
获取某个ID对应数组中的索引方法: (StudentDao中)
€7 修改功能实现方法编写
StudentController中:
StudentService中:
StudentDao中:
€8 代码优化
(1)isExists方法编写:判断学号是否存在,boolean类型返回结果、含参
(2)getindex方法编写:获取数组中某个学号的索引,返回索引值,含参
(3)inputinformation方法编写:用户输入信息,无返回值、无参