最近我练习了Java的学生管理系统的程序代码,多亏了前段时间小学期的系统类练习,让我比较容易地就能够理解该题的题意,再根据我学到的相关的Java知识,就好像是一个套用公式的逻辑。

用到的相关知识:

1、头文件

import java.util.Scanner;//输入
import java.util.ArrayList;//数组
//文件导入的头文件
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.*;

2、相关函数

//主函数
public static void main(String[] args) throws IOException { }
//遍历
public static void showStudent(ArrayList<Student>arr)
//插入
public static void addStudent(ArrayList<Student>arr)
//删除
public static void deleteStudent(ArrayList<Student>arr)
//查询
public static void selectStudent(ArrayList<Student>arr)
//修改
public static void updateStudent(ArrayList<Student>arr)
//导入文件
public static void daoru(ArrayList<Student>arr) throws IOException

3、相关功能

一、遍历学生信息

二、添加学生信息

三、删除学生信息

四、查询学生信息

五、修改学生信息

六、将学生信息导入文件

七、添加信息时,确保学号不会重复

4、完整代码

Student.java

public class Student {
private String stunumber;//学号
private String name;//姓名
private int age;//年龄
private boolean sex;//性别
private char xx;
private int x;
private double score;//成绩
public Student()
{
this.stunumber=stunumber;
this.name=name;
this.age=age;
this.sex=sex;
this.score=score;
}
public Student(String stunumber,String name,int age,char xx,double score)
{
this.stunumber=stunumber;
this.name=name;
this.age=age;
this.xx=xx;
this.score=score;
}
//设置变量信息
public void setstunumber(String stunumber)
{
this.stunumber=stunumber;
}
public void setname(String name)
{
this.name=name;
}
public void setage(int age)
{
this.age=age;
}
public void setsex(int x)
{
this.x=x;
}
public void setscore(double score)
{
this.score=score;
}
//读取变量信息
public String getstunumber()
{
return stunumber;
}
public String getname()
{
return name;
}
public int getage()
{
return age;
}
public char getsex()
{
char c;
if(x==1)
{
c='男';
return c;
}
else
{
c='女';
return c;
}
}
public double getscore()
{
return score;
}
}

StudentManager.java

