java实验报告——异常、集合类和泛型

上传人:无*** 文档编号:170595882 上传时间:2022-11-21 格式:DOC 页数:20 大小:85KB
收藏 版权申诉 举报 下载
java实验报告——异常、集合类和泛型_第1页
第1页 / 共20页
java实验报告——异常、集合类和泛型_第2页
第2页 / 共20页
java实验报告——异常、集合类和泛型_第3页
第3页 / 共20页
资源描述:

《java实验报告——异常、集合类和泛型》由会员分享,可在线阅读,更多相关《java实验报告——异常、集合类和泛型(20页珍藏版)》请在装配图网上搜索。

1、成绩: 面向对象原理与Java实践课程实验报告实验3:异常、集合类和泛型姓 名 _ _ 班 级 _ _ 学 号 _ _ 实验地点 _ _ 实验时间 _ _ 指导教师 _ _ 一、实验目的:l 掌握Java异常处理的应用l 掌握Java中实现自定义异常l 掌握泛型类的定义和应用l 使用List接口及其实现类二、实验要求:l 具备异常和泛型的概念知识(教材第5、7章内容)l Java异常处理的语法格式(教材第5章内容)l 理解集合类和集合接口(教材第8章内容)l 泛型类的定义(教材第7章内容)l 编写程序完成以下实验内容并上交实验报告(包括电子文档与纸质文档)三、实验内容:在实验1基础上实现异常处

2、理,另外,记录的存储访问使用泛型化的List接口及其实现类进行。附实验1:设计并实现一个“广石化院电信学院学生通信录”系统。系统采用字符界面,在出现的主界面中按提示输入相应字符以选择“增加”、“删除”、“修改”、“查找”等功能进行操作(其中“查找”功能除能够查找某个学生的信息之外,还能够显示所有学生的信息)。四、 设计思路:设计思路跟实验一的基本一致,只是将通讯记录的存储访问用List接口代替而已五、程序源代码:package pkg_TXL;import java.util.Scanner;public class ZhuJieMian /* * * 该类为通讯录系统的主界面提供主要功能显示

3、,以及负责主菜单与子菜单的正常跳转 */public static void main(String args) / TODO Auto-generated method stub/XueShengXinXi Stu=ChuShiHua(); /初始化系统数据XueShengXinXi Stu=new XueShengXinXi100;Stu0=new XueShengXinXi(专业, 班级, 姓名, 性别, 电话, 家庭住址);Stu1=new XueShengXinXi(自动化, 自动化10-1, 张三, 男, 63256, fnhjfdhsdbh);Stu2=new XueShengX

4、inXi(自动化, 自动化10-2, 李四, 女, , nfhggdfddhsdbh);Stu3=new XueShengXinXi(电子, 电子10-1, 王五, 男, 6156, fnhvjbh);Stu4=new XueShengXinXi(电子, 电子10-2, 小红, 女, 63956, asdfnhjbh);Stu5=new XueShengXinXi(网络, 网络10-1, 小明, 男, 656, nfgdgfnhjbh);Stu6=new XueShengXinXi(网络, 网络10-2, 小芳, 女, 62215, nfgdmmmdfhbdsh);Stu7=new XueSh

5、engXinXi(计算机, 计算机10-1, 黄龙, 男, 65584, bbbdddfnhjbh);Stu8=new XueShengXinXi(计算机, 计算机10-2, 陈玲, 女, , mjgfddddfnhjbh);Stu9=new XueShengXinXi(测控, 测控10-1, 赵小斌, 男, , fthnrehbkjhjbh);Stu10=new XueShengXinXi(测控, 测控10-2, 钱颖, 女, 63641, dbfsvnnhjbh);Stu11=new XueShengXinXi(电信, 电信10-1, 孙武, 男, , mmhmgvvdfnhjbh);St

6、u12=new XueShengXinXi(电信, 电信10-2, 李雨, 女, 6314, 43ghffvvdfnhjbh);for(int x=13;xStu.length;x+)Stux=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.pr

7、int( 1。查询学生信息tt);System.out.println(2。新增学生信息);System.out.print( 3。修改学生信息tt);System.out.println(4。删除学生信息);System.out.print( 5。恢复已被删除信息tt);System.out.println(6。退出);System.out.println(*);System.out.println(*);System.out.print(请选择你要操作的功能序号:);Scanner scn_input=new Scanner(System.in);String XuHao=scn_inpu

8、t.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 s

9、tr_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;elseint index=XueShengXinXi.Select(str_K

10、eyWord,Stu);if(index0=0)System.out.println(抱歉,没有找到关于“+str_KeyWord+”的学生信息!);System.out.println();continue select;elseSystem.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;

11、)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;els

