2021-12-20 JAVA实验七(学生信息管理)

本博客是个人作业的记录,也会记录标准答案供我自己进行对比,想找答案的可以直接忽略我的个人作业直接看标准答案

1、猜数字小程序程序填空(图形用户界面应用)

个人作业:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;

class WindowButton extends JFrame implements ActionListener {
	int number;
	JTextField inputNumber;
	JLabel feedBack;
	JButton buttonGetNumber, buttonEnter;

	WindowButton(String s) {
		super(s);
		buttonGetNumber = new JButton("得到一个随机数");
		feedBack = new JLabel("无反馈信息", JLabel.CENTER);
		feedBack.setBackground(Color.green);
		inputNumber = new JTextField("0", 5);
		buttonEnter = new JButton("确定");
		buttonEnter.addActionListener(this);// 按钮buttonEnter增加ActionEvent事件监视器,监视器为当前窗口
		buttonGetNumber.addActionListener(this); // 按钮buttonGetNumber增加ActionEvent事件监视器,监视器为当前窗口
		Box boxH1 = Box.createHorizontalBox();
		boxH1.add(new JLabel("获取1-100之间的随机数:"));
		boxH1.add(buttonGetNumber);
		Box boxH2 = Box.createHorizontalBox();
		boxH2.add(new JLabel("输入您的猜测:"));
		boxH2.add(inputNumber);
		Box boxH3 = Box.createHorizontalBox();
		boxH3.add(new JLabel("单击确定按钮:"));
		boxH3.add(buttonEnter);
		Box boxH4 = Box.createHorizontalBox();
		boxH4.add(new JLabel("反馈信息:"));
		boxH4.add(feedBack);
		Box baseBox = Box.createVerticalBox();
		baseBox.add(boxH1);
		baseBox.add(boxH2);
		baseBox.add(boxH3);
		baseBox.add(boxH4);
		Container con = getContentPane();
		con.setLayout(new FlowLayout());
		con.add(baseBox);
		con.validate();
		setBounds(120, 125, 270, 200);
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 150, 150);
		setVisible(true);
		validate();
	}

	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == buttonGetNumber) // 判断事件源是否是buttonGetNumber
		{
			number = (int) (Math.random() * 100) + 1;
		} else if (e.getSource() == buttonEnter) // 判断事件源是否是buttonEnter
		{
			int guess = 0;
			try {
				guess = Integer.parseInt(inputNumber.getText()); // 返回inputNumber中的文本
				if (guess == number) {
					feedBack.setText("猜对了!"); // feedBack设置提示文本“猜对了!”
				} else if (guess > number) {
					feedBack.setText("猜大了!");// feedBack设置提示文本“猜大了!”
					inputNumber.setText(null);
				} else if (guess < number) {
					feedBack.setText("猜小了!"); // feedBack设置提示文本“猜小了!”
					inputNumber.setText(null);
				}
			} catch (NumberFormatException event) {
				feedBack.setText("请输入数字字符");// feedBack设置提示文本“请输入数字字符”
			}
		}
	}
}

class GuessExample {
	public static void main(String args[]) {
		new WindowButton("猜数字小游戏");
	}
}

运行结果如下:


2、编写程序,实现学生信息管理,具体要求如下。

(1)学生信息包括:学号、姓名、年龄、性别、职务。

(2)系统功能包括:

1.添加学生

2.编辑学生(根据ID查询出学生后再编辑)

3.查询学生(根据姓名查询)

4.删除学生(根据ID删除)

5.退出

(3)编写测试类,测试程序功能:

1.先添加学号从本人开始往后的4名同学共5人信息;

2.编辑本人信息;

3.查询任一学号学生信息;

4.删除除本人以外其他同学信息;

5.退出

标准答案:

个人作业:(我的作业没有进行异常处理,之后有空会增加)

本程序所在包:

Student类:

package StudentSystem;
import java.util.List;

public class Student{
	private int id;
	private String name;
	private int age;
	private String sex;
	private String duty;
	Student(){
		id=0;name="";age=0;sex="";duty="";
	}
	Student(int id,String name,int age,String sex,String duty){
		super();
		this.id=id;
		this.name=name;
		this.age=age;
		this.sex=sex;
		this.duty=duty;
	}
	public int GetId() {
		return id;
	}
	public void SetId(int id) {
		this.id=id;
	}
	public String GetName() {
		return name;
	}
	public void SetName(String name) {
		this.name=name;
	}
	public int GetAge() {
		return age;
	}
	public void SetAge(int age) {
		this.age=age;
	}
	public String GetSex() {
		return sex;
	}
	public void SetSex(String sex) {
		this.sex=sex;
	}
	public String GetDuty() {
		return duty;
	}
	public void SetDuty(String duty) {
		this.duty=duty;
	}
	public String ToString() {
		return ("id:"+id+" name:"+name+" age:"+age+" sex:"+sex+" duty:"+duty);
	}
}

 Service接口:

package StudentSystem;
import java.util.List;

public interface Service{
	//添加用户信息
	void addStudent(Student student);
	//编辑用户信息
	//根据ID取学生
	Student findStudentById(int id);
	//编辑后的信息传进到服务器
	void editStudent(Student student);
	//查询用户
	List<Student>findStudentByName(String name);
	//删除用户
	void deleteStudentById(int id);
}

Service接口的实现类ServiceImpl:

package StudentSystem;
import java.io.*;
import java.util.*;
import java.util.List;

