大学JAVA课程设计——学生信息管理系统

时间:2019-05-12 06:58:01下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《大学JAVA课程设计——学生信息管理系统》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《大学JAVA课程设计——学生信息管理系统》。

第一篇:大学JAVA课程设计——学生信息管理系统

沈阳理工大学课程设计

沈阳理工大学课程设计

摘要

Java语言是当前最为流行的程序设计语言之一,诸多优秀的的特性使其成为被业界广泛认可和采用的工具。本设计可以帮助同学掌握和应运所学的面向对象程序设计学生学籍信息管理系统的编程内容,培养同学们建立对象模型,处理对象和对象集关系和对图形用回界面设计编程以及文件和流的编程问题的能力,训练同学为解决实际问题而创建较完整的简单面向对象和管理系统编程应运程序的独立编程能力.本设计是一个常见的学生学籍管理系统应运程序.系统实现的功能: 界面操作实现学生学籍信息的添加、删除、查询、修改功能,在文本文件中的的信息的动态处理。

关键词:

学生学籍管理系统;图形用户界面设计;文件和流;java

I

沈阳理工大学课程设计

目 录

一、课程设计的目的与意义..........................................................................................1

1.目的..........................................................1 2.意义..........................................................1

二、需求分析..........................................................................................................................1

1.学生学籍管理系统主界面模块................................1 2.录入学生基本信息模块......................................1 3.修改学生基本信息模板......................................1 3.查询学生基本信息模板......................................1 4.删除学生基本信息模板......................................1

三、分案设计..........................................................................................................................3

1.定义四个Panel面板......................................3

四、方案的实施......................................................................................................3

五、心得体会.........................................................................................................15

六、参考文献.........................................................................................................16

II

沈阳理工大学课程设计

一、课程设计的目的与意义

目的:深入理解java语言的语法规则及其优势,掌握类与方法的构造方法,掌 握基于java的各种操作的实现方法,训练对基础知识和基本方法的综合运用能力,增强对算法的理解能力,提高软件设计能力。在实践中培养独立分析问题和解决问题的作风和能力。

意义:熟练运用java语言、基本构造方法和算法的基础知识,独立编制一个具有中等难度的、解决实际应用问题的应用程序。通过题意分析、选择类结构、算法设计、编制程序、调试程序、软件测试、结果分析、撰写课程设计报告等环节完成软件设计的全过程,不断地完善程序以提高程序的性能。

二、需求分析

该学生学籍管理系统的所有功能均在一个Frame窗体中实现。1.学生学籍管理系统主界面模块:

采用Frame窗体来设置欢迎界面包括背景图片及字幕(可以设计成滚动字幕效果),左上方的菜单条设计成下拉式。包括“录入学生基本信息”、“修改学生基本信息”、“删除学生基本信息”、“查询学生基本信息”和“退出系统”五项菜单项。2.录入学生基本信息模块:

采用Panel面板来设置该部分内容信息并采用方位布局(边缘布局)和Box轻量级组件来设置“学号”、“姓名”、“性别”、“专业”、“年级”、“出生”,并在该面板中添加了“录入”和“重置”两个按钮进行监听,最后将该面板加入到Frame窗体中去。3.修改学生基本信息模板:

采用Panel面板来设置该部分内容信息,同样是采用方位布局及Box组件来设置相关信息,并在学号旁设置了“开始修改”按钮。在面板南部方位添加了“确定修改”和“重置”两按钮进行监听。4.查询学生基本信息模板:

采用Panel面板来设置该部分内容信息,并将该面板加入到主窗体中去,采用边缘布局进行方位设置,在上方加入“查询”按钮进行监听。

5.删除学生基本信息模板:

也是采用Panel面板进行设置相关内容,并用边缘布局进行布局,并在上方添加“确定”按钮,在下方添加“确定删除”按钮实现监听。

三、模块设计

定义四个Panel面板

1.定义Reg(录入学生基本信息)面板

采用BorderLayout(构造一个组件之间没有间距的新边界布)和Box轻量级组件进行布局,在面板的Nother方位添加一个“录入学生基本信息”的标签,并更改字体,颜色等。接着用JTextField轻量级组件来设置单行文本编辑,并将其加入到用

沈阳理工大学课程设计

createHorizontalBox()方法创建具有一个从左到右显示其组件的Box和用createHorizontalStrut()创建一个不可见的、固定宽度的组件,使其在一个横向 box 中,通常使用此方法强行使两个组件之间具有某一空间量。然后Box与Box之间用createVerticalBox()创建一个从上到下显示其组件的 Box,并用createVerticalStrut()方法创建一个不可见的、固定高度的组件,使其在一个纵向 box 中,通常使用此方法强行使两个组件之间具有某一空间量。然后在面板的South方位设置“录入”与“重置”两按钮。最后实现与数据库的桥接,能够将从文本框获得的信息存储到数据库中去。

2.定义Search(查询学生基本信息)面板

该部分同样采用BorderLayout(构造一个组件之间没有间距的新边界布)和Box轻量级组件进行布局,在面板的Nother方位添加一个“查询学生基本信息”的标签,并更改字体,颜色等。接着用JTextField轻量级组件来设置单行文本编辑,在学号这一文本框后再添加一个“查询”按钮。并将其加入到用createHorizontalBox()方法创建具有一个从左到右显示其组件的Box和用createHorizontalStrut()创建一个不可见的、固定宽度的组件,使其在一个横向 box 中,通常使用此方法强行使两个组件之间具有某一空间量。然后Box与Box之间用createVerticalBox()创建一个从上到下显示其组件的 Box,并用createVerticalStrut()方法创建一个不可见的、固定高度的组件,使其在一个纵向 box 中,通常使用此方法强行使两个组件之间具有某一空间量。最后实现与数据库的桥接,能够将从数据库中获取信息并显示到文本框中去。

3.定义Modify(修改学生基本信息)面板

该部分同样也是采用BorderLayout(构造一个组件之间没有间距的新边界布)和Box轻量级组件进行布局,在面板的Nother方位添加一个“修改学生基本信息”的标签,并更改字体,颜色等。接着用JTextField轻量级组件来设置单行文本编辑,并将其加入到用createHorizontalBox()方法创建具有一个从左到右显示其组件的Box和用createHorizontalStrut()创建一个不可见的、固定宽度的组件,使其在一个横向 box 中,通常使用此方法强行使两个组件之间具有某一空间量。并在 “学号”该文本框后添加一个“开始修改”按钮用来监听。然后Box与Box之间用createVerticalBox()创建一个从上到下显示其组件的 Box,并用createVerticalStrut()方法创建一个不可见的、固定高度的组件,使其在一个纵向 box 中,通常使用此方法强行使两个组件之间具有某一空间量。最后实现与数据库的桥接,能够将从数据库中获取信息并显示到文本框中去,并将修改后的信息存储到数据库中去。

4.定义Delete(删除学生基本信息)面板

该部分还是采用BorderLayout(构造一个组件之间没有间距的新边界布)和Box轻量级组件进行布局,在面板的Nother方位添加一个“修改学生基本信息”的标签,并更改字体,颜色等。接着用JTextField轻量级组件来设置单行文本编辑,在学号这一文本框后再添加一“确定”按钮实现监听。并将其所有文本框和标签加入到用createHorizontalBox()方法创建具有一个从左到右显示其组件的Box和用createHorizontalStrut()创建一个不可见的、固定宽度的组件,使其在一个横向 box 中,通常使用此方法强行使两个组件之间

沈阳理工大学课程设计

具有某一空间量。并在 “学号”该文本框后添加一个“开始修改”按钮用来监听。然后Box与Box之间用createVerticalBox()创建一个从上到下显示其组件的 Box,并用createVerticalStrut()方法创建一个不可见的、固定高度的组件,使其在一个纵向 box 中,通常使用此方法强行使两个组件之间具有某一空间量,还在本面板的South方位添加“确定删除”按钮。最后实现与数据库的桥接,能够将从数据库中获取信息并显示到文本框中去,删除后同时在数据库中也删除该信息并保存该操作。

四、方案的实施

1、学生信息管理系统的登录

学生信息管理系统可由管理员和学生两种身份的人使用。管理员和学生身份登录所能操作的功能有很大的区别。系统初始化一个系统管理员,登录名:admin 密码:admin 学生登录系统的登录名为学号,密码也为学号(如:10001),登录后可以修改密码。

登录界面

登录系统后的界面

沈阳理工大学课程设计

注册学生信息界面

沈阳理工大学课程设计

修改学生信息界面

查询学生信息界面

沈阳理工大学课程设计

删除学生信息界面

沈阳理工大学课程设计 程序类的设计

DeleteListener.java:删除监听 JTMouseListener.java:树状视图 LoginListener.java:登陆监听 ResetListener.java:重置监听 SaveListener.java:保存监听

SearchAllListener.java:搜索所有学生信息 SearchDListener.java:搜索一个学生信息 SearchListener.java:搜索一个学生信息 SearchRListener.java:搜索一个学生信息 SubmitListener.java:提交信息监听 系统的使用说明及环境配置

学生信息管理系统提供了管理员和学生这两个角色登录系统,管理员通过用户名:admin 密码:admin 登录系统后可以进行相应的操作。学生通过以自己的学号(如10001)作为用户名和密码登录系统后进行相应的学生权限范围内的操作。数据库:Mysql 连接数据库的登录名:root 密码:zfz 代码:

DeleteListener.java:删除监听 package manager.ui.listener;

import java.awt.event.ActionEvent;import java.awt.event.ActionListener;

import javax.swing.JButton;import javax.swing.JOptionPane;

import manager.dao.JdbcIcpCURD;import manager.ui.conponent.DeletePanel;

public class DeleteListener implements ActionListener {

public void actionPerformed(ActionEvent e){

JButton jb=(JButton)e.getSource();

DeletePanel dp=(DeletePanel)jb.getParent();

String xuehao=dp.xuehaoFd.getText();

String msg= “你确定要删除学号为”+xuehao+“的学生信息么?”;

int i=JOptionPane.showConfirmDialog(dp,msg,“提”,JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE);

if(i==0){

JdbcIcpCURD curd=new JdbcIcpCURD();

boolean b=curd.deleteByXuehao(Integer.parseInt(xuehao));

if(b){

dp.errorLb.setText(“删除成功”);

}

else{

dp.errorLb.setText(“删除失败”);

}

}

return;}

示信息

沈阳理工大学课程设计

} JTMouseListener.java:树状视图 package manager.ui.listener;

import java.awt.CardLayout;import java.awt.Component;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;

import javax.swing.JTree;import javax.swing.tree.DefaultMutableTreeNode;import javax.swing.tree.TreeNode;import javax.swing.tree.TreePath;

import manager.ui.conponent.MainFrame;import manager.ui.conponent.PLeft;

public class JTMouseListener implements MouseListener {

@Override public void mouseClicked(MouseEvent e){

// TODO Auto-generated method stub JTree jt=(JTree)e.getSource();PLeft p=(PLeft)jt.getParent();MainFrame f=(MainFrame)p.getParent().getParent().getParent().getParent();TreePath path = jt.getPathForLocation(e.getX(), e.getY());if(path==null){ return;} DefaultMutableTreeNode node =(DefaultMutableTreeNode)path.getLastPathComponent();String s=node.toString();CardLayout cl=f.getPright().getLayout();if(s.equals(“注册学生”)){ cl.show(f.getPright(), “register”);} if(s.equals(“修改学生信息”)){ cl.show(f.getPright(), “modify”);} if(s.equals(“查询学生信息”)){ cl.show(f.getPright(), “search”);} if(s.equals(“删除学生信息”)){ cl.show(f.getPright(), “delete”);} if(s.equals(“学生信息管理”)){ cl.show(f.getPright(), “welcom”);} }

@Override public void mouseEntered(MouseEvent e){

沈阳理工大学课程设计

} } @Override public void mouseExited(MouseEvent e){ // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e){ // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent e){ // TODO Auto-generated method stub } // TODO Auto-generated method stub LoginListener.java:登陆监听

package manager.ui.listener;

import java.awt.event.ActionEvent;import java.awt.event.ActionListener;

import javax.swing.JButton;import javax.swing.JOptionPane;

import manager.ui.conponent.Login;import manager.ui.conponent.MainFrame;

public class LoginListener implements ActionListener {

@Override public void actionPerformed(ActionEvent e){

JButton bt=(JButton)e.getSource();

Login frame=(Login)bt.getParent().getParent().getParent().getParent();

String username=frame.usernameTa.getText().trim();

String password=frame.passwordTa.getText().trim();

if(username!=null||password!=null){

if(“admin”.equals(username)&&“123”.equals(password)){

new MainFrame().setVisible(true);

frame.dispose();

}

else{

frame.messageLb.setText(“用户名或密码错误”);

}

}

沈阳理工大学课程设计

else{

frame.messageLb.setText(“用户名或密码错误”);

} } } ResetListener.java:重置监听 package manager.ui.listener;

import java.awt.event.ActionEvent;import java.awt.event.ActionListener;

import javax.swing.JButton;

import manager.ui.conponent.RegPanel;

public class ResetListener implements ActionListener {

@Override public void actionPerformed(ActionEvent e){ JButton jb=(JButton)e.getSource();RegPanel jp=(RegPanel)jb.getParent();jp.xuehaoFd.setText(“");jp.nameFd.setText(”“);jp.addressFd.setText(”“);} } SaveListener.java:保存监听 package manager.ui.listener;

import java.awt.event.ActionEvent;import java.awt.event.ActionListener;

import javax.swing.JButton;

import manager.dao.JdbcIcpCURD;import manager.domain.Student;import manager.ui.conponent.ModifyPanel;

public class SaveListener implements ActionListener {

@Override public void actionPerformed(ActionEvent e){

JButton jb=(JButton)e.getSource();

ModifyPanel mp=(ModifyPanel)jb.getParent();

String xuehao=mp.xuehaoTf.getText().trim();

String name=mp.nameTf.getText().trim();

String gender=mp.genderTf.getText().trim();

String address=mp.addressTf.getText().trim();

String oldXuehao=mp.xuehaoFd.getText().trim();

if(oldXuehao==null||xuehao.equals(”“)){

沈阳理工大学课程设计

}

} oldXuehao=xuehao;} if(xuehao==null||xuehao.equals(”“)){ mp.errorLb.setText(”请输入修改后的学号...“);return;} if(name==null||name.equals(”“)){ mp.errorLb.setText(”请输入修改后的姓名...“);return;} if(gender==null||gender.equals(”“)){ mp.errorLb.setText(”请输入修改后的性别...“);return;} if(address==null||address.equals(”“)){ mp.errorLb.setText(”请输入修改后的地址...“);return;} Student stu=new Student();stu.setXuehao(Integer.parseInt(xuehao));stu.setName(name);stu.setGender(gender);stu.setAddress(address);int old=Integer.parseInt(oldXuehao);JdbcIcpCURD curd=new JdbcIcpCURD();if(curd.modify(stu, old)){ mp.errorLb.setText(”修改成功...“);}

SearchAllListener.java:搜索所有学生信息 package manager.ui.listener;

import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Vector;

import javax.swing.JButton;import javax.swing.JTextArea;

import manager.dao.JdbcIcpCURD;import manager.domain.Student;import manager.ui.conponent.SearchPanel;

public class SearchAllListener implements ActionListener {

@Override public void actionPerformed(ActionEvent e){

JButton jb=(JButton)e.getSource();

SearchPanel sp=(SearchPanel)jb.getParent();

沈阳理工大学课程设计

}

} JTextArea jt=sp.resultTa;JdbcIcpCURD curd=new JdbcIcpCURD();Vector students=curd.getAllStudent();StringBuilder sb=new StringBuilder();for(Student s:students){ sb.append(” “);sb.append(s.getXuehao());sb.append(”t“);sb.append(s.getName());sb.append(”t“);sb.append(s.getGender());sb.append(”t“);sb.append(s.getAddress());sb.append(”t“);sb.append(s.getRegTime().toString());sb.append(”n“);} jt.setText(sb.toString());SearchDListener.java:搜索一个学生信息 package manager.ui.listener;

import java.awt.event.ActionEvent;import java.awt.event.ActionListener;

import javax.swing.JButton;

import manager.dao.JdbcIcpCURD;import manager.domain.Student;import manager.ui.conponent.DeletePanel;import manager.ui.conponent.ModifyPanel;import manager.ui.conponent.SearchPanel;

public class SearchDListener implements ActionListener {

@Override public void actionPerformed(ActionEvent e){

JButton jb=(JButton)e.getSource();

DeletePanel dp=(DeletePanel)jb.getParent();

JdbcIcpCURD curd=new JdbcIcpCURD();

String s=dp.xuehaoFd.getText().trim();

Student stu=curd.searchByXuehao(Integer.parseInt(s));

if(stu==null){

dp.errorLb.setText(”没有查询到此学生“);

return;

}

dp.xuehaoTf.setText(new Integer(stu.getXuehao()).toString());

dp.nameTf.setText(stu.getName());

dp.genderTf.setText(stu.getGender());

dp.addressTf.setText(stu.getAddress());

沈阳理工大学课程设计

} } SearchListener.java:搜索一个学生信息 package manager.ui.listener;

import java.awt.event.ActionEvent;import java.awt.event.ActionListener;

import javax.swing.JButton;

import manager.dao.JdbcIcpCURD;import manager.domain.Student;import manager.ui.conponent.ModifyPanel;

public class SearchListener implements ActionListener {

@Override public void actionPerformed(ActionEvent e){

JButton jb=(JButton)e.getSource();

ModifyPanel mp=(ModifyPanel)jb.getParent();

String s=mp.xuehaoFd.getText().trim();

if(s==null||s.equals(”“)){

mp.errorLb.setText(”请输入学号..“);

return;

}

JdbcIcpCURD curd=new JdbcIcpCURD();

Student stu=curd.searchByXuehao(Integer.parseInt(s));

mp.xuehaoTf.setText(new Integer(stu.getXuehao()).toString());

mp.nameTf.setText(stu.getName());

mp.genderTf.setText(stu.getGender());

mp.addressTf.setText(stu.getAddress());} } SearchRListener.java:搜索一个学生信息 package manager.ui.listener;

import java.awt.event.ActionEvent;import java.awt.event.ActionListener;

import javax.swing.JButton;

import manager.dao.JdbcIcpCURD;import manager.domain.Student;import manager.ui.conponent.ModifyPanel;import manager.ui.conponent.SearchPanel;

public class SearchRListener implements ActionListener {

@Override public void actionPerformed(ActionEvent e){

沈阳理工大学课程设计

}

} JButton jb=(JButton)e.getSource();SearchPanel sp=(SearchPanel)jb.getParent();JdbcIcpCURD curd=new JdbcIcpCURD();String s=sp.xuehaoTf.getText().trim();Student stu=curd.searchByXuehao(Integer.parseInt(s));if(stu==null){ return;} StringBuilder sb=new StringBuilder();sb.append(” “);sb.append(stu.getXuehao());sb.append(”t“);sb.append(stu.getName());sb.append(”t“);sb.append(stu.getGender());sb.append(”t“);sb.append(stu.getAddress());sb.append(”t“);sb.append(stu.getRegTime().toString());sb.append(”n“);sp.resultTa.setText(sb.toString());

SubmitListener.java:提交信息监听 package manager.ui.listener;

import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Date;

import javax.swing.JButton;import javax.swing.JLabel;

import manager.dao.JdbcIcpCURD;import manager.domain.Student;import manager.ui.conponent.RegPanel;

public class SubmitListener implements ActionListener {

@Override public void actionPerformed(ActionEvent e){ JButton jb=(JButton)e.getSource();RegPanel jp=(RegPanel)jb.getParent();String xuehao=jp.xuehaoFd.getText();String name=jp.nameFd.getText();String address=jp.addressFd.getText();String gender=”“;boolean b1=jp.maleRB.isSelected();boolean b2=jp.femaleRB.isSelected();

沈阳理工大学课程设计

if(b1){ } JLabel errorLabel=jp.errorLabel;if(xuehao==null||xuehao.trim().equals(”“)){ errorLabel.setText(”没有填写学号..“);return;} if(name==null||name.trim().equals(”“)){ errorLabel.setText(”没有填写姓名..“);return;} if(address==null|address.trim().equals(”“)){ errorLabel.setText(”没有填写地址..“);return;} if(!(b1||b2)){ errorLabel.setText(”请选择性别...“);return;} if(b1){ gender=”男“;} if(b2){ gender=”女“;} Student stu=new Student(Integer.parseInt(xuehao),name,gender,new Date(System.currentTimeMillis()),address);JdbcIcpCURD curd=new JdbcIcpCURD();boolean b=curd.insert(stu);if(b){ errorLabel.setText(”注册成功!“);jp.xuehaoFd.setText(”“);jp.nameFd.setText(”“);jp.addressFd.setText(”");} } }

五、心得体会

我们刚学习java这门课程,对专业的java编程知识并未有深入的学习和探索。但是当我们查找过一些书籍资料后,在不断努力下我们还是把课程设计题目顺利的完成了。通过此次学生学籍管理系统的设计,使我们对java编程语言有了更深层次的了解。不过在编写的过程中也存在一些问题,例如在选择适宜的方法实现修改和删除功能的时候,由于对

沈阳理工大学课程设计

数组的理解还不能满足当前的编程需要,并未选择更加简单的数组来处理数据,以至于当删除指定内容后在文本文件中留有空行,从而导致了在接下来的查询异常和再次修改和删除功能无法正常实现,还需人工删除掉文本文件中的空行以保证程序的正常运行。我们也可以选用其他的更加方便的处理方法使得程序更加优化和简洁。

“书山有路勤为径,学海无涯苦作舟”,我们现今所学的知识还远远不够,在今后的学习过程中我们要进一步学习java的更多的知识,此次课程设计不仅锻炼了我们独立思考和团队合作的能力,而且提高了我们动手的能力,我会继续努力学习此课程的。

六、参考文献 郑阿奇 编著《Java实用教程(第二版)》电子工业出版社 2 良葛格 编著《Java学习笔记》清华大学出版

第二篇:JAVA课程设计员工信息管理系统

JAVA员工管理系统

实验报告

姓名:张旭冉

学号:10105010117

班级:信10-1

北方工业大学理学院信息与计算科学系

2013年 12月 17日

员工管理系统一、实验目的

通过该课程设计,使同学们进一步理解概JAVA的基本概念、理论和方法,初步掌握JDK、Eclipse的调试和应用,以及程序中错误的解决方法,明确JAVA在实际程序设计中的应用。使课堂中学习到理论得到应用,练习文件形式在JAVA程序设计中的应用。

二、实验内容

A.设计题目:员工管理系统

设计要求:(1)完成员工信息的添加、删除、查询、修改功能

(2)使用用户界面操作

(3)使用文件形式完成

设计思路:首先设计界面进入面板,在面板中添加菜单选项,并将要实现的功能选项添加其中,然后对这些选项实施监听,实现其功能。通过文件类型知识的应用,实现对员工信息的管理。B.概要设计

面板设计:首先设计一个容器,然后再容器中添加菜单,在菜单中添加选项,并在容器中加入面板,面板布局设置为CardLayout,最后将面板添加进容器。

功能实现:在录入、查询、修改和删除界面中使用JButton、JLabel、ButtonGroup、JRadioButton、JTextField、Choice为界面中加入相应的组件,并对其进行监听,同时附加了文件流的处理。C.详细设计

1、定义员工类:

public class Employee implements java.io.Serializable { String number,name,discipling,grade,borth,sex;public Employee(){ } public void setNumber(String number){ this.number=number;} public String getNumber(){ return number;

} public void setName(String name){ this.name=name;} public String getName(){ return name;} public void setDiscipling(String discipling){ this.discipling=discipling;} public String getDisciping(){ return discipling;} public void setGrade(String grade){ this.grade=grade;} public String getGrade(){ return grade;} public void setBorth(String borth){ this.borth=borth;} public String getBorth(){ return borth;} public void setSex(String sex){ this.sex=sex;} public String getSex(){ return sex;}}

2、主程序:

import java.awt.*;

import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.Hashtable;public class EmployeeManager extends JFrame implements ActionListener { EmployeeSituation 基本信息录入=null;ModifySituation 基本信息修改=null;Inquest 基本信息查询=null;Delete 基本信息删除=null;JMenuBar bar;JMenu fileMenu;JMenuItem 录入,修改,查询,删除;Container con=null;Hashtable 基本信息=null;File file=null;CardLayout card=null;JLabel label=null;JPanel pCenter;public EmployeeManager(){ 录入=new JMenuItem(“录入员工基本信息”);修改=new JMenuItem(“修改员工基本信息”);查询=new JMenuItem(“查询员工基本信息”);删除=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(“SansSerif”,Font.BOLD+Font.ITALIC,25));label.setForeground(Color.red);基本信息=new Hashtable();录入.addActionListener(this);修改.addActionListener(this);查询.addActionListener(this);删除.addActionListener(this);card=new CardLayout();con=getContentPane();pCenter=new JPanel();

pCenter.setLayout(card);pCenter.setBackground(Color.yellow);file=new File(“基本信息.txt”);if(!file.exists()){

try

{

FileOutputStream out=new FileOutputStream(file);ObjectOutputStream objectOut=new ObjectOutputStream(out);

objectOut.writeObject(基本信息);

objectOut.close();

out.close();

}

catch(IOException e)

{

} } 基本信息录入=new EmployeeSituation(file);基本信息修改=new ModifySituation(file);基本信息查询=new Inquest(this,file);基本信息删除=new Delete(file);pCenter.add(“欢迎语界面”,label);pCenter.add(“录入界面”,基本信息录入);pCenter.add(“修改界面”,基本信息修改);pCenter.add(“删除界面”,基本信息删除);con.add(pCenter,BorderLayout.CENTER);con.validate();addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){ System.exit(0);}});setVisible(true);setBounds(100,50,420,380);validate();} public void actionPerformed(ActionEvent e){ if(e.getSource()==录入){ card.show(pCenter,“录入界面”);} else if(e.getSource()==修改)

{ card.show(pCenter,“修改界面”);} else if(e.getSource()==查询){ 基本信息查询.setVisible(true);} else if(e.getSource()==删除){ card.show(pCenter,“删除界面”);} } public static void main(String args[]){ new EmployeeManager();}}

3、实现员工信息的录入: import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class EmployeeSituation extends JPanel implements ActionListener { Hashtable 基本信息表=null;JTextField 员工号,姓名,工资;Choice 部门;JRadioButton 男,女;Employee 员工=null;ButtonGroup group=null;JButton 录入,重置;FileInputStream inOne=null;ObjectInputStream inTwo=null;FileOutputStream outOne=null;ObjectOutputStream outTwo=null;File file=null;public EmployeeSituation(File file){

this.file=file;

员工号=new JTextField(10);

姓名=new JTextField(10);

部门=new Choice();部门.add(“请选择”);部门.add(“研发部”);部门.add(“销售部”);部门.add(“人事部”);部门.add(“安全部”);工资=new JTextField(10);group=new ButtonGroup();男=new JRadioButton(“男”,true);女=new JRadioButton(“女”,false);group.add(男);group.add(女);录入=new JButton(“录入”);重置=new JButton(“重置”);录入.addActionListener(this);重置.addActionListener(this);Box box1=Box.createHorizontalBox();box1.add(new JLabel(“员工号:”,JLabel.CENTER));box1.add(员工号);Box box2=Box.createHorizontalBox();box2.add(new JLabel(“姓名:”,JLabel.CENTER));box2.add(姓名);Box box3=Box.createHorizontalBox();box3.add(new JLabel(“性别:”,JLabel.CENTER));box3.add(男);box3.add(女);Box box4=Box.createHorizontalBox();box4.add(new JLabel(“部门:”,JLabel.CENTER));box4.add(部门);Box box6=Box.createHorizontalBox();box6.add(new JLabel(“ ”,JLabel.CENTER));Box box5=Box.createHorizontalBox();box5.add(new JLabel(“工资:”,JLabel.CENTER));box5.add(工资);Box boxH=Box.createVerticalBox();boxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box5);boxH.add(box6);boxH.add(box4);boxH.add(Box.createVerticalGlue());JPanel pCenter=new JPanel();pCenter.add(boxH);

pCenter.setBackground(Color.yellow);

setLayout(new BorderLayout());

add(pCenter,BorderLayout.CENTER);

JPanel pSouth=new JPanel();

pSouth.add(录入);

pSouth.add(重置);

pSouth.setBackground(Color.yellow);

add(pSouth,BorderLayout.SOUTH);

validate();

} public void actionPerformed(ActionEvent e){ if(e.getSource()==录入){ String number=“";number=员工号.getText();if(number.length()>0){ try { inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject();inOne.close();inTwo.close();} catch(Exception ee){ } if(基本信息表.containsKey(number)){ String warning=”该员工基本信息已存在,请到修改页面修改!“;JOptionPane.showMessageDialog(this,warning,”警告“,JOptionPane.WARNING_MESSAGE);} else { String m=”基本信息将被录入!“;int ok=JOptionPane.showConfirmDialog(this,m,”确认“,JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE);if(ok==JOptionPane.YES_OPTION){ String name=姓名.getText();

String discipling=部门.getSelectedItem();String grade=工资.getText();String sex=null;if(男.isSelected()){ sex=男.getText();} else { sex=女.getText();} 员工=new Employee();员工.setNumber(number);员工.setName(name);员工.setDiscipling(discipling);员工.setGrade(grade);员工.setSex(sex);try { outOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);

基本信息表.put(number,员工);outTwo.writeObject(基本信息表);outTwo.close();outOne.close();

员工号.setText(null);

姓名.setText(null);

工资.setText(null);} catch(Exception ee){ System.out.println(ee);}}}} else { String warning=”必须要输入员工号!“;JOptionPane.showMessageDialog(this,warning,”警告“,JOptionPane.WARNING_MESSAGE);}}

if(e.getSource()==重置)

{

员工号.setText(null);

姓名.setText(null);

部门.remove(部门.getSelectedIndex());

工资.setText(null);}}}

4、实现员工信息的修改: import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class ModifySituation extends JPanel implements ActionListener { Hashtable 基本信息表=null;JTextField 员工号,姓名,工资;Choice 部门;JRadioButton 男,女;ButtonGroup group=null;JButton 开始修改,录入修改,重置;FileInputStream inOne=null;ObjectInputStream inTwo=null;FileOutputStream outOne=null;ObjectOutputStream outTwo=null;File file=null;public ModifySituation(File file)

{ this.file=file;员工号=new JTextField(10);姓名=new JTextField(10);部门=new Choice();部门.add(”请选择“);部门.add(”研发部“);部门.add(”销售部“);部门.add(”人事部“);部门.add(”安全部“);工资=new JTextField(10);group=new ButtonGroup();男=new JRadioButton(”男“,true);女=new JRadioButton(”女“,false);group.add(男);group.add(女);开始修改=new JButton(”开始修改“);录入修改=new JButton(”录入修改“);录入修改.setEnabled(false);重置=new JButton(”重置“);员工号.addActionListener(this);开始修改.addActionListener(this);录入修改.addActionListener(this);重置.addActionListener(this);Box box1=Box.createHorizontalBox();box1.add(new JLabel(”输入要修改信息的员工号:“,JLabel.CENTER));box1.add(员工号);box1.add(开始修改);Box box2=Box.createHorizontalBox();box2.add(new JLabel(”姓名:“,JLabel.CENTER));box2.add(姓名);Box box3=Box.createHorizontalBox();box3.add(new JLabel(”性别:“,JLabel.CENTER));box3.add(男);box3.add(女);Box box4=Box.createHorizontalBox();box4.add(new JLabel(”部门:“,JLabel.CENTER));box4.add(部门);Box box6=Box.createHorizontalBox();box6.add(new JLabel(” “,JLabel.CENTER));Box box5=Box.createHorizontalBox();box5.add(new JLabel(”工资:“,JLabel.CENTER));box5.add(工资);Box boxH=Box.createVerticalBox();

boxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box5);boxH.add(box6);boxH.add(box4);boxH.add(Box.createVerticalGlue());JPanel pCenter=new JPanel();pCenter.add(boxH);pCenter.setBackground(Color.yellow);setLayout(new BorderLayout());add(pCenter,BorderLayout.CENTER);JPanel pSouth=new JPanel();pSouth.add(录入修改);pSouth.add(重置);pSouth.setBackground(Color.yellow);add(pSouth,BorderLayout.SOUTH);validate();

} public void actionPerformed(ActionEvent e){

if(e.getSource()==开始修改||e.getSource()==员工号)

{

String number=”“;

number=员工号.getText();

if(number.length()>0){ try { inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject();inOne.close();inTwo.close();} catch(Exception ee){ } if(基本信息表.containsKey(number)){ 录入修改.setEnabled(true);Employee stu=(Employee)基本信息表.get(number);姓名.setText(stu.getName());部门.getSelectedItem();工资.setText(stu.getGrade());

if(stu.getSex().equals(”男“)){ 男.setSelected(true);} else { 女.setSelected(true);} }

else

{

录入修改.setEnabled(false);String warning=”该员工号不存在!“;JOptionPane.showMessageDialog(this,warning,”警告

“,JOptionPane.WARNING_MESSAGE);员工号.setText(null);姓名.setText(null);部门.remove(部门.getSelectedItem());工资.setText(null);

} }

else { 录入修改.setEnabled(false);String warning=”必须要输入员工号!“;JOptionPane.showMessageDialog(this,warning,”警告“,JOptionPane.WARNING_MESSAGE);员工号.setText(null);姓名.setText(null);部门.remove(部门.getSelectedItem());工资.setText(null);}

}

else if(e.getSource()==录入修改)

{

String number=”“;

number=员工号.getText();

if(number.length()>0)

{

try { inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject();inOne.close();

inTwo.close();} catch(Exception ee){ } if(基本信息表.containsKey(number)){ String question=”该员工基本信息已存在,您想修改他(她)的基本信息吗?“;JOptionPane.showMessageDialog(this,question,”警告“,JOptionPane.QUESTION_MESSAGE);String m=”基本信息将被修改!“;int ok=JOptionPane.showConfirmDialog(this,m,”确认“,JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE);if(ok==JOptionPane.YES_OPTION){ String name=姓名.getText();String discipling=部门.getSelectedItem();String grade=工资.getText();String sex=null;if(男.isSelected()){ sex=男.getText();} else { sex=女.getText();} Employee 员工=new Employee();

员工.setNumber(number);

员工.setName(name);

员工.setDiscipling(discipling);

员工.setGrade(grade);

员工.setSex(sex);try { outOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);基本信息表.put(number,员工);outTwo.writeObject(基本信息表);outTwo.close();outOne.close();

员工号.setText(null);姓名.setText(null);部门.remove(部门.getSelectedItem());工资.setText(null);} catch(Exception ee){ System.out.println(ee);} 录入修改.setEnabled(false);} else if(ok==JOptionPane.NO_OPTION){ 录入修改.setEnabled(true);} }

else

{ String warning=”该员工号没有基本信息,不能修改!“;JOptionPane.showMessageDialog(this,warning,”警告“,JOptionPane.WARNING_MESSAGE);录入修改.setEnabled(false);

}

}

else

{

String warning=”必须要输入员工号!“;JOptionPane.showMessageDialog(this,warning,”警告

“,JOptionPane.WARNING_MESSAGE);

录入修改.setEnabled(false);

}

}

if(e.getSource()==重置)

{

员工号.setText(null);

姓名.setText(null);

部门.remove(部门.getSelectedItem());

工资.setText(null);}}}

5、实现员工信息的查询: import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class Inquest extends JDialog implements ActionListener { Hashtable 基本信息表=null;JTextField 员工号,姓名,部门,工资;JRadioButton 男,女;JButton 查询;ButtonGroup group=null;FileInputStream inOne=null;ObjectInputStream inTwo=null;File file=null;public Inquest(JFrame f,File file){

super(f,”查询对话框“,false);

this.file=file;

员工号=new JTextField(10);

查询=new JButton(”查询“);

员工号.addActionListener(this);

查询.addActionListener(this);姓名=new JTextField(10);姓名.setEditable(false);部门=new JTextField(10);部门.setEditable(false);工资=new JTextField(10);工资.setEditable(false);男=new JRadioButton(”男“,false);女=new JRadioButton(”女“,false);group=new ButtonGroup();group.add(男);group.add(女);Box box1=Box.createHorizontalBox();box1.add(new JLabel(”输入要查询的员工号:“,JLabel.CENTER));box1.add(员工号);box1.add(查询);Box box2=Box.createHorizontalBox();box2.add(new JLabel(”姓名:“,JLabel.CENTER));box2.add(姓名);Box box3=Box.createHorizontalBox();box3.add(new JLabel(”性别:“,JLabel.CENTER));box3.add(男);box3.add(女);Box box4=Box.createHorizontalBox();box4.add(new JLabel(”部门:“,JLabel.CENTER));box4.add(部门);Box box5=Box.createHorizontalBox();box5.add(new JLabel(”工资:“,JLabel.CENTER));box5.add(工资);Box boxH=Box.createVerticalBox();boxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box5);boxH.add(box4);boxH.add(Box.createVerticalGlue());JPanel pCenter=new JPanel();pCenter.add(boxH);pCenter.setBackground(Color.green);Container con=getContentPane();con.add(pCenter,BorderLayout.CENTER);con.validate();setVisible(false);setBounds(100,200,360,270);

addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ setVisible(false);} });} public void actionPerformed(ActionEvent e){ 姓名.setText(null);部门.setText(null);工资.setText(null);if(e.getSource()==查询||e.getSource()==员工号){ String number=”“;number=员工号.getText();if(number.length()>0){ try { inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject();inOne.close();inTwo.close();} catch(Exception ee){ } if(基本信息表.containsKey(number)){ Employee stu=(Employee)基本信息表.get(number);姓名.setText(stu.getName());部门.setText(stu.getDisciping());工资.setText(stu.getGrade());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,warning,”警告“,JOptionPane.WARNING_MESSAGE);}}}}

6、实现员工信息的删除: import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class Delete extends JPanel implements ActionListener {

Hashtable 基本信息表=null;

JTextField 员工号,姓名,部门,工资;

JRadioButton 男,女;

JButton 删除;

ButtonGroup group=null;

FileInputStream inOne=null;

ObjectInputStream inTwo=null;

FileOutputStream outOne=null;

ObjectOutputStream outTwo=null;

File file=null;

public Delete(File file)

{

this.file=file;

员工号=new JTextField(10);

删除=new JButton(”删除“);

员工号.addActionListener(this);

删除.addActionListener(this);

姓名=new JTextField(10);

姓名.setEditable(false);

部门=new JTextField(10);

部门.setEditable(false);

工资=new JTextField(10);

工资.setEditable(false);

男=new JRadioButton(”男“,false);

女=new JRadioButton(”女“,false);

group=new ButtonGroup();

group.add(男);

group.add(女);

Box box1=Box.createHorizontalBox();

box1.add(new JLabel(”输入要删除的学号:“,JLabel.CENTER));

box1.add(员工号);

box1.add(删除);

Box box2=Box.createHorizontalBox();

box2.add(new JLabel(”姓名:“,JLabel.CENTER));

box2.add(姓名);

Box box3=Box.createHorizontalBox();

box3.add(new JLabel(”性别:“,JLabel.CENTER));

box3.add(男);

box3.add(女);

Box box4=Box.createHorizontalBox();

box4.add(new JLabel(”部门:“,JLabel.CENTER));

box4.add(部门);

Box box6=Box.createHorizontalBox();

box6.add(new JLabel(” “,JLabel.CENTER));

Box box5=Box.createHorizontalBox();

box5.add(new JLabel(”工资:“,JLabel.CENTER));

box5.add(工资);

Box boxH=Box.createVerticalBox();

boxH.add(box1);

boxH.add(box2);

boxH.add(box3);

boxH.add(box5);

boxH.add(box6);

boxH.add(box4);

boxH.add(Box.createVerticalGlue());

JPanel pCenter=new JPanel();

pCenter.add(boxH);

pCenter.setBackground(Color.yellow);

setLayout(new BorderLayout());

add(pCenter,BorderLayout.CENTER);

validate();

}

public void actionPerformed(ActionEvent e)

{

if(e.getSource()==删除||e.getSource()==员工号)

{

String number=”“;

number=员工号.getText();if(number.length()>0){ try { inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject();inOne.close();inTwo.close();} catch(Exception ee){

} if(基本信息表.containsKey(number)){

Employee stu=(Employee)基本信息表.get(number);

姓名.setText(stu.getName());

部门.setText(stu.getDisciping());

工资.setText(stu.getGrade());if(stu.getSex().equals(”男“)){ 男.setSelected(true);} else { 女.setSelected(true);} String m=”确定要删除该员工号及全部信息吗?“;int ok=JOptionPane.showConfirmDialog(this,m,”确认

“,JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);if(ok==JOptionPane.YES_OPTION){ 基本信息表.remove(number);try { outOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);outTwo.writeObject(基本信息表);outTwo.close();outOne.close();员工号.setText(null);姓名.setText(null);部门.setText(null);工资.setText(null);} catch(Exception ee){ System.out.println(ee);} } else if(ok==JOptionPane.NO_OPTION){ 员工号.setText(null);姓名.setText(null);部门.setText(null);

工资.setText(null);} } else {

String warning=”该员工号不存在!“;JOptionPane.showMessageDialog(this,warning,”警告

“,JOptionPane.WARNING_MESSAGE);} } else {

String warning=”必须要输入员工号!“;JOptionPane.showMessageDialog(this,warning,”警告",JOptionPane.WARNING_MESSAGE);}}}}

三、实验结果体会

本次JAVA课程设计我所编写的程序是员工信息管理系统,程序中实现了对员工信息的添加、查询、修改、删除的功能,我是应用文件的形式完成的,其中还应用到了图形用户界面。我设计的程序简单易懂,操作简单,且 适用于不同的单位使用,只需按照自己的需要将所要录入的信息名称做添加或修改就可以实现。通过这次JAVA的程序设计,使我对JAVA有了更加深入的了解,巩固了我对JAVA基础知识的掌握。

第三篇:人员信息管理系统 java课程设计

大学人员信息管理系统 / 29

目录

目录.......................................................................................................................................1 设计任务书...............................................................................................................................2 课程设计任务...........................................................................................................................2 程序功能实现:.......................................................................................................................3 1.程序主体............................................................................................................................3 2.流程图:............................................................................................................................4 3.模块说明............................................................................................................................4 3.1、主菜单四个选项......................................................................................................4 3.2、教师功能菜单..........................................................................................................5 3.3、学生功能菜单..........................................................................................................5 3.4、查找菜单..................................................................................................................6 4.源代码及说明.................................................................................................................6 4.1、listStuTea 类............................................................................................................6 4.2、Menu 类................................................................................................................10 4.3、StudnTeach 类.......................................................................................................16 4.4、Student 类.............................................................................................................19 4.5、Teacher 类.............................................................................................................19 4.6、Person 类...............................................................................................................20 4.7、lkExecption类........................................................................................................21 4.8、MainStuTea类........................................................................................................23 5.操作方法和测试结果......................................................................................................24 5.1.1、教师信息显示.....................................................................................................24 5.1.2、教师信息添加.....................................................................................................24 5.1.3、教师信息删除.....................................................................................................25 5.1.4、教师信息查找.....................................................................................................26 5.2、学生菜单实现........................................................................................................28 6.设计体会..........................................................................................................................28

Java程序设计 大学人员信息管理系统 / 29

设计任务书

问题描述:

编写程序对大学里的人员进行管理。大学里的人员主要由学生、教师和在职进修教师(既是学生又是教师)组成,各类人员均有姓名、电话和住址等信息,学生另有所属专业信息,教师另有所在系部、授课信息及工资信息,在职进修教师具备以上各类人员的信息。

要求:

1、设计Person类,保存各类人员均有的姓名、电话和住址等信息。

2、设计Student类或接口,继承Person类,并添加所属专业班级信息。

3、设计Teacher类接口,继承Person类,并添加所在系部信息,授课信息及工资信息。

4、设计StudenTeacher类,继承Student类接口和Teache类接口。其具备以上各类人员信息。

5、把创建的所有StudenTeacher对象按照其所属系部依次组织在一个文件中方便查询、修改、删除及添加等操作。

6、对各类的对象进行信息输入操作,输入信息包括该类对象的所有信息。

7、对各类的对象进行输出操作,显示输出该类对象的所有信息

课程设计任务及设计人

设计任务:

大学人员信息管理系统 课程目的:

1、复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;

2、课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力;

Java程序设计 大学人员信息管理系统 / 29

3、培养学生在项目开发中团队合作精神、创新意识及能力。

课程要求:

1、对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;

2、系统设计要实用,编程简练,可用,功能全面

3、说明书、流程图要清楚

4、记录设计情况(备查,也为编写设计说明书作好准备);

5、要求采用模块化程序设计方法,及锯齿型书写格式,要求上机调试通过和按设计报告格式。

6、本设计需要实现Java的面向对象开发运用到的有Java的接口,Java的继承,Java的异常处理,Java类的封装。能够在异常输入的情况下,能正确处理。最后得到正确结果。

程序功能实现:一、二、三、四、五、六、按照课程的要求实现学生和教师的基本信息的录入。把输入的教师和学生信息显示出来。

有姓名和专业两种查找方式去分别把老师和学生的信息查找并且显示出来。删除选项可以删除相应学生和老师信息。

用switch语句实现菜单功能,字符界面做到简洁清晰

异常处理处理错误的输入并且返回错误的提示,更正后填入正确数据。

1.程序主体

1、设计分析:

1.1、实体是实现程序思想的主要方式,首先应该分为学生和老师2个入口,分别做查询和信息添加、显示、删除和查找的功能。

1.2、学生和老师的信息输入考虑要求多名信息考虑用对象数组去实现。但是对象数组的删除不是本学期的内容。且排序麻烦。考虑用其他方式实现信息录入,查阅相关信息发现可以使用list对象实现信息录入和删除。

1.3、菜单使用switch语句实现菜单功能,菜单的相互调用实现功能的循环。

Java程序设计 大学人员信息管理系统 / 29

2.流程图:

3.模块说明

3.1、主菜单四个选项

学生入口:

Java程序设计 大学人员信息管理系统 / 29

这个模块与学生功能模块相连。

教师入口:

这个模块与教师功能模块相连

显示全部信息:

这个模块显示所有的老师和学生信息

3.2、教师功能菜单

显示教师信息:

这个模块显示输入的教师信息,如果不存在提示输入信息

添加教师信息:

这个模块添加教师基本信息

删除教师信息:

这个模块按照序号删除教师信息,如果不存在提示信息输入

查找教师信息:

按照姓名和专业查找教师信息

返回上一级菜单: 返回主菜单

3.3、学生功能菜单

显示学生信息:

这个模块显示输入的教师信息,如果不存在提示输入信息

添加学生信息:

这个模块添加教师基本信息

删除学生信息:

这个模块按照序号删除教师信息,如果不存在提示信息输入

查找学生信息:

按照姓名和专业查找学生信息

返回上一级菜单: 返回主菜单

Java程序设计 大学人员信息管理系统 / 29

3.4、查找菜单

按照姓名查找:

查找模块,按照姓名查找,如果不存在则提示输入信息。按照专业查找:

查找模块,按照专业查找,如果不存在则提示输入信息。

返回上一级菜单: 返回主菜单

4.源代码及说明

4.1、listStuTea 类

用来实现学生和教师数据添加、删除、查找的方法

import java.util.*;import lkExecption.LKExecption;public class listStuTea extends StudnTeach{

final int SIZE = 50;//最大学生和教师人数

listStuTea[] st = new listStuTea[SIZE];//学生和老师对象数组 Scanner into = new Scanner(System.in);List list1=new ArrayList();List list2=new ArrayList();public int getTeaNumber()//返回教师链表长度 { } public int getStuNumber()//返回学生链表长度 { } public int getNumber(){ // TODO Auto-generated method stub return list2.size()+list1.size();return list2.size();return list1.size();Java程序设计 大学人员信息管理系统 / 29

} public void FindStuName(){

} public void FindTeaName(){

String tpname;boolean zy = true;StudnTeach point;System.out.println(“请输入教师姓名:”);tpname = into.nextLine();for(int i = 0;i

} point =list1.get(i);if(tpname.equals(point.name)){

} //break;System.out.println(“要查找的姓名存在”);{ showTea(i,point);zy = false;//标志位 } String tpname;boolean zy = true;StudnTeach point;System.out.println(“请输入学生姓名:”);tpname = into.nextLine();for(int i = 0;i

} if(zy)System.out.println(“没有该学生”);if(getStuNumber()==0)System.out.println(“警告!!学生数据为空请添加数据”);point =list2.get(i);if(tpname.equals(point.name)){

} System.out.println(“要查找的姓名存在”);showStu(i,point);zy = false;Java程序设计 大学人员信息管理系统 / 29

if(zy)System.out.println(“没有该老师”);if(getTeaNumber()==0)System.out.println(“警告!!老师数据为空请添加数据”);

} {

public void FindteaSpec()String tpSpec;boolean zy = true;StudnTeach point;System.out.println(“请输入教师专业:”);tpSpec = into.nextLine();for(int i = 0;i

} if(zy)System.out.println(“没有该专业的老师”);if(getTeaNumber()==0)System.out.println(“警告!!老师数据为空请添加数据”);point =list1.get(i);if(tpSpec.equals(point.getteaSpeciality())){ showTea(i,point);zy = false;//标志位 }

} {

public void FindstuSpec()String tpStu;boolean zy = true;StudnTeach point;System.out.println(“请输入学生专业:”);tpStu = into.nextLine();for(int i = 0;i

} if(zy)System.out.println(“没有选修该专业的学生”);point =list2.get(i);if(tpStu.equals(point.getstuSpeciality())){ showStu(i,point);zy = false;//标志位 } Java程序设计 大学人员信息管理系统 / 29

if(getStuNumber()==0)System.out.println(“警告!!学生数据为空请添加数据”);} public void showStu(int n,StudnTeach point){ point=list2.get(n);System.out.println(“学生编号:”+n);

System.out.println(“姓名:”+point.name+“ 性别:”+point.sex+“ 年龄:”+point.age);

System.out.println(“电话:”+point.phone);System.out.println(“地址:”+point.address);System.out.println(“专业:”+point.getstuSpeciality());System.out.println(“班级:”+point.getClassname());}

public void showTea(int n,StudnTeach point){ point=list1.get(n);System.out.println(“教师编号:”+n);

System.out.println(“姓名:”+point.name+“ 性别:”+point.sex+“ 年龄:”+point.age);

System.out.println(“电话:”+point.phone);System.out.println(“地址:”+point.address);System.out.println(“专业:”+point.getteaSpeciality());System.out.println(“工资:”+point.getPay());}

public void addstu(int n)throws LKExecption {

st[n] = new listStuTea();st[n].add();st[n].setClassname();st[n].setstuSpeciality();list2.add(st[n]);if(list2.size()!=0)System.out.println(“添加学生成功”);

}

public void addtea(int n)throws LKExecption {

st[n] = new listStuTea();st[n].add();st[n].setteaSpeciality();Java程序设计 大学人员信息管理系统

/ 29

}

st[n].setPay();list1.add(st[n]);if(list1.size()!=0)System.out.println(“添加教师成功”);

}

public void delTea(){

}

public void delStu(){

} System.out.println(“请输入被删的学生编号”);int k =into.nextInt();if(list2.size()<=k||k<0)System.out.println(“删除失败!编号不存在请重新输入!”);else { list2.remove(k);System.out.println(“删除成功”);} System.out.println(“请输入被删的教师编号”);int k =into.nextInt();if(list1.size()<=k||k<0)System.out.println(“删除失败!编号不存在请重新输入!”);else { list1.remove(k);System.out.println(“删除成功”);} 4.2、Menu 类

字符菜单的实现

import java.util.*;import lkExecption.LKExecption;public class Menu {

Scanner into = new Scanner(System.in);int num = 0;List list=new ArrayList();Java程序设计 大学人员信息管理系统

/ 29

StudnTeach point = new listStuTea();//遍历指针 public Menu()throws LKExecption{ } public int setIn(){

} void MainMenu()throws LKExecption//主菜单 { System.out.println(“================”);System.out.println(“1.教师入口”);System.out.println(“2.学生入口”);System.out.println(“3.显示全部信息”);System.out.println(“4.退出管理”);switchMainMenu();} void FindMenu()//查找菜单 {

} void MenuTea1_1()throws LKExecption//老师菜单 {

System.out.println(“----------------”);System.out.println(“1.显示教师信息”);System.out.println(“2.添加教师信息”);System.out.println(“3.删除教师信息”);System.out.println(“4.查找教师信息”);System.out.println(“5.返回上一级菜单”);System.out.println(“----------------”);System.out.println(“1.按照姓名查找”);System.out.println(“2.按照专业查找”);System.out.println(“3.返回上一级菜单”);//switchMainMenu();int t;String tpNum = null;try{

} catch(NumberFormatException e){ } return t;t = new LKExecption().Num1Execption(tpNum);System.out.println(“请输入选项”);tpNum = into.nextLine();t = Integer.parseInt(tpNum);MainMenu();Java程序设计 大学人员信息管理系统

/ 29

} switchMenuTea1_1();void MenuStu1_1()throws LKExecption//学生菜单 {

} void switchFindStuMenu()throws LKExecption//查找学生菜单 {

} void switchFindTeaMenu()throws LKExecption//查找教师菜单 {

int t;t = setIn();switch(t){ case 1: int t;t = setIn();switch(t){ case 1:

} point.FindStuName();FindMenu();switchFindStuMenu();break;point.FindstuSpec();FindMenu();switchFindStuMenu();break;MenuStu1_1();switchMenuStu1_1();break;System.out.println(“输入错误请重新输入”);switchFindStuMenu();System.out.println(“----------------”);System.out.println(“1.显示学生信息”);System.out.println(“2.添加学生信息”);System.out.println(“3.删除学生信息”);System.out.println(“4.查找学生信息”);System.out.println(“5.返回上一级菜单”);switchMenuStu1_1();case 2: case 3: default: Java程序设计 大学人员信息管理系统

/ 29

} void switchMainMenu()throws LKExecption//主菜单 {

int t;t = setIn();switch(t){ case 1:

MenuTea1_1();//老师显示菜单

break;MenuStu1_1();//学生显示菜单

break;if(point.getNumber()==0)System.out.println(“警告!!数据为空请添加数据”);else{

} for(int i = 0;i

point.showTea(i,point);point.showStu(i,point);for(int i = 0;i

} point.FindteaSpec();FindMenu();switchFindTeaMenu();break;MenuTea1_1();switchMenuTea1_1();break;System.out.println(“输入错误请重新输入”);switchFindTeaMenu();

point.FindTeaName();FindMenu();switchFindTeaMenu();break;case 2: case 3: default: case 2: case 3: Java程序设计 大学人员信息管理系统

/ 29

}

} MainMenu();break;System.out.println(“欢迎再次光临!大学人员信息管理系统!”);break;System.out.println(“输入错误请重新输入”);switchMainMenu();case 4: default: void switchMenuTea1_1()throws LKExecption {

System.out.println(“----------------”);int t;t = setIn();switch(t){ case 1:

if(point.getTeaNumber()==0)System.out.println(“警告!!教师数据为空请添加数据”);for(int i = 0;i

FindMenu();switchFindTeaMenu();break;MainMenu();break;case 2: case 3: case 4: case 5: Java程序设计 大学人员信息管理系统

/ 29

}

} default:

} System.out.println(“输入错误请重新输入”);switchMenuTea1_1();void switchMenuStu1_1()throws LKExecption {

} System.out.println(“----------------”);int t;t = setIn();switch(t){ case 1:

} if(point.getStuNumber()==0)System.out.println(“警告!!学生数据为空请添加数据”);for(int i = 0;i

Java程序设计 大学人员信息管理系统

/ 29

4.3、StudnTeach 类

继承于教师和学生接口实现它们抽象方法,且继承人类属性。

import java.util.*;

import lkExecption.LKExecption;class StudnTeach extends Person implements Student,Teacher{

Scanner into = new Scanner(System.in);float pay = 0;//工资

String classname = null;//班级 String stuSpec = null;//老师专业 String teaSpec = null;//学生专业

void add()throws LKExecption {

}

public void addstu(int n)throws LKExecption{

}

public void addtea(int n)throws LKExecption{

}

public void setPay(){

String tpNum = null;try{ //add();

//setteaSpeciality();//setPay();//add();

//setClassname();//setstuSpeciality();setName();setSex();setAge();setPhone();System.out.println(“请输入地址”);address = into.nextLine();

Java程序设计 大学人员信息管理系统

/ 29

}

} System.out.println(“请输入工资:”);tpNum = into.nextLine();pay = Integer.parseInt(tpNum);catch(NumberFormatException e){ } pay = new LKExecption().Num1Execption(tpNum);public float getPay(){

}

public void setClassname(){

}

public String getClassname(){

}

public void setstuSpeciality(){

}

public String getstuSpeciality(){

}

return stuSpec;

System.out.println(“请输入专业:”);stuSpec = into.nextLine();

return classname;

System.out.println(“请输入班级:”);classname = into.nextLine();

return pay;Java程序设计 大学人员信息管理系统

public void setteaSpeciality(){

System.out.println(“请输入专业:”);

teaSpec = into.nextLine();

}

public String getteaSpeciality(){

return teaSpec;}

public void show(boolean b, int num, StudnTeach point){

}

public void showStu(int num, StudnTeach point){

}

public void showTea(int num, StudnTeach point){

}

public int getStuNumber(){

return 0;}

public int getTeaNumber(){

return 0;}

public int getNumber(){

return 0;}

public void delStu(){

} Java程序设计

/ 29 大学人员信息管理系统

/ 29

} public void FindteaSpec(){ } public void FindTeaName(){ } public void FindstuSpec(){ } public void FindStuName(){ } public void delTea(){ }

4.4、Student 类

接口、学生的抽象方法

public interface Student {

} abstract void setstuSpeciality();abstract String getstuSpeciality();abstract void setClassname();abstract String getClassname();

4.5、Teacher 类

接口、教师的抽象方法

public interface Teacher { Java程序设计 大学人员信息管理系统

/ 29

} abstract void setteaSpeciality();abstract String getteaSpeciality();abstract void setPay();abstract float getPay();

4.6、Person 类

定义人类的基本属性

import java.util.*;import lkExecption.LKExecption;public class Person {

Scanner into = new Scanner(System.in);String name;int phone;String address;String sex;int age;public void setName(){

} public void setSex()throws LKExecption {

} public void setAge(){ String tpAge = null;try{ System.out.println(“请输入性别:”);sex = into.nextLine();if(sex.equals(“man”)||sex.equals(“woman”)){} else

} catch(LKExecption lk){ } sex = new LKExecption().sexExecption(sex);throw new LKExecption();System.out.println(“请输入姓名:”);name = into.nextLine();Java程序设计 大学人员信息管理系统

/ 29

}

} try{

} catch(NumberFormatException e){ } age = new LKExecption().NumExecption(tpAge);System.out.println(“请输入年龄:”);tpAge = into.nextLine();age = Integer.parseInt(tpAge);public void setPhone(){

} String tpNum = null;try{

} catch(NumberFormatException e){ } phone = new LKExecption().Num1Execption(tpNum);System.out.println(“请输入电话号码:”);tpNum = into.nextLine();phone = Integer.parseInt(tpNum);

4.7、lkExecption类

自定义异常类

package lkExecption;import java.util.Scanner;public class LKExecption extends Exception {

Scanner into = new Scanner(System.in);public String sexExecption(String mg){

String str;boolean pd = true;do{

System.out.println(mg+“ 不是正确的性别,正确的性别为 man 或者 woman”);str = into.next();Java程序设计 大学人员信息管理系统

/ 29

} //System.out.println(mg+“ 验证”);

if(str.equals(“man”)||str.equals(“woman”)){ } }while(pd);return str;pd = false;public int NumExecption(String mg){

String num = null;int tpNum = 0;boolean pd = true;System.out.println(mg+“ 请正确的数字或者不在范围内!请重新输入!”);do{

try{

} catch(NumberFormatException e){ System.out.println(num+“ 请正确的数字或者不在范围内!请重新输num = into.nextLine();tpNum = Integer.parseInt(num);if(tpNum>120||tpNum<0)//范围判断 throw new NumberFormatException();else pd = false;入!”);

}

} public String charExecption(String mg){

final String[] str={“null”};//这里指定 规定字段 boolean pd = true;do{ System.out.println(mg+“ 不是正确字段,请输入指定的字段”);mg = into.next();for(int i =0;i

/ 29

}

} } }while(pd);return mg;public int Num1Execption(String mg){

} String num;int tpNum = 0;System.out.println(mg+“ 不是数字!请输入数字!”);do{

try{

} catch(NumberFormatException e){ System.out.println(mg+“ 不是数字!请输入数字!”);} num = into.nextLine();tpNum = Integer.parseInt(num);break;}while(true);return tpNum;4.8、MainStuTea类

主函数调用

import lkExecption.LKExecption;public class MainStuTea {

} public static void main(String[] args)throws LKExecption { Menu lk = new Menu();}

Java程序设计 大学人员信息管理系统

/ 29

5.操作方法和测试结果 5.1.1、教师信息显示

选择一进入教师信息入口

选择一进入教师信息查看

因为我们没有添加教师信息,所以他要求我们添加教师信息

5.1.2、教师信息添加

选择二进入教师信息添加

Java程序设计 大学人员信息管理系统

/ 29

教师信息添加成功,如果不是指定字段输入,出现异常则重新输入 如下为添加的信息输入显示

5.1.3、教师信息删除

Java程序设计 大学人员信息管理系统

/ 29

5.1.4、教师信息查找

专业查找

现在添加三个教师信息,如下显示

首先使用专业查找,我们查找computer专业的

Java程序设计 大学人员信息管理系统

/ 29

查找其他math专业

查找不存在的专业

姓名查找

再添加一个同名的教师

查找lisi Java程序设计 大学人员信息管理系统

/ 29

5.2、学生菜单实现

学生信息采取同样测试

6.设计体会

这个课程设计可以的设计心得,可谓十分波折。全部的源代码都出自自己,其中的list排列我们还没有学习。在这里要感谢google感谢baidu。没有他们就没有今天的代码。当然网上只有相似的课题没有相同的代码,list排列经过自己一小时的摸索可以了解了部分的运用,首先写了一个test类来测试这个用法

import java.util.ArrayList;import java.util.LinkedList;import java.util.Iterator;import java.util.List;import java.util.Scanner;

public class test { public static void main(String[] args){

System.out.println(“开始:”);String a = “A”, b = “B”, c = “C”, d = “D”, e = “E”;List list = new LinkedList();list.add(a);list.add(e);list.add(d);Java程序设计 大学人员信息管理系统

/ 29

list.set(1, b);// 将索引位置为1的对象e修改为对象b list.add(2, c);// 将对象c添加到索引位置为2的位置 list.add(e);list.remove(1);Iterator it = list.iterator();while(it.hasNext()){ System.out.println(it.next());} }

System.out.println(“结束!”);} } 再想了一下把它添加进了listStuTea对象,全都的代码完成用了一天的时间,在原来想起写500多行的代码几乎是不可能的,但是在这个课程设计中实现了。这个课程设计真的使自己学到了很多的东西。在接口的使用还不是很好的和实际模型很多的结合起来,这是锻炼较少的原因,前期的分析也幼稚的表现了自己在这方面的不足,在层次结构上浪费了较多的时间。总之在这方面的锻炼还是比较少,我想不管是在以后布置下来的课程设计才去编写代码,这是不可行的,得在平时多多锻炼。

Java程序设计

第四篇:嵌入式课程设计 学生信息管理系统

嵌入式课程设计报告册

题目:学生信息管理系统

班级:移动三班

辅导老师:邱雅

一、软件需求分析

1、可行性分析

(1)经济可行性

①:目前中国有越来越多的中小型企业在蓬勃发展,而现代化员工信息管理系统已经逐渐取代了传统的人工信息管理,智能化的管理系统更具有高效性可行性,所以自能管理系统将会成为或正在成为现代化公司员工信息管理的有效方式;

②:这款学生信息管理系统的价格适合所有学校消费群体,将会有很大的应用空间,满足各种学校学生管理的要求;

③:学生系信息管理系统的价格比相对于同类公司员工管理系统产品较低,同时本软件的成本低于同类产品的平均水平,具有很大的利润空间;

④:本系统的开发环境和软件环境都是当前流行的产品,本系统的软件需求都是基本的功能和应用,在现实中很容易实现。

(2)法律可行性

本软件的开发采用C语言作为软件的开发语言,没有采用同类产的代码,完全是自主开发,并按照国际上软件开发的相关规定来实现开发的;

(3)技术可行性

本软件开发系统采用linux开发平台,具有很强的兼容性和扩展性,本软件的占用的内存较小大部分的硬件处理系统都可以兼容,开发语言采用国际通用的C高级编程语言具有很高的维护可行性,经过综合分析我认为现阶段我方所拥有的资源和技术人员,在技术上完全可以实现这款软件的开发,并且能高质量,快速的完成这项工作。

2、用户需求概述

用户需要一个可以简单的实现通讯录功能的简单通讯录系统,分别完成查询,增加,修改,删除的一些简单的功能要求在完成所要求功能的前提下增强与用户的互动,使软件的可操作性增强,此外还可以志愿加入一些新的功能来进行对软件的优化在优化的同时要注意软件基本功能的保障。

二、软件分析与设计

一.功能

1、创建班级

2、输出学生信息

3、按照学号录入学生成绩

4、按照班级录入学生成绩

5、按照学号修改学生成绩

6、按照班级修改学生成绩

7、按照班级统计学生的总成绩

8、按照学号查询学生成绩

9、按照班级输出不及格学生名单及科目

10、按照班级输出学生成绩单

0、退出系统

二.功能模块图:

学生信息管理系统按照创建班级输出学生信息按照学号录入学生成绩按照班级录入学生成绩按照学号修改学生成绩按照班级修改学生成绩按照班级统计学生的总成绩按照学号查询学生成绩班级输出不及格学生名单及科目按照班级输出学生成绩单按照班级输出学生成绩单

图1 系统功能模块图

三、主要功能的实现

程序设计一般由两部分组成 些数据结构具有同样的重要性 保存等外更多的情况是查询

1、学生信息管理

算法和数据结构,合理地选择和实现一个数据结构和处理这,在学生信息管理程序中由于预计记录数比较大能够、删除、。所以选用动态链表保存数据。

由于信息输入量比较大,需要的存储空间大,所以需要采用树的双亲表示法进行信息存储,为了方便采用以下定义。struct student { int num;char name[20];char sex[5];char class[30];int semester;char course[30];int score[3];struct student *next;};

struct list { int class;struct student *head;};2.main()主函数

程序采用模块化设计,主函数是程序的入口各模块独立。可分块调

试均由主函数控制调用控制功能的实现通过循环执行一个开关语句,该语句的条件值是通过 调用主菜单函数得到的返回值,根据该值 调用相应的各功能函数。同时设置一个断点。即当返回值为一定条件时运行break 0;函数结束程序,以免造成死循环。根据菜单的提示进

行需要的操作。

图2 主函数输出界面

开始输入数据否选择是功能选择退出系统结束

图3 程序总体流程图(1)主菜单

直接利用输出函数 printf 输出字符串在屏幕上显示一个菜单并显示一个提示输入 选项输

入数字,将此数字作为菜单函数的返回值返回主函数,主函数根据 这个数字调用相应的功

10-2 所示:

能函数,制作简便,操作简单界面如图

图 4

主菜单界面

由于程序中很多地方用到了字符串输入语句会造成下一个字符不能正确读入为了 在程序调

按照所见即所得的方式直接 用执行了各个函数后能够清晰地看到菜单 并输入新的选项。设计输出函数输出字符串达到菜单效果将精力主要放在程序功能的实现上利用 while循环 语句一直执行 scanf(“%d”,t)语句。让用户输入 数按照整形数据形式输入然后字符串转化

为数字返回主函数。既然是数字选项为什么不用整数格式输入而要按字符串输入。再将其 a 和 b 等 由于类转换呢,如果按照整数格式输入,当用户输入了非数字字 符。例如 表面上看是数字也应将其设为字符 型不同将导致程序出错。所以对于不参与运算的数据

处理。例如电话号码,千万不要设为整数类型,程序设计技巧很多。所以读者在编程调试中应注意并仔细体会。

(2)创建班级

输入记录时按照一条一行的格式输入,每个数据之间用空格分隔,较为清晰且能直接

反映数据之间的关系,但由于 scanf 函数的特性,在输入时数据用回车分隔也是可以的,但与 界面设计不吻合界面.由于记录并不是一次性全部输入而是随时填加和删除的,而预先开辟 n,然后用的空间数往往大于实际的记录数。所以程序设计为首先输入准备输入的记录数

while循环语句循环输信息。

图5 创建列表页面 输出学生信息

该功能的实现主要是

是通过结构体数组中的链表指针进行输出

图6输出全部信息 按照学号录入学生成绩

通过头指针查找到需要录入成绩的节点,录入成绩。

按照班级录入学生成绩

按照学

成绩

按照班级修改学生成绩

按照班

生的总

成绩

按照学

成绩

按照班级输

目(11)按照班级输出学生成绩单

四、程序设计

(一)先进行人工检查,即静态检查。

在写好一个程序以后,不要匆匆忙忙上机,而应对程序进行人工检查。这一步十分重要,它能发现程序设计人员由于疏忽而造成的多数错误。这一步往往容易被人忽视,总希望把一切都推给计算机去做,但这样会多占用机器时间,作为一个程序人员应当养成严谨的作风,每一步都要严格把关,不把问题留给后面的工序。

为了更有效地进行人工检查,所编的程序应力求做到以下几点:

①应当采用结构化程序方法编程,以增加可读性;

②尽可能多加注释,以帮助理解每段程序的作用;

③在编写复杂的程序时不要将全部语句都写在main函数中,而要多利用函数,用一个函数来实现一个单独的功能。各函数之间除用参数传递数据外,尽量少出现耦合关系,这样便于分别检查和处理。

(二)在人工检查无误后,再上机调试。

通过上机发现错误称为动态检查。在编译时会给出语法错误的信息,调试时可以根据提示信息具体找出程序中出错之处并改正。应当注意的是有时提示出错的地方并不是真正出错的位置,如果在提示出错的行找不到错误的话应当到上一行再找。有时提示出错的类型并非绝对准确,由于出错的情况繁多且各种错误互有关联,因此要善于分析,找出真正的错误,而不要只从字面意义上找出错信息,钻牛角尖。

如果系统提示的出错信息很多,应当从上到下逐一改正。有时显示出一大片出错信息往往使人感到问题严重,无从下手。其实可能只有一二个错误。例如,对使用的变量未定义,编译时就会对所有含该变量的语句发出出错信息。这时只要加上一个变量定义,就所有错误都消除了。

(三)在改正语法错误(包括“错误(error)”和“警告(warning)”)后,程序经过连接(link)就得到可执行的目标程序。运行程序,输入程序所需数据,就可得到运行结果。应当对运行结果作分析,看它是否符合要求。有的初学者看到运行结果就认为没问题了,不作认真分析,这是危险的。

有时,数据比较复杂,难以立即判断结果是否正确。可以事先考虑好一批“试验数据”,输入这些数据可以很容易判断结果正确与否。例如解方程。事实上,当程序复杂时很难把所有的可能情况全部都试到,选择典型的临界数据作试验即可。

(四)运行结果不对,大多属于逻辑错误。对这类错误往往需要仔细检查和分析才能发现。可以采用以下办法:

1.将程序与流程图仔细对照,如果流程图是正确的,程序写错了,是很容易发现的。例如,复合语句忘记写花括弧,只要一对照流程图就能很快发现。

2.如果实在找不到错误,可以采用“分段检查”的方法。在程序不同的位置设几个printf函数语句,输出有关变量的值,逐段往下检查。直到找到在某一段中数据不对为止。这时就已经把错误局限在这一段中了。不断减小“查错区”,就能发现错误所在。

3.也可以用“条件编译”命令进行程序调试(在程序调试阶段,若干printf函数语句就要进行编译并执行。当调试完毕,这些语句不用再编译了,也不再被执行了)。这种方法可以不必一一去掉printf函数语句,以提高效率。

4.如果在程序中没有发现问题,就要检查流程图有无错误,即算法有无问题。如有则改正之,接着修改程序。

5.有的系统还提供debug(调试)工具,跟踪程序并给出相应信息,使用更为方便,请查阅有关手册。

总之,程序调试是一项细致深入的工作,需要下功夫,动脑子,善于积累经验。在程序调试过程中往往反映出一个人的水平,经验和态度。希望大家给以足够的重视。上机调试程序的目的决不是为了“验证程序的正确”,而是“掌握调试的方法和技术”,要学会自己找问题,这样慢慢自己就会写出错误较少的实用程序。

五、代码的实现

#include #include

#define MAXSIZE 100

struct student { int num;char name[20];char sex[5];char class[30];int semester;char course[30];int score[3];struct student *next;};

struct list { int class;struct student *head;};

void CreatClassStudent(struct list Class[],int n)//创建班级 { char ch;int i;i = 1;struct student *head,*p,*q;head =(struct student *)malloc(sizeof(struct student));q = p = head;while(i <= n){

printf(“输入第%d个班级的信息:n”,i);

struct student *head,*p,*q;

head =(struct student *)malloc(sizeof(struct student));

Class[i].head = p = head;

while(1)

{

printf(“输入学号:n”);

scanf(“%d”,&head->num);

printf(“输入姓名:n”);

scanf(“%s”,head->name);

head->score[0] = 0;

head->score[1] = 0;

head->score[2] = 0;

getchar();

printf(“是否继续?n”);

scanf(“%c”,&ch);

if(ch == 'n')

break;

p =(struct student *)malloc(sizeof(struct student));

head->next = p;

head = p;

}

head->next = NULL;

i++;} }