12、e if(str_Stu.equals(back)System.out.println();continue ZhuJieMian;elseboolean zuoFei=XueShengXinXi.Insert(Stu, str_Stu);if(zuoFei=true)System.out.println();System.out.println(由于学生信息必填项信息缺失,所以新增失败。返回至二级菜单.);System.out.println();continue insert;elseSystem.out.println();System.out.println(新增成功!返回至二级菜单.

13、);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为退出二级

14、菜单的指示变量,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;elseint id=XueShengXinXi.Str_Int(Stu,str_XuHao,false);if(id0Stu.length&id0!=0)Syst

15、em.out.println();/int index=XueShengXinXi.Select_index(Stu, id0);System.out.println(该学生信息如下:);System.out.print(Stuid0.str_ZhuanYe+/+Stuid0.str_BanJi+/);System.out.print(Stuid0.str_XingMing+/+Stuid0.str_XingBie+/);System.out.println(Stuid0.str_DianHua+/+Stuid0.str_DiZhi);System.out.println(请按以上格式输入修改

16、后的信息(某一项无修改的话,则不用输入):);String str_Stu=scn_input.next();XueShengXinXi.Update(Stuid0, 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);c

17、ontinue update;elseSystem.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;) /e

18、xit为退出二级菜单的指示变量,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.equ

19、als(all)XueShengXinXi.Delete_All(Stu);System.out.println(全部数据已被删除,已返回主菜单。);/XueShengXinXi.Show(Stu);continue ZhuJieMian;elseint id=XueShengXinXi.Str_Int(Stu,str_xuHao,false);if(id0Stu.length)/System.out.println();XueShengXinXi.Delete_index(Stu, id);/System.out.println(删除成功!已返回二级菜单);System.out.printl

