⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2540620127.txt

📁 学生信息系统构架 基于java构建 简单的框架
💻 TXT
字号:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.StringTokenizer;

/*
* Created on 2007-12-23
*/

/**
* @author 汪洋
* @since 1.0
*
* TODO 学生成绩管理系统
* 通过学号查找,修改,删除数据
* 
*/
public class LittleProgram 
{
static boolean isDelete = true;
static boolean isFind = true;
public static void main(String [] args)//主方法,程序从这里开始运行 
throws IOException,NumberNotFoundException
{
int choice=-1;
do{
LittleProgram lp = new LittleProgram();
System.out.println();
System.out.println("\t####################################");
System.out.println();
System.out.println("\t\t Java学生成绩管理系统1.1");
System.out.println("\t\t请用学号查找,修改,删除数据");
System.out.println();
System.out.println("\t####################################\n");
System.out.print("1.增加数据:\n" 
"2.查找数据:\n" 
"3.删除数据:\n" 
"4.清除所有数据:\n" 
"5.把数据全部打印到屏幕\n" 
"6.把成绩按学号排序\n" 
"7.修改数据\n" 
"8.统计已记录成绩学生数\n" 
"9.关于作者\n" 
"0.退出程序.\n" 
"输入:");
BufferedReader in = //从终
new BufferedReader( //端接
new InputStreamReader(System.in));//收数
String inputLine = in.readLine(); //字选
choice= Integer.valueOf(inputLine).intValue();//项;
switch(choice)
{
case 1: {//1.增加数据 
String str = lp.inputData();
lp.addData(str);
System.out.println("增加数据成功.");
timeOut(1);
}break;
case 2: {//2.查找数据
long find = 0;
System.out.print("请输入你要查找的学生学号:");
BufferedReader inn =
new BufferedReader(
new InputStreamReader(System.in));
String inputLi = inn.readLine();
find = Integer.valueOf(inputLi).longValue();
lp.findData(find);

timeOut(2);
}break;
case 3: {//3.删除数据
long deleteNumber = 0;
System.out.print("请输入你想删除的同学的学号:");
BufferedReader bf =
new BufferedReader (
new InputStreamReader(System.in));
String inputL = bf.readLine();
deleteNumber = Integer.valueOf(inputL).longValue();
lp.deleteData(deleteNumber);
if(isDelete)
System.out.println("删除数据成功!");
timeOut(1);
}break;
case 4: { 
lp.clearData();//4.清除所有数据
timeOut(1);
}break;
case 5: {
print();//5.把数据全部打印到屏幕
timeOut(2);
}break;
case 6: {
lp.numSort();//6.把成绩按学号排序 
System.out.println("按照学号从小到大排序成功!\n" 
"排序后:\n");
print();
timeOut(2);
}break;
case 7: {
lp.rewrite();//7.修改数据
timeOut(2);
}break;
case 8: {
int count = lp.count();
System.out.println("共有" count "个学生已经记录.");
timeOut(2);
}break;
case 9: {
System.out.print("\t\t汪洋\n" 
"\t\t电子科大成都学院计算机系\n" 
"\t\tQQ:175545310\n");
timeOut(4);
}break;
}while (choice != 0);
System.out.println("Bye! ^-^");
System.exit(0);
}
public String inputData()//从终端接收数据的方法,返回字符串
throws IOException,NumberFormatException
{
System.out.print("请依次输入 :学号 姓名 性别 成绩\n" 
"每项数据请用空格隔开:");
String all = "";
try{
BufferedReader in = //从终
new BufferedReader ( //端接
new InputStreamReader(System.in)); //收数 
String inputLine = in.readLine(); //据
StringTokenizer str = 
new StringTokenizer(inputLine," ");//接收的数据用空格隔开,这个类用来提取每个字符串 
long num = Integer.valueOf(str.nextToken()).longValue();//学号 
String name = (String)str.nextToken(); //姓名
String sex = (String)str.nextToken(); //性别 
double mark = Integer.valueOf(str.nextToken()).doubleValue();//分数 
all = String.valueOf(num) " , " 
name " , " 
sex " , " 
String.valueOf(mark);//把所有的数据用" , "隔开然后在连起来放进字符串all 
}catch (IOException e){}
catch (NumberFormatException e){}
return all;//返回字符串all
}
public void addData(String str)//增加数据的方法
throws IOException
{
String s1 ="",s2="" ,s3= "";
File file = new File("data.txt");
if (file.exists())//如果文件data.txt存在
{
try{
BufferedReader in =
new BufferedReader(
new FileReader("data.txt"));
while ((s1=in.readLine())!=null)
s2 =s1 "\n";//把文件中的每行数据全部放进一个字符串s2 
s2 =str "\n"; //再把s2于形参str相连放进s2
BufferedReader in2 = //把字符
new BufferedReader( //串s2也 
new StringReader(s2)); //就是原
PrintWriter out = //文件 
new PrintWriter( //形参str(新输入的一行数据)
new BufferedWriter( //重新写进data.txt
new FileWriter("data.txt"))); //覆盖原来的数据 
while ((s3=in2.readLine())!= null)
{
out.println(s3);
}
out.close();
//System.out.println("write data true.");
}catch (IOException e){}


public void remove(long i)//接收学号,然后删除学号(key)和它对应的数据(value)
{
remove(String.valueOf(i).toString().toString());
}
public String get(long i)//接收一个学号,然后返回这个key对应的value
{
String s = String.valueOf(i).toString();
if (!containsKey(s))
{
System.err.println("Not found Key: " s);
}
return (String)get(s);
}
}
/*
* 
* @author WangYang
*
* TODO 这个类继承ArrayList
* 用来按数字排序,在用学号排序时要用到它
* 
*/
class DataArrayList extends ArrayList
{
public void add(long num)
{
String numToString = String.valueOf(num).toString();
add(numToString);
}
}
/*
* 
* @author WangYang
*
* TODO 增加的一个Exception,主要是在文件里没有要找
* 的学号就抛出
* 
*/
class NumberNotFoundException extends Exception
{ 
public NumberNotFoundException()
{}




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -