java学生通讯录管理系统实验报告

时间:2024.3.19

宁波大红鹰学院

课程设计

课程设计名称:            Java

    学生姓名:                     

学生学号:                      

班级名称:           

    指导教师:              

    完成日期:              2011/01/7

  

     

学生通讯录管理系统实验报告

1、封面;

2、目录;

3、设计任务书;

实验题目:

用Java语言编写一个简单的学生通讯录程序,能实现通讯录的基本功能。

实验目的:

详细设计 :

软件产品布局:

使用了按钮与下拉菜单。一个用来显示文件的文本区,一个用于输出信息的文本框。在下拉菜单中,我选择了用户所需要的一些常用的条件功能:录入和显示。文件显示区我们设置为可编辑,目的是方便用户进行任何形式的修改,在这里我们忽略了它所带来的不安全性。在按钮中我们添加了这几个项:录入和显示。

实现方法(算法分析):

在设计的时候,考虑到由于能力有限,只是使用了一些许的面向对象程序设计的设计方法,在软件的设计与实现的时候更多的是使用面向过程的设计方法,在软件中,我们提供了两个封装的方法函数:public void read() 和public void write().在这两个方法中,都使用了异常处理机制,当用户进行非法操作时,提供相应的异常(主要是显示出错信息)。在两个基本点封装的方法中,并没有要求用户提供具体的参数,而是直接地去调用它们,具体的实现方式对用户来说是不可见的,在write方法中,其功能是获取用户所写入的字符串,并将它写入文件

关键技术的应用

关键技术

通讯录的设计要点有以下四个。

1、通讯录的存取功能主要是通过利用文件的读入与读出的性质来实现

2、利用JOptionPane产生的对话框、信息框、确认框与用户进行信息交流

3、用数组来存储每个人的信息主要是方便用户在执行查找、删除等较为具体的功能

4、用read()和write()两个函数进行对文件的读取操作,主要是要达到更新快的目的,存储最新的信息,做到流通快

5、利用Array.sort()方法根据元素的自然顺序对指定的对象数组按升序进行排序

通讯录程序源代码:

主体内容:

1)   设计分析;

2)   各模块的功能及程序说明;

3)   源程序;

4)   试验结果

5)   显示界面

输入信息

显示信息

6)   设计体会。

在这次课程设计初步设想是比较好的,但由于个人原因以及能力问题通讯录中的一些预期效果还没有实现比如说对联系人进行分组、排列以及查找联系人中的按电话号码及按地址查找还没有实现,有待进一步加强并完善。

总之,通过此次课程设计,这学期学的 JAVA知识得到巩固和应用,在设计的过程中我遇到了很多问题,但在同学们的帮助以及上网查询相关知识最终在自己的认真思考下还想顺利的完成了此次课设。通过这此课程设计我还懂得了写程序不能闭门造车,要努力拓宽知识面,开阔视野,拓展思维。


第二篇:Java实验 学生通讯录系统


成绩:

面向对象原理与Java实践课程实验报告

实验1:对象和类

姓 名 _ ___

班 级 _ ___

学 号 _ ___

实验地点 _ ___

实验时间 _ ___

指导教师 _ ___

面向对象原理与Java实践课程实验报告

实验1:对象和类

一、实验目的:

?

?

? 掌握类的定义及应用方法 掌握对象的创建方法,了解实例变量、实例方法和静态字段的特性 体会Java在类和对象的设计中体现的面向对象的思想

二、实验要求:

?

?

?

? 具备Java基础知识(教材第1、2章内容) 掌握Java中对象和类的基本概念和应用方法(教材第3章内容) 设计类时注意保证类的封装性 编写程序完成以下实验内容并上交实验报告(包括电子文档与纸质文档)

三、实验内容:

设计并实现一个“广石化院电信学院学生通信录”系统。系统采用字符界面,在出现的主界面中按提示输入相应字符以选择“增加”、“删除”、“修改”、“查找”等功能进行操作(其中“查找”功能除能够查找某个学生的信息之外,还能够显示所有学生的信息)。记录的存储可采用数组或链表的方式。

四、设计思路:

为了实现该系统,首先要需要两个类;一个类为主界面服务,用于接收用户输入信息以及做出相关反应;一个类为学生信息服务,定义学生通讯录信息的各个字段,以及操作字段的各个方法,考虑到部分字段的属性问题,所以将操作方法都写在学生类中,不再另外放置在其他类中。学生信息将会采用学生类的对象数组来储存。

五、程序源代码:

下面是ZhuJieMian 主界面类

package pkg_TXL;

import java.util.Scanner;

public class ZhuJieMian

