Java基础代码就可以实现一个这样的系统,可循环。
一.主要数据结构
使用四个并行数组存储DVD信息:
indexs[]
:存储DVD序号states[]
:存储DVD状态("可借"/"已借出")names[]
:存储DVD名称dates[]
:存储借出日期
二.核心方法分析
初始化方法 setDVDS()
预置3条DVD数据:
- "罗马假日"(已借出)
- "风声鹤唳"(可借)
- "浪漫满屋"(可借)
主菜单 menu()
采用控制台交互方式,通过数字选择对应功能模块。包含返回上级菜单的逻辑(输入0返回)。
新增DVD addDVD()
查找第一个空位插入新DVD:
- 自动生成递增序号
- 默认状态设为"可借"
- 日期字段留空
删除DVD deleteDVD()
执行删除前检查:
- 确认DVD存在
- 检查DVD未被借出 删除后自动前移后续元素
借出DVD lendDVD()
验证条件:
- DVD存在
- 状态为"可借" 借出操作包括:
- 更新状态为"已借出"
- 记录借出日期
归还DVD
backDVD()
和getMoney()
,用于实现DVD租赁系统的归还功能和租金计算功能。
backDVD()
方法处理DVD归还流程:
- 接收用户输入的DVD名称和归还日期
- 检查DVD是否存在(通过遍历names数组)
- 若存在则检查当前状态是否为"已借出"
- 执行归还操作并调用
getMoney()
计算租金
getMoney()
方法计算租金:
- 使用SimpleDateFormat处理日期格式
- 计算借出日期和归还日期之间的天数差
- 返回天数作为租金金额(假设每天租金1元)
代码结构评估
数组使用:
- 使用三个平行数组(names/states/dates)存储DVD信息
- 通过数组索引关联不同属性
日期处理:
- 采用"yyyy-MM-dd"格式处理日期
- 使用getTime()方法获取时间戳计算天数差
异常处理:
- 对日期解析进行try-catch处理
- 方法返回-1表示计算失败