




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档X X X X 大 学Java语言程序设计课程设计(论文)题目: java学生宿舍管理系统 院(系): 专业班级: 学 号: 学生姓名: 指导教师: 教师职称: 起止时间: 课程设计(论文)任务及评语院(系): 教研室: 学 号 学生姓名 专业班级 课程设计(论文)题目学生宿舍管理系统 课程设计(论文)任务任务与要求:(1). 掌握面向对象程序设计语言JAVA的基本语法(2). 掌握JAVA面向对象设计的思想,(3). 掌握VJAVA6.0与MyEclips JAVA 开发工具的使用 (4). 运用标准JAVA规范设计应用程序设计过程中,要严格遵守设计的时间安排,听从指导教师的指导。正确地完成上述内容,规范完整地撰写出设计报告。指导教师评语及成绩成绩: 指导教师签字: 年 月 日2欢迎下载。精品文档目 录第1章 课程设计目的与要求11.1设计目的11.2实验环境11.3预备知识11.4设计要求1第2章 课程设计内容22.1 课题描述22.2 系统设计22.2.1功能分析22.2.2面向对象设计22.2.2类成员描述22.3程序实现22.3.1源码分析22.3.2运行结果2第3章 总结3参考文献4第1章 课程设计目的与要求1.1设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程JAVA语言教程的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。(3)利用所学知识,开发小型应用系统,掌握运用JAVA语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。(5)掌握面向对象程序设计的方法。(6)熟练掌握JAVA语言的基本语法,灵活运用各种数据类型。(7)进一步掌握在集成环境下如何调试程序和修改程序。1.2实验环境硬件要求能运行Windows 操作系统的微机系统。JAVA语言应用程序开发软件使用:VJAVA 系统,或其他JAVA语言应用程序开发软件。1.3预备知识熟悉JAVA语言程序设计的基本知识及VJAVA编辑器的使用方法。1.4设计要求1.仔细分析设计题目,画出程序流程图,编写程序源代码。2.积极上机调试源程序,增强编程技巧与调程能力。3.认真书写课程设计预习报告,课程设计说明书。4.遵守课程设计要求和机房管理制度,服从指导教师的安排,确保课程设计的顺利完成课程设计内容。第2章 课程设计内容2.1 课题描述对于问题的要求,我们可以选择使用链表处理数据,由于处理的数据相对比较多,所以在函数的具体实现时,可以考虑使用函数模板,函数模板会把很多问题的处理变得很容易,例如:再查找学生信息时,使用姓名查找和学号或宿舍号查找方式,其中的两个函数只有函数的参数的类型不一样,功能完全一样,使用模板处理该问题,只需编写一次模板函数,再模板中声明的类型参数“T”,可以代替处理其他变量和返回类型。如果使用了模板函数的条件下,类的设计最好选用模板类,因为类模板的使用,可以使得类中的某些成员函数、某些数据成员和某些成员函数的返回值能取得任意类型。但模板的使用有一定的能力要求,如果使用其他的方法可以实现上述要求的功能时,模板可以作为一种前进的方法,去为程序实现精艺求精。这样最普遍,可以适时考虑的就是使用链表进行数据的处理,链表是一种比较好且很适宜的方法;学生包含有很多信息,最基本的方法是创建一个class,对学生信息实现整体的代换,这样不仅方便数据处理,也为数据在程序中的录入、存储和显示提供很大的优越性。各功能的实现可以通过设计一个学生类students,然后将功能函数作为类中的成员函数来处理,这样不仅方便以后成员函数之间的调用,也为在编译和调试过程中出现问题和警告错误时方便修改。当整体设计方案出炉后,具体的类中成员函数编译就是使用链表为载体来实现的。首先要创建链表,并将原始数据装入制定的文本文档中,以输入出流的方式将数据赋给各链表节点;数据读入程序后,各成员函数就可以根据链表的操作,对其实行查找,删除,添加,排序信息和交换信息等。查找函数在操作时可运用顺序查找或折半查找,相对比较而言,在数据较多时使用顺序查找方便些,而且便于源代码的编译;在查找函数中要考虑到是否要考虑函数返回值的类型,因为查找函数在以后交换函数中可能会调用查找函数,这样会使交换信息函数显得简明,而且容易在交换时控制变量。排序和查找函数,因为要使用不同排序或查找方法,所以在主函数的实现上,会考虑到使用一个子菜单来指导使用,在按照不同参考变量进行排序或查找时,这时最主要要实现以第一个方式的函数的算法思想和代码的编写,这样在编写其他方式函数代码时可以参考第一种方式,达到简化步骤,节省时间,空间的目的。2.2 系统设计根据上述要求和思想算法的分析,需要设计一个类students。由于学生信息包含有学号、姓名、宿舍号、系别等数据,所以设计一个student类来概括学生相关信息。学生的各相关信息通过使用链表的方式将其联系在一起,这样不仅方便信息的录入和显示,也方便在数据的处理上。各功能的实现均可在类student中定义各相关的成员函数。程序运行时,首先提示用户是否进行操作,选择“Y/y”后,进入操作界面,出现功能选择菜单。首先要进行数据的录入,选择“1.信息录入”选项,这时数据直接通过磁盘文件录入程序中;录入结束后可按菜单中功能选项进行选择操作,如选择“信息排序”功能之后会出现子菜单,提示用户选择排序方式“按学号排序”“按宿舍号排序”,这时可以选择一方式进行操作,再通过输出与储存函数进行显示或储存。学生宿舍管理系统的开发主要包括前台用户界面的开发和后台数据库的开发,对于后台数据库的建立和维护要求建立起数据一致性和完整性强、数据安全性好的数据库。而对于前端应用程序的开发则要求应用程序能提供强大的数据操纵功能,界面友好、使用简单方便等特点。本系统采用java作为前台用户界面的开发语言,而后台的数据库采用MySql2.2.1功能分析设计一个实用的小型学生宿舍管理程序,能够对学生宿舍进行管理。学生的原始信息由磁盘文件进行储存。在程序的运行中要求能进行增加、删除学生记录、显示记录、查询/检索(依不同关键字,如学号、宿舍号、姓名等)、删除/修改记录等功能,并能运用链表进行动态处理。具体要求:1.对学生信息的录入、增加和删除;2.能显示宿舍的相应信息,即根据宿舍号显示宿舍位置,宿舍学生信息等;3.能根据学生信息查询相应的宿舍信息;4.对宿舍管理可以从多方面对系统数据进行操作,如:依据系别、学生姓名、班级等;并且能按各种条件进行组合查询和数据统计,并能按指定顺序进行格式化输出。2.2.2面向对象设计各模块之间的调用关系:本系统分为四个模块:查找子菜单、信息录入、信息显示、查找功能子菜单。该程序的由多种函数实现,每个函数具有不同的功能,主要有主菜单函数,插入功能子菜单函数,查找功能子菜单函数,学生信息录入函数,显示函数,排序函数,插入函数以及查找函数。在每个区域中会调用不同的函数来实现主要的功能。比如,在学生显示这个功能里调用显示函数;在插入功能里调用子菜单函数;在显示信息时调用排序函数先对需要输出的信心进行排序,然后再输出;在查找功能里会调用查找函数来进行查找,包括按照性别,学号,姓名,房间号等查询。2.2.2类成员描述Students类: (1)class StudentInf/学生信息类 (2)class OverException/异常类 (3)void Insert()/添加方法 (4)void search()/查找方法2.3程序实现2.3.1源码分析import java.applet.Applet;import java.awt.*;import java.awt.event.*;import java.util.*;import java.lang.*;public class Students extends Applet implements ActionListenerVector StuInf=new Vector();StudentInf SI;String xm;String bj;int i,j,xh,cj;static int mid;Label prompt1=new Label(学生宿舍管理系统);Label prompt2=new Label(用户:);Label prompt3=new Label(密码:);Label prompt4=new Label(班级:);Label prompt5=new Label(宿舍号:);TextField input1=new TextField(8);TextField input2=new TextField(8);TextField input3=new TextField(8);TextField input4=new TextField(8);Button btn1=new Button(登录);Button btn2=new Button(增加);Button btn3=new Button(修改);Button btn4=new Button(删除);public void init()setLayout(new GridLayout(6,3);add(new Label();add(prompt1);add(new Label();add(prompt2);add(input1);add(new Label();add(prompt3);add(inputadd(btn1);add(prompt4);add(input3);add(new Label();add(prompt5);add(input4);add(new Label();add(btn2);add(btn3);add(btn4);prompt4.setVisible(false);prompt5.setVisible(false);input3.setVisible(false);input4.setVisible(false);btn2.setVisible(false);btn3.setVisible(false);btn4.setVisible(false);btn1.addActionListener(this);btn2.addActionListener(this);btn3.addActionListener(this);btn4.addActionListener(this);public void actionPerformed(ActionEvent e)if(e.getActionCommand()=登录)String a,b;a=input1.getText();b=input2.getText();input1.setText();if(a.equals(孙凯)=true)&(b.equals(121301040)=true)prompt2.setText(姓名:);prompt3.setText(学号:);prompt4.setVisible(true);prompt5.setVisible(true);input3.setVisible(true);input4.setVisible(true);btn2.setVisible(true);btn3.setVisible(true);btn4.setVisible(true);btn3.setEnabled(false);btn4.setEnabled(false);btn1.setLabel(查询);input1.setText(登录成功);input1.selectAll();elseinput2.setText(用户名或密码错);if(e.getActionCommand()=增加)boolean scucss=true;tryXingMing();catch(EmptyException as)input1.setText(姓名不能为空);scucss=false;tryxh=Integer.parseInt(input2.getText();catch(NumberFormatException m)input2.setText(学号为空或格式错);scucss=false;bj=input3.getText();tryChengJi();catch(EmptyException as)cj=-1;catch(OverException dd)input4.setText(应在0-100间);scucss=false;catch(NumberFormatException cm)input4.setText(宿舍号应为数据);scucss=false; if(scucss=true)SI=new StudentInf(xm,xh,bj,cj);Insert(SI);if(e.getActionCommand()=修改)xm=input1.getText();bj=input3.getText();cj=Integer.parseInt(input4.getText();SI=new StudentInf(xm,xh,bj,cj);StuInf.setElementAt(SI, mid);btn3.setEnabled(false);if(e.getActionCommand()=删除)StuInf.removeElementAt(mid); btn4.setEnabled(false);input1.setText(删除成功);input2.setText();input3.setText();input4.setText();if(e.getActionCommand()=查询)boolean right=true;tryxh=Integer.parseInt(input2.getText();catch(NumberFormatException m)input2.setText(学号为空或格式错);right=false;if(right=true)search(xh);btn3.setEnabled(true);btn4.setEnabled(true);/查找方法public void search(int k)boolean exist=false;int low=0;int high=StuInf.size()-1;while(low=high)mid=(high+low)/2;StudentInf a1=(StudentInf) StuInf.elementAt(mid);if(a1.getStuNo()=k)SI=(StudentInf) StuInf.elementAt(mid);String x = String.valueOf(SI.getStuNo();exist=true;input1.setText(SI.getname();input1.selectAll();input2.setText(0+x);input3.setText(SI.getClassNo();if(SI.getLevel()=-1)input4.setText(无记录);elseString y = String.valueOf(SI.getLevel();input4.setText(y);break;else if(a1.getStuNo()k)low=mid+1;elsehigh=mid-1;if(exist=false)input1.setText(无此信息);input1.selectAll();/添加方法public void Insert(StudentInf q)int i=0;if(StuInf.isEmpty()=true) StuInf.addElement(q);input1.setText();input2.setText();input3.setText();input4.setText();elseStudentInf xh;xh=(StudentInf) StuInf.firstElement();while(xh.getStuNo()q.getStuNo()i+;if(iStuInf.size()xh=(StudentInf) StuInf.elementAt(i);else break;if(xh.getStuNo()=q.getStuNo()input2.setText(此学生已存在);input2.requestFocus();input2.selectAll();else StuInf.insertElementAt(q,i);input1.setText();input2.setText();input3.setText();input4.setText();/异常类class OverException extends ExceptionString over;class EmptyException extends ExceptionString empty;void XingMing() throws EmptyExceptionif(input1.getText().equals()throw (new EmptyException();elsexm=input1.getText();void ChengJi() throws OverException,EmptyException if(input4.getText().equals()throw(new EmptyException();elsecj=Integer.parseInt(input4.getText();if(cj100)throw (new OverException();/学生信息类public class StudentInfprivate String name;private int StuNo;private String ClassNo;private int Level;StudentInf(String xingming,int xuehao,String banji,int chengji)name=xingming;StuNo=xuehao;ClassNo=banji;Level=chengji;public int getStuNo()return StuNo;public String getname()return name;public String getClassNo()return ClassNo;public int getLevel()return Level;2.3.2运行结果 登陆界面显示:登陆信息显示:添加学生信息;修改学生信息;删除信息显示:学生寝室查询:第3章 总结经过了一个多星期的努力,终于在规定的时间内完成率这份课程设计。以前,我对Java的很多知识都很陌生,但是通过这次的课程设计使我明白了许多东西,翻阅了大量的书籍以及上网查了很多的相关资料,也从中学会了不少东西,它使我知识更加的系统化、全面化。在实验的过程中也让我体会到了做任何事情都是要付出一定的努力的。一份努力一分收获,每当自己单独的成功解决某些问题时,都会感觉很兴奋,也很有成就感。在这次课程设计中,我体会到要想开发应该系统软件,不仅需要相当的专业技术知识,还要有严谨缜密的思维能力。只有思想上清晰了,编程才有意义,否则就是白费力气。同时还要善于捕捉细小的方面,因为那往往是这个程序的致命因素。通过这次程序设计,培养了我的细心和耐心吗,也树立一种正确的求知态度。通过这次课程设计,我发现了自己的许多的不足,尤其是露出了对Java知识基础的掌握不好,许多简单的东西都不知道。在课本上看到的各种算法感觉都很简单,但是真正的让自己去写一个算法感觉很困难,。即使是课本上的源程序算法,自己写起来都感觉有点生疏。在调试过程中经常出现的错误也不是很熟悉。我认识到学好计算机要重视实践操作,不仅仅是类的创建或建包,在其他的课程中都会注重实践。所
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 劳务合同模板
- 租赁合同:融资租赁协议3篇
- 集体耕地承包合同2篇
- 瑞吉氏染色课件
- 安全方面的培训课题课件
- 理财和养老课件
- 理想华莱课件教学
- 店面升级装修工程方案(3篇)
- 电厂氨水改造工程方案(3篇)
- 球磨机培训课件
- 2025版全新离婚协议书:财产分割、子女抚养及离婚后财产保全合同范本
- 石油钻井知识课件
- “学回信精神·助改革发展”专题调研报告
- 2025年医学基础知识题库及答案
- 职业院校实习生考核评价标准
- 水果保鲜的秘密课件
- 2025-2030矿山工程机械租赁市场商业模式与风险防控报告
- 无人机公开课课件
- 2025年事业单位招聘考试综合类职业能力倾向测验真题模拟试卷:电子信息工程领域
- 仓库维修协议书
- 城管协管员面试题及答案
评论
0/150
提交评论