{

/**

*

* 该类为通讯录系统的主界面提供主要功能显示,以及负责主菜单与子菜单的正常跳转

*/

public static void main(String[] args)

{

"); // TODO Auto-generated method stub //XueShengXinXi[] Stu=ChuShiHua(); //初始化系统数据 XueShengXinXi[] Stu=new XueShengXinXi[100]; Stu[0]=new XueShengXinXi("专业", "班级", "姓名", "性别", "电话", "家庭住址

Stu[1]=new XueShengXinXi("自动化", "自动化10-1", "张三", "男", "63256", "fnhjfdhsdbh");

Stu[2]=new XueShengXinXi("自动化", "自动化10-2", "李四", "女", "653256", "nfhggdfddhsdbh");

Stu[3]=new XueShengXinXi("电子", "电子10-1", "王五", "男", "6156", "fnhvjbh");

Stu[4]=new XueShengXinXi("电子", "电子10-2", "小红", "女", "63956", "asdfnhjbh");

Stu[5]=new XueShengXinXi("网络", "网络10-1", "小明", "男", "656", "nfgdgfnhjbh");

Stu[6]=new XueShengXinXi("网络", "网络10-2", "小芳", "女", "62215", "nfgdmmmdfhbdsh");

Stu[7]=new XueShengXinXi("计算机", "计算机10-1", "黄龙", "男", "65584", "bbbdddfnhjbh");

Stu[8]=new XueShengXinXi("计算机", "计算机10-2", "陈玲", "女", "666114", "mjgfddddfnhjbh");

Stu[9]=new XueShengXinXi("测控", "测控10-1", "赵小斌", "男", "644814", "fthnrehbkjhjbh");

Stu[10]=new XueShengXinXi("测控", "测控10-2", "钱颖", "女", "63641", "dbfsvnnhjbh");

Stu[11]=new XueShengXinXi("电信", "电信10-1", "孙武", "男", "6321514", "mmhmgvvdfnhjbh");

Stu[12]=new XueShengXinXi("电信", "电信10-2", "李雨", "女", "6314", "43ghffvvdfnhjbh");

for(int x=13;x<Stu.length;x++)

{

Stu[x]=new XueShengXinXi();

}

System.out.println("欢迎使用广石化电信学院通讯录系统!");

ZhuJieMian: for(int exit=0;exit==0;)//exit为退出主菜单的指示变量,0为不退出,非0为退出

{

System.out.println();

System.out.println("************************************"); System.out.println("****************主菜单****************"); System.out.print(" 1。查询学生信息\t\t");

System.out.println("2。新增学生信息");

System.out.print(" 3。修改学生信息\t\t");

System.out.println("4。删除学生信息");

System.out.print(" 5。恢复已被删除信息\t\t");

System.out.println("6。退出");

System.out.println("************************************"); System.out.println("************************************"); System.out.print("请选择你要操作的功能序号:");

Scanner scn_input=new Scanner(System.in);

String XuHao=scn_input.next();

System.out.println();

if(XuHao.equals("1")) //二级菜单——查询学生信息

{

select:for(int exit2=0;exit2==0;) //exit为退出二级菜单的指示变量,0

为不退出,非0为退出

{

System.out.println("***************************************************************");

System.out.println("************************二级菜单——查询学生信息************************");

System.out.println("***************************************************************");

System.out.println();

System.out.print("请输入要查找的关键字(包括专业,班级,姓名等等),输入“all”显示全部信息,输入“back”返回主菜单:");

String str_KeyWord=scn_input.next();

System.out.println();

if(str_KeyWord.equals("all"))

{

System.out.println();

System.out.println("************************学生通讯录信息************************");

XueShengXinXi.Show(Stu);

System.out.println();

System.out.println();

continue select;

}

else if(str_KeyWord.equals("back"))

{

continue ZhuJieMian;

}

else

{

int[] index=XueShengXinXi.Select(str_KeyWord,Stu); if(index[0]==0)

{

System.out.println("抱歉,没有找到关于“"+str_KeyWord+"”的学生信息!");

System.out.println();

continue select;

}

else

{

System.out.println("************************学生通讯录信息************************");

XueShengXinXi.Show(Stu,index);

System.out.println();

System.out.println();

continue select;

}

}

}

}

else if(XuHao.equals("2")) //二级菜单——新增学生信息

{

insert:for(int exit3=0;exit3==0;)

{

System.out.println();

System.out.println("***************************************************************");

System.out.println("************************二级菜单——新增学生信息************************");

System.out.println("***************************************************************");

System.out.println();

System.out.println("请按右边的格式输入新增学生的专业/班级/姓名/性别/电话/地址信息(前3项信息必填),输入“back”返回主菜单:");

String str_Stu=scn_input.next();

if(str_Stu.equals(""))

{

System.out.println("输入有误,请重新输入!");

continue insert;

}

else if(str_Stu.equals("back"))

{

System.out.println();

continue ZhuJieMian;

}

else

{

boolean zuoFei=XueShengXinXi.Insert(Stu, str_Stu);

if(zuoFei==true)

{

System.out.println();

System.out.println("由于学生信息必填项信息缺失,所以新增失败。返回至二级菜单...");

System.out.println();

continue insert;

}

else

{

System.out.println();

System.out.println("新增成功!返回至二级菜单..."); System.out.println();

continue insert;

}

}

//exit3=1;

}

}

else if(XuHao.equals("3")) //二级菜单——修改学生信息

{

System.out.println("***************************************************************");

System.out.println("************************二级菜单——修改学生信息************************");

System.out.println("***************************************************************");

System.out.println();

System.out.println("************************学生通讯录信息************************");

XueShengXinXi.Show(Stu);

//System.out.println();

update:for(int exit4=0;exit4==0;) //exit为退出二级菜单的指示变量,0为不退出,非0为退出

{

System.out.println();

System.out.print("请输入要修改的学生前的序号(每次只能输入一个),输入“back”返回主菜单:");

String str_XuHao=scn_input.next();

System.out.println();

if(str_XuHao.equals("back"))

{

System.out.println();

continue ZhuJieMian;

}

else

{

int[] id=XueShengXinXi.Str_Int(Stu,str_XuHao,false); if(id[0]<Stu.length&id[0]!=0)

{

System.out.println();

//int index=XueShengXinXi.Select_index(Stu, id[0]); System.out.println("该学生信息如下:");

System.out.print(Stu[id[0]].str_ZhuanYe+"/"+Stu[id[0]].str_BanJi+"/");

System.out.print(Stu[id[0]].str_XingMing+"/"+Stu[id[0]].str_XingBie+"/");

System.out.println(Stu[id[0]].str_DianHua+"/"+Stu[id[0]].str_DiZhi);

System.out.println("请按以上格式输入修改后的信息(某一项无修改的话,则不用输入):");

String str_Stu=scn_input.next();

XueShengXinXi.Update(Stu[id[0]], str_Stu);

System.out.println("修改成功!已返回二级菜单"); System.out.println();

System.out.println("***************************************************************");

System.out.println("************************二级菜单——修改学生信息************************");

System.out.println("***************************************************************");

System.out.println();

System.out.println("************************学生通讯录信息************************");

XueShengXinXi.Show(Stu);

continue update;

}

else

{

System.out.println("输入有误!已返回至二级菜单"); continue update;

}

}

//exit4=1;

}

}

else if(XuHao.equals("4")) //二级菜单——删除学生信息 {

System.out.println("***************************************************************");

System.out.println("************************二级菜单——删除学生信息************************");

System.out.println("***************************************************************");

System.out.println();

System.out.println("************************学生通讯录信息************************");

XueShengXinXi.Show(Stu);

delete:for(int exit5=0;exit5==0;) //exit为退出二级菜单的指示变量,0为不退出,非0为退出

{

System.out.println();

//System.out.println("************二级菜单——删除学生信息************");

System.out.print("请输入要删除的学生信息前的序号(输入多个序号时用/隔开),输入“all”删除全部信息,输入“back”返回主菜单:");

String str_xuHao=scn_input.next();

System.out.println();

if(str_xuHao.equals("back"))

{

System.out.println();

continue ZhuJieMian;

}

else if(str_xuHao.equals("all"))

{

XueShengXinXi.Delete_All(Stu);

System.out.println("全部数据已被删除,已返回主菜单。。。。。。");

//XueShengXinXi.Show(Stu);

continue ZhuJieMian;

}

else

{

int[] id=XueShengXinXi.Str_Int(Stu,str_xuHao,false); if(id[0]<Stu.length)

{

//System.out.println();

XueShengXinXi.Delete_index(Stu, id);

//System.out.println("删除成功!已返回二级菜单"); System.out.println();

System.out.println("***************************************************************");

System.out.println("************************二级菜单——删除学生信息************************");

System.out.println("***************************************************************");

System.out.println();

System.out.println();

System.out.println("************************学生通讯录信息************************");

XueShengXinXi.Show(Stu);

continue delete;

}

else

{

System.out.println("输入有误!已返回至二级菜单"); continue delete;

}

}

//exit5=1;

}

}

else if(XuHao.equals("5")) //二级菜单——恢复已被删除信息 {

System.out.println("***************************************************************");

System.out.println("**********************二级菜单——恢复已被删除信息***********************");

System.out.println("***************************************************************");

System.out.println();

System.out.println("**************************回收站信息**************************");

boolean bol=XueShengXinXi.Show_Del(Stu);

if(bol==true)

{

System.out.println();

System.out.println("回收站为空,目前没有被删除的信息!已返回至主菜单。。。。。。");

continue ZhuJieMian;

}

else

{

recover:for(int exit6=0;exit6==0;) //exit为退出二级菜单的指示变量,0为不退出,非0为退出

{

System.out.println();

//System.out.println("************二级菜单——删除学生信息************");

System.out.print("请输入要恢复的信息的序号(输入多个序号时用/隔开),输入“all”恢复全部信息,输入“back”返回主菜单:");

String str_xuHao=scn_input.next();

System.out.println();

if(str_xuHao.equals("back"))

{

System.out.println();

continue ZhuJieMian;

}

else if(str_xuHao.equals("all"))

{

XueShengXinXi.Recover_All(Stu);

System.out.println("全部恢复完毕!已返回主菜单。。。。。。");

continue ZhuJieMian;

}

else

{

int[] id=XueShengXinXi.Str_Int(Stu,str_xuHao,true); if(id[0]<Stu.length)

{

//System.out.println();

XueShengXinXi.Recover_index(Stu, id);

//System.out.println("删除成功!已返回二级菜单"); System.out.println();

System.out.println("***************************************************************");

System.out.println("**********************二级菜单——恢复已被删除信息***********************");

System.out.println("***************************************************************");

System.out.println();

System.out.println();

System.out.println("**************************回收站信息**************************");

XueShengXinXi.Show_Del(Stu);

continue recover;

}

else

{

System.out.println("输入有误!已返回至二级菜单");

continue recover;

}

}

}

}

}

else if(XuHao.equals("6"))

{

break ZhuJieMian;

}

else

{

System.out.println("输入有误,已返回主菜单!");

System.out.println();

continue ZhuJieMian;

}

//exit=1;

}

}

}

