JAVA课程设计

一、团队介绍

团队成员任务分配团队成员课程设计博客链接组长
张弛创建学生信息、创建登陆界面、撰写博客https://www.cnblogs.com/zc-565095526/p/10284188.html
吴越设计主菜单GUI图形界面以及查询、增、删、改等功能的实现

二、项目git地址

张弛 https://gitee.com/zc565095526/javakeshe/tree/master
吴越 https://gitee.com/ShangDaXueJiuBuLiaoZhongGuoRen/2019java_course_designwu_yue

三、项目git提交记录截图

张弛:
1120968-20190117223059160-215728874.png

吴越:
1120968-20190117210300227-47242604.png

四、项目功能架构图与主要功能流程图

1120968-20190117201037531-1675764998.png

五、项目运行截图或屏幕录制

1.登陆系统

1120968-20190117201416258-17568942.png

1120968-20190117201425913-2003129172.png

2.增加学生信息

1120968-20190117202148057-889920575.png

1120968-20190117202153101-883989902.png

删除之后
1120968-20190117204556345-1093942937.png

1120968-20190117204603287-478146016.png

3.查看学生信息

输入学号

1120968-20190117204752009-1271273787.png

点击查看,显示该学生信息

1120968-20190117204756533-2118660531.png

换一个未添加学号,显示学号不存在

1120968-20190117205015744-1322374741.png

4.修改学生信息

将宿舍号从503改为502

1120968-20190117205354603-819150587.png

修改完后

1120968-20190117205410640-1395288202.png

5.清空功能

要重新输入信息时,要一行行删除 太过麻烦。因此我们重新设计了一个“清空”按钮。以此来实现一键清空的功能

清空前

1120968-20190117205655076-1474387869.png

清空后

1120968-20190117205706023-19500602.png

##6.显示所有学生信息

点击显示按钮,则会显示所有学生的信息。以“结束”作为标识符结束

1120968-20190117210413305-1414054748.png

六、项目关键代码

1.增加学生信息部分代码

    //////////////////////
        button1.addActionListener(new ActionListener() { // 监听增加, 使用内部类
            public void actionPerformed(ActionEvent e) {
                if (e.getSource() == button1) {           //点击增加数据按钮
                    button3.setEnabled(false);            //使button3这个按钮变灰不可点击了
                    String number1 = number.getText();    //从文本框获取用户键盘输入的字符串
                    if (number1.length() == 12) {         //学号要是12位的字符
                        try {
                            ObjectInputStream input = new ObjectInputStream(new FileInputStream(file)); //读回对象
                            hash = (Hashtable) input.readObject();      //放到hash中去                                             
                            input.close();
                        } catch (Exception e1) {
                        }
                    } 
                    else {
                        JOptionPane.showMessageDialog(null, "请输入学生的学号");                 //输入为空,就会提示此信息
                    }
                    if (number1.length() == 12) {
                    if (hash.containsKey(number1)) {                        
                        JOptionPane.showMessageDialog(null, "该生信息已存在,请到修改页面修改!");//该学生已经存在,提示此信息
                    } else {
                        
                        String name1 = name.getText();
                        String dor1 = dor.getText();
                        String address1 = address.getText();
                        String sex1 = sex.getText();
                        String date1 = date.getText();
                        String pol1 = pol.getText();
                        String phone1 = phonenum.getText();
                        
                        Student per = null;
                        per = new Student(number1, name1, dor1, address1, sex1, date1, pol1, phone1);
                        hash.put(number1, per);                                                   // 使用学号和学生来键值相对,添加
                        
                        try {
                            ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream(file));//写出对象到对应文件中
                            output.writeObject(hash);
                            output.close();
                       JOptionPane.showMessageDialog(null, "添加成功!");
                        } catch (Exception e1) {}
                    }
                    }
                }
            }
        });

2.删除学生信息

