




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计报告课程名称 Java程序设计(课程设计)设计题目 班级通讯录管理系统专业 计算机科学与技术班 级 学 号==_===== 姓 名=======^^完成日期2019.6.29课程设计任务书设计题目: 班级通讯录管理系统设计内容与要求:编程实现对班级中全体同学的通讯录的管理,主要实现对全班同学通讯录的录入、查询、变更等功能。(1)完成类的合理抽象和设计,必须具有良好的人机交互功能。(2)采用Java语言开发,源代码必须添加必要注释,类、方法和变量命名规范,具有可读性。(3)设计完成后,需要写成一份课程设计报告(打印出来),表达课程设计所做工作。(4)结果形式:程序及数据库压缩文件包一个,课程设计报告一份。指导教师:2019年6月24日课程设计评语成绩:指导教师:2019年6月30日洛阳理工学院课程设计报告目录TOC\o"1-5"\h\z\o"CurrentDocument"第1章概述 2\o"CurrentDocument"选题目的 2\o"CurrentDocument"开发环境 2\o"CurrentDocument"设计问题 2\o"CurrentDocument"第2章系统总体设计 3\o"CurrentDocument"系统总体结构设计 3\o"CurrentDocument"系统包设计 3\o"CurrentDocument"第3章系统详细设计 4\o"CurrentDocument"主要界面设计 4\o"CurrentDocument"整体设计 4\o"CurrentDocument"系统主界面设计 4\o"CurrentDocument"数据流模块算法设计 5\o"CurrentDocument"将文件的内容写入数组 5\o"CurrentDocument"将数组内容写入文件 6\o"CurrentDocument"增加模块算法设计 7\o"CurrentDocument"流程图 7\o"CurrentDocument"界面实现 7\o"CurrentDocument"代码部分 8\o"CurrentDocument"删除模块算法设计 9流程图 9界面实现 10\o"CurrentDocument"代码部分 10\o"CurrentDocument"修改模块设计 11流程图 11界面设计 11\o"CurrentDocument"代码部分 12\o"CurrentDocument"查询模块 13流程图 13界面设计 13\o"CurrentDocument"代码部分 14\o"CurrentDocument"第4章总结 15\o"CurrentDocument"参考文献 16洛阳理工学院课程设计报告第1章概述选题目的通过该课程设计,使同学们进一步理解概JAVA的基本概念、理论和方法,初步掌握JDK、Eclipse的调试和应用,以及程序中错误的解决方法,明确JAVA在实际程序设计中的应用。使课堂中学习到理论得到应用,练习文件形式在JAVA程序设计中的应用。开发环境(1)硬件:电脑(2)软件:Eclipse操作系统:Windows10开发环境:jdk1.8.0_202,jre1.8.0_202设计问题设计题目:班级通讯录管理系统设计要求:(1)完成班级通讯录的添加、删除、查询、修改功能(2)使用用户界面操作(3)使用文件形式完成设计思路:首先设计界面进入系统,在系统中添加增删改查四个基本功能,并将要实现的功能逻辑化,然后对这些逻辑进行代码化,实现其功能。通过文件类型知识应用,实现对班级通讯录的管理。洛阳理工学院课程设计报告第2章系统总体设计系统总体结构设计总体来讲基于此系统主要即为功能的执行,在进入界面之后文件的读取和保存通常在程序的方法中进行。读取完文件之后,再进行操作,输入所需信息,然后进行保存,写回文件即可。系统包设计设计系统有1个包,这一个包中有2个类,分别是Classphone和ClassphoneBook,其中Classphone类是通讯录基本信息类,包含了通讯录的基本信息,还有增加,删除,修改,查询四个基本功能,ClassphoneBook类是系统的主类,其中包含了系统的主界面和文件的读写。“给Example11>JRESystemLibrary[JavaSE-18]出Cdefaultpackage)**com>aCldssphonejava:jj]ClassphoneEoqkJava包结构设计图洛阳理工学院课程设计报告第3章系统详细设计3.1主要界面设计3.1.1整体设计界面上一共有6个选项,分别是增加,删除,修改,查询所有,根据ID查询,退出,这6个选项是基于下面的流程图。读文件选择功能进入功能3.1.2系统主界面设计通过此界面输入要进行操作的数字即可完成对主要操作的进行,包含有4个大功能,增删改查。输入业务序号即可进行。■i_IICJ3-3|JIILJII11-LJLJUPl C|jrpMILCJLIUIII[%—— IICJIIIINIJ3卡EJ*十IJII.LJ-ULU£_IU■期]口UCJ.1-八」1工U匚1.谙输入此系烧存转数据的文件的名:D:\phone.txt文件存在!」存入的数据为:个业:大数据 学号:B343546姓名:小红联系电活件读入成功! H「.信息管理系?a 1■添加I2,删除3.修成4.吉询所台5,根榭工D杏询。.退由请选择业务,洛阳理工学院课程设计报告数据流模块算法设计将文件的内容写入对象数组运用的是对象流:对象输入流:ObjectInputStream 对象输出流:ObjectOutputStream思路:(1)先创建文件写入流fin,再创建fin的对象写入流oin,通过这两个流将文件的内如写入数组。(2)因为在写入数组时,String型无法强制转换成Classphone型,而对象写入流可实现此功能Classphonetemp=(Classphone)oin.readObject();只有将数据转换成我们想要的数组类型(Classphone),才能将数据写入我们想要的数组类型(Classphone)。(3)用循环的方式将数据一条一条的写入数组中{e[++k]=temp;},直到数据为空时结束循环。代码如下:try{//创建文件对象FileInputStreamfin=newFileInputStream(fr);//创建文件输入流ObjectInputStreamoin=newObjectInputStream(fin);//创建对象输入流try{ 〃利用循环将数据一条一条赋给对象数组for(inti=0;i<e.length;i++){Classphonetemp=(Classphone)oin.readObject();//强制转换为Classphone型if(temp!=null){e[++k]=temp; //将数据赋给对象数组}else 〃没有数据时停止赋予break;}}catch(ClassNotFoundExceptione){oin.close(); 〃关闭对象输入流fin.close(); 〃关闭文件输入流洛阳理工学院课程设计报告}catch(lOExceptione){)将数据写入文件运用的是对象流:对象输入流:ObjectInputStream 对象输出流:ObjectOutputStream思路:(1)先创建文件读出流fout,再创建fout的对象读出流oout,通过这两个流将数组的内如写入文件中。(2)用循环的方式将数据一条一条的写入文件中{oout.writeObject(e[i]);},直到数据为空时结束循环。代码入下:try{FileOutputStreamfout=newFileOutputStream(fr);//创建文件输出流ObjectOutputStreamoout=newObjectOutputStream(fout);//创建对象输出流for(inti=0;i<e.length;i++){ 〃用循环一条一条输出数据if(e[i]!=null){ 〃判断数据是否为空oout.writeObject(e[i]); 〃把一条数据写入文件}}oout.close(); 〃关闭输出流}catch(IOExceptione){}
洛阳理工学院课程设计报告增加模块算法设计流程图写数据到文件界面实现本模块实现了添加班级通讯录信息的功能,选择此功能后,依次输入专业,班级,学号,姓名,联系方式之后,信息就会被保存在数组中,进而写入文件。界面设计如下图所示:洛阳理工学院课程设计报告 由「指息管理系统 1.添加2■删除九修改4.置询所有5.根据工D自询或退出请选择业务;1专业:大数据班级*B34566学号:B249354姓名:小叫联系电话:1243475654增加成功1与业:大数据 学号:B249354姓名:小叫联系电话:12434756543.3.3代码部分publicstaticvoidaddInfo(){ClassphoneE=newClassphone(); 〃创建对象类E.add(); 〃调用增加信息函数e[++k]=E; 〃将增加的一条信息存入对象数组if(e[k]!=null){ 〃依次判断对象数组的内存是否为空System.out.println("增加成功!”);e[k].print1(); 〃调用输出函数,输出添加的一条信息)elseSystem.out.println("未添加成功!");)publicvoidadd(){operate();)〃从键盘上获取信息publicvoidoperate(){Scannerreader=newScanner(System.in);System.out.print("专业:");StringBM=reader.next();洛阳理工学院课程设计报告System.out.print("班级:");Stringclassroom=reader.next();System.out.print("学号:");StringID=reader.next();System.out.print("姓名:");Stringname=reader.next();System.out.print("联系电话:");Stringphone=reader.next();set(BM,classroom,ID,name,phone); //将获取的信息保存)删除模块算法设计流程图洛阳理工学院课程设计报告界面实现该模块实现了删除功能,选择此功能后,输入要删除信息的学号即可删除,然后将删除后的数组读到文件中。 协二信息管理系统 1*添加2■皿除修改4.先询所有5.根据ID查询退出请选择业务;2请输入要删除学生的学考।B249354.删除成功I代码部分〃删除,根据学号publicstaticvoiddelete(Classphone[]e){Scannersc=newScanner(System.in);System.out.println("请输入要删除学生的学号:");Stringl=sc.next(); 〃将输入的学号赋给l〃利用循环找出要删除的信息for(inti=0;i<e.length;i++){ 〃遍历对象数组eif(e[i]!=null&&e[i].getID().equals(l)){〃判断数组中哪一条数据的学号和l相等e[i]=null; //将要删除的那一条数据清空System.out.println("删除成功!");for(intj=i;j<e.length-1;j++){ 〃从已删除数据的下一条开始遍历e[j]=e[j+1]; 〃将后面的内容都往前进一步e[j+1]=null; 〃清空遍历到的下一条)))10
洛阳理工学院课程设计报告修改模块设计流程图界面设计该模块实现了修改信息的功能,选择此功能后,输入要修改的信息的学号,根据学号找到这条信息,然后再输入新的数据覆盖原先的数据,最后再将改变的数组写入到文件。11洛阳理工学院课程设计报告 员工信息管理系统 工.添加2.删除3.修改4■登询所厂S.根据工D宜询0.退HI请选挣业务,3请输入要修改的学5学B23854你爰修改的这条信息Xh专业:大数据 学g:B2mg54姓名:晓啡戕系电话1123486252专业:火数据班级:B2374学々:3372894姓名:覆二联系电诂:17598387m修改成功!专业:大数据 学号:B372894姓名:张工联系电诂:175983873代码部分〃修改信息(根据ID找到学生,修改)publicstaticvoidupdateInfo(Classphone[]e){System.out.print("请输入要修改的学生学号:");Scannersc=newScanner(System.in);Stringf=sc.next(); 〃将输入的学号赋给f〃增强型for循环找出要修改的信息for(Classphonez:e){ 〃遍历对象数组eif(z!=null&&z.getID().equals(f)){ 〃判断数组中哪一条数据的学号和f相等System.out.println("你要修改的这条信息为:");z.print1(); 〃调用输出函数,输出要修改的信息z.operate(); //调用operate函数从键盘上重新输入数据,覆盖原来的数据System.out.println("修改成功!");z.print1(); 〃输出修改后的信息)))12
洛阳理工学院课程设计报告查询模块流程图界面设计该模块实现了查询功能,选择此功能后,输入要查询的信息的学号,根据学号找到这条信息并输出,最后再将改变的数组写入到文件。 员工仁息管理系统' 1*添加2.删除丸修改4.查而所有5.根据I口吉询0.退出请选择业务:5请输入要杏找学生的学生B23854人也:大数据 学可:B23854姓名:晓哓联系电话;12348625213洛阳理工学院课程设计报告代码部分〃查询(根据ID查找)publicstaticvoidquery(Classphone[]e){System.out.print("请输入要查找学生的学号:");Scannersc=newScanner(System.in);Stringj=sc.next(); 〃将输入的学号赋给jfor(Classphonez:e){ 遍历对象数组eif(z!=null&&z.getID().equals(ID)) 〃判断数组中哪一条数据的学号和j相等z.print1(); 〃调用输出函数,输出查询的信息))14洛阳理工学院课程设计报告第4章总结这次课设主要实现了增删改查四个功能以及文件的读写,课题设计过程中,分为逻辑设计和详细设计两个步骤实现。逻辑设计指的是,对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据为中心的原则划分模块,定义主程序模块和各抽象数据类型;详细设计则为定义相应的方法并写出各函数的伪码算法.作为逻辑设计的结果,应写出每个抽象数据类型的定义。但是还有不足之处,代码繁琐,不够精简,文件的读写功能不太完美。在文件的读写方面试了很多种方法,写代码时总是出错,而且对出错的地方也不理解,最后发现只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。15洛阳理工学院课程设计报告参考文献[1]满志强,张仁伟,刘彦君.Java程序设计教程慕课版[M].北京:人民邮电出版社,2018,130-165.[2]张居敏,石礼娟,龙翔.Java程序设计经典教程[J].电子工业出版社,2017,495-505.[3]李刚.疯狂Java[M].北京:人民邮电出版社,2010,129-131.16洛阳理工学院课程设计报告附录1:(主要程序代码)packagecom;importjava.io.*;importjava.util.Scanner;publicclassClassphoneimplementsSerializable{privatestaticfinallongsarialVersionUID=1234567890L;privateStringphone,classroom;privateStringname,BM,ID;〃构造方法,空publicClassphone(){)〃构造方法,实publicClassphone(StringBM,Stringclassroom,StringID,Stringname,Stringphone){this.BM=BM;this.classroom=classroom;this.ID=ID;=name;this.phone=phone;)〃与空的构造方法相对应publicvoidset(StringBM,Stringclassroom,StringID,Stringname,Stringphone){this.BM=BM;this.classroom=classroom;this.ID=ID;=name;this.phone=phone;17洛阳理工学院课程设计报告)publicStringgetID(){returnID;)publicStringgetClassroom(){returnclassroom;)publicStringgetBM(){returnBM;)publicStringgetname(){returnname;)publicStringgetphone(){returnphone;)〃增加信息publicvoidoperate(){Scannerreader=newScanner(System.in);System.out.print("专业:");StringBM=reader.next();System.out.print("班级:");Stringclassroom=reader.next();System.out.print("学号:");StringID=reader.next();System.out.print("姓名:");Stringname=reader.next();System.out.print("联系电话:");Stringphone=reader.next();18洛阳理工学院课程设计报告set(BM,classroom,ID,name,phone);)publicvoidadd(String[][]set,inti){//把数组至U对象数组Stringh=set[i][0];Strings=set[i][1];Stringp=set[i][2];Stringa=set[i][3];Stringb=set[i][4];set(h,s,p,a,b);)publicvoidadd(){operate();)〃打印信息,一个学生publicvoidprint1(){System.out.println("专业:”+getBM()+”\t"+“学号:"+getID()+”\t"+"姓名:"+getname()+"\t"+"联系电话:"+getphone());)publicstati
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度农业现代化资金委托付款合同
- 二零二五年度电力工程进度管理劳务服务协议
- 2025年度酒店客房预订及企业团建服务合同
- 挖机合伙股份经营与技术支持服务协议(2025年度)
- 2025年度终止房屋租赁合同双方权益保障及后续权益转移协议
- 二零二五年度商业街区门面租赁管理协议
- 2025年度金融机构岗位聘用协议书(风险管理岗位)
- 二零二五年度房产过户税费代缴合作协议
- 仓库存取管理协议
- 二零二五年度个人垫资文化创意产业借款合同
- 网络虚拟货币交易合同
- 2 让我们的家更美好 第一课时 担当家庭责任(教学设计)2023-2024学年统编版道德与法治五年级下册
- 2024年中国电动助力汽车转向系统(EPS)行业市场现状、前景分析研究报告
- 复数算符在量子力学中的应用
- 2023年全国初中物理竞赛试题及答案
- 2024年各地中考试卷【文言文阅读题】汇集练(一)附答案解析
- 2024年重庆市中考英语试卷真题B卷(含标准答案及解析)+听力音频
- 旅游景区服务标准化操作手册
- 中央2024年中国医学科学院血液学研究所血液病医院招聘17人笔试历年典型考题及考点附答案解析
- 产调授权委托书模板
- 【直播带货发展前景探究:以抖音平台为例6700字(论文)】
评论
0/150
提交评论