下面是XueShengXinXi 学生信息类

package pkg_TXL;

public class XueShengXinXi

{

String str_ZhuanYe="";

String str_BanJi="";

//String str_XueHao="";

String str_XingMing="";

String str_XingBie="";

String str_DianHua="";

String str_DiZhi="";

Boolean bol_ZuoFei=true;

//String str_ID="";

int int_ID=0;

XueShengXinXi(){}

//有参构造方法

public XueShengXinXi(String ZhuanYe,String BanJi,String XingMing,String XingBie,String DianHua,String DiZhi)

{

str_ZhuanYe=ZhuanYe;

str_BanJi=BanJi;

str_XingMing=XingMing;

str_XingBie=XingBie;

str_DianHua=DianHua;

str_DiZhi=DiZhi;

bol_ZuoFei=false;

}

//新增学生信息的函数

public static boolean Insert(XueShengXinXi[] stu,String str_stu)

{

int i=0;

for(;i<stu.length;i++)

{

if(stu[i].bol_ZuoFei==true)

{

break;

}

}

stu[i].str_ZhuanYe="";

stu[i].str_BanJi="";

stu[i].str_XingMing="";

stu[i].str_XingBie="";

stu[i].str_DianHua="";

stu[i].str_DiZhi="";

int k=0; for(int j=1;j<=str_stu.length();j++) { if(str_stu.substring(j-1, j).equals("/")) { k+=1; //index=j; } else { //System.out.println(k); if(k==0) { //stu[i].str_ZhuanYe=str_stu.substring(index, j); stu[i].str_ZhuanYe=stu[i].str_ZhuanYe+str_stu.substring(j-1, j); } else if(k==1) { //stu[i].str_BanJi=str_stu.substring(index, j); stu[i].str_BanJi=stu[i].str_BanJi+str_stu.substring(j-1, j); } else if(k==2) { //stu[i].str_XingMing=str_stu.substring(index, j); stu[i].str_XingMing=stu[i].str_XingMing+str_stu.substring(j-1, j); } else if(k==3) { //stu[i].str_XingBie=str_stu.substring(index, j); stu[i].str_XingBie=stu[i].str_XingBie+str_stu.substring(j-1, j); } else if(k==4) { //stu[i].str_DianHua=str_stu.substring(index, j); stu[i].str_DianHua=stu[i].str_DianHua+str_stu.substring(j-1, j); } else if(k==5) { //stu[i].str_DiZhi=str_stu.substring(index, j); stu[i].str_DiZhi=stu[i].str_DiZhi+str_stu.substring(j-1, j); } } } if(stu[i].str_ZhuanYe.equals("")|stu[i].str_BanJi.equals("")|stu[i].str_XingMing.equals("")) { stu[i].bol_ZuoFei=true; stu[i].str_ZhuanYe=""; stu[i].str_BanJi=""; stu[i].str_XingMing=""; stu[i].str_XingBie=""; stu[i].str_DianHua=""; stu[i].str_DiZhi=""; } else {

stu[i].bol_ZuoFei=false; } return stu[i].bol_ZuoFei; } public static void Show(XueShengXinXi[] stu) //格式化的输出全部学生的信息 { int[] col=new int[6]; //定义六个int类型变量,分别存储六列宽度 for(int x=0;x<col.length;x++) { col[x]=0; } for(int j=0;j<stu.length;j++) //第一步,获取全部列的最大宽度 { if(stu[j].str_ZhuanYe.length()>col[0]&stu[j].bol_ZuoFei==false) { col[0]=stu[j].str_ZhuanYe.length(); } if(stu[j].str_BanJi.length()>col[1]&stu[j].bol_ZuoFei==false) { col[1]=stu[j].str_BanJi.length(); } if(stu[j].str_XingMing.length()>col[2]&stu[j].bol_ZuoFei==false) { col[2]=stu[j].str_XingMing.length(); } if(stu[j].str_XingBie.length()>col[3]&stu[j].bol_ZuoFei==false) { col[3]=stu[j].str_XingBie.length(); } if(stu[j].str_DianHua.length()>col[4]&stu[j].bol_ZuoFei==false) { col[4]=stu[j].str_DianHua.length(); } if(stu[j].str_DiZhi.length()>col[5]&stu[j].bol_ZuoFei==false) { col[5]=stu[j].str_DiZhi.length(); } } for(int i=0;i<col.length;i++) //第二步,将最大宽度加上6,得到实际宽度 { col[i]=col[i]+6; } for(int k=0;k<stu.length;k++) //第三步,将实际宽度减去字符长度得到空字符长度 { //stu[k].ID=" "+k; //stu[k].str_ID=Integer.toString(k); stu[k].int_ID=k; //System.out.println(stu[k].ID); if(k==0) { System.out.print("\t"+GetSpace(stu[k].str_ZhuanYe,col[0])); System.out.print(GetSpace(stu[k].str_BanJi,col[1])); System.out.print(GetSpace(stu[k].str_XingMing,col[2]));

System.out.print(GetSpace(stu[k].str_XingBie,col[3]));

System.out.print(GetSpace(stu[k].str_DianHua,col[4]));

System.out.println(GetSpace(stu[k].str_DiZhi,col[5]));

//for(int l=0;l<col[0]+col[1]+col[2]+col[3]+col[4]+col[5]+5;l++)

//{

//System.out.print("—");

//}

for(int l=0;l<6*4;l++)

{

System.out.print("————");

}

System.out.println("———————");

}

else if(k>0&k<10&stu[k].bol_ZuoFei==false)

{

System.out.print(k+"\t"+GetSpace(stu[k].str_ZhuanYe,col[0]));

System.out.print(GetSpace(stu[k].str_BanJi,col[1]));

System.out.print(GetSpace(stu[k].str_XingMing,col[2]));

System.out.print(GetSpace(stu[k].str_XingBie,col[3]));

System.out.print(GetSpace(stu[k].str_DianHua,col[4]));

System.out.println(GetSpace(stu[k].str_DiZhi,col[5]));

}

else if(k>=10&stu[k].bol_ZuoFei==false)

{

System.out.print(k+"\t"+GetSpace(stu[k].str_ZhuanYe,col[0]));

System.out.print(GetSpace(stu[k].str_BanJi,col[1]));

System.out.print(GetSpace(stu[k].str_XingMing,col[2]));

System.out.print(GetSpace(stu[k].str_XingBie,col[3]));

System.out.print(GetSpace(stu[k].str_DianHua,col[4]));

System.out.println(GetSpace(stu[k].str_DiZhi,col[5]));

}

}

}

