jsjdafasdfadsf

案例1、补充完整详细设计说明内容

下面是某银行管理系统的详细设计说明书的部分内容,其中对银行系统管理员功能的需求如下:

A、用户查询信息管理:可开户,销户,查询用户。

B、卡管理:可办理储蓄卡,办理信用卡,注销卡。

C、财务报表管理:可以统计该银行的用户和其相应卡的余额。

下面是对用户管理模块、系统后台信息管理模块的描述,请按照要求补充完整对应的说明。

用户管理模块

● 功能:( 1 )。

● 性能:为用户提供存款操作界面。

● 输入项目:( 2 )。

● 输出项目:卡号,卡内余额,操作记录,操作时间等。

系统后台信息管理模块

(1)自动还款管理:

● 功能:用户将信用卡绑定到储蓄卡上,并且通过储蓄卡自动给信用卡进行还款。

● 性能:为用户提供自动还款界面。

● 输入项目:( 3 )。

● 输出项目: 如果自动还款成功,则提示用户"自动还款成功!";如果自动还款失败,则提示用户"余额不足!"

答案:

用户管理模块

1:根据不同条件查询用户信息,若无用户信息,则用户需录入的基本信息(如姓名、身份证号、联系方式等),并为其创建一个唯一的用户账号。用户通过该账号,可进行存款操作。

2:姓名、身份证号、联系方式、地址、职业、初始存款金额等。

系统后台信息管理模块

(1)自动还款管理:

3:信用卡信息:信用卡号、持卡人姓名、信用卡有效期。储蓄卡信息:储蓄卡卡号、持卡人姓名、储蓄卡密码。自动还款设置:还款方式(全额还款或最低还款)、还款日期、还款金额。

案例2、补充完整详细设计说明内容

下面是某在线交流平台系统的详细设计说明书的部分内容,其中对该系统管理员功能的需求如下:

A、帖子管理:管理员查看帖子列表,逻辑审核、删除帖子。

B、标签管理:管理员查看标签列表,添加标签,修改标签信息。

C、用户管理:管理员查看用户列表,删除、恢复用户。

下面是对系统管理模块、查询统计模块、基础数据管理模块的描述,请按照要求补充完整对应的说明。

用户管理模块

● 功能:( 1 )。

● 性能:为用户提供登录界面。

● 输入项目:( 2 )。

● 输出项目:用户名密码匹配,输出"登录成功!";用户名密码匹配失败,输出"密码错误!"。

帖子管理模块

(1) 查看帖子管理:

● 功能: ( 3 )。

● 性能:为用户提供查看帖子页面

● 输入项目:帖子名称。

● 输出项目: 帖子信息。

(2) 收藏帖子管理:

● 功能: 收藏帖子

● 性能:( 4 )。

● 输入项目: ( 5 )。

● 输出项目: 正则成功,负则失败。

答案:

用户管理模块

1:用户登录。

2:用户名和密码。

帖子管理模块

3:查看帖子。

4:为用户提供收藏帖子的页面。

5:当前登录用户的唯一ID和被收藏帖子的唯一ID。

案例3、补充完整详细设计说明内容

下面是某合同管理系统的详细设计说明书的部分内容,其中对合同系统管理员功能的需求如下:

A、系统权限管理:可以进行系统维护、权限分配。

B、合同流程管理:可进行合同流程配置。

C、操作管理:对业务操作只能查询,不能对自己授予业务继续新增、修改、删除等操作。

下面是对系统管理模块、查询统计模块、基础数据管理模块的描述,请按照要求补充完整对应的说明。

系统管理模块

(1) 分配合同管理:

● 功能: 管理员选择状态为"起草"的待分配合同,指定参与会签、审批、签订的人员完成分配。

● 性能:为用户提供分配合同管理操作界面。

● 输入项目:( 1 )。

● 输出项目:待分配合同列表、合同基本信息和用户列表信息。

(2) 角色管理

● 功能: 管理员可以对系统的角色进行新增、查询、修改和删除操作。

● 性能:为管理员提供新增角色界面。

● 输入项目:( 2 )。

● 输出项目:新增成功:在新增角色页面提示"添加成功!";新增失败:提示角色权限信息不能为空。

查询统计模块

(1) 合同信息查询管理:

● 功能: 可以根据合同编号进行合同查询。

● 性能: ( 3 )。

● 输入项目:( 4 )。

● 输出项目: 显示符合查询条件的合同。

答案:

系统管理模块

1:管理员在分配合同管理界面选择合同类型(会签、审批、签订)。

2:管理员在新增角色界面填写角色基本信息(角色名称、角色描述等)以及选择菜单访问权限和操作权限。

查询统计模块

3:为用户提供合同信息查询界面。

4:用户在合同信息查询界面输入合同编号

实操视频一、根据题目描述,编写Java代码完成测试。

测试用例说明:

|--------|----------------------|----------|-----------------------|
| 序号 | 输入密码 | 预期输出 | 测试描述 |
| 1 | ""(空字符串) | "错误" | 验证空字符串输入的处理 |
| 2 | "a"(长度1) | "错误" | 验证长度小于等于6的输入 |
| 3 | "abc123"(长度为6) | "错误" | 验证长度等于6的输入 |
| 4 | "abc1234"(长度7) | "弱密码" | 验证长度大于6且仅包含数字和小写字母的输入 |
| 5 | "ABCDEFG"(长度7,大写字母) | "强密码" | 验证包含大写字母的输入 |
| 6 | "abc123@"(长度7,含特殊字符) | "强密码" | 验证包含特殊字符的输入 |
| 7 | "1234567"(长度7,全数字) | "弱密码" | 验证仅包含数字的输入 |
| 8 | "abcdefg"(长度7,全小写字母) | "弱密码" | 验证仅包含小写字母的输入 |

具体代码如下:

package test;

import static org.junit.Assert.assertEquals;

import org.junit.jupiter.api.Test;

public class PasswordCheck {

//测试密码空字符串

@Test

public void testEmptyPassword() {

String result=check("");

assertEquals("测试空字符串","错误",result);

}

//测试输入密码过短

@Test

public void testShortPassword() {

String result=check("a");

assertEquals("测试过短密码","错误",result);

}

//测试长度等于6的密码

@Test

public void testPasswordlengthEqual6() {

String result=check("abc123");

assertEquals("测试长度等于6的密码","错误",result);

}

//测试仅含有数字和小写字母的密码

@Test

public void testWeakPasswordAllLowerDigit() {

String result=check("abc1234");

assertEquals("测试仅含有数字和小写字母的密码","弱密码",result);

}

//测试包含大写字母的密码

@Test

public void testStrongPasswordWithUpppercase() {

String result=check("ABCDEFG");

assertEquals("测试包含大写字母的密码","强密码",result);

}

//测试包含特殊字符的密码

@Test

public void testStrongPasswordWithSpecialChar() {

String result=check("abc123@");

assertEquals("测试包含特殊字符的密码","强密码",result);

}

//测试全数字密码

@Test

public void testWeakPasswordAllDigits() {

String result=check("1234567");

assertEquals("测试全数字密码","弱密码",result);

}

//测试全小写字母密码

@Test

public void testWeakPasswordAllLowercase() {

String result=check("abcdefg");

assertEquals("测试全小写字母密码","弱密码",result);

}

public String check(String password) {

if (password.isEmpty()) {

return "错误";

}

int length = password.length();

if (length <= 6) {

return "错误";

}

if (password.matches("[0-9a-z]+")) {

return "弱密码";

} else {

return "强密码";

}

}

}

实操视频二、根据题目描述,编写Java代码完成测试

测试用例描述:

|----|----------------------------------|-----------------------------------|------|----------------------------|
| 序号 | 测试用例名称 | 测试用例描述 | 输入数据 | 预期结果 |
| 1 | 测试账号不能为空 | 测试账号信息不能为空字符串 | 账号信息 | 账号信息不为空 |
| 2 | 测试账号不能小于6位数(或需大于5位数) | 测试账号长度不能太短,不能小于6位数(或需大于5位数) | 账号信息 | 账号位数不小于6位数(或需大于5位数) |
| 3 | 测试账号不能大于等于12位数(或需小于12位数) | 测试账号长度不能太长,不能大于等于12(或需小于12位数) | 账号信息 | 账号位数大于等于12位数(或需小于12位数) |
| 4 | 测试账号第一位必须是大写或小写的英文字母 | 测试账号第一个字符必须是大写或小写的英文字母 | 账号信息 | 账号第一位是大写或小写的英文字母 |
| 5 | 测试账号后续位数可以是任意数量的大写或小写英文字母、下划线或数字 | 测试账号后续字符串可以是任意数量的大写或小写英文字母、下划线或数字 | 账号信息 | 账号后续位数可以包含大写或小写英文字母、下划线或数字 |

具体代码如下:

package test;

import static org.junit.jupiter.api.Assertions.assertFalse;

import static org.junit.jupiter.api.Assertions.assertTrue;

import org.junit.jupiter.api.Test;

