java进阶学习4

信息系统(进阶版)

一、要求:通过键盘输入在控制台实现学生信息系统

二、目的:

(1)搭建简易的学生信息管理系统,具有查看学生、添加学生、删除学生、修改学生信息四个功能

(2)系统功能preview

edd83180af0e4ecebd933659399477a5.png

三、系统实现

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  新项目、模块、包、学生类的创建、类之间访问规则

817f231ae9bf4a85a22f23fcba9e9c7d.png

ad52ee16ecc54c7ebc117dd0f994fe58.png 

81f823053a29426d93879f9838aeb5b3.png

9cc7dc9655314ed39dc8427633622c84.png 

a04ca6b682c94b23bdf609a671adc197.png   

262c0e9b4fbf4fd0be82ddee904c9360.png  

€2  项目preview以及managerEntry中系统主菜单搭建

28a61af937e743859c4509a0c6d353c1.png

e78204a1e46349b6b14bbeec41ba0e57.png 

54c5d8b531904a9dbff675bc80f2d1c6.png  

€3  controller中学生系统菜单搭建

a05dd57af59c4e3c83236dec64f1576d.png

b61eb39896ec4c94b44782b192b056f2.png 

 €4  添加功能实现方法编写

StudentController中:

3f14a25aad654dd48fa3f73b892e1bc0.png

53c8f7caf60d4f48a5ca5b1c883d67a2.png 

StudentService中:

851df1fb9b494bf98a56c6b63a33a4cd.png 

StudentDao中:

42947e7895cf43aab83b24923b03b885.png

58409d0786ad4968b0715d4a15075532.png  

€5  查看功能实现方法编写

StudentController中:

a341dcbb0d824ed0bb0dc2b41628fc18.png 

StudentService中:

66cb11c663164a8aa841d8e381dd2511.png 

StudentDao中:

9757a6f81aa048fa94327888905b47b3.png

 €6  删除功能方法编写

StudentController中:

251afd19d96f4137a8347c24f192ccac.png 

StudentService中:

35f4c626b6804de495824aecd25da89a.png 

StudentDao中:

31a599f4a647478bb31e561b62b4b3b4.png 

获取某个ID对应数组中的索引方法: (StudentDao中)

fc5a1021729547828a793300546a088a.png 

€7  修改功能实现方法编写

StudentController中:

cf60e4924c314da7875e76e7fb5e2ab1.png 

StudentService中:

6bf696432d304372b6b6867ad34c4610.png 

StudentDao中:

3a3d39d64bb4419aaa2c7dd74aff59c3.png

 €8  代码优化

(1)isExists方法编写:判断学号是否存在,boolean类型返回结果、含参

c377fe69ae604f88b84bc7caa0a96d81.png 

(2)getindex方法编写:获取数组中某个学号的索引,返回索引值,含参

ed207a3f84674319869ba9c15dd40ec4.png 

(3)inputinformation方法编写:用户输入信息,无返回值、无参

902d453035bf4507aeeda6d6a358b29a.png

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值