private static String GetSpace(String str,int len) //根据每个字符不同加制表符 {

/*String space="";

if(len>=str.length())

{

for(int i=0;i<len-str.length();i++)

{

space=space+" ";

}

return str+'\t'+'\t';

}

else

{

return str;

}*/

return str+'\t'+'\t';

}

public static int[] Select(String keyword,XueShengXinXi[] stu) //根据关键字查询学生信息,并返回结果数组的索引值

{

int[] index=new int[stu.length];

int j=0;

for(int i=1;i<stu.length&stu[i].bol_ZuoFei==false;i++)

{

if(keyword.equals(stu[i].str_ZhuanYe)|keyword.equals(stu[i].str_BanJi)) {

index[j]=i;

j+=1;

}

else if(keyword.equals(stu[i].str_XingMing)|keyword.equals(stu[i].str_XingBie)) {

index[j]=i;

j+=1;

}

else if(keyword.equals(stu[i].str_DianHua)|keyword.equals(stu[i].str_DiZhi)) {

index[j]=i;

j+=1;

}

}

return index;

}

public static void Show(XueShengXinXi[] stu,int[] index) //重载show方法,根据int数组的值作为输出数组的索引值

{

int[] col=new int[6]; //定义六个int类型变量,分别存储六列宽度

for(int x=0;x<col.length;x++)

{

col[x]=0;

}

for(int j=0;j<stu.length;j++) //第一步,获取全部列的最大宽度

{

if(stu[j].str_ZhuanYe.length()>col[0]&stu[j].bol_ZuoFei==false)

{

col[0]=stu[j].str_ZhuanYe.length();

}

if(stu[j].str_BanJi.length()>col[1]&stu[j].bol_ZuoFei==false)

{

col[1]=stu[j].str_BanJi.length();

}

if(stu[j].str_XingMing.length()>col[2]&stu[j].bol_ZuoFei==false)

{

col[2]=stu[j].str_XingMing.length();

}

if(stu[j].str_XingBie.length()>col[3]&stu[j].bol_ZuoFei==false)

{

col[3]=stu[j].str_XingBie.length();

}

if(stu[j].str_DianHua.length()>col[4]&stu[j].bol_ZuoFei==false)

{

col[4]=stu[j].str_DianHua.length();

}

if(stu[j].str_DiZhi.length()>col[5]&stu[j].bol_ZuoFei==false)

{

col[5]=stu[j].str_DiZhi.length();

}

}

for(int i=0;i<col.length;i++) //第二步,将最大宽度加上6,得到实际宽度 {

col[i]=col[i]+6;

}