void print(struct list Class[],int n)//输出学生信息

按照班级输出 {

struct student *p;int i=1;

while(i <= n){

p = Class[i].head;

printf(“移动%d班学生信息n”,i);

while(p!= NULL)

{

printf(“%dt”,p->num);

printf(“%st”,p->name);

printf(“%dt%dt%d”,p->score[0],p->score[1],p->score[2]);

p = p->next;

printf(“n”);

}

printf(“n”);

i++;} }

void StudentId(struct list Class[],int n)//按照学号输入成绩

{ int score1,score2,score3;int t;int key;printf(“输入学号:”);

scanf(“%d”,&key);

int i;i = 1;struct student *p;

while(i <= n){

p = Class[i].head;

while(p!= NULL)

{

if(p->num == key)

{

printf(“输入3门成绩:”);

scanf(“%d%d%d”,&score1,&score2,&score3);

p->score[0] = score1;

p->score[1] = score2;

p->score[2] = score3;

t = 0;

}

p = p->next;

}

i++;} if(t!= 0)

printf(“该学号不存在!n”);}

void ClassId(struct list Class[],int n){ int i = 1;struct student *p;while(i <= n){

printf(“录入%d班级的成绩n”,i);

p = Class[i].head;

while(p!= NULL)

{

printf(“输入学号为%d的学生成绩:”,p->num);

scanf(“%d%d%d”,&p->score[0],&p->score[1],&p->score[2]);

p = p->next;

}

printf(“成绩录入结束n”);

i++;} }