import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.*;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Scanner;
public class StudentManager extends Student{
public static void main(String[] args) throws IOException {
ArrayList<Student>arr=new ArrayList<Student>();
Scanner sc=new Scanner(System.in);
while(true) {
System.out.println("******************************************");
System.out.println("石家庄铁道大学信息科学与技术学院");
System.out.println("学生信息管理系统 v2.0");
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("请输入你要选择的功能:");
int n = sc.nextInt();//输入选择的功能
switch (n) {
case 1://遍历输出学生信息
showStudent(arr);
break;
case 2://新学生信息录入
addStudent(arr);
break;
case 3://删除学生信息
deleteStudent(arr);
break;
case 4://修改学生信息
updateStudent(arr);
break;
case 5://查询学生信息
selectStudent(arr);
break;
case 6://退出系统
System.out.println("欢迎下次使用!");
System.exit(0);
case 7://文件导入
daoru(arr);
break;
}
} }
public static void showStudent(ArrayList<Student>arr)
{
System.out.println("学号"+"\t\t\t"+"姓名"+"\t\t"+"年龄"+"\t\t"+"性别"+"\t\t"+"成绩"+"\t\t");
for(int i=0;i<arr.size();i++)
{
Student s=arr.get(i);
System.out.println(s.getstunumber()+"\t"+s.getname()+"\t"+
s.getage()+"\t\t"+s.getsex()+"\t\t"+s.getscore()+"\t");
}
}//遍历信息
public static void addStudent(ArrayList<Student>arr)//添加信息
{
Scanner sc=new Scanner(System.in);
System.out.println("请输入学生学号:");
String id = sc.nextLine();
int index=-1;
for(int i=0;i<arr.size();i++)
{
Student s=arr.get(i);
if(s.getstunumber().equals(id))
{
index=i;
}
}
if(index==-1) {
System.out.println("请输入学生姓名:");
String name = sc.nextLine();
System.out.println("请输入学生年龄:");
int age = sc.nextInt();
System.out.println("请输入学生性别:");
int xing = sc.nextInt();
System.out.println("请输入学生成绩:");
double score = sc.nextInt();
Student s = new Student();
s.setstunumber(id);
s.setname(name);
s.setage(age);
s.setsex(xing);
s.setscore(score);
arr.add(s);
System.out.println("已录入学生信息");
}
else
{
System.out.println("学号重复,已禁止新增学生信息。");
}
}
public static void selectStudent(ArrayList<Student>arr)//查询信息
{
if(arr.size()==0)
{
System.out.println("数组中没有学生信息,请先进行添加!");
return ;
}
Scanner sc=new Scanner(System.in);
System.out.println("请输入你想要查询的学生学号:");
String ss=sc.nextLine();//输入想要查询的学生学号
System.out.println("学号\t姓名\t年龄\t性格\t成绩\t");
for(int i=0;i<arr.size();i++)
{
Student s=arr.get(i);
if(s.getstunumber().equals(ss)) {
System.out.println(s.getstunumber() + "\t" + s.getname() + "\t" +
s.getage() + "岁" + "\t" + s.getsex() + "\t" + s.getscore() + "\t");//输出
break;
}
}
System.out.println("查询完毕!");
}
public static void deleteStudent(ArrayList<Student>arr)//删除学生信息
{
Scanner sc=new Scanner(System.in);
System.out.println("请输入你要删除的学生的学号:");
String ss=sc.nextLine();
int index=-1;
for(int i=0;i<arr.size();i++)
{
Student s=arr.get(i);
if(s.getstunumber().equals(ss))
{
index=i;//赋值给索引值
arr.remove(i);
break;
}
}
if(index==-1)
{
System.out.println("该学号不存在!");
}
else {
System.out.println("删除信息成功!");
}
}
public static void updateStudent(ArrayList<Student>arr)//修改学生信息
{
System.out.println("请输入你想要修改的学生的学号:");
Scanner sc = new Scanner(System.in);
String id = sc.nextLine();
int index = -1;
for (int i = 0; i < arr.size(); i++) {
Student s = arr.get(i);
if (s.getstunumber().equals(id)) {
index = i;
break;
}
}
if (index == -1) {
System.out.println("无法查询到该学号,输入错误!");
} else {
System.out.println("请输入修改后的学生学号:");
String id1 = sc.nextLine();
System.out.println("请输入修改后的学生姓名:");
String name = sc.nextLine();
System.out.println("请输入修改后的学生年龄:");
int age = sc.nextInt();
System.out.println("请输入修改后的学生性别:");
int sex = sc.nextInt();
System.out.println("请输入修改后的学生成绩:");
double score = sc.nextInt();
Student s = new Student();//创建新的学生对象
s.setstunumber(id1);
s.setname(name);
s.setage(age);
s.setsex(sex);
s.setscore(score);
for (int i = 0; i < arr.size(); i++) {
Student sss = arr.get(i);
if (sss.getstunumber().equals(id)) {
arr.set(i, s);
break;
}
} System.out.println("修改信息成功!"); }
}
public static void daoru(ArrayList<Student>arr) throws IOException//导入文件
{
ArrayList<Student> students = new ArrayList<Student>();
for (int i = 0; i < arr.size(); i++) {
Scanner sc = new Scanner(System.in);
//键盘输入数据
System.out.println("请输入学生学号:");
String id=sc.nextLine();
System.out.println("请输入学生姓名:");
String name = sc.nextLine();
System.out.println("请输入学生年龄:");
int age = sc.nextInt();
System.out.println("请输入学生性别:");
int sex = sc.nextInt();
System.out.println("请输入学生成绩:");
double score=sc.nextInt();
//把数据封装成学生对象
Student s = new Student();
s.setstunumber(id);
s.setname(name);
s.setage(age);
s.setsex(sex);
s.setscore(score);
students.add(s);
}
File destPath = new File("g.txt");
BufferedWriter bw = new BufferedWriter(new FileWriter(destPath));
bw.write("学号\t");
bw.write("姓名\t");
bw.write("年龄\t");
bw.write("性别\t");
bw.write("成绩\t");
bw.newLine();
bw.flush(); for (Student s : students) {
String id=s.getstunumber();
String name = s.getname();
int age = s.getage();
int sex = s.getsex();
double score = s.getscore(); bw.write(id+"\t");
bw.write(name + "\t");
bw.write(age + "\t");
bw.write(sex + "\t");
bw.write(score + "\t");
bw.newLine();
bw.flush();
}
bw.close();
System.out.println("导入成功!");
} }

咳咳,我们下期再见哦!

