首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 操作系统-> Windows xp教程
Java学生成绩管理系统源代码-JSP教程,Java技巧及代码
作者:网友供稿 点击:390
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
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 2005-1-11
*/

/**
* @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:254482170\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){}
}else{
system.err.println("file \"data\" missing!");
}
}
public void cleardata()//清除data.txt的所有数据的方法
throws ioexception
{
file file = new file("data.txt");
if(file.exists())//如果文件在
{
try{
printwriter out =
new printwriter(
new bufferedwriter(
new filewriter(file)));
out.print("");//在文件data.txt里写进一个空字符,所以清除了原来的内容
out.close(); //关闭文件
system.out.println("clear data true!");
}catch(ioexception e){}
}else{
system.err.println("file \"data\" missing!");
}
}
public void deletedata(long deletenumber)//删除某条数据
throws ioexception,filenotfoundexception
{
isdelete = true;
try{
datamap mp = new datamap();//生成一个自己编写的容器
long j=0;
string s1="",s2="",s3="";
bufferedreader in =
new bufferedreader(
new filereader("data.txt"));
while ((s1=in.readline())!=null)
{
j=numbertokenizer(s1);
mp.put(j,s1);
}
try{
if(mp.containskey( string.valueof(deletenumber).tostring()))
{
mp.remove(deletenumber);
}else
throw new numbernotfoundexception();
collection c = mp.values();
iterator iter = c.iterator();
while(iter.hasnext())
{
s1 = (string)iter.next();
s3 +=s1+"\n";
}
bufferedreader in2 =
new bufferedreader(
new stringreader(s3));
printwriter out =
new printwriter(
new bufferedwriter(
new filewriter("data.txt")));
//system.out.println("delete no"+deletenumber);
while( (s1 = in2.readline())!=null)
{
out.println(s1);
}
out.close();
}catch (numbernotfoundexception e)
{
isdelete = false;
system.out.println(deletenumber+" no found :(");
}
}catch(ioexception e){}
}
public long numbertokenizer(string s)
throws ioexception
{
stringtokenizer st =
new stringtokenizer(s," ");
return integer.valueof((st.nexttoken())).longvalue();
}
public void finddata(long find)//查找数据
throws ioexception,numbernotfoundexception
{
isfind = true;
string s = "",findstring ="";
long i;
datamap dm = new datamap();
bufferedreader in =
new bufferedreader(
new filereader("data.txt"));
while ((s=in.readline())!=null)
{
i=numbertokenizer(s);
dm.put(i,s);
}
//in.close();
try{
if(dm.containskey( string.valueof(find).tostring()))
{
findstring = dm.get(find);
system.out.println("学号"+find+"学生的资料是:");
system.out.println(findstring);
}else
throw new numbernotfoundexception();
}catch (numbernotfoundexception e){
system.out.println(find+" no found :(");
isfind = false;
}
}
public static void print()//读取文本文件把数据打印到终端的方法
throws ioexception
{
try{
bufferedreader in =
new bufferedreader(
new filereader("data.txt"));
string read = "";
while ((read = in.readline())!=null)
system.out.println(read);
}catch(ioexception e){}
}
public static void timeout(double sec)//停顿短暂时间的一个方法完全可以不要这个功能
{
double seconds = sec;
long t = system.currenttimemillis()+(int)(seconds*1000);
while ((system.currenttimemillis())<t)
;
}
public void numsort()//按学号排序
throws ioexception
{
long i = 0;
string s = "";
try{
dataarraylist dal = new dataarraylist();
bufferedreader in =
new bufferedreader(
new filereader("data.txt"));
while ((s=in.readline())!=null)
{
i=numbertokenizer(s);
dal.add(i);
}
collections.sort(dal);
datamap dm = new datamap();
bufferedreader in2 =
new bufferedreader(
new filereader("data.txt"));
while ((s=in2.readline())!=null)
{
i=numbertokenizer(s);
dm.put(i,s);
}
printwriter out =
new printwriter (
new bufferedwriter(
new filewriter("data.txt")));
iterator it = dal.iterator();
long temp = 0;
string tempstr = "";
while (it.hasnext())
{
temp = integer.valueof((string)it.next()).longvalue();
tempstr = dm.get(temp);
out.println(tempstr);
}
out.close();
}catch(ioexception e){}
}
public void rewrite()
throws ioexception,numbernotfoundexception
{
try{
system.out.print("请输入你要修改的学生学号:");
bufferedreader in =
new bufferedreader (
new inputstreamreader(system.in));
string inputline = in.readline();
long num = integer.valueof(inputline).longvalue();
finddata(num);
if(isfind)
{
deletedata(num);
system.out.print("请重新输入该学生的资料:");
string str = inputdata();
adddata(str);
system.out.println("rewrite true!");
}
}catch(ioexception e){}
catch(numbernotfoundexception e){}
}
public int count()
throws ioexception
{

dataarraylist dal = new dataarraylist();
try{
string s = "";
long i =0;
bufferedreader in =
new bufferedreader(
new filereader("data.txt"));
while ((s=in.readline())!=null)
{
i=numbertokenizer(s);
dal.add(i);
}
}catch(ioexception e){}
return dal.size();
}
}
/*
*
* @author rangwei
* todo 这是个我们写的一个容器,继承公共类hashmap
* 大概的功能就相当一个数组
*
*/
class datamap extends hashmap//一个存储数据的map
{
public void put(long i,string str)//把学号和数据放进这个map
{ //以后一个学号(key)对应的是一个人的数据(value)
put(string.valueof(i).tostring(),str);
}
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 rangwei
*
* todo 这个类继承arraylist
* 用来按数字排序,在用学号排序时要用到它
*
*/
class dataarraylist extends arraylist
{
public void add(long num)
{
string numtostring = string.valueof(num).tostring();
add(numtostring);
}
}
/*
*
* @author rangwei
*
* todo 增加的一个exception,主要是在文件里没有要找
* 的学号就抛出
*
*/
class numbernotfoundexception extends exception
{
public numbernotfoundexception()
{}
}




文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·用ghost完美克隆windows xp+sp2
·[ASP.NET]如何在客户端调用服务端代码-.NET教程,Asp.Net开发
·安装windows sp2后 程序为何不能运行
·windows xp系统虚拟内存的标准设置方法
·SQL Server端口更改后的数据库连接方式-ASP教程,数据库相关
·Java学生成绩管理系统源代码-JSP教程,Java技巧及代码
·精华的微软文章".NET 数据访问架构指南"-.NET教程,数据库应用
·系统高手 xp最新应用技巧六招
·windows xp操作系统疑难问题巧解决
·SQL Server 调用C#。net写的Dll ,(分享我的HelloWorld测验)-.NET教程,C#语言
最新文章
·谈谈三年来做站的经验_站长心得
·用户的体验习惯化与去习惯化_站长心得
·web2.0网站需要借鉴的七种传统赢利模式_站长心得
·网页布局的位置重心与位置间的对比关系_站长心得
·google adsense公益广告的替代方法_google推广
·google adsense全面解析_google推广
·2006年关于google等的15项预测_google推广
·google搜索技巧_google推广
·有趣的网上搜索_google推广
·网站制作简易流程介绍_站长心得
相关主题
  • java学习路径-工具篇_java认证
  • java学习路径-方法篇+资源篇_java认证
  • Java学习路径(三)过程篇-JSP教程,Java基础
  • Java学习路径(二)书籍篇-JSP教程,Java基础
  • Java学习路径(一)工具篇-JSP教程,Java基础
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