Java课程设计【学生信息管理系统】_学生信息管理系统java课程设计-程序员宅基地

技术标签: Java  gui编程  java课设  java  源代码  学生系统  

一、问题描述

如何实现一个功能简单的学生信息管理系统,能够对学生信息(包括照片)进行添加、删除、修改和查询等操作。

二、基本要求

实现一个功能简单的学生信息管理系统,该系统具有按照账户名密码登录功能,登录后,可以添加,删除,修改、查询(显示学生相片)学生信息,添加学生信息时,要求能添加学生的相片信息(实现相片文件的上传和下载功能)。

三、需求分析

程序设计的任务是实现对学生信息的管理。用户名和密码都默认设置为0,用户名或密码输入错误会弹出“用户名或密码输入不正确”的对话框。在用户名和密码输入正确后进入学生信息管理系统,然后进行添加、修改、删除等操作。在添加操作里面可以上传和下载照片,这是File类型的。输入的其他学号、姓名、性别、电话、QQ和专业都是String类型,输出的也是String类型。点击确认后会弹出“添加成功”。

四、概要设计

1、类之间的调用关系

在这里插入图片描述

2、学生信息模块

在这里插入图片描述

3、系统管理模块

在这里插入图片描述

系统的全部代码文件展示如下:

1、Main.java类

在这里插入图片描述

2、View.java类

在这里插入图片描述

3、Student.java类

在这里插入图片描述

4、ConnectSQLServer类

在这里插入图片描述

5、LoginGUI类

在这里插入图片描述

五、调试分析

在一开始调试的时候,发现虽然没有错误,但无法运行,找了很久发现是自己在main方法里没有去调用init()方法,然后填上了之后程序可以运行。然后在成功登录后进入学生信息管理系统界面。在里面没有上传照片和下载图片这一选项。我在View这个程序里面首先添加了本地的图片作为图标可供下载,然后选定一个文件夹Config作为上传的路径。这样,我就在LoginGUI类里面的添加按钮监听器里面再增加了调用View类的use()方法的监听器,实现了图片上传和下载的功能。
总之,从一开始参考书上例题打出来的程序作为基石,在上面进行雕刻。从设计转化为实现,打基础这一步很困难,因为要花很长时间查资料、看书和看代码来理解程序,然后才能自己灵活进行优化。同学之间也相互讨论帮助,都能给出自己的想法,然后交流之后会得出更好的创意,从第一个星期开始,我已经规划好要怎样做,许多同学也参考了我的规划。我一直按照计划实施并且很顺利地完成了程序设计。

六、用户使用说明

1、登录

(1)程序设计的任务是先设计出一个登录窗口,输入用户名和密码。

在这里插入图片描述

如果输入错误,会像如图所示输出“用户名或密码输入不正确”的对话框。

在这里插入图片描述

我给出的代码为了方便调试,用户名和密码全是0,注意程序入口是LoginGUI类。

(2)如果正确,则成功登录,进入学生信息管理界面,如图所示:

在这里插入图片描述

2、添加

(1)点击“添加”按钮,进入学生信息添加界面:
在这里插入图片描述

(2)在以上界面输入要添加的学生信息,首先点击“上传照片”按钮,然后弹出具有上传照片和下载照片功能的窗口:

在这里插入图片描述

(3)点击浏览选项,选择本地文件里需要上传的图片,这里我们选择Taylor Swift的图片,然后点击上传,会显示“上传成功”的对话框。

在这里插入图片描述

(4)可以看到这张图片上传到了本地D:/Test目录下,实现了图片的上传功能。

	//上传按钮的监听器
	bUpload.addActionListener(new ActionListener(){
    
		public void actionPerformed(ActionEvent e){
    
			String fromFileName=tFileName.getText();
			// 上传的目标目录
			String toFileName="D:/Test/" + System.currentTimeMillis() + ".png";
			write(fromFileName, toFileName);
			JOptionPane.showMessageDialog(jf, "上传成功!", "提示", JOptionPane.WARNING_MESSAGE );
		}
	});

在这里插入图片描述

(5)点击“下载”按钮,先选择电脑上的一个目录,然后输入保存的文件名,这里我依然是打开到D:/Test目录,然后文件名写的是123.png,最后点击打开。

在这里插入图片描述

(6)它会将显示的头像以你指定的文件名,下载到你指定的目录中,实现了文件的下载功能。

在这里插入图片描述

(7)然后添加其他的学生信息,如图所示:

在这里插入图片描述

