基于命令行的学生成绩管理系统.docx
面向对象程序设计与C+?实验报告年级、专业、班级2011级计科4班2011级计科4班2011级计科4班姓名XX实验题目基于命令行的学生成绩管理系统实验时间2013.10.16-2013.10.23实验地点A414实验成绩实验性质口验证性设计性综合性教师评价:算法/实脸过程正确;源程序/实验内容提交程序构造/实验步骤合理;实险结果正确;口语法、语义正确;口报告标准;其他:评价教师签名:一、实验目的运用面向对象程序设计思想,使用JaVa集合框架,实现对学生成绩的管理。二、实验工程内容1、设计学生类接口;2、使用集合框架,实现学生成绩的插入、通过名字查询、显示各科成绩排名列表、显示各科成绩通过学生学号的排名列表。3、将内存中的集合框架对象进展持久化,下一次运行系统时可直接调用。三、实验过程或算法源程序packagefilemanager;importjava.io.*;importjava.security.*;importjava.util.*;importjavax.crypto.*;publicclassFileManager(publicstaticvoidmain(Stringfargs)throwsExceptionMainMenumainmenu=newMainMenuO;mainmenu.StartMenu();)classCreateFileCreateFileOthrowsIOExceptionScanners=newScanner(SystemJn);System.out.println("Wheretocreate?(D:/aaa/.StringCurrentDirectory=s.next();Filefile=newFile(CurrentDirectory);if(file.exists()System.out.println(Enterthename:");StringName=s.next();Filef=newFile(CurrentDirectory+File.separator+Name);/实例化File类的对象f.mkdir();System.out.println(,successtocreate!");)elseSysiem.out.println("thedirectoryisn'texist!");classDeleteFileFilepath;publicDeleteFile(Filepath)this.path=path;)publicvoidDelete(Filepath)Filefilelist=path.IistFiles();intIistlen=filelist.length;for(inti=O;i<listlen;i+)if(filelisti.isDirectory()Delete(filelisti);Ielsefilelistil.delete();)path.delete();删除当前目录1voidSuccess()System.out.println("Successtodelete!:n);IclassEnterDirectoryEnterDirectory(Stringpath)throwsIOExceptionRuntime.getRuntime().exec("explorer.exe,+path);)classListDirectory1.istDirectory(Stringpath)/StringIUj=null;路径如果dir不以文件分隔符结尾,自动添加文件分隔符if(!path.endsVith(FiIe.separator)(path=path+File.separator;)FiledirFile=newFile(path);如果dir对应的文件不存在,或者不是一个文件夹那么退出if(!dirFile.exists()(!dirFile.isDirectory()System.out.println(,Listfailed!cannotfindthedirectory:'*+path);)/list方法返回该目录下的所有文件(包括目录)的文件名,文件名不含路径信息System.out.println(path+"containsbelowdirectoriseorfiles");Stringjfiles=dirFile.list();for(inti=0;i<files.length;i+)System.out.println(filesil);classCopyFiIeCopyFiIe(Stringsource,Stringdest)throwsIOExceptionFilein=newFile(source);Fileout=newFile(dest);FileInputStreaminFile=newFileInputStream(In);FileOutputStreamoutFile=newFileOutputStream(Out);bylebuffer=newbyte1024;inti=O;while(i=inFile.read(buffer)!=-1)outFile.write(buffer,O,i);)endwhileinFile.close();outFile.close();System.out.print("Successtocopy!");IclassCopyDirectory)publicvoidcopyFolder(StringoldPath,StringnewPath)try(newFile(newPath).mkdirs();如果文件夹不存在那么建设新文件夹Filea=newFile(OldPath);String!file=a.lisl();Filetemp=null;for(inti=O;i<file.length;i+)if(oldPath.endsWith(File.separator)temp=newFile(oldPath+filei);elsetemp=newFile(oldPath+File.separator+filei);)if(lemp.isFile()FiIeInputStreaminput=newFileInputStream(Iemp);FileOutputStreamoutput=newFileOutputStream(newPath+'7"+(temp.getName().toString();byteb=newbyte1024*5;intlen;while(len=input.read(b)!=-1)output.write(b,0,len);output,flush();output.close();input.close();)if(temp.isDirectory()/如果是子文件夹copyFolder(oldPath+,7,+filei,newPath+'7"+filei);)catch(Exceptionc)SySIem.oul.priniln(”复制整个文件夹内容操作出错”);e.printStackTrace();publicvoidSuccess()System.out.println("Successtocopythedirectory!");)classTestDESKeykey;publicTestDES()publicTestDES(Stringstr)getKey(str);生成密匙)/* 根据参数生成KEY* /publicvoidgetKey(StringstrKey)(try(KeyGenerator.generator=KeyGenerator.getInstance("DES");_generator.init(newSecureRandom(strKey.getBytes();lhis.key=_generator.generateKey();.generator=null;1catch(Exceptione)thrownewRuntimeExceptionCErrorinitializingSqIMapclass.Cause:"+e);* 文件file进展加密并保存目标文件destFile中* paramfile要加密的文件如c:/test/SrCFiIe.txt* paramdestFile加密后存放的文件名如c:/加密后文件Jxl* /publicvoidencrypt(Stringfile,StringdestFile)throwsException【具体用法见主函数】Ciphercipher=Cipher.getInstance(',DES");/cipher.init(Cipher.ENCRYPT_MODE,getKey();cipher.init(Cipher.ENCRYPT-MODE,this.key);InputStreamis=newFileInputSlream(file);OutputStreamout=newFileOutputStream(destFile);CipherInputStreamcis=newCipherInputStream(is,cipher);bytebuffer=newbyte1024;intr;while(r=cis.read(buffer)>O)out.write(buffer5O,r);cis.close();is.close();out.close();* 文件采用DES算法解密文件* paramfile已加密的文件如c:/加密后文件.txt* *paramdestFile* 解密后存放的文件名如c:/test/解密后文件.txt*/publicvoiddecrypt(Stringfile,Stringdest)throwsExceptionCiphercipher=Cipher.gelInstance(,DES");cipher.init(Cipher.DECRYPT_MODE,this.key);InputStreamis=newFileInputStream(file);OutputStreamout=newFileOutputStream(Jest);CipherOutputStreamcos=newCipherOutputStream(out,cipher);bytebuffer=newbyte1024;intr;while(r=is.read(buffer)>=O)cos.write(buffer,O,r);1cos.close();out.close();is.close();voidDES()throwsExceptionSyste