Java程序课程设计报告_第1页
Java程序课程设计报告_第2页
Java程序课程设计报告_第3页
Java程序课程设计报告_第4页
Java程序课程设计报告_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java程序设计报告学生信息管理班级:通信141(通信)姓名:杜肇启学号:20141544117任课老师:侯志松目录前言21、社会需求22、专业需求2一、 开发环境2二、设计分析21、系统功能需求2三、 程序功能简介31、总体设计32、详细设计3四、 程序结构3五、 各模块的功能及说明5模块一:Main类5模块二:Student类6模块三:StudentDao类(程序核心)7模块四:Xmlutils类(工具类)9模块五:xml文件9六、 操作方法(流程)101、添加学生102、 查找学生113、 删除学生12七、设计体会13参考文献14 18前言1、社会需求一直以来学生的成绩管理是学校工作中的

2、一项重要内容,随着办学规模的扩大和招生人数的增加,学校工作繁杂、资料重多,普通的成绩管理已不能适应时代的发展,它浪费了许多的人力和物力。在当今信息时代这种传统的管理方法必然被以计算机为基础的信息管理系统所代替。虽然管理信息系统已进入高校,但还未普及而且对于学生成绩管理来说,还没有一套完整的、统一的系统,建立一个成绩维护系统是非常必要的。建立学生成绩管理系统,采用计算机对学生成绩进行管理,能进一步提高办学效益和现代化水平。帮助广大教师提高工作效率,实现学生成绩维护工作流程的系统化、规范化和自动化。2、专业需求通过java实习不仅可以提升本专业我们对此课程中的理论知识的综合应用能力而且可以提高我们

3、的逻辑思维能力、软件开发能力。我们通过Java技术在Windows平台下开发学生信息管理系统。能够切实提高我们的程序设计水平,在实践中掌握面向对象程序设计的开发思想。1、 开发环境操作系统:Windows 7编程环境:Eclipse neon.1编程语言:Java虚拟机版本:Java 8u111主要技术:xml二、设计分析 1、系统功能需求 由于本系统比较简单,学生信息管理系统主要对在校学生的个人基本信息以及成绩信息进行管理,对教师用户提供查询信息、增添信息、删除信息等操作功能;没有对学生用户提供成绩查询功能。系统程序没有采用Java Swing组件实现,数据记录操作采用xml实现。 学生信息

4、管理系统要面对教师。对于教师,需要查询全部学生的基本信息和成绩信息,并且可以对其进行修改。进入教师主界面,在这个主界面里,可以选择要操作的类别,即查询功能还是修改功能。在查询功能里面,可以选择是查询学生基本信息,还是查询学生成绩信息。在查询学生基本信息时,可以从依据不同字段,即学生信息表的不同属性进行查找。在查找学生成绩信息时,只能依据学生姓名和学号进行查找。在修改功能里面,包括对学生基本信息表和学生成绩表进行增加和删除记录。3、 程序功能简介1、总体设计这次java设计的学生信息管理系统,是对学生的个人信息,成绩信息以信息化的方式进行管理,最大限度地减少各个环节可能出现的错误,有效减少因人力

5、资源局限性导致的存储信息量大,信息存储错误,混淆等问题,合理进行信息存储,使学校能够合理录入学生的个人资料,学期成绩情况,以及课程安排,为学校师生的工作提供后方面。根据需求计学生信息管理系统教师可以查询、增添、删除学生信息2、详细设计这次Java设计,首先,我们在自己电脑上装上了Eclipsenone.1(myeclipse需要收费,没有使用)等程序。其次,我们敲程序代码。源于程序的运行过程是进入提供用户输入机会的“视图层”,进而进入控制用户输入的“控制层”,最后到达“数据操作层”。我们新建工程,建立StudentCof,在里面创建doman、exception、xmlutils、dao、UI

6、包还有一个xml文件,在UI包中建main类,在dao包中建studentDao类,在doman包中建Student类,在包exception中创建StudentNotExistException类,在xmlutils创建了XmlUtils类。4、 程序结构结构如 java4-1图所示:Java4-1图在本次设计里,用户操作在UI包中的Main类里,通过用户输入,可以在显示框里进行增加,删除,查看学生信息:如图Java4-2图:Java4-2图当在输入框中输入操作类型以后,此程序就会进行相对应的操作,输入后的操作主要执行的是dao包中的StudentDao类,通过StudentDao类,将信息

7、进行增加,删除,显示。信息记录在exam.xml中,利用工具类XmlUtils.Java,将StudentDao类获得的操作信息记录解析入xml中去,在页面显示的信息,主要通过StudentDao类将xml中的信息解析记录进doMan包中的Student类中去,此程序中的异常类主要针对于StudentDao类出现的异常进行处理。5、 各模块的功能及说明模块一:Main类部分代码:System.out.println(添加学生:(a) 删除学生:(b) 查找学生:(c));System.out.print(请输入操作的类型:);BufferedReader br =new BufferedRea