写Java程序有感的更多相关文章

  1. 记事本写JAVA程序

    编写程序源码: 1.新建记事本程序,修改文件名称为HelloWorld.java 打开编辑以下内容,保存. public class HelloWorld { public static void m ...

  2. 【转】介绍Jython,第一部分:轻轻松松写JAVA程序

    本文转自:http://www.ibm.com/developerworks/cn/education/java/j-jython1/index.html 关于本教程 本教程介绍哪些内容? 这个两部分 ...

  3. 使用100%面向过程的思维方式来写java程序

    1.java是强制写class关键字的语言,不能有独立的函数游离在类外出现在文件中,这和python c++ 都不同,后面的都可以单独在类外写函数,所以java被称为是纯面向对象的语言,py和c++都 ...

  4. 写Java程序要体现面向对象

          对于之前写的一篇文章现在想想存在不足之处,之前写的测试ArrayList和LinkedList的各项操作性能比较的程序没有体现面向对象的封装特性,所以,今天把代码重新写了一遍,其实改动的地 ...

  5. 写Java程序的三十个基本规则【新手必读】

    (1) 类名首字母应该大写.字段.方法以及对象(句柄)的首字母应小写.对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母.例如:  ThisIsAClassName  this ...

  6. 笔记:写Java程序,并输出

    建一个文件名为 demo.java的文件 //写框架文件 public class Demo{ //写入口文件 public static void main(String[] args){ Syst ...

  7. 写Java程序让Jvm崩溃

    package jvm; public class HeapCrash { public static void main(String[] args) { //Object[] o = {“abc” ...

  8. 代写java程序qq:928900200

    学校为全面提升学校教学质量,提高管理水平,决定开发一套小型成绩管理系统,实现以下功能.1)   系统用户分为管理员.教师和学生三种角色,每种角色都可以包含若干个用户.其中管理员登录后可以进行教师.学生 ...

  9. 写java代码有感。。。构造方法最好带着,

    (一) 小结:具体我最大的担心,害怕就是方法调用的时候,new对象之后,赋值,是在new后面的括号里实现,还是在 对象.方法名()这样的.当然带参数的构造方法,调用时本身就直接调用,普通方法,选后者. ...

  10. CS代码代写, 程序代写, java代写, python代写, c/c++代写,csdaixie,daixie,作业代写,代写

    互联网一线工程师程序代写 微信联系 当天完成特色: 互联网一线工程师 24-48小时完成.用心代写/辅导/帮助客户CS作业. 客户反馈与评价 服务质量:保证honor code,代码原创.参考课程sl ...

随机推荐

  1. 杭电OJ1029题C++实现

    解题思路:因为要求的数出现的次数总是比其他数字出现的次数多1,所以若总是用相同的数去与其他的数相抵,那么最后只剩下一个,那就是要求的数. 另外需要注意的一点就是,最好不要去开长度为999999的数组, ...

  2. 训练题——OLED部分

    训练题OLED部分 实现目标 通过IIC通信控制OLED屏幕显示出一串字符串 名词介绍 OLED屏: OLED(Organic Light-Emitting Diode),又称为有机电激光显示.有机发 ...

  3. Jmeter添加while控制器

    通过添加while控制器,可以实现条件+循环判断,使while控制器内的子线程根据之前线程的返回(while控制器内外变量皆可)进行触发+循环的控制. 原理如下:通过Condition判断条件语句是否 ...

  4. Http 包头里面有个content-length,可以获取下载的资源包大小

    NSDictionary *headerFieldsDic = request.responseHeaders; 包大小为:[headerFieldsDic[@"Content-Length ...

  5. Django基础篇 01- 初识Django

    一.Django介绍 flask,FastApi是轻量级服务端开发框架 Django是重量级服务端开发框架 ORM:封装了数据库操作 form:校验请求数据 安装Django: pip install ...

  6. applicationContext.xml及springMVC.xml详解

    在前面的web.xml详解里,我们引入applicationContext.xml和springMVC.xml两个配置文件, 前者是spring 全局配置文件,用来控制spring 特性的, 后者则是 ...

  7. Treewidget节点的删除

    父节点的删除 // 第一种 // 树状列表父节点的删除 // 有点莽 不支持这种操作 delete ui->treeWidget->topLevelItem(0); //  第二种 QTr ...

  8. Bugku Log4j2 漏洞题目 解题参考

    Log4j2 漏洞题目 题目地址 https://ctf.bugku.com/challenges/detail/id/340.html?page=1 二.攻击环境准备 需要一台linux云服务器,把 ...

  9. Software Engineering homework 3

    博客信息 沈阳航空航天大学计算机学院2020软件工程作业 作业要求 https://edu.cnblogs.com/campus/sau/Computer1701-1705/homework/1061 ...

  10. .NetCore中配置Ef

    1.在NuGet中下载 Microsoft.EntityFrameworkCore.Tools Microsoft.EntityFrameworkCore.SqlServer 2.需要在Api层.实现 ...