System.out.print("\t"+GetSpace(stu[0].str_ZhuanYe,col[0]));

System.out.print(GetSpace(stu[0].str_BanJi,col[1]));

System.out.print(GetSpace(stu[0].str_XingMing,col[2]));

System.out.print(GetSpace(stu[0].str_XingBie,col[3]));

System.out.print(GetSpace(stu[0].str_DianHua,col[4]));

System.out.println(GetSpace(stu[0].str_DiZhi,col[5]));

for(int l=0;l<col[0]+col[1]+col[2]+col[3]+col[4]+col[5]+5;l++)

{

System.out.print("—");

}

System.out.println("————————————————————————");

for(int k=0;index[k]!=0;k++) //第三步,将实际宽度减去字符长度得到空字符长度 {

//if(k==0)

//{

//}

if(stu[index[k]].bol_ZuoFei==false)

{

System.out.print(k+"\t"+GetSpace(stu[index[k]].str_ZhuanYe,col[0])); System.out.print(GetSpace(stu[index[k]].str_BanJi,col[1]));

System.out.print(GetSpace(stu[index[k]].str_XingMing,col[2]));

System.out.print(GetSpace(stu[index[k]].str_XingBie,col[3]));

System.out.print(GetSpace(stu[index[k]].str_DianHua,col[4]));

System.out.println(GetSpace(stu[index[k]].str_DiZhi,col[5]));

}

}

}

