各位大虾,请大家给我指点指点:
我目前在做一个学生信息管理系统,功能有
增加、查询、修改、删除、排序、全部删除、作者信息、退出系统
由于是初学java目前做的这个项目还没有配置数据库,我想把所有学生的信息都存储在文件中,这样数据不会在增删改后下次打开后没有保存丢失了,就是想给他一个保存地。
请问各位,我该怎么做?
感激不尽
我目前在做一个学生信息管理系统,功能有
增加、查询、修改、删除、排序、全部删除、作者信息、退出系统
由于是初学java目前做的这个项目还没有配置数据库,我想把所有学生的信息都存储在文件中,这样数据不会在增删改后下次打开后没有保存丢失了,就是想给他一个保存地。
请问各位,我该怎么做?
感激不尽
package com.action;
import java.util.*;
import java.io.*;
class Student
{
String stu_num;
String stu_name;
int stu_score;
String stu_sex;
}class Manager
{
Student[] st=new Student[20];
//*****************************************************************************欢迎界面
public void wellcome()
{
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(" 6: 打印学生信息");
System.out.println(" 7: 删除全部学生信息");
System.out.println(" 8: 作者信息");
System.out.println(" 9: 退出系统");
System.out.println();
System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
} //***********************************************************************************
public int count_stu()//统计学生的个数
{
int count=0;
for(int i=0;i<20;i++)
{
if(st[i].stu_num!=null)
{
count++;
}
} return count;
}
//*********************************************************************************** public void add_Student(String num,String name,String sex,int score) //1 初始化
{
int count=count_stu();
st[count].stu_num=num;
st[count].stu_name=name;
st[count].stu_sex=sex;
st[count].stu_score=score;
//System.out.println(st[count].stu_num+" "+st[count].stu_name+" "+st[count].stu_sex+" "+st[count].stu_score);
/*
for (int i=0;i<count;i++ )
{
System.out.println(st[i].stu_num+" "+st[i].stu_name+" "+st[i].stu_sex+" "+st[i].stu_score);
}
*/
}
//*********************************************************************************
public void add_Student_Message() //1 增加学生信息
{
boolean flag=true;
String yadd;
System.out.println("确认要添加学生信息吗?(y/n)");
BufferedReader keyin=new BufferedReader(new InputStreamReader(System.in));
try
{
yadd=keyin.readLine();
while (yadd.equals("y")||yadd.equals("n"))
{
if(yadd.equals("y"))
{
try
{
System.out.println("请输入要添加学生的学号:");
String num=keyin.readLine();
int count=count_stu();
//int n=Integer.parseInt(num);
for(int i=0;i<count;i++)
{
if(!(st[i].stu_num.equals(num)))
{
flag=true;
}
else
{
flag=false;
break;
}
}
//System.out.println("flag为"+flag);
if(flag==true)
{
System.out.println("请输入添加学生的姓名:");
String name=keyin.readLine(); System.out.println("请输入添加学生的姓别:");
String sex=keyin.readLine();
System.out.println("请输入添加学生的成绩:");
int score=Integer.parseInt(keyin.readLine());
add_Student(num,name,sex,score);
System.out.println("学号 姓名 姓别 成绩");
System.out.println(st[count].stu_num+" "+st[count].stu_name+" "+st[count].stu_sex+" "+st[count].stu_score);//增加一个学生后,i由count-1变成了count。
System.out.println("学生信息添加成功!");
} if(flag==false)
{
System.out.println("学号重复!");
}
}
catch(NumberFormatException e)
{
e.printStackTrace();
System.out.println("你输入的成绩格式不正确!");
}
}
else
{
System.out.println("不添加学生信息!");
break;
} System.out.println("确认还需要添加学生信息吗?(y/n)");
yadd=keyin.readLine();
}
}
catch(Exception e)
{
e.printStackTrace();
}
int count=count_stu();
System.out.println("添加学生信息后,全部学生信息为:");
for (int i=0;i<count;i++ )//打印所有学生信息
{
System.out.println(st[i].stu_num+" "+st[i].stu_name+" "+st[i].stu_sex+" "+st[i].stu_score);
}
author_Message();
}
//************************************************************************************
public void list_Student_Message() //2 查询学生信息
{
boolean flag=true;
String input;
String in;
System.out.println("确认要查询学生信息吗?(y/n)");
BufferedReader keyin=new BufferedReader(new InputStreamReader(System.in));
try
{
input=keyin.readLine();
while( input.equals("y")||input.equals("n"))
{
if(input.equals("y"))
{
int count=count_stu();
System.out.println("请输入学生学号:");
in=keyin.readLine();
for (int i=0;i<count;i++ )//判断输入的学号是否存在
{
if(st[i].stu_num.equals(in))
{
flag=true;
break;
}
else
{
flag=false;
}
}
//System.out.println("flag为"+flag); if(flag==true)
{
int h=Integer.parseInt(in);
System.out.println(h+"号学生信息为:");
System.out.println(st[h-1].stu_num+" "+st[h-1].stu_name+" "+st[h-1].stu_sex+" "+st[h-1].stu_score);
}
else if(flag==false)
{
System.out.println("输入学号不存在!");
} }
else if(input.equals("n"))
{
System.out.println("不查询学生信息!");
break;
} System.out.println("确认还需要查询学生信息吗?(y/n)");
input=keyin.readLine();
}
} catch(Exception e)
{
e.printStackTrace();
} author_Message();
}//***************************************************************************
public void delete_Student_Message()//3 删除学生信息
{
boolean flag=true;
String input;
String in;
System.out.println("确认要删除学生信息吗?(y/n)");
BufferedReader keyin=new BufferedReader(new InputStreamReader(System.in));
try
{
input=keyin.readLine();
while( input.equals("y")||input.equals("n"))
{
if(input.equals("y"))
{
System.out.println("请输入要删除学生的学号:");
in=keyin.readLine();
int count=count_stu();
for (int i=0;i<count;i++ )//判断输入的学号是否存在
{
if(st[i].stu_num.equals(in))
{
flag=true;
break;
}
else
{
flag=false;
}
}
if(flag==true)
{
if(!(in.equals(st[count-1].stu_num)))
{
int c=Integer.parseInt(in);
for (int i=c-1;i<count-1;i++ )
{
st[i]=st[i+1];
}
count=count-1; } if(in.equals(st[count].stu_num))
{
st[count].stu_num=null;
count=count-1;
} System.out.println(in+"号学生信息删除成功"); }
if(flag==false)
{
System.out.println("此学号的学生信息不存在!");
} }
else if(input.equals("n"))
{
System.out.println("不删除学生信息!");
break;
} System.out.println("确认还需要删除学生信息吗?(y/n)");
input=keyin.readLine();
} //删除学生信息后,打印全部学生信息
int count=count_stu();
System.out.println("删除学生信息后,打印全部学生信息:");
for (int i=0;i<count-1;i++ )//打印所有学生信息
{
System.out.println(st[i].stu_num+" "+st[i].stu_name+" "+st[i].stu_sex+" "+st[i].stu_score);
}
} catch(Exception e)
{
e.printStackTrace();
}
author_Message(); }//*************************************************************************** public void modify_Student_Message()//4 修改学生信息
{
boolean flag=true;
int k=0;
String input;
System.out.println("确认要对学生信息进行修改吗?(y/n)");
BufferedReader keyin=new BufferedReader(new InputStreamReader(System.in));
try
{
input=keyin.readLine();
while( input.equals("y")||input.equals("n"))
{
if(input.equals("y"))
{
int count=count_stu();
System.out.println("请输入要修改学生信息的学号:");
String number=keyin.readLine();
for (int i=0;i<count;i++ )
{
if((st[i].stu_num).equals(number))
{
flag=true;
k=i;
break;
}
else
{
flag=false;
}
}
if(flag==true)
{
System.out.println("请输入该学生修改后的成绩");
int sscore=Integer.parseInt(keyin.readLine());
st[k].stu_score=sscore;
System.out.println("学号 姓名 姓别 成绩");
System.out.println(st[k].stu_num+" "+st[k].stu_name+" "+st[k].stu_sex+" "+st[k].stu_score);
}
if(flag==false)
{
System.out.println("该学号学生信息不存在!");
}
}
if(input.equals("n"))
{
System.out.println("不修改学生成绩!");break;
} System.out.println("确认还需要修改学生信息吗?(y/n)");
input=keyin.readLine();
} //修改完成后打印全部学生信息,进行查看
int count=count_stu();
System.out.println("修改学生成绩后,打印全部学生信息:");
for (int i=0;i<count;i++ )//打印所有学生信息
{
System.out.println(st[i].stu_num+" "+st[i].stu_name+" "+st[i].stu_sex+" "+st[i].stu_score);
}
} catch(Exception e)
{
e.printStackTrace();
}
author_Message();
}
{
String input;
System.out.println("确认要对学生信息进行成绩排序吗?(y/n)");
BufferedReader keyin=new BufferedReader(new InputStreamReader(System.in));
try
{
input=keyin.readLine();
if(input.equals("y"))
{
int count=count_stu();
for(int time=0;time<count-1;time++)
{
for(int i=time+1;i<count;i++)
{
if(st[time].stu_score<st[i].stu_score)
{
Student temp = new Student();
temp=st[time];
st[time]=st[i];
st[i]=temp;
}
}
} System.out.println("按成绩排序后的结果为:");
for (int i=0;i<count;i++ )//打印所有学生信息
{
System.out.println(st[i].stu_num+" "+st[i].stu_name+" "+st[i].stu_sex+" "+st[i].stu_score);
} } if(input.equals("n"))
{
System.out.println("不排序!");
} else if(!(input.equals("y"))&&!(input.equals("n")))
{
System.out.println("输入有误!");
}
}
catch(Exception e)
{
e.printStackTrace();
} author_Message(); } //***************************************************************************
public void print_Student_Message()//6 打印学生信息
{
boolean flag=true;
String input;
System.out.println("确认要打印学生信息吗?(y/n)");
BufferedReader keyin=new BufferedReader(new InputStreamReader(System.in));
try
{
input=keyin.readLine();
if(input.equals("y"))
{
int count=count_stu();
for(int i=0;i<count;i++)
{
System.out.println(st[i].stu_num+" "+st[i].stu_name+" "+st[i].stu_sex+" "+st[i].stu_score);
}
/*
if(flag==false)
{
System.out.println("学生信息已全部删除,无学生信息.");
}
*/
}
if(input.equals("n"))
{
System.out.println("不打印!");
} }
catch(Exception e)
{
e.printStackTrace();
} author_Message();
}
//*************************************************************************** public void delete_All_Student_Message() //7 全部删除学生信息
{
boolean flag=true;
String input;
System.out.println("请确认要全部删除学生信息吗? 请输入y/n");
BufferedReader keyin=new BufferedReader(new InputStreamReader(System.in));
try
{
input=keyin.readLine();
int count = count_stu();
if(input.equals("y"))
{
for(int i=0;i<count;i++)
{
st[i].stu_num=null;
} System.out.println("学生信息全部删除");
for(int i=0;i<count;i++)//全部删除后打印学生信息
{
if(st[i].stu_num!=null)
{
System.out.println(st[i].stu_num+" "+st[i].stu_name+" "+st[i].stu_sex+" "+st[i].stu_score);
}
else
{
flag=false;
}
} if(flag==false)
{
System.out.println("已无学生信息!");
}
}
else
System.out.println("不删除全部学生信息");
} catch (Exception e)
{
e.printStackTrace();
} author_Message();
}
//***************************************************************************
public void author_Message() //8 作者信息
{
System.out.println();
System.out.println(" ------------------author:chengyi----------------------------");
System.out.println();
}
//***************************************************************************
public void exit_System() //9 退出系统
{
Scanner sc = new Scanner(System.in);//接收从键盘输入的数字
System.out.println("退出系统请输1,否则请输入0:");
int i = sc.nextInt();
if(i==1)
{
System.exit(1);
}
else
{
System.out.println("不退出系统!");
}
}
}
//***************************************************************************public class StudentManager
{
public static void main(String[] args)
{
//Student ch=new Student();
int con=1;
Manager mm=new Manager();
for(int i=0;i<20;i++)
{
mm.st[i]=new Student();
}
//初始化一组数据
mm.add_Student("1","yiyi","female",76);
mm.add_Student("2","erer","male",91);
mm.add_Student("3","sany","female",68);
mm.add_Student("4","sisi","male",100);
mm.add_Student("5","wuwu","female",88);
mm.add_Student("6","liuliu","male",60);
mm.add_Student("7","qiqi","female",79);
mm.add_Student("8","baba","female",79);
mm.add_Student("9","jiujiu","male",99); while(con==1)//设置死循环,只有唯一的退出条件
{
try
{
mm.wellcome();
System.out.print("请输入数字1 ~ 9,进行您需要的操作:");
Scanner sc = new Scanner(System.in);//接收从键盘输入的数字
int i = sc.nextInt();//将输入的数字赋值给i
switch (i)
{
case 1:
System.out.println("添加学生信息");
mm.add_Student_Message();
break;
//mm.add_Student(); break;
case 2:
mm.list_Student_Message();
break; case 3:
mm.delete_Student_Message();
break; case 4:
mm.modify_Student_Message();
break; case 5:
mm.order_Student_Message();
break;
case 6:
mm.print_Student_Message();
break; case 7:
mm.delete_All_Student_Message();
break;
case 8:
mm.author_Message();
break; case 9:
mm.exit_System();
break;
default:
System.out.println("输入数字无效!");
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}}