芒果核

导航

微头条6.4

Admin
public class Admin extends User {
public Admin(String username, String password) {
super(username, password);
}

@Override
public void showMenu() {
System.out.println("\n=管理员菜单=");
System.out.println("1.发布新闻");
System.out.println("2.查看新闻列表");
System.out.println("3.查看新闻详情");
System.out.println("4.删除任意新闻");
System.out.println("5.退出登录");
}

//管理员独有删除新闻
public void deleteNews(int index){
}
}

User
public class User {
private String username;
private String password;

public User(String username, String password) {
this.username = username;
this.password = password;
}

public void showMenu() {
System.out.println("\n=普通用户菜单=");
System.out.println("1.发布新闻");
System.out.println("2.查看新闻列表");
System.out.println("3.查看新闻详情");
System.out.println("5.退出登录");
}

public String getUsername() {
return username;
}

Main
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
static Scanner scanner = new Scanner(System.in);
static List userList = new ArrayList<>();
static User currentUser;
// 全局新闻容器,存所有新闻正文
static List newsList = new ArrayList<>();

public static void main(String[] args) {
//初始化默认账号
userList.add(new User("user1", "123"));
userList.add(new Admin("admin", "admin123"));

outer:while (true) {
System.out.println("===== 微头条控制台版 =====");
System.out.println("0.退出系统");
System.out.println("1.用户登录");
System.out.println("2.用户注册");
System.out.print("请输入功能选择:");
int opt = scanner.nextInt();
scanner.nextLine();

switch (opt){
case 0:
System.out.println("系统退出,再见!");
break outer;
case 1:
login();
//登录后菜单循环
inner:while (true) {
currentUser.showMenu();
System.out.print("请输入您的选择:");
int choice = scanner.nextInt();
scanner.nextLine();

switch (choice) {
case 1:
publishNews(); //1发布新闻
break;
case 2:
showNewsList();//2查看列表
break;
case 3:
showNewsDetail();//3查看详情
break;
case 4:
//4删除:仅管理员可用
if(currentUser instanceof Admin){
deleteNews();
}else{
System.out.println("您没有删除权限!");
}
break;
case 5:
//5退出登录
currentUser = null;
System.out.println("已退出登录");
break inner;
default:
System.out.println("无效选项!");
}
}
break;
case 2:
register();
break;
default:
System.out.println("输入错误!");
}
}
scanner.close();
}

//【注册方法 老师PPT原版】
static void register() {
System.out.print("用户名: ");
String name = scanner.nextLine();
for (User u : userList) {
if (u.getUsername().equals(name)) {
System.out.println("用户名已存在!");
return;
}
}
System.out.print("密码: ");
String pwd = scanner.nextLine();

System.out.print("请选择角色(1.普通用户 2.管理员): ");
int role = scanner.nextInt();
scanner.nextLine();

User user;
if (role == 2) {
user = new Admin(name, pwd);
} else {
user = new User(name, pwd);
}
userList.add(user);
System.out.println("注册成功!");
}

//登录
static void login() {
System.out.print("用户名:");
String name = scanner.nextLine();
System.out.print("密码:");
String pwd = scanner.nextLine();

for (User u : userList) {
if(u.getUsername().equals(name) && u.getPassword().equals(pwd)){
currentUser = u;
System.out.println("登录成功!");
return;
}
}
System.out.println("账号密码错误!");
}

//1.发布新闻
static void publishNews(){
System.out.print("请输入新闻内容:");
String content = scanner.nextLine();
newsList.add(content);
System.out.println("✅新闻发布成功!");
}

//2.查看全部新闻列表
static void showNewsList(){
if(newsList.isEmpty()){
System.out.println("暂无任何新闻!");
return;
}
System.out.println("\n新闻列表");
for (int i = 0; i < newsList.size(); i++) {
System.out.println((i+1)+". "+newsList.get(i));
}
}

//3.查看单条新闻详情
static void showNewsDetail(){
if(newsList.isEmpty()){
System.out.println("暂无新闻!");
return;
}
System.out.print("输入要查看的新闻序号:");
int num = scanner.nextInt();
scanner.nextLine();
int idx = num - 1;
if(idx >=0 && idx < newsList.size()){
System.out.println("新闻详情:"+newsList.get(idx));
}else{
System.out.println("序号不存在!");
}
}

//4.管理员删除新闻
static void deleteNews(){
showNewsList();
if(newsList.isEmpty()) return;
System.out.print("输入要删除的新闻序号:");
int num = scanner.nextInt();
scanner.nextLine();
int idx = num -1;
if(idx >=0 && idx < newsList.size()){
newsList.remove(idx);
System.out.println("✅删除成功!");
}else{
System.out.println("序号错误!");
}
}
}

posted on 2026-06-22 14:34  芒果核  阅读(1)  评论(0)    收藏  举报