20、n();System.out.println(*);System.out.println(*二级菜单删除学生信息*);System.out.println(*);System.out.println();System.out.println();System.out.println(*学生通讯录信息*);XueShengXinXi.Show(Stu);continue delete;elseSystem.out.println(输入有误!已返回至二级菜单);continue delete;/exit5=1;else if(XuHao.equals(5) /二级菜单恢复已被删除信息System.

21、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;elserecover:for(int exit6=0;exit6=0;) /e

22、xit为退出二级菜单的指示变量,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

23、(all)XueShengXinXi.Recover_All(Stu);System.out.println(全部恢复完毕!已返回主菜单。);continue ZhuJieMian;elseint id=XueShengXinXi.Str_Int(Stu,str_xuHao,true);if(id0Stu.length)/System.out.println();XueShengXinXi.Recover_index(Stu, id);/System.out.println(删除成功!已返回二级菜单);System.out.println();System.out.println(*);Sys

24、tem.out.println(*二级菜单恢复已被删除信息*);System.out.println(*);System.out.println();System.out.println();System.out.println(*回收站信息*);XueShengXinXi.Show_Del(Stu);continue recover;elseSystem.out.println(输入有误!已返回至二级菜单);continue recover;else if(XuHao.equals(6)break ZhuJieMian;elseSystem.out.println(输入有误,已返回主菜单!)

25、;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_

26、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 In

27、sert(XueShengXinXi stu,String str_stu)int i=0;for(;istu.length;i+)if(stui.bol_ZuoFei=true)break;stui.str_ZhuanYe=;stui.str_BanJi=;stui.str_XingMing=;stui.str_XingBie=;stui.str_DianHua=;stui.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/

28、System.out.println(k);if(k=0)/stui.str_ZhuanYe=str_stu.substring(index, j);stui.str_ZhuanYe=stui.str_ZhuanYe+str_stu.substring(j-1, j);else if(k=1)/stui.str_BanJi=str_stu.substring(index, j);stui.str_BanJi=stui.str_BanJi+str_stu.substring(j-1, j);else if(k=2)/stui.str_XingMing=str_stu.substring(inde

29、x, j);stui.str_XingMing=stui.str_XingMing+str_stu.substring(j-1, j);else if(k=3)/stui.str_XingBie=str_stu.substring(index, j);stui.str_XingBie=stui.str_XingBie+str_stu.substring(j-1, j);else if(k=4)/stui.str_DianHua=str_stu.substring(index, j);stui.str_DianHua=stui.str_DianHua+str_stu.substring(j-1,

30、 j);else if(k=5)/stui.str_DiZhi=str_stu.substring(index, j);stui.str_DiZhi=stui.str_DiZhi+str_stu.substring(j-1, j);if(stui.str_ZhuanYe.equals()|stui.str_BanJi.equals()|stui.str_XingMing.equals()stui.bol_ZuoFei=true;stui.str_ZhuanYe=;stui.str_BanJi=;stui.str_XingMing=;stui.str_XingBie=;stui.str_Dian

31、Hua=;stui.str_DiZhi=;elsestui.bol_ZuoFei=false;return stui.bol_ZuoFei;public static void Show(XueShengXinXi stu) /格式化的输出全部学生的信息int col=new int6; /定义六个int类型变量,分别存储六列宽度for(int x=0;xcol.length;x+)colx=0;for(int j=0;jcol0&stuj.bol_ZuoFei=false)col0=stuj.str_ZhuanYe.length();if(stuj.str_BanJi.length()col

32、1&stuj.bol_ZuoFei=false)col1=stuj.str_BanJi.length();if(stuj.str_XingMing.length()col2&stuj.bol_ZuoFei=false)col2=stuj.str_XingMing.length();if(stuj.str_XingBie.length()col3&stuj.bol_ZuoFei=false)col3=stuj.str_XingBie.length();if(stuj.str_DianHua.length()col4&stuj.bol_ZuoFei=false)col4=stuj.str_Dian

33、Hua.length();if(stuj.str_DiZhi.length()col5&stuj.bol_ZuoFei=false)col5=stuj.str_DiZhi.length();for(int i=0;icol.length;i+) /第二步,将最大宽度加上6,得到实际宽度coli=coli+6;for(int k=0;kstu.length;k+) /第三步,将实际宽度减去字符长度得到空字符长度/stuk.ID= +k;/stuk.str_ID=Integer.toString(k);stuk.int_ID=k;/System.out.println(stuk.ID);if(k=

34、0)System.out.print(t+GetSpace(stuk.str_ZhuanYe,col0);System.out.print(GetSpace(stuk.str_BanJi,col1);System.out.print(GetSpace(stuk.str_XingMing,col2);System.out.print(GetSpace(stuk.str_XingBie,col3);System.out.print(GetSpace(stuk.str_DianHua,col4);System.out.println(GetSpace(stuk.str_DiZhi,col5);/fo

35、r(int l=0;lcol0+col1+col2+col3+col4+col5+5;l+)/System.out.print();/for(int l=0;l0&k=10&stuk.bol_ZuoFei=false)System.out.print(k+t+GetSpace(stuk.str_ZhuanYe,col0);System.out.print(GetSpace(stuk.str_BanJi,col1);System.out.print(GetSpace(stuk.str_XingMing,col2);System.out.print(GetSpace(stuk.str_XingBi

36、e,col3);System.out.print(GetSpace(stuk.str_DianHua,col4);System.out.println(GetSpace(stuk.str_DiZhi,col5);private static String GetSpace(String str,int len) /根据每个字符不同加制表符/*String space=;if(len=str.length()for(int i=0;ilen-str.length();i+)space=space+ ;return str+t+t;elsereturn str;*/return str+t+t;p

37、ublic static int Select(String keyword,XueShengXinXi stu) /根据关键字查询学生信息,并返回结果数组的索引值int index=new intstu.length;int j=0;for(int i=1;istu.length&stui.bol_ZuoFei=false;i+)if(keyword.equals(stui.str_ZhuanYe)|keyword.equals(stui.str_BanJi)indexj=i;j+=1;else if(keyword.equals(stui.str_XingMing)|keyword.equ

38、als(stui.str_XingBie)indexj=i;j+=1;else if(keyword.equals(stui.str_DianHua)|keyword.equals(stui.str_DiZhi)indexj=i;j+=1;return index;public static void Show(XueShengXinXi stu,int index) /重载show方法,根据int数组的值作为输出数组的索引值int col=new int6; /定义六个int类型变量,分别存储六列宽度for(int x=0;xcol.length;x+)colx=0;for(int j=0;

39、jcol0&stuj.bol_ZuoFei=false)col0=stuj.str_ZhuanYe.length();if(stuj.str_BanJi.length()col1&stuj.bol_ZuoFei=false)col1=stuj.str_BanJi.length();if(stuj.str_XingMing.length()col2&stuj.bol_ZuoFei=false)col2=stuj.str_XingMing.length();if(stuj.str_XingBie.length()col3&stuj.bol_ZuoFei=false)col3=stuj.str_Xi

40、ngBie.length();if(stuj.str_DianHua.length()col4&stuj.bol_ZuoFei=false)col4=stuj.str_DianHua.length();if(stuj.str_DiZhi.length()col5&stuj.bol_ZuoFei=false)col5=stuj.str_DiZhi.length();for(int i=0;icol.length;i+) /第二步,将最大宽度加上6,得到实际宽度coli=coli+6;System.out.print(t+GetSpace(stu0.str_ZhuanYe,col0);System.out.print(GetSpace(stu0.str_BanJi,col1);System.out.print(GetSpace(stu0.str_XingMing,col2);System.out.print(GetSpace(stu0.str_XingBie,col3);System.out.print(GetSpace(stu0.str_DianHua,col4);System.out.println(GetSpace(stu0.str_DiZhi,col5);for(int l=0;lcol0+col1+col2+co

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!