java学生管理系统用框架_Java框架_简单实现学生系统管理

本文介绍了一个使用Java实现的用户交互程序,该程序允许用户进行增删查改人员信息的操作。程序通过实现Serializable接口实现对象的持久化,将Person类实例存储到Person.ser文件中。用户可以选择增加人员、浏览所有人员信息或修改现有信息。程序使用循环结构持续运行,直到用户选择退出。程序结构清晰,包含了Input和Output方法以处理用户输入和文件读写。
摘要由CSDN通过智能技术生成

7437a526933380f7671b02130e825513.png--------图1--------

然后程序等待用户输入

如果用户选择1,那么进入增加人员的信息(

下面来分析增加人员的过程:

首先,要新建一个Person类,当用户选择1的时候就实例化Person类,并将Person进行初始化,这并没有结束此次的操作,最后的操作是将Person类存储到文件中,这个文件名我定义为Person.ser。这样这个过程才算结束,但这里的结束并不是程序结束,而是完成了1操作,整个程序并没有结束,除非用户选择4退出程序,否则程序一直执行。

)

如果用户选择2,那么程序查看所有人员的信息(

在这个过程中,程序要将Person.ser文件中的内容写入到程序中,并打印到控制台显示,执行完这一步之后,程序返回上一步操作,在这里程序仍然没有退出。

)

如果用户选择3,程序进入的是对信息进行修改的页面(

这个过程相对来说比较复杂,因为这个过程涉及到Person.ser文件内容的写入和写出过程,也就是先把文件中的内容输出到控制台显示当前用户的信息,等待用户输入新的信息,当用户输入信息后,要将原来的信息进行覆盖,也就是将信息从新写到Person.ser中——这里我们仅仅考虑Person.ser中只有一个Person的情况。

)

通过以上分析,我们可以很清楚的知道,这个程序需要一个循环来做支撑,并且这个循环每执行一次都要输出图1的内容。

首先新建一个Persion类

package Object;

import java.io.Serializable;

//要想将类存储在文件中必须实现Serializable接口!!!

public class Person implements Serializable{

private String name;

private int age;

private float score;

public Person(String name, int age, float score){

this.name = name;

this.age = age;

this.score = score;

}

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 float getScore() {

return score;

}

public void setScore(float score) {

this.score = score;

}

public String toString(){

return "NAME: " + this.name + " AGE: " + this.age + " SCORE: " + this.score;

}

}

Text类中包含了程序中所有的text信息

package Text;

/**

*

*   这个类是用来输出整个程序中要输出的所有的Text信息!!!

*   Text类中没有任何属性,只有几个输出文本的方法!!!

*

*

* */

public class Text {

//这个方法用来显示用户运行程序时的信息

public String mainText(){

return "\n\t\t1.增加人员的信息" + "\n\t\t2.浏览人员的信息" + "\n\t\t3.修改人员的信息" + "\n\t\t4.退出系统" + "\n\n请选择要使用的操作:";

}

//输入有误信息

public String errText(){

return "您所输入的信息有误,请重新输入!!!";

}

//增加信息显示

public String addText(){

return "请输入您要增加的学生的信息";

}

public String addName(){

return "请输入学生的姓名:";

}

public String addAge(){

return "请输入学生的年龄:";

}

public String addScore(){

return "请输入学生的成绩:";

}

//修改的内容Modify

public String modifyText(){

return "请输入您要修改的内容";

}

public String edd(){

return "操作成功";

}

}

Methods类中包含了所有的方法:

package Methods;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.util.Scanner;

import Object.Person;

import Text.Text;

/**

*

*   这个方法中包括了整个程序所要用到的方法,包括:

*    从控制台写入(Input)信息方法;

*    向控制台写出(Output)信息的方法;

*    基本上包含了所有的方法

*

*

* */

public class Methods {

private static Person obj;

//用户从控制台向程序写入数据,用来选择用户想要的操作

public int InputSelect(){

Scanner inputSelect = new Scanner(System.in);

int select = inputSelect.nextInt();

return select;

}

//增加Person信息方法

public Person InputPerson(){

Text text = new Text();

Scanner str = new Scanner(System.in);

System.out.println(text.addText() + "\n" + text.addName());

String name = str.next();

System.out.println(text.addAge());

int age = str.nextInt();

System.out.println(text.addScore());

float score = str.nextFloat();

Person p = new Person(name, age, score);

return p;

}

//将类从程序中写出,写到文件中

public void Output(Person p) throws Exception{

ObjectOutputStream out = null;

out = new ObjectOutputStream(new FileOutputStream(new File("e:\\person.ser")));

out.writeObject(p);

out.close();

}

//从文件中读入信息

public Person Output() throws Exception{

ObjectInputStream in = null;

in = new ObjectInputStream(new FileInputStream(new File("e:\\person.ser")));

obj = (Person)in.readObject();

Person p = obj;

in.close();

return p;

}

//修改类的方法

public void ModifyPerson() throws Exception{

Text text = new Text();

Scanner str = new Scanner(System.in);

//先从文件中读入信息

Person p = this.Output();

System.out.println(text.modifyText());

System.out.println("修改前的内容为: \n" + p);

this.Output(this.InputPerson());

text.edd();

}

}

Main用来调用这些方法,完成想要的结果

package Main;

import Methods.Methods;

import Object.Person;

import Text.Text;

/**

*

*   这里是程序的入口,当执行这个程序的时候首先打印了图1的内容,为了表现面向对象的思想,我将程序中首先要打印的信息

*   放入到一个Text类中。

*   因为仅仅当用户选择了退出程序的时候才能退出程序,所以这个程序必须用一个‘死’循环,只有当用户选择了4的时候,用户

*   才退出程序!

*

* */

public class Main {

final static Text text = new Text();

static Methods m = new Methods();

public static void main(String[] args) throws Exception{

boolean mainCycle = true;

//有一个循序

while(mainCycle){

//只有当用户输入的是4的时候程序才退出循环

System.out.println( text.mainText());

//捕获控制台用户输入的选择信息

int select = m.InputSelect();

if(select == 4)//这里的判断是——用户输入的信息等于4的时候程序结束循环

{

mainCycle = false;

}

else

{

switch(select)//用户选择的数据

{

case 1 : {

Person pp = m.InputPerson();

m.Output(pp);

System.out.println(text.edd());

{}//利用输入方法

};break;//用户增加人员信息方法

case 2 : {

System.out.println(m.Output());

};break;//浏览人员的信息

case 3 : {

Person p = m.Output();

System.out.println(text.modifyText());

p = m.InputPerson();

m.Output(p);

System.out.println(text.edd());

};break;//修改人员的信息

default : {

System.out.println(text.errText());

}

}

}

}

}

}

这个程序的运行结果如下:

62d2fae419a6c575b92b2fcd8486a32d.png

e2f4e6855adf38be9d176a8ad696f5c3.png

107df521a44b2124783ca2c4780309d6.png

posted on 2010-11-06 17:15 tovep 阅读(295) 评论(0)  编辑  收藏

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值