(8)点击“确认”按钮,即可保存学生信息。我们再添加一个学生的信息,输入完信息后,点击确认按钮添加成功,如下图所示:

在这里插入图片描述

3、查询

(1)在学生管理界面的学生信息列表中点击“查询”按钮,即可显示已经添加的学生信息记录。第一次点查询是查询学号为空的学生,自然是不存在,第二次查点询则显示所有的学生。这是将全查和查询单个学生的功能放到一起。

在这里插入图片描述

(2)也可以在“查询”的文本框内输入学号,然后点击“查询”按钮,会跳出所对应的学生记录,如图所示:
在这里插入图片描述

4、修改

(1)选择张韶涵这条记录,再点击“修改”按钮,弹出对话框,这里我们可以修改除了学号之外的其他学生信息,修改完成后点击确认按钮即可。

在这里插入图片描述
在这里插入图片描述

(2)再次点击“查询”按钮刷新窗口数据,显示出修改后的信息,如下图所示:

在这里插入图片描述

5、删除

(1)在学生信息管理系统界面选中某一学生记录,单击“删除”按钮,弹出删除确认界面。如果确认删除,单击“确定”按钮,否则单击“取消”按钮。

在这里插入图片描述

(2)我们点击确定按钮,这条学生数据就被删除了。

在这里插入图片描述

6、退出

点击右上角的X,将关闭所有程序窗口。

七、测试结果

测试数据和测试结果在用户使用说明选项中已经详细介绍过,这里不再重复介绍。

八、课程设计总结

这次课程设计总体来说是一次非常有意义的任务,因为在这次课程设计中我学会了很多GUI编程和流类的知识,提高了编程的能力,也增加了对编程的兴趣。虽然这是一个小项目,但是能把它做好也是有很大的满足感。虽然一开始遇到很多问题,但自己都咬牙克服、迎难而上,每天都在钻研程序,然后将自己的思想与同学们交流。可以说,没有付出就没有回报,只要你肯付出,就会有收获。一件事,你只要用心去做了,将它做好,无论结果如何,你都不会留有遗憾的。课程设计让我对所学知识有了更深刻的理解,也让我明白如今对程序员的要求是多么严格,需要掌握各种编程知识,才能够在职场上游刃有余。

九、参考文献

《JAVA核心技术》 马志强 张然 李雷孝著
《JAVA API文档》 Oracle官网文件
《JAVA编程思想》 【美】Bruce Eckel著
《JAVA数据库技术详解》 李刚 著

十、源码下载

这个系统是博主19年的Java课程设计,做的也比较简略,比如数据库的连接和存储当时就没有去深究,这篇博客就是报告内容。

学生信息管理系统
源码已上传Github,直接点击上链接下载即可。如果对你有帮助的话,可以给个star鼓励一下,感谢大家。

等你有了新的圈子,别忘了谁陪你走过了人烟稀少的时候;等你过得好时,别忘了谁陪你度过了最艰难的时刻。路上人山人海,不一定都对你好,但肯定会有一个愿意等。朋友不要多,但要最真。你可以不好,但不能背叛;可以不是土豪,但会懂得分享。可以没有势力,但知道护友。最后我们都散了,记得常联系。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_42257666/article/details/106470477

智能推荐

JavaScript中的(内置)方式来检查字符串是否为有效数字_js 判断是的有效数字-程序员宅基地

文章浏览阅读1.2k次。我希望在与旧的VB6 IsNumeric()函数相同的概念空间中有东西吗? _js 判断是的有效数字

PHP5.4NTS MYSQL_windows安装Apache2.4.3(mod_fcgi)+PHP5.4.10+Mysql5.5.29-程序员宅基地

文章浏览阅读129次。最近有朋友问我,根据我的以前的一个教程,用php5apache2_4.dll来运行php的http://www.myxzy.com/post-333.html,但是现在apachelounge官网没有php5apache2_4.dll文件下载了,只有一个mod_fcgid了,php的包里面也没有php5apache2_4.dll这个文件。所以就写了这个教程。这个教程是在windows下用Apach..._windows 安装apahce2.4安装mod_fcgid.so

三分钟教你如何用Github找开源项目--值得一看!_github 网站 下载课题相关的开源代码程序。-程序员宅基地

文章浏览阅读10w+次。Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub。# 按照项目名/仓库名搜索(大小写不敏感)in:name xxx # 按照README搜索(大小写不敏感)in:readme xxx# 按照description..._github 网站 下载课题相关的开源代码程序。