public static int[] Str_Int(XueShengXinXi[] stu,String str,boolean zuoFei)

{

int[] sign={stu.length+1,0};

String[] xuhao=new String[stu.length]; //第一步,初始化一个string数组,用于暂存将要删除的序号

for(int x=0;x<xuhao.length;x++)

{

xuhao[x]="";

}

int i=0;int index=-1; //z变量用于表示第一个数字的位置

for(;i<str.length();i++) //第二步,检查该字符串是否存在非法字符 {

if(str.charAt(i)>='0'&str.charAt(i)<='9')

{

if(index==-1)

{

index=i;

}

}

else

{

if(str.charAt(i)!='/')

{

return sign;

}

//index+=1;

}

}

if(index==-1)

{

return sign;

}

boolean next=false;int z=0;

for(int y=index;y<str.length();y++) //第三步,过滤“/”符号,从字符串中提取有效序号,存于string数组

{

if(str.charAt(y)=='/')

{

next=true;

}

else

{

if(next==true)

{

z+=1;

}

xuhao[z]=xuhao[z]+str.substring(y, y+1);

next=false;

}

}

int[] id=new int[z+1]; //第四步,检查序号合理性,记录下最终的id数组

for(int j=0;j<id.length;j++)

{

int m=Integer.parseInt(xuhao[j]);

//System.out.print("*"+xuhao[j]+"*");

for(int k=1;k<stu.length;k++)

{

//if()

if(m==stu[k].int_ID/*&stu[k].bol_ZuoFei==false*/)

{

if(stu[k].str_ZhuanYe.equals("")==false|stu[k].str_BanJi.equals("")==false|stu[k].str_XingMing.equals("")==false)

{

if(stu[k].bol_ZuoFei==zuoFei)

{

id[j]=k;

break;

}

}

}

} } return id; } public static void Delete_index(XueShengXinXi[] stu,int[] id) { //int id=Integer.parseInt(str_id); int x=0; for(int i=0;i<id.length;i++) { if(stu[id[i]].bol_ZuoFei==false&id[i]!=0) { stu[id[i]].bol_ZuoFei=true; System.out.println("成功删除第"+stu[id[i]].int_ID+"条信息"); x+=1; } } if(x>0) { System.out.println("操作完毕!"); } else { System.out.println("没有需要删除的数据!"); } //System.out.println("操作完毕!"); //System.out.println(); } public static void Update(XueShengXinXi stu,String str_stu) { String[] str=new String[6]; for(int i=0;i<str.length;i++) { str[i]=""; } int k=0; for(int j=1;j<=str_stu.length();j++) { if(str_stu.substring(j-1, j).equals("/")) { k+=1; } else { if(k==0) { str[0]=str[0]+str_stu.substring(j-1, j); } else if(k==1) { str[1]=str[1]+str_stu.substring(j-1, j); } else if(k==2) { str[2]=str[2]+str_stu.substring(j-1, j); }

else if(k==3)

{

str[3]=str[3]+str_stu.substring(j-1, j);

}

else if(k==4)

{

str[4]=str[4]+str_stu.substring(j-1, j);

}

else if(k==5)

{

str[5]=str[5]+str_stu.substring(j-1, j);

}

}

}