void StudentNumberChange(struct list Class[],int n){ int i = 1;int key;int score1,score2,score3;int t;

printf(“请输入学号:”);scanf(“%d”,&key);struct student *p;while(i <= n){

p = Class[i].head;

while(p!= NULL)

{

if(p->num == key)

{

printf(“请输入新的成绩:”);

scanf(“%d%d%d”,&score1,&score2,&score3);

p->score[0] = score1;

p->score[1] = score2;

p->score[2] = score3;

t = 0;

}

p = p->next;

}

i++;} if(t!= 0){

printf(“该学号不存在!n”);} }

void ClassNumChange(struct list Class[],int n)

{

int class;int score1,score2,score3;char ch;struct student *p;printf(“输入需要修改信息的班级号%d----%d:”,1,n);scanf(“%d”,&class);

p = Class[class].head;

while(p!= NULL)

{

printf(“是否要修改%d的成绩:”,p->num);

getchar();

scanf(“%c”,&ch);

if(ch == 'n')

{

p = p->next;

continue;

}

printf(“输入新的成绩:”);

scanf(“%d%d%d”,&score1,&score2,&score3);

p->score[0] = score1;

p->score[1] = score2;

p->score[2] = score3;

p = p->next;

} }

void TotalGrade(struct list Class[],int n){ int sum = 0;int average;int k;int class;printf(“输入班级号%d------%dn”,1,n);scanf(“%d”,&class);struct student *p;p = Class[class].head;while(p!= NULL){

sum = p->score[0] + p->score[1] + p->score[2];

average = sum / 3;

printf(“%d的总成绩是%d平均成绩是%dn”,p->num,sum,average);

p = p->next;

} }

void QueryResults(struct list Class[],int n){ int i = 1;int key;int t;struct student *p;printf(“请输入学号:”);scanf(“%d”,&key);while(i <= n){

p = Class[i].head;

while(p!= NULL)

{

if(p->num == key)

{

printf(“学号为%d的学生[移动%d班]”,p->num,i);

printf(“%dt%dt%dn”,p->score[0],p->score[1],p->score[2]);

t = 0;

break;

}

p = p->next;

}

if(t!= 0)

{

printf(“该学生不存在于%d班n”,i);

}

i++;} }

void NotPass(struct list Class[],int n){ int class;

printf(“请输入班级号%d---%d:”,1,n);scanf(“%d”,&class);struct student *p;p = Class[class].head;printf(“%d班不及格名单n”,class);while(p!= NULL){

if(p->score[0] < 60 || p->score[1] < 60 || p->score[2] < 60)

{

printf(“%dt%st”,p->num,p->name);

if(p->score[0] < 60)

printf(“语文t%dt不及格t”,p->score[0]);

if(p->score[1] < 60)

printf(“线性代数t%dt不及格t”,p->score[1]);

if(p->score[2]<60)

printf(“英语t%dt不及格t”,p->score[2]);

printf(“n”);

}

p = p->next;} }

void Transcript(struct list Class[],int n){ int class;printf(“请输入班级号:”);scanf(“%d”,&class);struct student *p;p = Class[class].head;while(p!= NULL){

printf(“%dt%st%dt%dt%dn”,p->num,p->name,p->score[0],p->score[1],p->score[2]);

p = p->next;} }

void menu(){ printf(“ 0、退出系统n”);printf(“

1、创建班级n”);printf(“

2、输出学生信息n”);printf(“

3、按照学号录入学生成绩n”);printf(“

4、按照班级录入学生成绩n”);printf(“

5、按照学号修改学生成绩n”);printf(“

6、按照班级修改学生成绩n”);printf(“

7、按照班级统计学生的总成绩n”);printf(“

8、按照学号查询学生成绩n”);printf(“

9、按照班级输出不及格学生名单及科目n”);printf(“

10、按照班级输出学生成绩单n”);}

int main(){ int n;int i;int operation;

struct list Class[MAXSIZE];Class[0].head = NULL;Class[0].class =-1;

printf(“输入班级数量:n”);scanf(“%d”,&n);while(1){

menu();

printf(“请选择操作:”);

scanf(“%d”,&operation);

switch(operation)

{

case 1:CreatClassStudent(Class,n);

break;

case 2:print(Class,n);

break;

case 3:StudentId(Class,n);

break;

case 4:ClassId(Class,n);

break;

case 5:StudentNumberChange(Class,n);

break;

case 6:ClassNumChange(Class,n);

break;

case 7:TotalGrade(Class,n);

break;

case 8: QueryResults(Class,n);

break;

case 9:NotPass(Class,n);

break;

case 10:Transcript(Class,n);

break;

case 0:exit(-1);

} }

return 0;

}

六、参考文献

1、《嵌入式linux上的C语言编程实践》

北京亚嵌教育研究中心、韩超

电子工业出版社

2、《linux 下C语言应用编程》

杨铸

北京航空航天大学出版社

3、《linux 高级程序设计》

杨宗德

邓玉春

人民邮电出版社

七、开发环境

开发环境linux操作系统

GNU Compiler Collection程序生成工具软件

第五篇:VB课程设计--学生信息管理系统

******11111111111111

要………………………………………………………………………5 前

言………………………………………………………………………6 第一章 为什么要开发一个学生档案管理系统……………………………7 1.1 在教育中用计算机管理学生档案的意义.………………………7 1.2为将来学校上网做好准备……………………..…………………7 1.3 学生档案的设计分析……………………………………………7 第二章 编程环境的选择.…………………………………………………9 2.1开发工具的介绍.…………………………………………………9 2.3关系型数据库……………………………………………………11 2.4 数据库的概念……………………………………………………12 2.5新建一个数据库.…………………………………………………12 第三章 需求分析………….………………………………………………14 3.1 可行性研究………………………………………………………14 3.2 需求分析…………………………………………………………15 第四章 系统总体规划..……………………………………………………17 4.1软件模块结构设计………………………………………………17 4.2数据库设计...……………………………………………………18 第五章 系统具体实………………………………………………………19 5.1 主界面………………………………………………………………19 5.2数据库的实现…………………………………………………………21 5.3 ACCESS与VB的连接………………………………………………22 第六章 测试 …………………………………………………………………24 6.1程序运行界面 如下图………………………………………………24 6.2输入用户名和密码界面………………………………………………26 ******11111111111111 6.3系统所具备的功能显示界面…………………………………………26 6.4系统管理功能…………………………………………………………27 6.5班级系统………………………………………………………………30 6.6 档案管理……………………………..………………………………32 6.7课程管理………………………………………………………………33 6.8成绩管理………………………………………………………………34 结束语…………………………………………………………………………36 致

谢……………………………………………………………………….37 参考文献………………………………………………………………………38

摘 要

学生档案管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。

经过分析,我们使用 MICROSOFT公司的 VISUAL BASIC开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。

关键字:控件、窗体、域。

摘要:随着中国教育事业的迅速发展,学生的数量日益增加,学生的信息管理也变得日益繁重和复杂。如果想要提高学生信息管理的效率和质量,以适应教育事业的发展,我们就必须对学校内部进行改革和加强学校管理。借助现代信息技术的管理方法,建立学生信息管理系统势在必行。本文通过对一个学生信息管理系统的开发实例,对基于Visual Basic 6.0和SQL 2000的学生信息管理系统进行了分析和研究。

文章首先分析了管理信息系统的概念和特点,介绍了开发工具Visual Basic 6.0和SQL ******11111111111111 2000,然后对学生信息管理信息系统进行了需求分析、概要设计和详细设计,在概要设计中进行了数据库的设计,在详细设计中讨论了系统的实现方法和编码。之后对系统测试进行了分析和讨论,功能模块的测试中把登录服务器模块的测试和其他功能模块的测试分开进行,介绍了一种实用的测试方法。最后是介绍系统的总体测试和系统发布。本文所论述的学生信息管理系统对实现初中、高中和大中专院校的学生信息管理的现代化、科学化具有重要意义。