button2.addActionListener(new ActionListener() { // 监听删除按钮
            public void actionPerformed(ActionEvent e) {
                if (e.getSource() == button2) {
                    button3.setEnabled(false);          
                    String number1 = number.getText();
                    if (number1.length() == 12) {
                        try {
                            ObjectInputStream input = new ObjectInputStream(new FileInputStream(file)); //每次都要读回对象
                            hash = (Hashtable) input.readObject();
                            input.close();
                        } catch (Exception e1) {
                        }
                    } 
                    else {
                        JOptionPane.showMessageDialog(null, "请输入学生的学号");//提示信息
                    }
                    if (hash.containsKey(number1)) {
                        hash.remove(number1);                                  //删除操作
                        ObjectOutputStream output = null;                         //初始输出置空
                        JOptionPane.showMessageDialog(null, "删除成功");
                        
                        try {
                            output = new ObjectOutputStream(new FileOutputStream(file));   //写出对象到对应文件中
                            output.writeObject(hash);                                      //将hash中的数据写出
                            output.close();
                        } catch (IOException ex) {
                            Logger.getLogger(Menu.class.getName()).log(Level.SEVERE, null, ex);
                        }
                    } 
                    else {
                        JOptionPane.showMessageDialog(null, "学号不存在");
                    }
                }
            }
        });

3.修改学生信息

button3.addActionListener(new ActionListener() {             // 监听修改按钮
            public void actionPerformed(ActionEvent e) {

                if (e.getSource() == button3) {
                    button3.setEnabled(false);                  
                    
                    String number1 = number.getText();
                    String name1 = name.getText();
                    String dor1 = dor.getText();
                    String address1 = address.getText();
                    String sex1 = sex.getText();
                    String date1 = date.getText();
                    String pol1 = pol.getText();
                    String phone1 = phonenum.getText();
                    
                    Student per = new Student(number1, name1, dor1, address1, sex1, date1, pol1, phone1);
                    hash.put(number1, per);
                    JOptionPane.showMessageDialog(null, "修改成功");
                    
                    try {
                        ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream(file));//写出对象到对应文件中
                        output.writeObject(hash);
                        output.close();
                    } catch (Exception e1) {
                    }
                }
            }
        });

七、项目代码扫描结果及改正

八、尚待改进

1.登陆界面在输完密码之后无法直接用回车进入系统,上网查资料无果,只能单击“登录”按钮才能进入系统。

2.图形界面的背景图部分,想要给其加自定义背景图片,但是由于时间比较赶(有去尝试过),也未能完成改进。

3.想通过其他信息部分进行索引,查到该学生的具体资料,但由于时间不够,就只做了以学号为索引的方式

4.学号的排序方式有问题,变成了从大到小进行排序,因为使用的是Enumeration遍历方法

转载于:https://www.cnblogs.com/zc-565095526/p/10284188.html

1. 输出50—100间的所有素数,其中判断一个数是否为素数用函数完成。 2. 设计一个学生成绩管理系统,能输入学生的学号、姓名和成绩等数据,能按成绩从高到低进行排序,并能将排序的结果输出。 提示: 设计一个学生类student,包含三个私有数据成员,即学号sno、姓名sname和成员score; 在学生类student中再设计三个方法 setdata、display和getscore,分别用于完成输入学生信息、输出学生信息、返回某个学生成绩的功能; 定义一个manage类,它有一个student类型的私有数据成员s[num],其中num表示学生人数; 在manage类中分别定义三个方法input、output、sort,分别用于完成输入、输出和排序功能。 3.一个电子产品商店里卖各种电子产品,以下是几种产品类信息。 产品Product 的属性信息包括: 产品号(number) 种类(category) 名称(name) 价格(price ) 计算机Computer除具有产品基本信息外,还可能具有下面的属性: 内存(memory) 处理器(processorName)   笔记本电脑Laptop 除具有产品基本信息外,还可能具有下面的属性: 厚度(thickness) 重量(weight) 根据以上信息,首先抽象出类Product,它派生出子类Computer,Computer又派生出它的子类Laptop,实现以上三个类的定义,定义相应的构造方法,声明一个测试类,生成类对象,并把打印结果显示在屏幕上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值