利用Java设计一个简单的控制台学生信息管理程序

此程序可作为课设的参考,其中信息存储于文件中。

创建了学生类Student,用于存储学号等的信息。创建StudentFunction类,用于实现诸如学生信息添加,学生信息修改(包含了带各种参数的修改方法),删除,显示成绩排行等功能。

把学生信息的实例放入集合list中实现操作。

创建FileFunction类,用于把list中的学生信息写入文件,每次打开时读取到list中。

每次输入一个“功能判断句”放入String型变量judge中,在主函数中判断用户输入了哪像功能以便执行相应的操作。

创建一个自定义异常类IdNotFoundException,用于当用户输入的学号信息与文件中存在的信息不符时进行后续处理。

学生类实现Comparable接口,并重写compareTo()函数实现排序功能。

全部代码如下:

import java.util.*;

import java.io.*;

public class helloworld {

public static void main(String arg[])

{

System.out.println("###################");

System.out.println("欢迎进入学生管理系统!");

File file=new File("D:\\student.txt");

if(!file.exists())

{

try

{

file.createNewFile();

}

catch(Exception e)

{

e.printStackTrace();

}

}

List list=new ArrayList();

StudentFunction studentfunction=new StudentFunction();

FileFunction filefunction=new FileFunction();

Scanner s=new Scanner(System.in);

String juge=" ";

System.out.println("--------------------");

try

{

if(filefunction.FileRead(file).isEmpty()==true)

{

System.out.println("学生信息为空!");

list=studentfunction.StudentAdd(list);

}

else

{

list=filefunction.FileRead(file);

}

}

catch(IOException e)

{

e.printStackTrace();

}

System.out.println("功能可输入:\n添加学生信息\n"+"按学号查询学生信息\n"+"显示当前所有学生信息\n查看所有学生成绩排名\n查看学习情况分段统计\n"+"按学号修改学生全部信息\n删除所有学生信息\n通过学号删除此学生信息\n通过学生名删除此学生信息\n退出系统");

while(true)

{

juge=s.nextLine();

if(juge.equals("添加学生信息"))

{

try

{

list=studentfunction.StudentAdd(list);

}

catch(Exception e)

{

e.printStackTrace();

}

}

if(juge.equals("显示当前所有学生信息"))

{

try

{

for(int i=0;i

{

System.out.print(list.get(i).id+" ");

System.out.print(list.get(i).name+" ");

System.out.print(list.get(i).Class+" ");

System.out.print(list.get(i).homeadd+" ");

System.out.print(list.get(i).home+" ");

System.out.print(list.get(i).grade+" ");

System.out.print(list.get(i).major+"\n");

}

}

catch(Exception e)

{

e.printStackTrace();

}

System.out.println("--------------------");

System.out.println("按任意键继续...");

s.nextLine();

}

if(juge.equals("删除所有学生信息"))

{

list=studentfunction.DeletAll(list);

file.delete();

System.out.println("所有学生信息已删除!");

System.out.println("--------------------");

System.out.println("按任意键继续...");

s.nextLine();

}

if(juge.equals("通过学号删除此学生信息"))

{

list=studentfunction.DeletById(list);

System.out.println("操作成功!");

System.out.println("--------------------");

System.out.println("按任意键继续...");

s.nextLine();

}

if(juge.equals("按学号查询学生信息"))

{

Student a=new Student();

System.out.println("输入要查询学生的学号");

a=studentfunction.IdGetStudentInfo(list);

if(a.Class.equals("0")==true)

{

System.out.println("系统中没有此学生信息!");

}

System.out.println("--------------------");

System.out.println("按任意键继续...");

s.nextLine();

}

if(juge.equals("按学号修改学生全部信息"))

{

System.out.println("输入要修改学生的学号");

String id=s.nextLine();

list=studentfunction.StudentAllinfoChange(id, list);

System.out.println("--------------------");

System.out.println("按任意键继续...");

s.nextLine();

}

if(juge.equals("查看学习情况分段统计"))

{

List list2=new ArrayList();

for(int i=0;i

{

Student student=new Student();

student.id=list.get(i).id;

student.Class=list.get(i).Class;

student.grade=list.get(i).grade;

student.home=list.get(i).home;

student.homeadd=list.get(i).homeadd;

student.name=list.get(i).name;

student.major=list.get(i).major;

list2.add(student);

}

Collections.sort(list2);

int section1=0;int section2=0;int section3=0;int section4=0;int section5=0;

for(int i=0;i

{

if(Integer.parseInt(list2.get(i).grade)>=90)

section1++;

if(Integer.parseInt(list2.get(i).grade)>=80&&Integer.parseInt(list2.get(i).grade)<90)

section2++;

if(Integer.parseInt(list2.get(i).grade)>=70&&Integer.parseInt(list2.get(i).grade)<80)

section3++;

if(Integer.parseInt(list2.get(i).grade)>=60&&Integer.parseInt(list2.get(i).grade)<70)

section4++;

if(Integer.parseInt(list2.get(i).grade)<60)

section5++;

}

System.out.println("90-100分段: "+section1+"人");

if(section1==0)

System.out.println("无");

for(int i=0;i

{

System.out.print("第"+(i+1)+"名: ");

studentfunction.PrintSingleStudentInfo(list2, i);

}

System.out.println("80-90分段: "+section2+"人");

if(section2==0)

System.out.println("无");

for(int i=section1;i

{

System.out.print("第"+(i+1-section1)+"名: ");

studentfunction.PrintSingleStudentInfo(list2, i);

}

System.out.println("70-80分段: "+section3+"人");

if(section3==0)

System.out.println("无");

for(int i=section1+section2;i

{

System.out.print("第"+(i+1-section1-section2)+"名: ");

studentfunction.PrintSingleStudentInfo(list2, i);

}

System.out.println("60-70分段: "+section4+"人");

if(section4==0)

System.out.println("无");

for(int i=section1+section2+section3;i

{

System.out.print("第"+(i+1-section1-section2-section3)+"名: ");

studentfunction.PrintSingleStudentInfo(list2, i);

}

System.out.println("0-60分段: "+section5+"人");

if(section5==0)

System.out.println("无");

for(int i=section1+section2+section3+section4;i

{

System.out.print("第"+(i+1-section1-section2-section3-section4)+"名: ");

studentfunction.PrintSingleStudentInfo(list2, i);

}

System.out.println("--------------------");

System.out.println("按任意键继续...");

s.nextLine();

}

if(juge.equals("查看所有学生成绩排名"))

{

List list2=new ArrayList();

for(int i=0;i

{

Student student=new Student();

student.id=list.get(i).id;

student.Class=list.get(i).Class;

student.grade=list.get(i).grade;

student.home=list.get(i).home;

student.homeadd=list.get(i).homeadd;

student.name=list.get(i).name;

student.major=list.get(i).major;

list2.add(student);

}

Collections.sort(list2);

for(int i=0;i

{

System.out.print("第"+(i+1)+"名: ");

studentfunction.PrintSingleStudentInfo(list2, i);

}

System.out.println("--------------------");

System.out.println("按任意键继续...");

s.nextLine();

}

if(juge.equals("退出系统"))

{

s.close();

try {

filefunction.FileWrite(file, list);

}

catch(IOException e)

{

e.printStackTrace();

}

break;

}

System.out.println("##功能(输入#后的文字):\n#添加学生信息\n"+"#按学号查询学生信息\n"+"#显示当前所有学生信息\n#查看所有学生成绩排名\n#查看学习情况分段统计\n"+"#按学号修改学生全部信息\n#删除所有学生信息\n#通过学号删除此学生信息\n#通过学生名删除此学生信息\n");

}

}

}

class Student implements Comparable

{

String name;

String id;

String major;

String Class;

String homeadd;

String home;

String grade;

Student()

{

}

Student(String name,String id,String major,String Class,String homeadd,String home,String grade)

{

this.name=name;this.id=id;this.major=major;this.Class=Class;this.homeadd=homeadd;this.home=home;this.grade=grade;

}

public String GetGrade()

{

return grade;

}

public String Getid()

{

return id;

}

public String GetName()

{

return name;

}

public void ChangeId(String id)

{

this.id=id;

}

public void ChangeGrade(String grade)

{

this.grade=grade;

}

public int compareTo(Student student)

{

return (Integer.parseInt(student.grade)-Integer.parseInt(this.grade));

}

public String toString()

{

return(id+" "+name+" "+Class+" "+homeadd+" "+home+" "+grade+" "+major);

}

}

class StudentFunction

{

StudentFunction()

{

}

StudentFunction(List student)

{

}

public void ShowGradeRank()

{

}

public void ShowGradeLayout()

{

}

public List DeletAll(List list)

{

list.clear();

return list;

}

public List DeletById(List student)

{

String id2="";

Scanner s=new Scanner(System.in);

System.out.println("输入要删除学生的学号");

id2=s.nextLine();

int flag=0;

for(int i=0;i

{

if(student.get(i).id.equals(id2))

{

student.remove(i);

i--;

flag++;

}

}

if(flag==0)

{

try

{

throw new IdNotFoundException();

}

catch(IdNotFoundException e)

{

e.PrintInfo();

StudentFunction studentfunction=new StudentFunction();

student=studentfunction.DeletById(student);

}

}

return student;

}

public void DeletByName(String name,List student)

{

for(int i=0;i

{

if(student.get(i).name.equals(name))

{

student.remove(i);

i--;

}

}

}

public Student IdGetStudentInfo(List student)

{

Scanner s=new Scanner(System.in);

String id="";

id=s.nextLine();

Student a=new Student();

a.Class="0";

int flag=0;

for(int i=0;i

{

if(student.get(i).id.equals(id))

{

a=student.get(i);

System.out.println(a.id+" "+a.name+" "+a.Class+" "+a.homeadd+" "+a.home+" "+a.grade+" "+a.major);

flag++;

}

}

if(flag==0)

{

try

{

throw new IdNotFoundException();

}

catch(IdNotFoundException e)

{

e.PrintInfo();

}

}

return a;

}

public List StudentNameChange(String name,String newname,List student)

{

for(int i=0;i

{

if(student.get(i).name==name)

{

student.get(i).name=newname;

}

}

return student;

}

public void StudentIdChange(String id,String newid,List student)

{

for(int i=0;i

{

if(student.get(i).id==id)

{

student.get(i).id=newid;

}

}

}

public void StudentGradeChange(String grade,String newgrade,List student)

{

for(int i=0;i

{

if(student.get(i).grade==grade)

{

student.get(i).grade=newgrade;

}

}

}

public List StudentAllinfoChange(String id,List list)

{

Scanner s=new Scanner(System.in);

int flag=0;

for(int i=0;i

{

if(list.get(i).id.equals(id))

{

flag++;

System.out.println("输入新学号");

list.get(i).id=s.nextLine();

System.out.println("输入新姓名");

list.get(i).name=s.nextLine();

System.out.println("输入新班级");

list.get(i).Class=s.nextLine();

System.out.println("输入新住址");

list.get(i).homeadd=s.nextLine();

System.out.println("输入新籍贯");

list.get(i).home=s.nextLine();

System.out.println("输入新成绩");

list.get(i).grade=s.nextLine();

System.out.println("输入新专业");

list.get(i).major=s.nextLine();

}

}

if(flag==0)

{

try

{

throw new IdNotFoundException();

}

catch(IdNotFoundException e)

{

e.PrintInfo();

}

}

else

{

System.out.println("修改成功");

}

return list;

}

public List StudentAdd(List list)

{

System.out.println("请输入学生信息");

Scanner s=new Scanner(System.in);

Student a=new Student();

String juge="";

System.out.println("学号");

a.id=s.nextLine();

System.out.println("姓名");

a.name=s.nextLine();

System.out.println("班 级");

a.Class=s.nextLine();

System.out.println("住址");

a.homeadd=s.nextLine();

System.out.println("籍贯");

a.home=s.nextLine();

System.out.println("成绩");

a.grade=s.nextLine();

System.out.println("专业");

a.major=s.nextLine();

list.add(a);

for(;;)

{

System.out.println("继续添加学生信息? Y/N");

juge=s.nextLine();

if(juge.equals("Y"))

{

list=StudentAdd(list);

}

if(juge.equals("N"))

{

System.out.println("操作成功");

break;

}

}

return list;

}

public void PrintSingleStudentInfo(List list2,int i)

{

System.out.print(list2.get(i).id+" ");

System.out.print(list2.get(i).name+" ");

System.out.print(list2.get(i).Class+" ");

System.out.print(list2.get(i).homeadd+" ");

System.out.print(list2.get(i).home+" ");

System.out.print(list2.get(i).grade+" ");

System.out.print(list2.get(i).major+"\n");

}

}

class FileFunction

{

public void FileWrite(File file,List student) throws IOException

{

FileWriter fw=new FileWriter(file);

BufferedWriter bw=new BufferedWriter(fw);

for(int i=0;i

{

bw.write(student.get(i).id+",");

bw.write(student.get(i).name+",");

bw.write(student.get(i).Class+",");

bw.write(student.get(i).homeadd+",");

bw.write(student.get(i).home+",");

bw.write(student.get(i).grade+",");

bw.write(student.get(i).major);

bw.write("\n");

}

bw.close();

fw.close();

}

public List FileRead(File file) throws IOException

{

List list=new ArrayList();

FileInputStream fips=new FileInputStream(file);

InputStreamReader ipsr=new InputStreamReader(fips);

BufferedReader br=new BufferedReader(ipsr);

String tempall;

String temp[];

int i=0;

while((tempall=br.readLine())!=null)

{

Student student=new Student();

temp=tempall.split(",");

student.id=temp[0];

student.name=temp[1];

student.Class=temp[2];

student.homeadd=temp[3];

student.home=temp[4];

student.grade=temp[5];

student.major=temp[6];

list.add(i,student);

i++;

}

br.close();

ipsr.close();

return list;

}

}

class IdNotFoundException extends Exception

{

private static final long serialVersionUID = 1L;

IdNotFoundException()

{

super("未找到此学号的学生");

}

public void PrintInfo()

{

System.out.println("未找到此学号的学生");

}

}

部分运行效果如下:

###################

欢迎进入学生管理系统!

--------------------

功能可输入:

添加学生信息

按学号查询学生信息

显示当前所有学生信息

查看所有学生成绩排名

查看学习情况分段统计

按学号修改学生全部信息

删除所有学生信息

通过学号删除此学生信息

通过学生名删除此学生信息

退出系统

显示当前所有学生信息

2 spider 1702 meiguo henan 90 cs

3 chaoji wudi beijing china 90 cs

4 haha hhu hhhh dddd 90 cd

1 lihaiwa 1702 beijing liaoning 100 cs

5 waaau 1702 beijing liaoning 65 cs

6 hahaha 1702 wahahagongsi beijing 72 cs

7 lailailai 1702 meiguo Shengdiyage 80 buzhidao

8 诸葛大力 不知道 爱情公寓 不知道 100 不知道

9 张伟 602 爱情公寓 不知道 73 律师

--------------------

按任意键继续...

##功能(输入#后的文字):

#添加学生信息

#按学号查询学生信息

#显示当前所有学生信息

#查看所有学生成绩排名

#查看学习情况分段统计

#按学号修改学生全部信息

#删除所有学生信息

#通过学号删除此学生信息

#通过学生名删除此学生信息

查看学习情况分段统计

90-100分段: 5人

第1名: 1 lihaiwa 1702 beijing liaoning 100 cs

第2名: 8 诸葛大力 不知道 爱情公寓 不知道 100 不知道

第3名: 2 spider 1702 meiguo henan 90 cs

第4名: 3 chaoji wudi beijing china 90 cs

第5名: 4 haha hhu hhhh dddd 90 cd

80-90分段: 1人

第1名: 7 lailailai 1702 meiguo Shengdiyage 80 buzhidao

70-80分段: 2人

第1名: 9 张伟 602 爱情公寓 不知道 73 律师

第2名: 6 hahaha 1702 wahahagongsi beijing 72 cs

60-70分段: 1人

第1名: 5 waaau 1702 beijing liaoning 65 cs

0-60分段: 0人

--------------------

按任意键继续...

##功能(输入#后的文字):

#添加学生信息

#按学号查询学生信息

#显示当前所有学生信息

#查看所有学生成绩排名

#查看学习情况分段统计

#按学号修改学生全部信息

#删除所有学生信息

#通过学号删除此学生信息

#通过学生名删除此学生信息

按学号查询学生信息

输入要查询学生的学号

10

未找到此学号的学生

系统中没有此学生信息!

--------------------

按任意键继续...

##功能(输入#后的文字):

#添加学生信息

#按学号查询学生信息

#显示当前所有学生信息

#查看所有学生成绩排名

#查看学习情况分段统计

#按学号修改学生全部信息

#删除所有学生信息

#通过学号删除此学生信息

#通过学生名删除此学生信息

添加学生信息

请输入学生信息

学号

10

姓名

懵懂的我

班 级

一个班

住址

一个神奇的地方

籍贯

一个叫家乡的地方

成绩

75

专业

入学即失业

继续添加学生信息? Y/N

N

操作成功

##功能(输入#后的文字):

#添加学生信息

#按学号查询学生信息

#显示当前所有学生信息

#查看所有学生成绩排名

#查看学习情况分段统计

#按学号修改学生全部信息

#删除所有学生信息

#通过学号删除此学生信息

#通过学生名删除此学生信息

查看所有学生成绩排名

第1名: 1 lihaiwa 1702 beijing liaoning 100 cs

第2名: 8 诸葛大力 不知道 爱情公寓 不知道 100 不知道

第3名: 2 spider 1702 meiguo henan 90 cs

第4名: 3 chaoji wudi beijing china 90 cs

第5名: 4 haha hhu hhhh dddd 90 cd

第6名: 7 lailailai 1702 meiguo Shengdiyage 80 buzhidao

第7名: 10 懵懂的我 一个班 一个神奇的地方 一个叫家乡的地方 75 入学即失业

第8名: 9 张伟 602 爱情公寓 不知道 73 律师

第9名: 6 hahaha 1702 wahahagongsi beijing 72 cs

第10名: 5 waaau 1702 beijing liaoning 65 cs

--------------------

按任意键继续...

java完成一个学生信息调查程序_利用Java设计一个简单的学生信息管理程序相关推荐

  1. 用Java 编写菜单价格和的程序_使用JAVA 编写一个程序,显示5中商品价格,用户可以选择多种商品并在其后的文本框输入购买的数量。...

    展开全部 用java Swing做的?给你个代码,还有运行结果图 package my.test.main; import java.awt.BorderLayout; import java.awt ...

  2. java抽象类例子月薪年薪程序_利用抽象类给一个有工资收入和稿费收入的小伙伴算税...

    class AbstarctClass { public static void main(String[]args) { // TODO: 用抽象类给一个有工资收入和稿费收入的小伙伴算税: Inco ...

  3. python用一行代码编写一个回声程序_利用Python实现一个WC程序

    项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个命令行程序,模仿已有wc.exe 的功能,并加以扩充,给出某程序设计语言源文件的字符数.单词数和行数 ...

  4. Java反射设置list的属性值_利用java反射比较两个实体有哪些属性值不一样

    分享一个利用反射实现比较两个实体属性值的方法: package net.zwq1105.test; import java.beans.Introspector; import java.beans. ...

  5. tec控制pid程序_利用 SPICE 设计 TEC 温度环路 PID 控制

    使用模拟比例积分微分 (PID) 控制器的温度控制是一种非常简单的电路,是确保热电冷却器 (TEC) 的设置点能够对温度或者激光进行调节的有效方法.比例积分项协同工作,精确地伺服TEC的电流,以维持控 ...

  6. Java黑皮书课后题第3章:**3.27(几何:点是否在三角形内)假设一个平面上有一个直角三角形。编写程序,提示用户输入一个点的x坐标和y坐标,然后判断这个点是否在该三角形内

    **3.27(几何:点是否在三角形内)假设一个平面上有一个直角三角形.编写程序,提示用户输入一个点的x坐标和y坐标,然后判断这个点是否在该三角形内 题目 题目描述 破题 运行示例 代码 题目 题目描述 ...

  7. Java随机更换背景图片_利用Java处理图片,更换背景

    这个是网上一个大牛想到的方法,独特的见解,适用于给证件照换背景,即颜色RGB值在一个范围内的图像处理,稍加修改,可以适用于一切需要更换背景的情况,可以利用NetBeans设计一个UI,然后写成一个小程 ...

  8. 启动EBS的时候,弹出Java安全警告:“该应用程序要求具有Java的早期版本。是否要继续?”...

    问题 启动EBS的时候,弹出Java安全警告:"该应用程序要求具有Java的早期版本.是否要继续?" 如果是JRE英文的,弹出的Java警告为"The applicati ...

  9. python绘制自己的名字_用 Python 制作一个艺术签名小工具,给自己设计一个优雅的签名...

    生活中有很多场景都需要我们签字(签名),如果是一些不重要的场景,我们的签名好坏基本无所谓了,但如果是一些比较重要的场景,如果我们的签名比较差的话,就有可能给别人留下不太好的印象了,俗话说字如其人嘛,本 ...

最新文章

  1. 使用Junit4时问题
  2. linux c atoi strtol 区别
  3. 不同的PCB混装方式及加工工艺
  4. PHP 学习总结之变量
  5. 8086指令(II)
  6. 在Centos中安装mysql
  7. linux 统计目录大小并按大小排序
  8. 书籍《智能交通》-观后感-2021年12月-下期分享
  9. 转载一篇阅读文章(还算不错吧)
  10. java中list、set和map 的区别(转)
  11. 《ASCE1885的源码分析》の简单的进程封装类
  12. SQL Server中删除重复数据的几个方法
  13. 并查集 删除节点 求集合的个数set hdu 2473
  14. cocos2dx+lua注册事件函数详解 事件
  15. java实现冒泡排序
  16. 读书笔记:谁都可以进外企
  17. Photoshop-液化工具对人物的应用
  18. 【深度学习】Numpy实现简单神经网络
  19. 计算机专业大四课程,计算机专业大学四年课表.doc
  20. VMware16虚拟机安装

热门文章

  1. jquer WdatePicker 使用 手册
  2. C# 使用AutoResetEvent进行线程同步
  3. 新生赛3 1003 字符串最小表示法题目
  4. 为什么我们需要域?MS Active Directory系列之一
  5. 数字权限管理(DRM)技术
  6. 二次型在一点的_EP型隐形车衣除胶剂的使用方法,为什么不建议用柏油清洗剂...
  7. gprs模块http mqtt_GPRS模块用TCP实现MQTT协议(基于SIM900A)
  8. 印花固浆在水性印花中的作用
  9. gradle 刷新打包的时候报错
  10. 《小猪佩奇过大年》首映 导演解答“啥是佩奇”