标准学生类:

package student;
//学生类
public class Student {//编写成员变量
//学号
private String id;
//姓名
private String name;
//年龄
private String age;
//居住地
private String address;
​
//无参构造
public Student() {​
}
​
//带参构造
public Student(String id, String name, String age, String address) {super();
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
​
//get/set 方法
public String getId() {return id;
}
public void setId(String id) {this.id = id;
}
public String getName() {return name;
}
public void setName(String name) {this.name = name;
}
public String getAge() {return age;
}
public void setAge(String age) {this.age = age;
}
public String getAddress() {return address;
}
public void setAddress(String address) {this.address = address;
}
}

测试类:

package studentmanager;
​
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
​
​
import student.Student;
​
​
//學生类测试类
public class StudentManager {// 主方法
public static void main(String[] args) throws IOException {// 为了能一直返回到主界面 用死循环实现
while (true) {// 主界面
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("请输入你的选择:");
// 创建键盘录入对象
Scanner sc = new Scanner(System.in);
String choiceNumber = sc.nextLine();
​
//定义文件路径
String fileName="student.txt";
​
​
// 用switch语句写选择
switch (choiceNumber) {case "1":findAllStudent(fileName);
break;// 查看所有学生信息
case "2":addStudent( fileName);
break;// 添加学生信息
case "3":deletStudent(fileName);
break;// 删除学生信息
case "4":updateStudent(fileName);
break;// 修改学生信息
case "5":
default:
System.out.println("谢谢使用!");
System.exit(0);// 退出程序
break;// 退出系统
}
}
}
​
​
​
//编写读取文件中信息的方法
​
public static void read(String fileName,ArrayList<Student>array) throws IOException{​
​
//创建输入缓冲流对象
BufferedReader br=new BufferedReader(new FileReader(fileName));
String line;
while((line=br.readLine())!=null){String []chs=line.split(",");
//创建学生类对象
Student s=new Student(chs[0],chs[1],chs[2],chs[3]);
//将学生对象加入集合中
​
array.add(s);
}
br.close();
​
}
​
​
​
//编写写文件的方法
​
public static void write(String fileName,ArrayList<Student>array) throws IOException{​
//创建输出缓冲流对象
BufferedWriter bw=new BufferedWriter(new FileWriter(fileName));
//遍历集合 将信息写入文件
for (int i = 0; i < array.size(); i++) {//先定义一个StringBuilder 对象
StringBuilder sb=new StringBuilder();
sb.append(array.get(i).getId()).append(",").append(array.get(i).getName()).append(",").append(array.get(i).getAge()).append(",").append(array.get(i).getAddress());bw.write(sb.toString());bw.newLine();bw.flush();
}
bw.close();
}
​
​
// 编写查看所有学生信息的方法
​
public static void findAllStudent(String fileName) throws IOException {//创建学生类集合对象
ArrayList<Student>array=new ArrayList<Student>();
read( fileName,array);
System.out.println("学号\t\t姓名\t年龄\t居住地");
// for循环遍历集合
for (int i = 0; i < array.size(); i++) {// 创建学生对象
Student s = new Student();
s = array.get(i);
// 打印学生信息
System.out.println(s.getId() + "\t\t" + s.getName() + "\t" + s.getAge() + "\t" + s.getAddress());
}
}
​
​
​
//添加学生信息
​
public static void addStudent(String fileName) throws IOException{//创建学生类集合对象
ArrayList<Student>array=new ArrayList<Student>();
read( fileName,array);
//创建键盘录入对象
Scanner sc=new Scanner(System.in);
//为了能访问到flag 先定义一个flag
boolean flag;
//为了能访问到id 先定义一个id
String id;
//为了能有多次输入机会 用while循环实现
while(true){//提示输入学生学号
System.out.println("请输入学生学号:");
//接收数据
id=sc.nextLine();
//定义一个flag
flag=false;
​
//遍历集合 比较输入的学号是否已存在
for (int i = 0; i < array.size(); i++) {if(id.equals(array.get(i).getId())){flag=true;
break;
}
}
if(flag){System.out.println("你输入的学号已存在,请重新输入");
}else{break;
}
​
}
if(flag==false){//提示输入学生姓名
System.out.println("请输入学生姓名");
String name=sc.nextLine();
//输入学生年龄
System.out.println("请输入学生年龄");
String age=sc.nextLine();
//输入学生居住地
System.out.println("请输入学生居住地");
String address=sc.nextLine();
​
//创建学生对象
Student s=new Student(id,name,age,address);
//将学生对象添加到集合中
array.add(s);
write(fileName,array);
System.out.println("添加学生成功!");
}
}
​
​
​
//编写删除学生信息的方法
​
public static void deletStudent(String fileName) throws IOException{//创建学生类集合对象
ArrayList<Student>array=new ArrayList<Student>();
read( fileName,array);
//创建键盘录入对象
Scanner sc=new Scanner(System.in);
//提示输入学生学号
System.out.println("请输入要删除的学号");
String id=sc.nextLine();
​
//先定义一个索引
int index=-1;
//遍历集合 看是否有输入的学号的学生
for (int i = 0; i < array.size(); i++) {if(id.equals(array.get(i).getId())){index=i;
}
}
if(index==-1){System.out.println("你要删除的学号对应的学生信息不存在");
return;
}else{array.remove(index);
write(fileName,array);
System.out.println("删除成功!");
}
}
​
​
​
//編寫修改学生信息的方法
​
public static void updateStudent(String fileName) throws IOException{//创建学生类集合对象
ArrayList<Student>array=new ArrayList<Student>();
read(fileName,array);
//创建键盘录入对象
Scanner sc=new Scanner(System.in);
//提示输入要修改的学生学号
System.out.println("请输入要修改的学生学号");
String id=sc.nextLine();
​
//先定义一个索引号
int index=-1;
//遍历集合,找出相对应的学生
for (int i = 0; i < array.size(); i++) {if(id.equals(array.get(i).getId())){index=i;
}
}
if(index==-1){System.out.println("没找到你要修改的学生信息");
}else{//提示输入修改后的姓名
System.out.println("请输入修改后的姓名");
String name=sc.nextLine();
//提示输入修改后的年龄
System.out.println("请输入修改后的年龄");
String age=sc.nextLine();
//提示输入修改后的学生居住地
System.out.println("请输入修改后的学生居住地");
String address=sc.nextLine();
​
//创建学生对象
Student s=new Student(id,name,age,address);
​
//修改学生信息
array.set(index, s);
write(fileName,array);
System.out.println("修改成功!");
}
}
}
​
​

计算机毕业设计中Java编程案例之学生管理系统相关推荐

