欢迎来到得力文库 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
得力文库 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    java课程设计学生学籍管理系统.docx

    • 资源ID:56658363       资源大小:100.75KB        全文页数:21页
    • 资源格式: DOCX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    java课程设计学生学籍管理系统.docx

    摘要Java语言是当前最为流行的程序设计语言之一,诸多优秀的的特性使其成为被业界广泛认可和采用的工具。本设计可以帮助同学掌握和应运所学的面向对象程序设计学生学籍信息管理系统的编程内容,培养同学们建立对象模型,处理对象和对象集关系和对图形用回界面设计编程以和文件和流的编程问题的能力,训练同学为解决实际问题而创立较完整的简单面向对象和管理系统编程应运程序的独立编程能力.本设计是一个常见的学生学籍管理系统应运程序.系统实现的功能:界面操作实现学生学籍信息的添加、删除、查询、修改功能,在文本文件中的的信息的动态处理。关键词:学生学籍管理系统;图形用户界面设计;文件和流;java目录一、设计目的1二、设计问题1三、概要设计1、主程序面板设计2、功能组件的功能实现3四、详细设计6图形用户界面设计6添加功能的实现9重置功能的实现10查询功能的实现11删除功能的实现12修改功能的实现15系统的运行18五、设计总结18参考文献19学生学籍管理系统一、设计目的随着现代社会的快速开展,我们已进入信息化时代,管理系统在人们的生活中的应用越来越广泛,它已深入到我们工作、学习、生活的各个方面。为了适应时代的开展,本次课程设计的主要任务是设计一个学生学籍管理系统并完成一些根本操作。其目的是:(1) 运用已学的java知识编一些简单使用的程序,通过本课程设计使我们加深理解、稳固课堂理论知识和实验知识;(2) 使我们初步具备综合运用所学Java语言根底知识,面向对象程序设计的根本思想、方法与技术,用户界面设计编程和文件编程技术等开发简单应用系统的根本能力;(3) 使理论和实际相结合,真正做到学以致用,并适应时代开展的潮流。二、设计问题学生学籍管理系统要求完成:(1) 学生学籍信息的添加、删除、查询、修改功能(2) 使用界面操作(3) 使用文件完成首先设计面板,然后往面板里添加组件,点击各个组件来实现要求的对学生学籍信息的添加、删除、查询、修改功能。三、概要设计学生信息管理系统的程序文件为AddStudentInformation.java,在AddStudentInformation.java包含名为AddStudent的类。其主要功能为构成学生信息管理系统的主体框架,实现框架上各个组件的事件侦听。主要包括2个模块:图形用户界面的构建:组件监听事件的实现。用例图1表示如下学生信息录入信息添加信息删除信息查询信息修改添加信息重置学籍信息数据文件学生学籍信息显示例图13.1、主程序面板设计: 设计主面板如下图,主面板分为学籍信息输入区、功能操作区和学籍信息显示区。在学生信息输入区里分别有学号、姓名、性别、班级、系别等信息的输入文本框,其数据类型均置为String类型。在功能操作区里有五个按钮分别为:添加、修改、重置、删除、查询。分别实现对文本文件中的的学生信息数据进展添加、修改、删除、查询。其中重置功能按钮为对主程序界面中的信息输入区和信息显示区的文本框中的内容进展去除操作。在学籍信息显示区里使用DefaultTableModel tableModel=new DefaultTableModel(); String titles="学号","姓名", "性别","班级","系别" 定义五个titles用来学籍信息的显示。主程序面板如例图2所示。例图2学籍信息输入学籍信息显示功能操作 3.2、功能组件的功能实现:添加学生信息在文本框中输入学生信息包括学号、姓名、性别、班级、系别,点击添加按钮弹出对话框如图。该学生信息已成功添加至文件。 如例图3,4例图3例图4查询学生信息在学号文本框里输入想要查询的学号0809010214,在学生信息显示栏显示信息。如例图5:例图5修改学生信息在学生信息输入区输入完整的学生信息,点击修改按钮弹出如下对话框,点击是(Y)按钮,程序自动修改文本文件中的学生信息,如例图6,7。例图6例图7翻开text1.txt文件,查找所修改内容,成功修改内容,再查询学号为08090104的学生信息为如例图8例图8说明信息修改成功。删除学生信息只需在信息输入区输入所要删除的学生信息的学号,点击删除按钮弹出如下对话框例图9点击是(Y)按钮,程序进展执行删除功能,并弹出如下对话框,如例图10例图10重置信息点击重置按钮,学籍信息输入区和学籍信息显示区的文本框中的内容都设置为空。四、详细设计定义AddStudent类继承JFrame类使用ActionListener, ItemListener接口实现对事件的监听。以下为用户界面的程序代码和分析: 定义String类型的num,name,grade,sex,xibie,oldStr六个变量;在本系统中默认学籍信息中的学号为学生信息的唯一可区分标识。删除、查询和修改时均以学号来进展信息的检索和匹配检测。使用JLabel标签类定义lbl_title lbl_num lbl_name lbl_sex lbl_class lbl_department;使用JTextField类创立文本框用以学籍信息的输入和显示。使用JButton类创立btn_rep btn_xg btn_cx btn_sh btn_add功能按钮。使用addItemListener() 和addActionListener()方法功能按钮事件进展监听。使用JRadioButton类创立rb_man rb_woman用以学生学籍信息性别的选择。使用DefaultTableModel类定义五个titles用来学籍信息的显示。使用Container容器类,并使用add()方法添加组件到容器中。使用setBounds()方法对每个组件进展位置的设置,并使界面到达最优化。使用setVisible(true)使界面显示各个组件。class AddStudent extends JFrame implements ActionListener, ItemListener public String num,name,grade,sex,xibie,oldStr;JLabel lbl_title = new JLabel("学生信息");JLabel lbl_num = new JLabel("学号:");JLabel lbl_name = new JLabel("姓名:");JLabel lbl_sex = new JLabel("性别:");JLabel lbl_class = new JLabel("班级:");JLabel lbl_department = new JLabel("系别:"); JTextField txt_num = new JTextField(); JTextField sfzText1 = new JTextField() ; JTextField bnameText1 = new JTextField() ; JTextField xbText1 = new JTextField() ; JTextField dateText1 = new JTextField() ; JTextField xb = new JTextField() ;JTextField txt_name = new JTextField(11);JTextField txt_class = new JTextField(11);JTextField txt_department = new JTextField();JButton btn_rep = new JButton("重置");JButton btn_xg = new JButton("修改");JButton btn_cx = new JButton("查询");JButton btn_sh = new JButton("删除");JButton btn_add = new JButton("添加");JRadioButton rb_man = new JRadioButton("男");JRadioButton rb_woman = new JRadioButton("女"); DefaultTableModel tableModel=new DefaultTableModel(); String titles="学号","姓名", "性别","班级","系别" String a,b,c,d,f; private JLabel infoLab = new JLabel("学生信息管理") ;ButtonGroup bg = new ButtonGroup();AddStudent(String s) super(s);this.setBounds(500, 50, 390, 600);Container con = this.getContentPane();con.setLayout(null);con.add(lbl_title);con.add(lbl_num);con.add(lbl_name);con.add(lbl_sex);con.add(lbl_class);con.add(lbl_department);con.add(txt_num);con.add(txt_name);con.add(txt_class);con.add(txt_department);con.add(btn_rep);con.add(btn_xg);con.add(btn_cx);con.add(btn_sh);con.add(btn_add);con.add(rb_man);con.add(rb_woman);bg.add(rb_man);bg.add(rb_woman);con.add(infoLab);con.add(sfzText1) ; con.add(bnameText1) ; con.add(xbText1) ; con.add(dateText1) ; con.add(xb); lbl_title.setBounds(150, 50, 100, 25);lbl_num.setBounds(100, 100, 50, 25);lbl_name.setBounds(100, 150, 50, 25);lbl_sex.setBounds(100, 200, 50, 25);lbl_class.setBounds(100, 250, 50, 25);lbl_department.setBounds(100, 300, 50, 25);btn_add.setBounds(20, 350, 60, 25);btn_sh.setBounds(230, 350, 60, 25);btn_xg.setBounds(90, 350, 60, 25);btn_cx.setBounds(300, 350, 60, 25);btn_rep.setBounds(160, 350, 60, 25);txt_num.setBounds(150, 100, 110, 25);txt_name.setBounds(150, 150, 110, 25);txt_class.setBounds(150, 250, 110, 25);txt_department.setBounds(150, 300, 110, 25);rb_man.setBounds(150, 200, 50, 25);rb_woman.setBounds(220, 200, 50, 25);infoLab.setBounds(0,410,100,25); sfzText1.setBounds(0,450,80,20) ;bnameText1.setBounds(80,450,80,20) ;xb.setBounds(160,450,80,20) ; xbText1.setBounds(240,450,80,20) ; dateText1.setBounds(320,450,80,20) ; tableModel.setColumnIdentifiers(titles); JTable table=new JTable(tableModel); JScrollPane scr=new JScrollPane(table); con.add(scr); scr.setBounds(0, 430, 400,300);rb_man.addItemListener(this);rb_woman.addItemListener(this);btn_add.addActionListener(this);btn_rep.addActionListener(this);btn_xg.addActionListener(this);btn_sh.addActionListener(this);btn_cx.addActionListener(this);setVisible(true); 定义addDate()方法实现学籍信息的添加,使用getText()方法获取文本框中的学生学籍信息,并使用PrintWriter(new ( new File("text1.txt"),true)类下的println()方法将信息写入文件。其中每个学籍信息之间用|隔开,并换行保存以方便信息的的读取和查询。添加成功之后执行setText()方法使各个文本框中的信息为空以方便其他功能的实现。以下为具体的代码:public void addDate()String sex = null;if(rb_man.isSelected()sex=rb_man.getText(); else sex=rb_woman.getText(); JOptionPane.showMessageDialog(null, "学号:" + txt_num.getText()+ "n姓名:" + txt_name.getText()+"n性别"+sex + "n班级:"+ txt_class.getText() + "n系别:" + txt_department.getText(); PrintWriter mm = null;String fs =txt_num.getText()+"|"+txt_name.getText()+"|"+sex+"|"+txt_class.getText()+"|"+txt_department.getText();try mm = new PrintWriter(new ( new File("text1.txt"),true);mm.println(fs); catch (IOException e1) e1.printStackTrace(); mm.close();JOptionPane.showMessageDialog(null, "添加成功", "温馨提示", JOptionPane.INFORMATION_MESSAGE); txt_num.setText(null);txt_name.setText(null);txt_class.setText(null);txt_department.setText(null);bg.remove(rb_man);bg.remove(rb_woman);rb_man.setSelected(false);rb_woman.setSelected(false);使用setText()方法使各个文本框中的信息为空,使用JRadioButton 类下的remove()和setSelected(flase)方法使性别单项选择按钮置为未被选定状态。public void repDate()txt_num.setText(null);txt_name.setText(null);txt_class.setText(null);txt_department.setText(null);bg.remove(rb_man);bg.remove(rb_woman);rb_man.setSelected(false);rb_woman.setSelected(false);bg.add(rb_man);bg.add(rb_woman);sfzText1.setText(""); bnameText1.setText(""); dateText1.setText(""); xb.setText(""); xbText1.setText(""); infoLab.setText("学生信息");定义查询方法实现查询功能,首先使用equals方法进展判别学号输入区文本框中的内容是否为空,为空的时候那么提示用回输入学号进展查询,不为空使用类BufferedReader下的readLine()方法正行读取文件text1.txt中的内容, 使用类StringTokenizer对读取的整行数据以“|“进展分割,每个分割点的内容赋值给String类型的num,name,sex,grade,xibie。再次使用equal方法判断学号输入文本框中的内容是否和num一样,假设一样那么依次使用setText()方法将学籍信息显示区的文本框内容设置为所查找的文件数据。其中包括文件的异常处理。以下为具体代码:public void CheckDate()if (txt_num.getText().toString().equals("")JOptionPane.showMessageDialog(null, "请输入学号", "温馨提示", JOptionPane.INFORMATION_MESSAGE); try BufferedReader in = new BufferedReader(new ("text1.txt"); String s;while(s=in.readLine()!=null) StringTokenizer t=new StringTokenizer(s,"|"); num=t.nextToken(); name=t.nextToken(); sex=t.nextToken(); grade =t.nextToken(); xibie =t.nextToken();if(num.equals(txt_num.getText() sfzText1.setText(num); bnameText1.setText(name); dateText1.setText(xibie); xb.setText(sex); xbText1.setText(grade); infoLab.setText("查询成功!"); catch (IOException e) e.printStackTrace(); 删除功能的实现删除学籍信息时用户只需输入学生的学号即可删除文本文件中的该生的学籍信息,其实现是基于查询功能,首先是查询文本文件中的数据,如果输入的学号和查询到的信息一样时,提示用户是否要删除该生学籍信息,如果选择是(Y),那么删除该学生的所有信息。在实现删除功能时,本系统采用缓冲流StringBufferbuf的相关特性,在信息匹配成功之后,使用readLine()方法自动查找到该学籍信息在文本文件中所在的行,将该行之前的内容使用append()方法追加到缓冲流buf中,而该行数据那么设置为空追加至buf中,该行之后的内容那么正常追加至buf中,然后再写入文本文件text1.txt中,其中也包括对文件读取写入的异常的处理,从而实现了信息的删除。以下为具体代码:public void deleteDate()if(rb_man.isSelected()sex=rb_man.getText(); else sex=rb_woman.getText(); String m="确定要删除该学生的记录吗? n请检查文本文件中的数据格式确保每行数据之间和文本最后无空行" int ok=JOptionPane.showConfirmDialog(null,m,"确认",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE); if(ok=JOptionPane.YES_OPTION) try BufferedReader in = new BufferedReader(new ("text1.txt"); String s; while(s=in.readLine()!=null) StringTokenizer t=new StringTokenizer(s,"|"); num=t.nextToken(); name=t.nextToken(); sex=t.nextToken(); grade =t.nextToken(); xibie =t.nextToken(); if(num.equals(txt_num.getText() oldStr = num +"|"+name+"|"+sex+"|"+grade+"|"+ xibie; catch (IOException e) try = new File("text1.txt"); BufferedReader st = new BufferedReader(new InputStreamReader(new (file); StringBuffer buf = new StringBuffer(); String s=null; for (int j = 1; (s = st.readLine() != null && !s.equals(oldStr); j+) buf = buf.append(s); buf = buf.append("n"); while (s = st.readLine() != null) buf = buf.append(s); buf = buf.append("n"); buf.append(""); st.close(); PrintWriter pw = new PrintWriter(new (file); pw.println(buf.toString().toCharArray(); pw.flush(); pw.close(); catch (IOException e) e.printStackTrace(); JOptionPane.showMessageDialog(null, "删除成功", "温馨提示", JOptionPane.INFORMATION_MESSAGE); txt_num.setText(null); txt_name.setText(null); txt_class.setText(null); txt_department.setText(null); bg.remove(rb_man); bg.remove(rb_woman); rb_man.setSelected(false); rb_woman.setSelected(false); else if(ok=JOptionPane.NO_OPTION) 修改学籍信息和删除功能实现方法类似,只是在修改的具体过程有些差异,修改学籍信息时需要用户输入完整的学籍信息,点击修改按钮,系统弹出对话框提示是否要删除学生学籍信息,点击是(Y)进展修改学籍信息,首先也是对文本文件的读取和信息匹配检测,以学号为标识进展匹配检测。假设学号一样,使用readLine()方法自动查找到该学籍信息在文本文件中所在的行,将该行之前的内容使用append()方法追加到缓冲流buf中,而该行数据那么设置为从文本框中获取的内容追加至buf中,该行之后的内容那么正常追加至buf中,然后再写入文本文件text1.txt中,其中也包括对文件读取写入的异常的处理,从而实现了信息的修改。以下为具体代码:public void editData()if(rb_man.isSelected()sex=rb_man.getText(); else sex=rb_woman.getText(); String m="确定要修改该学生的记录吗?" int ok=JOptionPane.showConfirmDialog(null,m,"确认",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE); if(ok=JOptionPane.YES_OPTION) try BufferedReader in = new BufferedReader(new ("text1.txt"); String s; while(s=in.readLine()!=null) StringTokenizer t=new StringTokenizer(s,"|"); num=t.nextToken(); name=t.nextToken(); sex=t.nextToken(); grade =t.nextToken(); xibie =t.nextToken(); if(num.equals(txt_num.getText() oldStr = num +"|"+name+"|"+sex+"|"+grade+"|"+ xibie; catch (IOException e) e.printStackTrace(); try = new File("text1.txt"); BufferedReader st = new BufferedReader(new InputStreamReader(new (file); StringBuffer buf = new StringBuffer(); String s=null; for (int j = 1; (s = st.readLine() != null && !s.equals(oldStr); j+) buf = buf.append(s); buf = buf.append("n"); while (s = st.readLine() != null) buf = buf.append(s); buf = buf.append("n"); buf = buf.append(txt_num.getText()+"|"+txt_name.getText()+"|"+sex+"|"+txt_class.getText()+"|"+txt_department.getText(); st.close(); PrintWriter pw = new PrintWriter(new (file); pw.println(buf.toString().toCharArray(); pw.flush(); pw.close(); catch (IOException e) e.printStackTrace(); JOptionPane.showMessageDialog(null, "修改成功", "温馨提示", JOptionPane.INFORMATION_MESSAGE); txt_num.setText(null); txt_name.setText(null); txt_class.setText(null); txt_department.setText(null); bg.remove(rb_man); bg.remove(rb_woman); infoLab.setText("学生信息"); rb_man.setSelected(false); rb_woman.setSelected(false); else if(ok=JOptionPane.NO_OPTION) :编写主函数,创立AddStudent类add_student。以下为主函数代码:public class AddStudentInformation public static void main(String args) throws IOException AddStudent add_student = new AddStudent("学生学籍系统");add_student.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);五、设计总结我们刚学习java这门课程,对专业的java编程知识并未有深入的学习和探索。但是当我们查找过一些书籍资料后,在教师的不遗余力的指导下我们还是把课程设计题目顺利的完成了。通过此次学生学籍管理系统的设计,使我们对java编程语言有了更深层次的了解。不过在编写的过程中也存在一些问题,例如在选择适宜的方法实现修改和删除功能的时候,由于对数组的理解还不能满足当前的编程需要,并未选择更加简单的数组来处理数据,以至于当删除指定内容后在文本文件中留有空行,从而导致了在接下来的查询异常和再次修改和删除功能无法正常实现,还需人工删除掉文本文件中的空行以保证程序的正

    注意事项

    本文(java课程设计学生学籍管理系统.docx)为本站会员(叶***)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

    © 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

    黑龙江省互联网违法和不良信息举报
    举报电话:0468-3380021 邮箱:hgswwxb@163.com  

    收起
    展开