本博客是个人作业的记录,也会记录标准答案供我自己进行对比,想找答案的可以直接忽略我的个人作业直接看标准答案
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);
}
}
运行结果如下:
本次记录就到这~~