编写一个用户类(Sysuser),属性包括用户名、真实姓名、年龄、出生日期、密码,类方法中包含单独修改用户年龄、判断用户名和密码、显示用户信息功能,在用户测试类中(TestSysuser),根据用户输

#本关任务:

编写一个用户类(Sysuser),属性包括用户名、真实姓名、年龄、出生日期、密码,类方法中包含单独修改用户年龄、判断用户名和密码、显示用户信息功能,在用户测试类中(TestSysuser),根据用户输入的数据初始化用户类,显示菜单:

1.修改用户年龄

2.判断用户密码

3.显示用户信息

4.退出

根据输入的数字进入相关功能.

例如输入2后,

系统提示

请输入用户名:
请输入密码:
根据用户输入的用户名和密码判断是否正确,如果正确输出

登录成功
否则提示

用户名或者密码错误
修改年龄提示为:

请输入年龄:
显示用户信息模板:

用户名:***
真实姓名:***
年龄:***
出生日期:***
密码:***
每运行完一个功能,重新显示菜单,直到用户输入4退出。

#测试数据

按照用户名、真实姓名、年龄、出生日期、密码(全为数字)顺序输入数据:username 张三 24 2001-10-01 123456

1.修改用户年龄

2.判断用户密码

3.显示用户信息

4.退出

2

请输入用户名:username

请输入密码:123456

预期输出:

登录成功

1.修改用户年龄

2.判断用户密码

3.显示用户信息

4.退出

4

import java.util.Scanner;
public class Sysuser{
String username,name,bir,password,year;
//判断用户密码
boolean un(String username,String password)
{
if(this.password.equals(password))//对于字符串用equals()方法,表示内容相同,但是不用
{System.out.println("登录成功");//==,因为两个password虽然内容相同,但指向的是不同的对象,所以==返回值是false
	System.out.println("1.修改用户年龄");
	System.out.println("2.判断用户密码");
	System.out.println("3.显示用户信息");
	System.out.println("4.退出");
	return true;}
else
{System.out.println("用户名或者密码错误");
	System.out.println("1.修改用户年龄");
	System.out.println("2.判断用户密码");
	System.out.println("3.显示用户信息");
	System.out.println("4.退出");
	return false;}
}
//显示用户信息
void show()
{
	System.out.println("用户名:"+this.username);
	System.out.println("真实姓名:"+this.name);
	System.out.println("年龄:"+this.year);
	System.out.println("出生日期:"+this.bir);
	System.out.println("密码:"+this.password);
	System.out.println("1.修改用户年龄");
	System.out.println("2.判断用户密码");
	System.out.println("3.显示用户信息");
	System.out.println("4.退出");
}
//退出

//修改用户年龄
void modiyear(String year)
{
this.year=year;
System.out.println("1.修改用户年龄");
System.out.println("2.判断用户密码");
System.out.println("3.显示用户信息");
System.out.println("4.退出");
}
//构造函数
Sysuser(){};
//
Sysuser(String username,String name,String bir,String password,String year){
	this.username=username;
	this.name=name;
	this.bir=bir;
	this.password=password;
	this.year=year;
}
}
import java.util.Scanner; 
public class TestSysuser{
//按照要求编写Sysuser类实例化及相关测试功能。
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
System.out.println("按照用户名、真实姓名、年龄、出生日期、密码(全为数字)顺序输入数据:");
String username=sc.next();
String name=sc.next();
String year=sc.next();
String bir=sc.next();
String password=sc.next(); 
System.out.println("1.修改用户年龄");
System.out.println("2.判断用户密码");
System.out.println("3.显示用户信息");
System.out.println("4.退出");
String num=sc.next();
Sysuser syc=new Sysuser(username,name,bir,password,year);
while(!num.equals("4"))
{
	if(num.equals("1"))
{
	System.out.println("请输入年龄:");
    String year2=sc.next();
	syc.modiyear(year2);
	num=sc.next();
	continue;
}
if(num.equals("2"))
{
	System.out.println("请输入用户名:");
	String username2=sc.next();
	System.out.println("请输入密码:");
	String password2=sc.next();
	syc.un(username2,password2);
	num=sc.next();
	continue;
}
if(num.equals("3"))
{
	syc.show();
	num=sc.next();
	continue;
}
}
}}

#运行结果

在这里插入图片描述

#注意事项

1.其实这题的思路很简单,主要问题是不同类之间的传参问题要用到this关键字,其次是针对多次输入问题,只需要在含有静态主函数的类中进行输入操作(我居然破天荒在另一个类中也写了输入,结果多调1个小时),然后传参到另一个类中,完成对数据的各项操作,最后是字符串的比较要用到equals()方法。

Java中,你可以创建一个名为`UserDAO`的接口,该接口定义一个`insert`方法用于插入`SysUser`的对象。同时,为了实现这个接口,可以创建一个具体的如`JdbcUserDAO`,使用数据库操作来完成插入。 首先,我们来定义`UserDAO`接口: ```java import java.util.UUID; public interface UserDAO { void insert(SysUser user); } // SysUser (假设它有必要的属性构造函数) public class SysUser { private UUID id; private String name; private String email; // 构造函数, getters setters... public SysUser(String name, String email) { this.id = UUID.randomUUID(); this.name = name; this.email = email; } // getter and setter methods... } ``` 接着,我们实现`UserDAO`接口在`JdbcUserDAO`中,这里以JDBC为例: ```java import java.sql.Connection; import java.sql.PreparedStatement; public class JdbcUserDAO implements UserDAO { @Override public void insert(SysUser user) { String sql = "INSERT INTO users (name, email) VALUES (?, ?)"; try (Connection connection = dataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql)) { preparedStatement.setString(1, user.getName()); preparedStatement.setString(2, user.getEmail()); preparedStatement.executeUpdate(); // 执行插入操作 } catch (SQLException e) { // 处理SQL异常 e.printStackTrace(); } } // 需要注入的DataSource对象或其他依赖项 private DataSource dataSource; } ``` 在这个例子中,`JdbcUserDAO`实现了`UserDAO`接口中的`insert`方法,将`SysUser`实例的数据插入到`users`表中。当然,实际生产环境中可能会包含更多的错误处理数据验证。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值