if(str[0].equals("")==false)

{

stu.str_ZhuanYe=str[0];

}

if(str[1].equals("")==false)

{

stu.str_BanJi=str[1];

}

if(str[2].equals("")==false)

{

stu.str_XingMing=str[2];

}

if(str[3].equals("")==false)

{

stu.str_XingBie=str[3];

}

if(str[4].equals("")==false)

{

stu.str_DianHua=str[4];

}

if(str[5].equals("")==false)

{

stu.str_DiZhi=str[5];

}

}

public static void Delete_All(XueShengXinXi[] stu)

{

for(int i=0;i<stu.length;i++)

{

if(stu[i].str_ZhuanYe.equals("")==false|stu[i].str_BanJi.equals("")==false|stu[i].str_XingMing.equals("")==false)

{

stu[i].bol_ZuoFei=true;

}

}

}

public static boolean Show_Del(XueShengXinXi[] stu)

{

boolean bol=true; //该布尔类型用于指示回收站是否为空

for(int i=0;i<stu.length;i++)

{

stu[i].int_ID=i;

if(i==0)

{

System.out.print("\t"+stu[i].str_ZhuanYe+'\t'+'\t');

System.out.print(stu[i].str_BanJi+'\t'+'\t');

System.out.print(stu[i].str_XingMing+'\t'+'\t');

System.out.print(stu[i].str_XingBie+'\t'+'\t');

System.out.print(stu[i].str_DianHua+'\t'+'\t');

System.out.println(stu[i].str_DiZhi+'\t'+'\t');

for(int l=0;l<6*4;l++)

{

System.out.print("————");

}

System.out.println("———————");

}

else if(i>0&stu[i].bol_ZuoFei==true)

{

if(stu[i].str_ZhuanYe.equals("")==false|stu[i].str_BanJi.equals("")==false|stu[i].str_XingMing.equals("")==false)

{

bol=false;

System.out.print(i+"\t"+stu[i].str_ZhuanYe+'\t'+'\t');

System.out.print(stu[i].str_BanJi+'\t'+'\t');

System.out.print(stu[i].str_XingMing+'\t'+'\t');

System.out.print(stu[i].str_XingBie+'\t'+'\t');

System.out.print(stu[i].str_DianHua+'\t'+'\t');

System.out.println(stu[i].str_DiZhi+'\t'+'\t');

}

}

}

return bol;

}

public static void Recover_All(XueShengXinXi[] stu)

{

for(int i=0;i<stu.length;i++)

{

if(stu[i].str_ZhuanYe.equals("")==false|stu[i].str_BanJi.equals("")==false|stu[i].str_XingMing.equals("")==false)

{

stu[i].bol_ZuoFei=false;

}

}

}

