一、 java模拟微博注册程序
要求使用HashSet集合实现。假设当用户输入用户名、密码、确认密码、生日(格式yyyy-mm-dd)、手机号码(长度11位,并且以13、15、17、18、19为开头)、邮箱(包含**@**符号)信息后、判断信息输入是否正确,若正确,则验证用户是否重复注册,如果不重复则显示注册成功,否则显示用户重复。
整体思路:分为三个类
1、 用户类:用户基本信息 有参无参构造方法 hashCode()和equals()方法的重写
public int hashCode(){
return name.hashCode();
}
public boolean equals(Object obj){
if(this==obj){
return true;
}
if(!(obj instanceof User)){
return false;
}
User u=(User)obj;
return name.equals(u.name);
}
2、用户信息验证类:定义用户基本信息数据USER_DATA
public static HashSet<User> USER_DATA;
构造方法 把用户基本信息数据导入
public Check(HashSet<User> data){
super();
USER_DATA=data;
}
写了一个checkAction()方法验证所有信息
密码 生日 手机号 邮箱
public void checkAction(String name,String pwd,String rePwd,String birthday,String telNum,String email)
并记录下成功的状态state
调用User的有参构造方法,如果成功,就直接添加进用户
User user=new User(name,pwd,birthday,telNum,email);
if(!USER_DATA.add(user)){
System.out.println("用户重复");
state=2;
}
if(state==1){
System.out.println("注册成功");
}
3、用户操作类:
建立集合 存入用户数据
public static HashSet<User> USER_DATA=new HashSet<User>();
相应的输入信息提示:用户名,密码等
初始化信息 initData()
private static void initData() {
User user1=new User("张三","zq,123","1998-04-23","18608681193","zhangsan@itcast.cn");
User user2=new User("周琦","zz,123","2000-09-12","18618121193","zhouqi@itcast.cn");
User user3=new User("张正","zz,123","1993-07-29","18810319240","zhangzheng@itcast.cn");
USER_DATA.add(user1);
USER_DATA.add(user2);
USER_DATA.add(user3);
}
二、KTV点歌系统
import java.util.*;
public class Test {
public static void main(String[] args) {
System.out.println("------------------欢迎来到点歌系统----------------");
System.out.println("0.添加歌曲至列表");
System.out.println("1.将歌曲置顶");
System.out.println("2.将歌曲前移一位");
System.out.println("3.退出");
LinkedList<String> list = new LinkedList<String>(); // 创建歌曲列表
addMusicList(list); // 添加一部分歌曲至歌曲列表
System.out.println("当前歌曲列表:" + list);
while (true) {
System.out.println("请输入要执行的操作序号");
Scanner sc = new Scanner(System.in);
String str=sc.next();
// 执行对应的功能
switch (str) {
case "0": // 添加歌曲至列表
addSong(list);
break;
case "1": // 将歌曲置顶
setTop(list);
break;
case "2": // 将歌曲前移一位
setBefore(list);
break;
case "3": // 退出
exit();
break;
default:
System.out.println("功能选择有误,请输入正确的功能序号!!");
break;
}
printList(list);
}
}
//初始化添加
private static void addMusicList(LinkedList<String> list) {
String[] strArr={"我是一个粉刷匠","卖报纸","拔萝卜","小兔子乖乖","小跳蛙"};
for(int i=0;i<strArr.length;i++){
list.add(strArr[i]);
}
/*
list.add("我是一个粉刷匠");
list.add("卖报纸");
list.add("拔萝卜");
list.add("小兔子乖乖");
list.add("小跳蛙");
*/
}
//打印歌单
public static void printList(LinkedList<String> list){
System.out.println("当前歌单为:");
Iterator<String> it=list.iterator();
while(it.hasNext()){
System.out.print(it.next()+" ");
}
System.out.println("\n");
}
//添加
private static void addSong(LinkedList<String> list) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要添加的歌曲名称:");
String str = sc.next();
list.add(str); // 将歌曲添加到列表最后
System.out.println("已添加歌曲:"+str);
}
//置顶
private static void setTop(LinkedList<String> list) {
Scanner sc=new Scanner(System.in);
System.out.print("请输入要置顶的歌曲名称:");
String str=sc.next();
int i=list.indexOf(str);//返回下标
if(i<0)
System.out.println("当前列表没有这首歌曲");
else {
list.remove(str);
list.addFirst(str);
}
}
//提前一位
private static void setBefore(LinkedList<String> list) {
Scanner sc=new Scanner(System.in);
System.out.print("请输入前移的歌曲名称:");
String str=sc.next();
int i=list.indexOf(str);//返回一个下标
if(i<0)
System.out.println("当前列表没有这首歌");
else if(i==0)
System.out.println("当前歌曲"+str+"已经在最前面");
else {
list.remove(str);
list.add(i-1, str);
}
}
//退出
private static void exit() {
System.out.println("您已退出点歌系统");
System.exit(0);
}
}
三、 java模拟银行登录程序
1.用户类 基本信息 有参无参构造方法 toString()重写
2.银行类 账户金额存入、取出和查询操作
定义初始金额和User
private int account;
private User user;
3.测试类
创建集合
public static HashMap<String,User> users=new HashMap<String,User>();
信息初始化
User u1=new User("1001","123456","黎明","13212345670",1000);
User u2=new User("1002","234576","黑夜","18215345670",1200);
User u3=new User("1003","103436","破晓","15512345670",1500);
输出结果:
四、小练习
选择合适的Map集合保存5位学员的学号和姓名,然后按照学号的自然存储顺序的倒序将这些键值对一一打印出来。
import java.util.*;
public class Test {
public static void main(String[] args) {
TreeMap<String,String> map=new TreeMap<String,String>();
map.put("1", "Lucy");
map.put("4", "Aimee");
map.put("5", "Amanda");
map.put("3", "Smith");
map.put("2", "John");
Set<String> set=map.keySet();
Iterator<String> it=set.iterator();
while(it.hasNext()){
String key=it.next();
System.out.println(key+":"+map.get(key));
}
}
}