目录
算法
排序算法自己曾经的总结,这里不再赘述:链接: https://blog.youkuaiyun.com/m0_46113894/article/details/109520450.
文件的存储与读取:
- 使用BufferReader缓冲流读取,并使用装饰模式,使用输入流与文件流构造
- 使用BufferWriter写文件,构造时注意:文件流第二个参数写false,这样写的时候不会接着文件的末尾加上去,而是重写文件。
- 采用特定文本格式存储,每次读取一行,使用String的split方法根据逗号分隔字符串,借此提取出字符串中的信息,并顺序的存入Array List列表中
- 写的时候顺序遍历列表,通过构造该格式的字符串再一行一行地写入文件
new BufferedReader(new InputStreamReader(new FileInputStream(fileName), “UTF-8”));
new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName, false)));
代码
pojo
Student类
package StudentInfoManage.pojo;
/**
* @author LiuWei
*/
public class Student {
private int id;
private String name;
private String major;
private int cpp;
private int network;
private int dataStructure;
private int english;
private int total;
private int ranking;
private static int studentNum=1;
public Student(){
}
/**
* 新增学生所需构造函数,id自动生成,提供格式与存储格式相同
* @param name
* @param major
* @param cpp
* @param network
* @param dataStructure
* @param english
*/
public Student(String name, String major, int cpp, int network, int dataStructure, int english) {
this.id=studentNum++;
this.name = name;
this.major = major;
this.cpp = cpp;
this.network = network;
this.dataStructure = dataStructure;
this.english = english;
this.total =this.cpp+this.network+this.dataStructure+this.english;
this.ranking=0;
}
/**
* 文件读取用,所有参数为String,无id,总分,排名
* @param name
* @param major
* @param cpp
* @param network
* @param dataStructure
* @param english
*/
public Student( String name, String major, String cpp, String network, String dataStructure, String english) {
this.id=studentNum++;
this.name = name;
this.major = major;
this.cpp =Integer.parseInt(cpp);
this.network =Integer.parseInt( network);
this.dataStructure = Integer.parseInt(dataStructure);
this.english = Integer.parseInt(english);
this.total =this.cpp+this.network+this.dataStructure+this.english;
this.ranking = 0;
}
/**
* 提供所有参数,用于读取文件中学生信息完全都有的情况,所有参数为String
* @param id
* @param name
* @param major
* @param cpp
* @param network
* @param dataStructure
* @param english
* @param total
* @param ranking
*/
public Student(String id, String name, String major, String cpp, String network, String dataStructure, String english, String total, String ranking) {
this.id=Integer.parseInt(id);
//遇到更大的id自动按大号生成
if(this.id>studentNum){
studentNum=this.id+1;
}
this.name = name;
this.major = major;
this.cpp =Integer.parseInt(cpp);
this.network =Integer.parseInt( network);
this.dataStructure = Integer.parseInt(dataStructure);
this.english = Integer.parseInt(english);
this.total =this.cpp+this.network+this.dataStructure+this.english;
this.ranking = Integer.parseInt(ranking);
}
/**
* 用于读取文件的不同情况
* @param id
* @param name
* @param major
* @param cpp
* @param network
* @param dataStructure
* @param english
*/
public Student(String id ,String name, String major, String cpp, String network, String dataStructure, String english) {
this.id=Integer.parseInt(id);
this.name = name;
this.major = major;
this.cpp =Integer.parseInt(cpp);
this.network =Integer.parseInt( network);
this.dataStructure = Integer.parseInt(dataStructure);
this.english = Integer.parseInt(english);
this.total =this.cpp+this.network+this.dataStructure+this.english;
this.ranking = 0;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
public int getCpp() {
return cpp;
}
public void setCpp(int cpp) {
this.cpp = cpp;
}
public int getNetwork() {
return network;
}
public void setNetwork(int network) {
this.network = network;
}
public int getDataStructure() {
return dataStructure;
}
public void setDataStructure(int dataStructure) {
this.dataStructure = dataStructure;
}
public int getEnglish() {
return english;
}
public void setEnglish(int english) {
this.english = english;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public int getRanking() {
return ranking;
}
public void setRanking(int ranking) {
this.ranking = ranking;
}
public String getAllInfo(){
return new String(id+","+name+","+major+","+cpp+","+network+","+dataStructure+","+english+","+total+","+ranking);
}
public void setAllScore(int cpp,int network,int dataStructure,int english) {
this.cpp = cpp;
this.network=network;
this.dataStructure=dataStructure;
this.english=english;
this.total=cpp+network+dataStructure+english;
}
public void showAll(){
System.out.println(id+" "+name+" "+major+" "+cpp+" "+network+" "+ dataStructure+" "+english+" "+total+" "+ranking);
}
}
Account类
package StudentInfoManage.pojo;
/**
* @author lw
*/
public class Account {
/**账户编号*/
private int accountId;
/**账户名称*/
private String accountName;
/**密码*/
private String password;
static int accountNum=1;
public Account( String accountName, String password) {
this.accountId =accountNum++ ;
this.accountName = accountName;
this.password = password;
}
public Account() {
}
public int getAccountId() {
return accountId;
}