用java编写能简单实现注册、登录、查课、退出的在线选课系统不需要数据库
时间: 2023-12-03 17:04:54 浏览: 61
基于Java开发语言的网上选课系统
以下是一个简单的在线选课系统的Java代码示例,使用了基本的控制流程和文件存储,不需要数据库:
```java
import java.util.*;
import java.io.*;
public class OnlineCourseSystem {
private static final String FILENAME = "users.txt"; // 存储用户信息的文件名
private static final String COURSES = "courses.txt"; // 存储课程信息的文件名
private static ArrayList<User> users = new ArrayList<>(); // 用户列表
private static ArrayList<Course> courses = new ArrayList<>(); // 课程列表
private static User currentUser = null; // 当前登录的用户
public static void main(String[] args) {
loadUsers(); // 从文件中加载用户信息
loadCourses(); // 从文件中加载课程信息
Scanner input = new Scanner(System.in);
while (true) {
System.out.println("欢迎使用在线选课系统!");
if (currentUser == null) {
System.out.println("1. 注册\n2. 登录\n3. 退出");
String choice = input.nextLine();
if (choice.equals("1")) {
register(input);
} else if (choice.equals("2")) {
login(input);
} else if (choice.equals("3")) {
break;
} else {
System.out.println("无效的选择,请重新输入!");
}
} else {
System.out.println("1. 查课\n2. 退出");
String choice = input.nextLine();
if (choice.equals("1")) {
printCourses();
} else if (choice.equals("2")) {
currentUser = null;
} else {
System.out.println("无效的选择,请重新输入!");
}
}
}
saveUsers(); // 将用户信息保存到文件
}
// 加载用户信息
private static void loadUsers() {
try {
File file = new File(FILENAME);
if (file.exists()) {
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
String[] parts = scanner.nextLine().split(",");
users.add(new User(parts[0], parts[1]));
}
scanner.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
// 加载课程信息
private static void loadCourses() {
try {
File file = new File(COURSES);
if (file.exists()) {
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
String[] parts = scanner.nextLine().split(",");
courses.add(new Course(parts[0], parts[1]));
}
scanner.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
// 注册新用户
private static void register(Scanner input) {
System.out.print("请输入用户名:");
String username = input.nextLine();
if (findUser(username) != null) {
System.out.println("用户名已存在,请重新输入!");
return;
}
System.out.print("请输入密码:");
String password = input.nextLine();
users.add(new User(username, password));
System.out.println("注册成功!");
}
// 登录
private static void login(Scanner input) {
System.out.print("请输入用户名:");
String username = input.nextLine();
User user = findUser(username);
if (user == null) {
System.out.println("用户名不存在,请重新输入!");
return;
}
System.out.print("请输入密码:");
String password = input.nextLine();
if (!user.getPassword().equals(password)) {
System.out.println("密码错误,请重新输入!");
return;
}
currentUser = user;
System.out.println("登录成功!");
}
// 查找用户
private static User findUser(String username) {
for (User user : users) {
if (user.getUsername().equals(username)) {
return user;
}
}
return null;
}
// 打印课程
private static void printCourses() {
System.out.println("所有课程如下:");
for (Course course : courses) {
System.out.println(course.getName() + " - " + course.getDescription());
}
System.out.println();
}
// 保存用户信息到文件
private static void saveUsers() {
try {
FileWriter writer = new FileWriter(FILENAME);
for (User user : users) {
writer.write(user.getUsername() + "," + user.getPassword() + "\n");
}
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// 用户类
private static class User {
private String username;
private String password;
public User(String username, String password) {
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
}
// 课程类
private static class Course {
private String name;
private String description;
public Course(String name, String description) {
this.name = name;
this.description = description;
}
public String getName() {
return name;
}
public String getDescription() {
return description;
}
}
}
```
该程序使用了一个内部类来表示用户和课程,并使用了一个ArrayList来保存所有的用户和课程。用户信息和课程信息分别存储在文件中,通过loadUsers()和loadCourses()方法从文件中读取信息,并通过saveUsers()方法将用户信息保存到文件。程序的主要逻辑在main()方法中,根据当前是否有用户登录来显示不同的选项,并根据用户的选择执行相应的操作。程序使用了基本的控制流和文件读写操作,可以作为一个简单的在线选课系统的模板。
阅读全文