2023-11-16 00:39来源:m.sf1369.com作者:宇宇
题一
一、背景:
控制台应用程序的菜单处理,菜单会有子菜单项,可能会有多级。菜单项可能会随时更新和添加,需要能很方便地通过配置文件进行维护。
一、需求:
A. 首页菜单如下:
购物系统
--------------------------------------
1. 客户信息管理
2. 购物结算
3. 真情回馈
4. 注销
5. 退出
--------------------------------------
请选择(1~5):
输入 1 时呈现:
购物系统 -- 客户信息管理
--------------------------------------
1. 显示所有客户信息
2. 添加客户信息
3. 修改客户信息
4. 查询客户信息
5. 返回上层
--------------------------------------
请选择(1~5):
输入 2 时执行“购物结算”逻辑,假定只是输出“do 购物结算”,执行完成后显示首页菜单。
输入 3、4 时执行各模块逻辑,逻辑也是假定输出字符串,执行完成后显示首页菜单。
输入 5 时退出系统,终止程序。
B. 二级页面,客户信息管理
输入 1~4 执行各模块逻辑,假定输出字符串,执行完成后显示“客户信息管理”菜单。
输入 5 时则返回上层菜单,即返回首页菜单。
C. 其他要求
C.1 首页菜单及二级菜单的菜单项是不定的,可能会随时进行增、删,需要做到动态配置。
C.2 各菜单项可能有多级子菜单,也是会随时进行增、删,需要做到动态配置。
C.3 各菜单项所执行的功能应是单独的,互不影响,即撤换掉一个时不影响其他功能的使用。
C.4 在菜单停顿输入必须检查所输入的值,假定是“请选择(1~5)”,如果输入 6 的话则重显“请选择(1~5)”以便于能继续输入
题二
-----------------------------------------------------------------------
A. 背景
-----------------------------------------------------------------------
A.1 为了方便生成非数字的流水号,现在需要制作一个流水号生成器,每调用一
次可以获得流水号的下一个流水,并且能根据不同的要求进行变化。
-----------------------------------------------------------------------
B. 需求
-----------------------------------------------------------------------
B.1 要求根据不同的场景生成流水号
B.2 流水号有多种表现形式,比如:M000001、M、
等等之类的,流水号可能是从 1 开始的,但也可能根据设定时间段从 1 开
始
B.2.1 比如:M000001 的话,M 这个字符是固定的,而后面的数字是每调
用一次流水号生成员都能获得下一个值
B.2.2 比如: 的话,20090314 可能是当前的日期,也可
能是当前的分钟或者说是小时,这样的话每一天或者每一小时或者
是每一分钟的开始均从 1 开始
B.2.3 比如:M 的话,M 是固定的,后面的与 B.2.2 一致
B.2.4 情况可能是多种多样的,具体的流水号产生逻辑今后可能还会增加,
而且可以进行任意组合使用
B.3 流水号不同号码的长度是固定的,数字位数不足时前面添 0 补足位数
B.4 流水号可以放置于内存当中,但是为了停机后再次启动流水后也能延续下去,
就可能需要进行持久化处理,持久化暂时设置为文件和数据库,但是今后可
能会增加其他的持久化方式,比如 LDAP,FTP,SOCKET 等等。
-----------------------------------------------------------------------
C. 要求
-----------------------------------------------------------------------
C.1 采用面向对象方式进行程序设计
C.2 应做到设计合理,扩展方便,运行正确,需要考虑并发请求流水号的问题
C.3 代码格式标准,注释合理
C.4 提交代码时需要提供打包后的 jar 文件、所有源代码、Ant 或 Maven 构建脚
本、有类图的话需要提供类图
public class Rectangle{
public int width;
public int height;
public int getGirth(){
return (width+height)*2;
}
public int getArea(){
return width*height;
}
}
public class Test(){
public static void main(String[] args){
Rectangle r = new Rectangle();
r.width=10;
r.height=10;
//获得周长
System.out.println(r.getGirth());
//打印面积
System.out.println(r.getArea());
}
}