关键词:学生信息管理系统;Visual Basic 6.0;SQL 2000 ;C/S模式

Information Management system of student

Based on C/S model

Abstrac: With the quick development of Chinese education, the student’s quantity increasingly increaseses, the student’s status management also becomes increasingly heavy and complicated.If want to improve the efficiency and quality of the student’s status management and adapt the development of the education business, we must to reform the inner school and enhance the school management.So ask for the management method of the modern information technique and eatablish the student’s status management system is imperative.This text analysis and study the student’s status management information system which based on Visual Basic 6.0 and SQL 2000 across an example of student’s status management imformation system.Firstly, the article analyzed the management information system’s concept and characteristics and introduced the development tools Visual Basic 6.0 and SQL 2000.Then it carried through the need analysis, general design and detailed design for the student’s student status information system.It designed the database in the general design and discussed the realize methord and coding of the system in the detailed design.Then it analysised and dicussed to the system test.It classified the test of registering server mold and the test of other founction mold in the function mold test and introduced a practical test method.Finally it introduced the total test and release of the system.The student’s student status management this text discussing have important meaning to realize the student’s student status manage of junior and senior high school.Keywords: Students status management system;Visual Basic 6.0;SQL 2000;C/S model

目 录 前言 1 1 系统开发环境及其工具介绍 2 ******11111111111111

1.1 系统简介 2 1.1.1 管理信息系统的概述 2 1.1.4 学生学籍管理信息系统概述 2 1.2 系统开发工具及开发环境概述 3 1.2.1 Visual Basic 6.0 的介绍 3 1.2.2 ADO数据访问技术 3 1.2.3 Microsoft SQL Server简介 8 需求分析 11 2.1 系统需求 11 2.1.1 编写目的 11 2.1.2 背景及范围 11 2.2 任务概要 11 2.2.1 目标 11 2.2.2 运行环境 11 2.2.3 条件与限制 11 3 系统总体分析与设计 12

3.1 系统分析 12 3.1.1 系统功能的分析 12 3.1.2 系统功能模块设计 12

3.2 数据库设计 13 3.2.1 数据库需求分析 13 3.2.2 数据库概念结构设计 13 3.2.3 数据库逻辑结构设计 15 详细设计 18 4.1 学生管理系统主窗体的创建 18 4.1.1 创建工程项目——Student_MIS 18 4.1.2 创建学生信息管理系统的主窗体 18

4.1.3 创建主窗体的菜单 20 4.1.4 创建公用模块 20 4.2 系统用户管理模块的创建 21 4.2.1 用户登录窗体的创建 21 4.2.2 添加用户窗体的创建 23 4.2.3 修改用户密码窗体的创建 24 4.3 学籍管理模块的创建 25 ******11111111111111 4.3.1 添加学籍信息窗体的创建 25 4.3.2 修改学籍信息窗体的创建 27 4.3.3 查询学籍信息窗体的创建 29 4.4 班级管理模块的创建 30 4.4.1 添加班级信息窗体的创建 30 4.4.2 修改班级信息窗体的创建 32 4.5 课程设置模块的创建 32 4.5.1 添加课程信息窗体的创建 32 4.5.2 修改课程信息窗体的创建 33 4.5.3 设置年级课程窗体的创建 34 4.6 成绩管理模块的创建 35 4.6.1 添加成绩信息窗体的创建 36 4.6.2 修改成绩信息窗体的创建 37 4.6.3 查询成绩信息窗体的创建 37 运行与测试 39 5.1 登录服务器模块测试 39 5.2 其他模块的测试 39 5.3 帮助文档的设计 39 5.4 系统测试和打包发行 40

结束语 41 参考文献 42 致谢 43 附录 44

前言

管理信息系统就是我们常说的MIS(Management Information System),在强调管理,强调信息的现代社会中它变得越来越普及。MIS是一门新的学科,它跨越了若干个领域,比如管理科学、系统科学,运筹学、统计学以及计算机科学。[1]在这些学科的基础上,形成信息收集和加工的方法,从而形成一个纵横交织的系统。

管理信息系统起初应用于最基础的工作,如打印报表、计算工资、人事管理等,进而发展到企业财务管理、库存管理等单项业务管理,这属于电子数据处理(EDP,Electronic Data Processing)系统。当建立了企业数据库,有了计算机网络从而达到数据共享后,从系统观点出发,实施全局规划和设计信息系统时,就达到管理信息系统的阶段。随着计算机技术的进步和人们对系统的需求进一步提高,人们更加强调管理信息系统能否支持企业高层 ******11111111111111 领导的决策这一功能,更侧重于企业外部信息的收集、综合数据库、模型库、方法库和其他人工智能工具能否直接面向决策者,这是决策支持系统(DSS,Decision Support System)的任务。

我国20世纪70年代末有少数企业开始MIS的局部应用。“六五”期间,选择一些大型企业进行MIS的开发试点,其中首都钢铁公司、北京第一棉纺厂、湖北第二汽车制造厂、宁江机床厂等取得了经验。20世纪80年代中后期,在全国性的计算机应用热潮中,许多企业纷纷从财务管理、人事管理等单项应用入手,尝试建立MIS。许多企业,如北京内燃机厂、北京电视机厂、沈阳鼓风机厂、天津渤海无线电厂的MIS初具规模,建立了覆盖全厂的计算机网络。“八五”期间,企业逐步走向市场,MIS建设的目标和需求日益明确。一些企业的系统,如北京第一机床厂、山西经纬纺织机械厂、成都飞机制造公司等都达到了很高的水平,与企业中其他系统集成,形成了CIMS。目前,我国MIS已经有了相当的普及率,几乎覆盖了各个行业及各个部门。

在学校,尤其是在各大高校,对于学生的管理是相当重要,而且也是相当麻烦的,它是学校管理中最基本的一项常规性工作。而长期以来,学校管理都是依赖人工来进行的,面对如此众多的学生信息,其工作量是相当相当巨大的。这样不仅仅浪费了大量的人力物力,而且由于人工管理存在着大量的不可预知性,造成学生信息管理的一些不规范,使得信息

管理陷入“事倍功半”的地步。

开发本系统就是为了解决学校在管理中的一些不规范,使学生信息的管理向着规范化、简

单化、有效化的方向发展。[2] 根据学生信息管理系统的基本流程和高校学生信息管理的实际要求,本系统需要实现以下

功能:

(1)学生基本信息的录入,基本信息包括学生的基本情况、所在班级、所学课程和成绩等;

(2)要求在系统中能够对学生信息精心灵活的浏览和查询;(3)要求在系统中能够对班级信息进行输入、查询和修改等;(4)要求能够对学校基本课程信息录入、修改和设置等;(5)要求能够对学生成绩信息进行输入、修改和查询等;(6)本系统可以提供给管理员或者学生本人使用。对学生类用 ******11111111111111

6.3系统所具备的功能显示界面

如图 ******11111111111111

6.4系统管理功能

如图 ******11111111111111

6.5班级系统

6.5.1 班级添加 ******11111111111111

6.6 档案管理 ******11111111111111

6.6.1 档案添加

6.6.2 档案查询 ******11111111111111

6.7课程管理

6.7.1课程设置 ******11111111111111

6.7.2 课程添加 ******11111111111111

四、设计结果分析

(1)系统所具备的功能显示界面 ******11111111111111 ******11111111111111 ******11111111111111(2)结果分析

1、第一步能很好的运行,初始密码就是用户名,只有密码正确才会进入系统。

2、点击在用户界面可以加入新的用户和删除以前的用户,也可以对密码进行修改。

3、在班级管理系统中各个功能都可以实现,可以显示当前系统中所有的班级信息。

4、课程设计一栏中可以添加系统中已经存储的课程和手动的输入课程,可以对课程的信息进行相应的操作。

5、成绩管理功能可以正常的运行,每一个功能都是单独的实现,不会产生混淆。

6、学籍管理是比较难的一部分,在运行了几次才让各个功能更能很好的实现,能够很好的将学生的信息存到数据库中。而且可以对其中的数据镜像相应的操作 ******11111111111111

五、个人小结

虽然Vb课结束了,但是自己感觉好像没有学到太多的东西,可能是上机的时间比较少吧,还有就是对待这么课的心态不同和老师要求的不严的缘故。

通过写完这个学生管理系统,感到收获很多,不动手就不知道自己的在哪里不懂,在这次作业的完成中遇到了许多自己无法调试的错误,只能请教已经学过了的同学,感觉到自己的知识的缺乏。虽然最后自己把所有的功能都按照预期的编好了,也可以很好的运行,但是其中也有许多的不足,对图像的不理解和不会很好的使用是自己的程序让人感到很呆板,这是需要改进的一大部分。

跟着老师学习了一个学期,自己感觉到学会一些简单的程序编写,至少认识了vb的作用性,这次的大作业,我只能把每一功能当做一个小的程序来编写,不会很好的联系所用的功能,在编写较长的运算时,不能够写好,只能对着书本一个的一个算法尝试,不能脱离课本,有时看着课本也不知道怎么写。

当自己写到难的时候,有点想放弃,感觉太难了,就把自己的程序给别人修改,加工。对其中的控件和文件的概念不是很熟 ******11111111111111 悉,还有就是数据库,以前没有接触,虽然老师在最后一节课的时候是一步一步的在课堂上讲解的,但是自己操作时,有时不知道在哪个地方编辑。

编完这个程序最大的收获就是将自己不同的和学到的知识重新的联系起来了,又重新的复习了所学的内容,对不同的算法有了新的了解。常用控件和系统对象有了初步的认识,学会利用数据库来存储信息,对上课不知道的多文档界面,在试着编写的过程中有了较大的认识。

总的来说,这一个学期并没有浪费,可以在别人的帮助下做完这个学生管理系统,感到有种成就感,虽然不是很完美,至少自己能够让这个系统完整的运行,其中不足之处,就只好留在自

下载大学JAVA课程设计——学生信息管理系统word格式文档
下载大学JAVA课程设计——学生信息管理系统.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    C++课程设计学生信息管理系统

    C++程序设计实践教学环节任务书 一、题目:学生信息管理系统 二、目的与要求 1. 目的: (1) 掌握面向对象程序设计的基本思路和方法; (2) 了解系统开发的需求分析、类层次设计、......

    JAVA课程设计--员工信息管理系统(徐如飞)

    摘要 众所周知,当今社会是信息社会,因此,要想加强人事管理,单纯依靠以前的手工管理,不仅会浪费大量的人力,物力,财力,而且效率不高,而且很难达到预期的目的。所以人事管理信息系统能......

    Java程序设计课程设计学生考勤系统

    信息与电子工程学院 课程设计报告 课程名称: 姓名: 学号: 班级: 指导老师: 完成时间: 2016年6月 Java程序设计课程设计 学生考勤系统 问题描述: 以班为单位,可以以日期为标识记录每......

    【课程设计】职工信息管理系统

    题目:职工信息系统 功能包括:  建立职工信息数据(职工编号,姓名,性别,年龄,电话,职务,工资和家庭成员信息)和信息简表(编号,姓名,电话)  根据职工编号查询职工信息(查询时需要身份确认......

    学生信息管理系统

    摘 要 随着网络通信技术的迅速发展和信息技术的广泛应用,计算机的应用已普及到经济和社会生活的各个领域。教育领域也不例外,现今已经出现了各种远程网络在线教育系统、图书馆......

    学生信息管理系统

    –––––––––––––––––摘 要––––––––––––––––– 学生信息管理系统是典型的信息管理系统 (MIS),其开发主要包括后台数据库的建立和维护以及前端......

    学生信息管理系统

    目 录 第一章:类图 ........................................................ 5 第二章:用例描述与用例图 ............................................ 6 2.1 用例图 .........

    学生信息管理系统

    学生信息管理系统论文 2010-04-01清华领导力培训诺贝尔论文网 在传统模式下利用人工进行学生信息管理系统论文,存在着较多缺点,如:效率底,保密性差,时间一长将产生大量文件和数据......