public static void Recover_index(XueShengXinXi[] stu,int[] id)

{

//int id=Integer.parseInt(str_id);

int x=0;

for(int i=0;i<id.length;i++)

{

}

} if(stu[id[i]].bol_ZuoFei==true&id[i]!=0) { stu[id[i]].bol_ZuoFei=false; System.out.println("成功恢复第"+stu[id[i]].int_ID+"条信息"); x+=1; } } if(x>0) { System.out.println("操作完毕!"); } else { System.out.println("没有需要恢复的数据!"); } //System.out.println("操作完毕!"); //System.out.println();

六、实验过程中遇到的问题及解决手段:

实验过程中由于对制表符 \t 不熟悉,导致输出的字符界面不美观、絮乱。后来在网上查到了相关信息,找到了解决办法。

七、实验体会(结论):

通过这次实验,使我对java中对象及其数组的使用,有更深的了解;并且对C++与java在编程开发时的区别有了亲身体会。

更多相关推荐:
java学生成绩管理系统实验报告

JAVA课内实验报告学生成绩管理系统一.实验目的及实验环境实验目的:在如今的高校日常管理当中,学生成绩管理系统就是其中非常重要的一环,特别是当前学生规模大,课程门类多,校区分散等实际情况,学生成绩管理系统更具有…

java学生管理系统实训报告

Java学生管理系统实训报告学号姓名班级指导老师1一项目计划1项目名称学生信息管理系统2实训地点3小组成员二系统总体设计1需求分析学生信息管理系统是对学生的个人信息课程信息成绩信息以信息化的方式进行管理最大限度...

学生管理系统JAVA实训报告

实训报告书实训名称基础项目实训系部专业班级网络工程121学生姓名芦志强学号20xx23010117指导教师王鸽完成日期20xx1214山东科技大学课程实训报告书目录目录31实训概述32Java访问并处理数据库的...

学生管理系统实训报告(java语言)

Java实训设计报告学生管理系统一项目需求通过与科信学院教务人员的详细交流目标系统具备以下功能1教师客户端功能可以更改密码可以添加学生并要求填写学生基本信息可以根据学号查询学生基本信息及其成绩有权限控制每个管理...

java学生成绩管理系统实验报告

JAVA课内实验报告学生成绩管理系统一实验目的及实验环境实验目的在如今的高校日常管理当中学生成绩管理系统就是其中非常重要的一环特别是当前学生规模大课程门类多校区分散等实际情况学生成绩管理系统更具有非常大的实际应...

基于Java的学生管理系统设计实验报告

河北工业大学Java程序设计课程设计报告学生信息管理系统的设计与实现班级软件Z102班姓名曹立红学号104431指导教师姜子敬目录1前言12系统功能121运行环境122操作说明13系统流程图24程序调试及参数设...

java超市管理系统实训报告

11课程设计的目的通过本次课程设计使学生能够全面深刻地掌握数据库系统的设计流程根据在数据库原理课程中所学到的数据库理论知识结合某个具体的实际需求最终开发出一个较为实用的数据库系统12课程设计的背景和意义121课...

Java面向对象程序设计购物管理系统实训报告

Java面向对象程序设计购物管理系统实训报告班级软件1001指导教师宋全记学生陈杨欢实训时间20xx年秋期四川建筑职业技术学院计算机工程系20xx年12月29日一Java的特点Java具有面向对象与平台无关安全...

学籍管理系统(简易)(java代码实现)实验报告

江西师范大学计算机信息工程学院学生实验报告专业计算机科学与技术姓名学号日期20xx05061实验目的1熟悉和掌握字符串数组等两种高级数据类型2进一步应用Scanner类的对象读取不同类型的数据3进一步训练自顶向...

Java综合性实验 学生成绩管理系统

综合性实验学生成绩管理系统班级数学092学号20xx120xx210姓名同艳云实验仪器设备多媒体计算机实验目的在掌握相关基础知识的基础上学会自己设计实验熟练掌握JDBC技术访问数据库或数据文件的方法在Java中...

学生管理系统 实验报告

华南农业大学信息学院设计性综合性实验一实验目的1掌握闯将WEB数据库应用程序的方法2熟悉在ASPNET下数据表记录基本操作3熟悉GRIDVIEW数据控件的使用4熟悉数据源控件SQLDATASOURSE的使用二实...

学生管理系统实验报告

学生管理系统实验报告实验目的学习学生管理系统java程序编程编写学生管理系统程序一实验环境在软件Eclipse运行环境下运行二实验步骤1在Eclipse环境中创建一个java工程然后创建学生管理系统类并在这类中...

java学生管理系统实训报告(16篇)