8、der(new InputStreamReader(System.in);String type = br.readLine();if(a.equals(type)System.out.print(请输入学生姓名:);String name = br.readLine();System.out.print(请输入学生学号:);String stuid = br.readLine();System.out.print(请输入学生身份证号:);String examid = br.readLine();System.out.print(请输入学生所在地:);String location = br

9、.readLine();System.out.print(请输入学生成绩:);String grade = br.readLine();Student s = new Student();s.setExamid(examid);s.setGrade(Double.parseDouble(grade);s.setLocation(location);s.setName(name);s.setStuid(stuid);StudentDao dao = new StudentDao();dao.add(s);System.out.println(- 添加完成!-);在本模块中主要用于使用者的操作,当

10、显示如图Java4-2的样子以后,使用者即可将其指令输入,BufferedReader将会把输入的字符接受,存放到type中去。在遇上的代码片段中,主要用于信息的输入,添加的信息将会逐条记录下来,临时存放在Student类中的变量里面,然后通过StudentDao类,将其存储到xml中,添加信息过程如Java5-1图所示:Java5-1图模块二:Student类public class Student private String stuid;private String examid;private String name;private String location;private do

11、uble grade;public String getStuid() return stuid;public void setStuid(String stuid) this.stuid = stuid;public String getExamid() return examid;public void setExamid(String examid) this.examid = examid;public String getName() return name;public void setName(String name) = name;public String

12、 getLocation() return location;public void setLocation(String location) this.location = location;public double getGrade() return grade;public void setGrade(double grade) this.grade = grade;Overridepublic String toString() return stuid: + stuid + n examid: + examid + n name: + name + n location: + lo

13、cation+ n grade: + grade;本模块主要是用于解析Xml中的信息,显示到屏幕上,或者临时存储屏幕上输入的信息。本模块记录的信息有:1. 姓名2. 学号3. 身份证号4. 家庭住址5. 成绩为了使信息不被外界随意改变,全部采用private修饰符,并且设置get,set方法,用于修改,访问变量内容重写其toString方法,使其能够显示个人全部信息。模块三:StudentDao类(程序核心)代码段一:Document document = XmlUtils.getDocument();Element student = document.createElement(stude

14、nt);student.setAttribute(stuid, s.getStuid();student.setAttribute(examid, s.getExamid();Element name = document.createElement(name);Element location = document.createElement(location);Element grade = document.createElement(grade);name.setTextContent(s.getName();location.setTextContent(s.getLocation(

15、);grade.setTextContent(s.getGrade()+);student.appendChild(name);student.appendChild(location);student.appendChild(grade);document.getElementsByTagName(exam).item(0).appendChild(student);XmlUtils.writeXml(document);代码段二:Document document = XmlUtils.getDocument();NodeList list = document.getElementsBy

16、TagName(student);for(int i=0;ilist.getLength();i+)Element student = (Element) list.item(i);if(student.getAttribute(examid).equals(examid)Student s = new Student();s.setExamid(examid);s.setStuid(student.getAttribute(stuid);s.setName(student.getElementsByTagName(name).item(0).getTextContent();s.setLoc

17、ation(student.getElementsByTagName(location).item(0).getTextContent();s.setGrade(Double.parseDouble(student.getElementsByTagName(grade).item(0).getTextContent();return s;return null;代码段三:Document document = XmlUtils.getDocument();NodeList list = document.getElementsByTagName(name);for(int i = 0;ilis

18、t.getLength();i+) if(list.item(i).getTextContent().equals(name)list.item(i).getParentNode().getParentNode().removeChild(list.item(i).getParentNode();XmlUtils.writeXml(document);return; throw new StudentNotExistException(name+不存在!);本模块是程序的核心部分,作用是将信息从内存中取出,存放到xml中,或者根据关键字,将xml中的相关信息解析到Student类中去,或者根据

19、指令删除xml中存在的相关信息。模块一是用于添加学生信息的代码段,从Student类中暂存的信息中将其添加到创建的相对应的xml元素中,将其存储起来。模块二是显示信息,通过examid编号,经相对应得信息模块解析到Student类中相对应的变量中去。模块三是用来删除信息的,通过关键字name,直接删除在xml中对应信息的根节点(但是不会删除其他的信息块)。模块四:Xmlutils类(工具类)代码段:public class XmlUtils private static String filename=src/exam.xml;public static Document getDocumen

20、t() throws ExceptionDocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();DocumentBuilder buider = factory.newDocumentBuilder();return buider.parse(filename);public static void writeXml(Document document) throws ExceptionTransformerFactory factory = TransformerFactory.newInstance();T

21、ransformer tf = factory.newTransformer();tf.transform(new DOMSource(document), new StreamResult(new FileOutputStream(filename);工具类的权限修饰符为static 静态,使其在使用时不必再创建一个工具类的对象,getDocument方法用于获取xml中的内容,利用WriteXml方法,将获取的信息保存到xml中去。模块五:xml文件Xml内容如Java5-2图所示:Java5-2图XML,可扩展的标识语言(eXtensibleMarkupLanguage),其先驱是SGM

22、L和HTML。SGML,通用标识语言标准(StandardGeneralizedMarkupLanguage),是国际上定义电子文件结构和内容描述的标准,是一种非常复杂的文档结构,主要用于大量高度结构化数据的防卫区和其它各种工业领域,便于分类和索引。同XML相比,SGML定义的功能很强大,然而它不适于Web数据描述,而且价格非常昂贵。XML与Access,Oracle和SQLServer等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,XML仅仅是展示数据。事实上XML与其他数据表现形式最大的不同是:他极其简单。这是一个看上去有点琐细的优点,但正

23、是这点使XML与众不同。 XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows、MacOS、Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。为了使得SGML显得用户友好,XML重新定义了SGML的一些内部值和参数,去掉了大量的很少用到的功能,这些繁杂的功能使得SGML在设计网站时显得复杂化。XML保留了SGML的结构化功能,这样就使得网站设计者可以定义自己的文档类型,XML同时也推出一种新型文档类型,使得开发者也可以不必定义文档类型。XML是W3C制定的,XML的标准化工作由W3C的XML工作组负责,该小组成员由来自各个地方和行业的专家组成。因为XML是个公共格式,(它不专属于任何一家公司),不必担心XML技术会成为少数公司的盈利工具,XML不是一个依附于特定浏览器的语言。6、 操作方法(流程)1、添加学生首先要选择要进行操作的选项

温馨提示

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

评论

0/150

提交评论