1、java课程设计报告书Java课程设计报告书题目: 学籍管理系统 班级: 数媒 学号: 姓名: 教师: 2012年 12 月 24 日学籍管理系统一、课程设计的目的与要求: (一)课程设计目的与任务随着社会的发展,及互联网的不断兴起,面向互联网的应用软件己经成为人们社会生活的不可缺少的部分,人们通过使用这样应用软件提高自己工作效率,进行相互交流,使工作成果更加突出。作为当代大学生,要充分掌握网络应用软件的开发技术,能够通过这些软件开发技术设计出对社会生活有价值的应用软件。Java语言是由SUN公司倡导开发的一种程序设计语言,该语言以其独特的特点,高效率的开发,得到广泛的应用,基于该语言一些相关
2、技术的应用,如JSP,Servlet技术的应用,使其应用更加广泛。本次课程设计就是利用Java语言及其相关技术,设计一些应用软件,达到掌握使用Java语言进行程序设计的目的。(二)题目要求设计实现一个某学校学籍管理系统,主要包括学籍的录入,查询,修改,学籍删除等功能。查询方式主要是支持学号查询,例如:输入“*”,则显示该学生的信息。基于文件流的插入与读取。二、设计正文: 1 系统分析学籍管理系统从理解上来看,是指某个学籍的管理,用户通过一些相关的操作对学籍进行管理,学籍管理系统要求以管理为中心,可实现对学籍的录入,查询,修改,学籍删除等功能,学籍管理是一个比较灵活的系统,通过这个简单的系统,就
3、可以做到对学籍的各种操作有据可循,每个操作都被系统有效地记录,也不会遗忘一些细节,学籍管理的信息也透明化。这种信息的透明化,对学籍管理是十分重要的,这也是学籍管理系统的重要功能。 2 主要功能逻辑过程用户看到的第一页面就能看到学籍管理功能,你可以选择“学籍录入操作”“学籍添加操作”“学籍查询操作”“学籍删除操作”。学籍添加操作可以实现学籍信息的添加,而且所有的记录不能为空。学籍录入可以进行录入学籍操作,查询可以通过编号Id查询学籍信息详情,删除可以直接删除学籍记录。 本学生学籍管理系统最主要的的是在于对于输入,修改,查找,删除功能的编写。关于输入功能主要是学生学籍信息的存入,以及存储文档的建立
4、。本系统建立了一个TXT文档来存储学生的学籍信息。需要实现的是如何把信息存入文档里。使用FileInputStream进行文件输入,使用FileOutputStream进行文件输出数据写入,使用ObjectInputStream对学生对象信息输入,使用ObjectOutputStream进行信息输出,并与存储学生信息的文档关联。修改功能需要实现的是用现有数据覆盖文档存储的学生学籍信息。首先应该考虑是否原本文档里含有输入的学号的信息,如果有,则输入其修改信息替换掉原来的学籍信息给予保存文档。查找功能其实就是修改功能的一部分,不过当读取到对应的学生学籍信息之后,要进行对象输出,显示在界面里。删除功
5、能中是查找功能的延续,读取到学籍信息,给予制空,对应的文档里的学生学籍信息全部为null。所有的功能中都需要考虑到异常情况。比如,当进行输入功能时,填写人员没有填写学号而直接经行数据输入,应当给予警告。对于界面布局方面,应当多次调试,已获得更好的显示效果。界面也应该做到简洁明了,虽然使用者不明白此系统构造,但是仍然能够很轻松的使用本系统。主界面中菜单栏的建立和录入内容用来连接学籍管理系统的功能而进行操作。 三、详细设计: 主界面 录入=new JMenuItem(录入学生基本信息); 修改=new JMenuItem(修改学生基本信息); 查询=new JMenuItem(查询学生基本信息);
6、 删除=new JMenuItem(删除学生基本信息); bar=new JMenuBar(); fileMenu=new JMenu(菜单选项); fileMenu.add(录入); fileMenu.add(修改); fileMenu.add(查询); fileMenu.add(删除); bar.add(fileMenu); setJMenuBar(bar); label=new JLabel(欢迎使用学生基本信息管理系统,JLabel.CENTER); label.setFont(new Font(TimesRoman,Font.BOLD,24); label.setForeground
7、(Color.red); 基本信息=new Hashtable(); 录入.addActionListener(this); 修改.addActionListener(this); 查询.addActionListener(this); 删除.addActionListener(this);主界面主要就是建立一个窗口,在窗口中插入一个JBar菜单条,并将其设置为建立窗口的菜单条,用来储存功能。添加完菜单条后在其添加菜单menuj。接下来在菜单中添加内容,本系统只添加了input,change,search,delete四项内容用来建立功能。建立一个TXT文档用来存放string的学生各项数据,
8、使其能实现功能。 输入功能 confirm = new JButton(录入); reset = new JButton(重置); ha1 = new Hashtable(); confirm.addActionListener(this); reset.addActionListener(this); Box box1 = Box.createHorizontalBox(); box1.add(new JLabel(学号:, JLabel.CENTER); box1.add(number); Box box2 = Box.createHorizontalBox(); box2.add(new
9、 JLabel(姓名:, JLabel.CENTER); box2.add(name); Box box3 = Box.createHorizontalBox(); box3.add(new JLabel(性别:, JLabel.CENTER); box3.add(male); box3.add(female); Box box4 = Box.createHorizontalBox(); box4.add(new JLabel(专业:, JLabel.CENTER); box4.add(department); Box box5 = Box.createHorizontalBox(); box
10、5.add(new JLabel(年级:, JLabel.CENTER); box5.add(grade); Box box6 = Box.createHorizontalBox(); box6.add(new JLabel(出生:, JLabel.CENTER); box6.add(birth); StudentSituation类 学生.setNumber(number); 学生.setName(name); 学生.setDiscipling(discipling); 学生.setGrade(grade); 学生.setBorth(borth); 学生.setSex(sex);建立一个St
11、udent类用于存放学生的name,number,sex等数据,方便的被其他功能调用,被其他功能读取或者修改。 修改功能 if (ha1.containsKey(nu) confirm.setEnabled(true); Stu = (Student) ha1.get(nu); name.setText(Stu.getname(); birth.setText(Stu.getbirth(); department.setText(Stu.getdepartment(); grade.setText(Stu.getgrade(); if (Stu.getsex().equals(男) male.
12、setSelected(true); else female.setSelected(true); else String warning = 没有该学生的信息; JOptionPane.showMessageDialog(this, warning, 出错了, JOptionPane.WARNING_MESSAGE); number.setText(null); name.setText(null); birth.setText(null); department.setText(null); grade.setText(null); else String warning = 必须输入学号
13、; JOptionPane.showMessageDialog(this, warning, 出错了,视图和输入界面类似,建立盒子模型用于存放新的学生学籍信息覆盖原来的学生学籍信息。对于没有输入学生学号而进行修改信息的情况,给予“必须输入学号”的警告,如果输入的学号查找成功,文件读取数据输出,是新的信息覆盖。如果没有此学生信息也必须给出警告。 查找功能 if(基本信息表.containsKey(number) Student stu=(Student)基本信息表.get(number); 姓名.setText(stu.getName(); 专业.setText(stu.getDisciping
14、(); 年级.setText(stu.getGrade(); 出生.setText(stu.getBorth(); if(stu.getSex().equals(男) 男.setSelected(true); else 女.setSelected(true); else String warning=该学号不存在!; JOptionPane.showMessageDialog(this,warning,警告,JOptionPane.WARNING_MESSAGE); else String warning=必须要输入学号!; JOptionPane.showMessageDialog(this
15、,warning,警告,JOptionPane.WARNING_MESSAGE); 关于查找功能,主要就是文件数据输入和输出,读取File中的学生学籍的信息,对于异常情况的警告,则和其它情况类似。 删除功能 if(基本信息表.containsKey(number) Student stu=(Student)基本信息表.get(number); 姓名.setText(stu.getName(); 专业.setText(stu.getDisciping(); 年级.setText(stu.getGrade(); 出生.setText(stu.getBorth(); if(stu.getSex().
16、equals(男) 男.setSelected(true); else 女.setSelected(true); String m=确定要删除该学号及全部信息吗?; int ok=JOptionPane.showConfirmDialog(this,m,确认,JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);对于删除功能使用FileInputStream fin: 文件输入流;FileOutputStream fou: 文件输出流写入数据;ObjectInputStream oin: 对象输入流;ObjectOutputStrea
17、m oou: 对象输出流。使得对应学号的File中的的学生学籍信息制空。如果查找不到对应学号或没有输入学号则输出警告。四、设计体会与小结:1、课程设计过程中出现的技术难点和解决方法:此次课程设计一开始好多东西都弄不明白,在网上查阅好多类型的资料,刚开始时决定做的是基于数据库实现的学籍管理系统,后来由于时间紧迫自己没能理解数据库部分的设计,后又选择基于文件结构的学籍管理系统。本次课程设计的框架源于XX文库中的材料,其中的具体算法综合比较了好多具体的实例,最终实现了比较简单而又实用的功能。同时界面设计方面采用了老师给的选题中的样式,简约而美观。实现了基本的学籍信息录入,修改,查询,删除的功能。还有一本份有待改进,其实在程序的调试过程中,我一直想在给整个主界面的前面设计一个封面,增加不同的人有不同的登陆密码进入系统后调试不同的功能。由于时间有限,尚未完成,还有待进一步完善。2 、课程设计期间的主要收获:1)通过这次课设,可以让自己知道更多的java编程思想,可以了解更多的知识。2)理解更多的代码,对以后的程序设计有很大好处。3)培养个人分析、解决问题的能力。4)培养实际分析问题、编程和动手能力,提高综合素质。五、参考文献 :1 java程序设计与应用开发(第二版) 於东军等 清华大学出版社2丁振凡,李宪伟.Java语言与习题解答M. 清华大学出版社
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2