public class ServiceImpl implements Service{
		HashMap<Integer,Student> stuHashMap =new HashMap<Integer,Student>(); 
		//添加用户信息
		@Override
		public void addStudent(Student student) {
			stuHashMap.put(student.GetId(), student);
		}
		//编辑用户信息
		//根据ID取学生
		@Override
		public Student findStudentById(int id) {
			return stuHashMap.get(id);
		}
		//编辑后的信息传进到服务器
		@Override
		public void editStudent(Student student) {
			stuHashMap.put(student.GetId(), student);
		}
		//查询用户
		@Override
		public List<Student>findStudentByName(String name){
			List<Student> stuList=new ArrayList<Student>();
			for(int key:stuHashMap.keySet()) {
				if(stuHashMap.get(key).GetName().equals(name))
					stuList.add(stuHashMap.get(key));
			}
			return stuList;
		}
		//删除用户
		@Override
		public void deleteStudentById(int id) {
			stuHashMap.remove(id);
		}
}

Views接口:

package StudentSystem;
import java.util.List;

public interface Views{
	//增加用户界面
	Student showAddStuView();
	void showAddStudentView(Student student);
	//修改用户界面
	int showInputStuIdView();
	Student showEditStuView(Student student);
	void showEditStuResultView(Student student);
	//查询用户界面;根据(名字)查询
	String showSearchStuByNameView();
	void showStuResultView(List<Student>students);
	//删除用户界面;通过ID删除
	void showDeleteStuResultView(int id);
	//显示主菜单
	int showMainMenu();
}

Views接口的实现类ViewsImpl:

package StudentSystem;

import java.io.*;
import java.util.*;
import java.util.List;
import java.util.Scanner;

public class ViewsImpl extends ServiceImpl implements Views {
	// 增加用户界面
	@Override
	public Student showAddStuView() {
		Student stu = new Student();
		Scanner scanner = new Scanner(System.in);
		System.out.print("请输入学号:");
		stu.SetId(scanner.nextInt());
		System.out.print("请输入姓名:");
		stu.SetName(scanner.next());
		System.out.print("请输入年龄:");
		stu.SetAge(scanner.nextInt());
		System.out.print("请输入性别:");
		stu.SetSex(scanner.next());
		System.out.print("请输入职务:");
		stu.SetDuty(scanner.next());
		return stu;
	}

	@Override
	public void showAddStudentView(Student student) {
		addStudent(student);
		System.out.println("添加的学生信息为:");
		System.out.println(student.ToString());
	}

	// 修改用户界面
	@Override
	public int showInputStuIdView() {
		Scanner scanner = new Scanner(System.in);
		System.out.print("请输入学号:");
		return scanner.nextInt();
	}

	@Override
	public Student showEditStuView(Student student) {
		System.out.print("请输入修改项(1:学号2:姓名3:年龄4:性别5:职务):");
		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();
		switch (n) {
		case 1:
			System.out.print("请输入学号:");
			student.SetId(scanner.nextInt());
			break;
		case 2:
			System.out.print("请输入姓名:");
			student.SetName(scanner.next());
			break;
		case 3:
			System.out.print("请输入年龄:");
			student.SetAge(scanner.nextInt());
			break;
		case 4:
			System.out.print("请输入性别:");
			student.SetSex(scanner.next());
			break;
		case 5:
			System.out.print("请输入职务:");
			student.SetDuty(scanner.next());
			break;
		}
		return student;

	}

	@Override
	public void showEditStuResultView(Student student) {
		System.out.println("修改后的学生信息为:");
		System.out.println(student.ToString());
	}

	// 查询用户界面;根据(名字)查询
	@Override
	public String showSearchStuByNameView() {
		System.out.print("请输入姓名:");
		Scanner scanner = new Scanner(System.in);
		String name = scanner.nextLine();
		return name;
	}

	@Override
	public void showStuResultView(List<Student> students) {
		for (int i = 0; i < students.size(); i++) {
			System.out.println(students.get(i).ToString());
		}
	}

	// 删除用户界面;通过ID删除
	@Override
	public void showDeleteStuResultView(int id) {
		deleteStudentById(id);
		System.out.println("删除成功!");
	}

	// 显示主菜单
	@Override
	public int showMainMenu() {
		Scanner scanner = new Scanner(System.in);
		int n = 0;
		System.out.println("-----------------------");
		System.out.println("学生信息管理系统");
		System.out.println("1:添加学生");
		System.out.println("2:编辑学生");
		System.out.println("3:查询学生");
		System.out.println("4:删除学生");
		System.out.println("5:退出系统");
		System.out.println("-----------------------");
		System.out.print("请输入要进行的操作序号:");
		n = scanner.nextInt();
		return n;
	}
}

TestStudent类:

package StudentSystem;

import java.io.*;
import java.util.*;
import java.util.List;
import java.util.Scanner;

public class TestStudent {
	public static void main(String args[]) {
		ViewsImpl student = new ViewsImpl();
		int n = 0;
		do {
			n = student.showMainMenu();
			switch (n) {
			case 1:
				student.showAddStudentView(student.showAddStuView());
				break;
			case 2:
				int id = student.showInputStuIdView();
				student.showEditStuResultView(student.showEditStuView(student.findStudentById(id)));
				break;
			case 3:
				String name = student.showSearchStuByNameView();
				student.showStuResultView(student.findStudentByName(name));
				break;
			case 4:
				int id2 = student.showInputStuIdView();
				student.showDeleteStuResultView(id2);
				break;
			default:
				break;
			}
		} while (n != 5);
	}
}

运行结果如下:

 

 

 

 

 


本次记录就到这~~ 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值