MAC地址表、端口安全、MAC地址偏移-程序员宅基地

文章浏览阅读1.4k次,点赞7次,收藏6次。文章目录MAC地址1.组成2.分类3.常见MAC地址4.MAC地址表MAC地址表分类2.端口安全安全MAC地址分类端口安全保护动作配置端口安全经常使用的场景MAC地址偏移出现场景如何避免MAC地址漂移检测MAC地址MAC(Media Access Control Address)地址:网络中每台设备都有一个唯一的网络标识。1.组成MAC地址为48位(6字节)前24bit是通过向IETF等机构申请用来表示厂商的代码,后24bit是厂商分配给产品的唯一数值。2.分类物理MAC地址:MAC地址的_mac地址偏移

KEIL调试正在运行的程序_keil attach-程序员宅基地

文章浏览阅读2k次。有时程序跑着跑着就飞了,但此时却没有接仿真器,不能停下来看运行状态。如果重新启动调试,会破坏现场。有没有办法attach到应用程序上调试呢?答案是肯定的。_keil attach

【JavaScript】JS执行机制--同步与异步_js 同步和异步的展示-程序员宅基地

文章浏览阅读5.6k次,点赞41次,收藏30次。## 单线程`JavaScript`语言具有单线程的特点,同一个时间只能做一件事情。这是因为`JavaScript`脚本语言是为了处理页面中用户的交互,以及操作`DOM`而诞生的。如果对某个`DOM`元素进行添加和删除,不同同时进行。应该是先添加,再删除,事件有序。单线程的特点是所有任务都需要排队进行,前一个任务结束,才会执行后一个任务。这样会导致问题:如果JS执行时间过长,这样会导致页面渲染不连贯,导致页面渲染加载阻塞。_js 同步和异步的展示

随便推点

数据结构中的C语言编程基础_编写数据结构的格式c语言-程序员宅基地

文章浏览阅读3.2k次,点赞28次,收藏123次。C语言进行编程时一脸懵?对于数据结构中的数据类型不会定义?基本的算法不会写、记不住?来看一看这篇文章,提前根据考研的要求进行算法的编写,帮助你在考研时轻松拿分!_编写数据结构的格式c语言

GBDT和随机森林-附原版动画PPT(技术分享也可以文艺范?)_随机森林讲解ppt下载-程序员宅基地

文章浏览阅读2.5k次,点赞2次,收藏14次。版权声明:本文为博主原创文章,未经博主允许不得转载。本周在公司给校招生做了次 GBDT和随机森林 分享,把PPT分享出来。原版动画PPT下载链接:《GBDT和随机森林- CSDN博主dkjkls》参考资料:学习笔记【机器学习重点与实战】——4 集成学习-Bagging学习笔记【机器学习重点与实战】——5 集成学习-Boosting《机器学习 - 周志华》第8章 集成学习 《机器..._随机森林讲解ppt下载

pip3升级报错:PermissionError: [Errno 13] Permission denied: '/usr/bin/pip' -> '/tmp/pip-yndfk0h8-uninsta_oserror: [errno 13] permission denied: '/usr/bin/p-程序员宅基地

文章浏览阅读2.5k次,点赞2次,收藏3次。pip3 install pip --upgrade报错PermissionError: [Errno 13] Permission denied:来说一下关于pip3升级报错,下面是错误提示:Exception:Traceback (most recent call last):File “/usr/lib/python3.6/shutil.py”, line 550, in move..._oserror: [errno 13] permission denied: '/usr/bin/pip

TortoiseGit github 免输用户名密码 Push_github tortoise 密码-程序员宅基地

文章浏览阅读1.1k次。from:http://www.tuicool.com/articles/MbMNje_github tortoise 密码

Docker 下查看Redis版本的命令_docker redis版本查询-程序员宅基地

文章浏览阅读9.6k次,点赞5次,收藏5次。命令:docker exec -it first-redis redis-server -vps:其中first-redis 为 redis在docker中的容器名称_docker redis版本查询

keep-alive在路由中的使用_arco pro 路由keep alive-程序员宅基地

文章浏览阅读1.1k次。路由中keep-alive的使用,也就是将router-view包含在keep-alive中,这样当频繁往复点击多个router-link时,router-link对应的组件不会被频繁的创建和销毁,因为包含在keep-alive中router-view被缓存了起来。即使浏览器刷新,由keep-alive缓存的数据仍旧处于缓存状态;..._arco pro 路由keep alive

推荐文章

热门文章

相关标签