  1. Java编程案例之学生管理系统

    标准学生类: package student; //学生类 public class Student { //编写成员变量 //学号 private String id; //姓名 private S ...

  2. 【计算机毕业设计】java基于jsp的学生考勤系统

    考勤作为一个学校的基础管理,是对学生的个人出勤情况的依据.传统的考勤靠手工操作.纸质传递,这样的方式造成了考勤不全面.数据不准确和资料的共享程度低.因此学校需要一个可以适应大量信息控制和数据处理的考勤 ...

  3. app登录界面背景 css_计算机毕业设计中Java web实现简登录页面(MyBatis+jsp+servlet+html+css+javascript)...

    点击上方"蓝字",关注我们. 本文利用MyBatis+jsp+servlet+html+css+javascript实现了一个简单的登录页面.对用户输入的用户名和密码就行校验,校验 ...

  4. 计算机毕业设计中JAVA 23种开发模式详解(代码举例)

    设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

  5. 计算机毕业设计之java+javaweb的高校学生健康档案管理系统

    项目介绍 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息.为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代, ...

  6. 计算机毕业设计中java多线程与异常处理

    (一) Thread子类的方法实现多线程 编写 TwoThreadsTest.java 程序文件,源代码如下. class SimpleThread extends Thread {public Si ...

  7. 计算机毕业设计之java+javaweb的大学生勤工助学管理系统

    项目介绍 大学生勤工助学管理系统是提供给用户一个大学勤工助学信息管理的系统,让学生及时了解最新的大学勤工助学信息及动向,完成勤工助学管理的同时,还能通过交流区互动更方便.本系统采用了B/S体系的结构, ...

  8. 计算机毕业设计之java+ssm公交站牌广告灯箱管理系统

    本公交站牌广告灯箱管理系统采用目前最流行的B/S结构和java中流行的MVC三层设计模式ssm框架和eclipse编辑器.MySQL数据库设计并实现的 .主要包括系统用户管理模块.网站资讯管理模块.任 ...

  9. java计算机毕业设计智友少儿编程学习平台源码+mysql数据库+系统+部署+lw文档

    java计算机毕业设计智友少儿编程学习平台源码+mysql数据库+系统+部署+lw文档 java计算机毕业设计智友少儿编程学习平台源码+mysql数据库+系统+部署+lw文档 本源码技术栈: 项目架构 ...

最新文章

  1. Hadoop- Hadoop运维小计
  2. GNS3 串口连接问题
  3. 聚合型神器!有了他,手机里app可以删一半
  4. 看苏宁易购的运营保障体系如何hold住818大促
  5. 如何在 React Native 中写一个自定义模块
  6. 华强北耳机版本太多,不知道如何选购?
  7. 浮点数在计算机中起什么作用,浮点数在计算机中的存储表示
  8. git 命令之 如何将本地新建分支推到服务器上
  9. 上海 · 百度语义分割Pro沙龙,高性能深度学习实战营
  10. FileFilter 遍历某个目录下文件名含有某个字符的文件
  11. 从文本中提取单词生成单词本
  12. BP神经网络算法原理
  13. 金蝶K3系统上机日志如何清除
  14. phantomjs自动截图生成图片
  15. 倍福--232/485通信
  16. Arduino控制RGB灯(WS2812B)
  17. vue-cli使用ESLint记录
  18. Lcd(一)显示原理
  19. 每日英语:China's Conflicted Consumers
  20. playwright 使用本地chrome 浏览器 加载多个extension 插件

热门文章

  1. 每天一个linux命令(30):cal 命令
  2. css 实现兼容各浏览器的渐变效果
  3. 桃李春风一杯酒,江湖夜雨十年灯
  4. 关于线程插入函数如何用的问题
  5. Golang sync.Once 简介与用法
  6. Linux 命令(15)—— umask 命令(builtin)
  7. Oracle中关于处理小数点位数的几个函数,取小数位数,Oracle查询函数
  8. System.Drawing.Text.TextRenderingHint 的几种效果
  9. 自己用到的相关Linux命令,谨以记录
  10. [转]linux权限补充:rwt rwT rws rwS 特殊权限