public class AccountCheck {

//1. 空字符串测试

@Test

public void testEmptyString() {

assertFalse(check(""));

}

//2. 长度边界测试

// 长度=5 (<6),预期 false

@Test

public void testTooShort() {

assertFalse(check("abcde"));

}

// 长度=6 (合法最小值),预期 true

@Test

public void testMinimumLength() {

assertTrue(check("abcdef"));

}

// 长度=11 (合法最大值),预期 true

@Test

public void testMaximumLength() {

assertTrue(check("abcdefghijk"));

}

// 长度=12 (≥12),预期 false

@Test

public void testTooLong() {

assertFalse(check("abcdefghijkl"));

}

//3. 首字符测试

// 首字符=字母,预期 true

@Test

public void testStartWithLetter() {

assertTrue(check("user123"));

}

// 首字符=数字,预期 false

@Test

public void testStartWithDigit() {

assertFalse(check("1user23"));

}

// 首字符=_,预期 false

@Test

public void testStartWithUnderscore() {

assertFalse(check("_user23"));

}

//4. 内容字符测试

// 包含字母、数字、_,预期 true

@Test

public void testValidCharacters() {

assertTrue(check("a_123_B"));

}

@Test

public void testInvalidCharacters() {

// 包含非法字符 !,预期 false

assertFalse(check("user!23"));

// 包含空格,预期 false

assertFalse(check("user 23"));

// 包含 -,预期 false

assertFalse(check("user-23"));

}

public boolean check(String account) {

if (account.isEmpty()) {

return false;

}

int length = account.length();

if (length < 6 || length >= 12) {

return false;

}

if (account.matches("[a-zA-Z][a-zA-Z_0-9]*")) {

return true;

}

return false;

}

}

实操视频三、根据题目要求,使用工具进行功能调试。

具体代码如下:

/**

* @Description 颜色类

* @Author THINKPAD

* @Date 2025/4/9 18:35

* @Version 1.0

**/

public class ColorX {

private int red, green, blue;

public ColorX() {

red = 0;

green = 0;

blue = 0;

}

public ColorX(int red, int green, int blue) {

this.red = red;

this.green = green;

this.blue = blue;

}

@Override

public String toString() {

return String.format("%02X%02X%02X", red, green, blue);

}

}

/**

* @Description 调色板类

* @Author THINKPAD

* @Date 2025/4/9 18:36

* @Version 1.0

**/

public class Palette {

public int number; // 颜色数

private ColorX[] palette; // 颜色表

public Palette(ColorX[] palette, int number) {

this.number = number;

this.palette = palette;

}

public void addColor(ColorX color) {

this.palette[this.number] = color;

this.number+=1;

}

@Override

public String toString() {

StringBuffer sb = new StringBuffer();

sb.append(String.format("%02X", number));

for (int i = 0; i < number; i++) {

sb.append(palette[i]);

}

return sb.toString();

}

}

public class Draw {

public static void main(String[] args) {

Palette palette = new Palette(new ColorX[13],0);

palette.addColor(new ColorX(223, 32, 219));

palette.addColor(new ColorX(38, 213, 217));

palette.addColor(new ColorX(128, 187, 68));

palette.addColor(new ColorX(190, 198, 57));

palette.addColor(new ColorX(214, 50, 41));

palette.addColor(new ColorX(150, 250, 155));

palette.addColor(new ColorX(149, 202, 251));

palette.addColor(new ColorX(176, 199, 223));

palette.addColor(new ColorX(234, 166, 208));

palette.addColor(new ColorX(70, 17, 50));

palette.addColor(new ColorX(133, 86, 203));

palette.addColor(new ColorX(100, 100, 189));

palette.addColor(new ColorX(250, 184, 205));

System.out.println(palette);

}

}

  1. 运行结果为一串十六进制的大写字符串:0DDF20DB26D5D980BB44BEC639D6322996FA9B95CAFBB0C7DFEAA6D04611328556CB6464BDFAB8CD
相关推荐
Java后端的Ai之路2 小时前
Playwright是微软开源的浏览器自动化库:从入门到精通的实战指南
运维·microsoft·自动化·浏览器自动化·playwright
.生产的驴2 小时前
1Panel实战|SpringColud微服务部署生产环境一键部署Docker+Nacos+MySQL 数据定时备份 控制台 安全高效易维护
服务器·后端·mysql·spring cloud·docker·微服务·信息可视化
牛奶咖啡132 小时前
DevOps自动化运维实践_搭建UEFI网络引导的自动安装Ubuntu20及其更高版本系统
运维·自动化·devops·cloud-init·cloud-init自动应答·ubuntu24系统自动化安装·uefi网络引导自动安装部署
-Da-3 小时前
【操作系统学习日记】并发编程中的竞态条件与同步机制:互斥锁与信号量
java·服务器·javascript·数据库·系统架构
wanhengidc3 小时前
云手机与模拟器的关系
大数据·运维·服务器·分布式·智能手机
fresh hacker3 小时前
【Linux系统】通用的“系统排障”
linux·运维·服务器·网络·php
STKingA13 小时前
Win11 WSL2+Ubuntu开发环境配置全攻略
linux·运维·ubuntu
原来是猿4 小时前
关于【进程池阻塞 + 子进程未回收问题】
linux·服务器·c++
艾莉丝努力练剑4 小时前
【Linux:文件】文件基础IO进阶
linux·运维·服务器·c语言·网络·c++·centos