-
2019-02-13 09:56:51
在“沉重的打击”中度过了我的验收,前两天刚“打击”完今天又来了一遍。这个说是打击,其实是自己在不够重视的情况下的产物。可以坦率的讲,就没有想把学生做的那么面面俱到,师父第一次验的还有自己加上去的问题大大小小有20个,时隔两天又验出10+错误。为什么会导致这么多错误呢?我也反思了一下,眼高手低了。以为不是特别难得东西被验的遍体鳞伤,终于看清了事实。脚踏实地,重新再战!想要做好一个软件并不简单,因此总结了几个方面:
一、基础
基础是尤为重要的。譬如窗口大小;输入框根据需要输入的东西而限制文字、数字、字母;以及提示框内容与图标等等。有许多基础性的东西我们经常要用到,所以对于一些基础性的东西要更加了熟于心。所以在师父的建议下查了许多的函数以及代码不懂得地方。发现整串瞬间就变得明朗了许多,大致明白了每一句里的过程都是如何的。当你对整个代码有了一定的认识,细节与逻辑便更加清晰了。
二、细节
有非常多的细节没有做到,千里之堤毁于蚁穴。有一些小的地方自己忽略掉了,然而被细心的师父们发现了。这是因为什么,这是懒惰思维带来的硬伤。以为是换位思考的结果。在我的潜意识里还认为只要做出来的东西能用就行。其实不然,你的每一次粗心大意,就会让用户对你的产品一点点的失去兴趣和消磨下次使用它的欲望。当这些点累积到一起的时候,用户将对你的产品彻底失去耐心。没有用户使用,那么设计出来的程序就是废品,还是不可回收的废品。墙上挂着的横幅:如果你设计的软件,猪不能使,你就是猪!这句话也是写的站在用户体验的角度上来评判设计的软件,话糙理不糙。
三、逻辑
逻辑思维,设计使用过程是需要逻辑思维的支撑的,显然在这方面我感觉现在是微乎其微的。不过通过师父的讲解让我明白了这其中的一些逻辑,这些就是打开设计逻辑的钥匙。万事开头难,慢慢的就入门了。比如一些登录窗体的逻辑,登录窗口是相对来说较为简单的窗体。但是在登录的时候,检验是否为空和检验是否重复是哪个在前哪个在后呢?这就是个简单的逻辑问题。还有时间逻辑,输入日期不能大于当前日期;入校日期不能小于出生日期等等。这些逻辑问题是我当时所没有考虑到的,用户体验极差。这是着重要注意的地方。
四、界面
界面设计的有问题,界面设计是一个软件的门面。都说第一印象很重要,设计的软件也是如此。假如我在第一眼看到这个软件第一个想法是真丑。我感觉除非他有极好用户体验,否则我是不会打开第二遍的。放到用户身上也是一样的,现在要转变一下思维。界面射界,留白,文字字体与大小,控件大小等。这都是需要注意的地方,师父们的讲解让我发现了许多未知的新大陆。突然又想起前一阵时间的分享活动,里面推荐的几个网站,可以多看看,提高一下审美能力。
感想
除了学生,师父对之后的计算机和英语学习都给出了不少的建议,我感觉师父们的建议都是十分中肯的,我也会按照师父的建议去做的。感谢师父们和小伙伴们的答疑解惑。在此项目中确实学到了不少东西。
更多相关内容 -
基于JSP的学生信息管理系统毕业论文
2021-06-14 19:01:434.2.7 个人信息管理功能模块 26 4.2.8 实验管理功能模块 27 4.2.9 实验评分管理功能模块 27 4.2.10 学生功能模块 28 4.2.11 实验预约功能模块 30 4.2.12 实验操作功能模块 30 4.2.13 实验分数查看功能模块 31 5 系统... -
C语言课程设计学生成绩管理系统个人总结.docx
2020-07-27 23:41:52C 语言课程设计学生成绩管理系统 个人心得体会 徐州工程学院 14 计嵌 1 班 07 组 张凯 这一周以来的课程设计不仅让我明白了 C 语言的确是一门很有用的但是又是不容易的一门课程 起初刚开始做课程设计时 以为这个课程... -
SSM学生基本信息管理javaweb网站设计与实现.docx
2021-05-06 19:45:454.3明德学院学生信息管理系统数据库设计 13 4.3.1 实体关系映射之E-R图 13 第五章 系统实现与测试 15 5.1 登录与注册 15 5.1.1 注册 15 5.1.2 登录 15 5.1.3 初始密码提醒 16 5.1.4 初始密码提醒 16 5.1.5 个人信息... -
完整javaEE学生信息管理系统
2020-12-30 21:42:18基于javaweb的ssm学校教务管理系统(管理员,教师,学生)文章结构一、开发框架及业务方向1.开发环境2.开发框架3.整体业务二、项目结构及页面展示1.项目整体结构2.用户页面3.管理员页面***需要源码的加企鹅:...文章结构
一、开发框架及业务方向
1.开发环境
- 操作系统不限:java特性,一套代码,导出运行
- jdk版本不限:推荐jdk1.8
- tomcat版本不限:推荐Tomcat8.0
- 数据库mysql:版本不限,推荐mysql8.0以下
- 开发工具:eclipse/idea 版本不限
2.开发框架
项目框架:servlet+jsp+mysql+layui+ajax+jquery
3.整体业务
本系统分为三种权限:
1.学生:查看自己信息,修改自己信息,以及修改密码等
2.教师:管理学生信息(增删改查),管理班级信息(增删改查)。查看自己信息,修改自己信息,以及修改密码等
3.管理员:管理学生信息(增删改查),管理班级信息(增删改查),管理教师信息(增删改查)以及修改密码等二、项目结构及页面展示
1.项目整体结构
2.学生页面
3.教师页面
4.管理员页面
源码下载
-
学生信息管理系统包括文档代码和个人总结
2011-07-28 16:21:39这个是我大三时期的java课程设计,包括我自己写的各类文档和总结,程序可以运行 用的是access数据库。其他的数据自己可以去数据库里看看 -
一个基于SpringBoot+vue的学生信息管理系统详细设计
2021-11-30 23:23:29主要功能:用户登录、用户管理、角色、菜单、灵活控制、sql监控、日志、老师、学生、班级、课程、选课、打分、成绩、新闻、通知公告、附件查看下载等功能🍅 作者主页:Java李杨勇
🍅 简介:Java领域优质创作者🏆、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库【关注我,都给你】
🍅文末获取源码联系🍅
前言介绍:
在当今信息社会发展中中,计算机科学的飞速发展,大多数学校开始注意办公效率的发展是很关键,对学校的管理起到举足轻重的作用。基于 Internet 网络的信息服务,快速成长为现代学校中一项不可或缺的内容措施。很多校园都已经不满意商务办公管理的缓慢成长方式。学院的需求是一个功能强大的,能提供完善管理,管理信息系统的速度。社会持续向前发展,尤其是大多地方普及计算机,计算机应用已经开始向大容量的数据存储与处理持续发展,产生了以计算机为核心,用数据库作为环境的管理信息现代化系统,事务管理方面用大容量和对各种信息动态管理等方面的综合应用。建立学校学生管理系统能够对学校职员对学生信息的管理更为规范化和合理化。能有效快速记录大量的学生得信息, 能对学生用户能够运用简便的方法快速的查到他们所需要的课程信息,并且能够发布通知等一系列功能,实现了由传统人工转向办公向信息自动化。因此用 Java相关开发工具,精心构建了一个学生信息管理平台,实现了一个简单的管理系统。该系统能实现学生的管理、课程的管理、成绩管理、课程选报情况管理、系统用户的管理;能够实现学生报课程的查询、已选报课程成绩的查询、个人信息查询修改等功能、学生信息管理系统的完成给学校管理人员们和学生提供了很多的便利, 能够更好的提高教学质量,其科学性以及合理性对学校的发展有着举足轻重的作用。
视频演示 :java毕业设计-学生信息管理系统(springboot+vue前后端分离实现).mp4https://www.bilibili.com/video/BV1LQ4y1i7aW
https://www.bilibili.com/video/BV1LQ4y1i7aW
主要功能截图:
用户登录、输入账号密码进行验证和用户角色判断、不同角色不同菜单权限
首页介绍:可以定义成自己喜欢的样子
数据展示:echarts模拟树状图和折线图以及分布图等、可以从后台动态获取数据。
学习组织架构:列表可折叠、添加、修改、删除、查询功能齐全。
用户管理:查看、添加、修改等
用户角色管理:用户绑定角色、角色绑定菜单权限显示、灵活控制
菜单管理:权限控制到按钮级别。
选择菜单类型是目录、菜单或者按钮。
sql监控:阿里的SQL监控API
日志查询:AOP切面日志、绑定到controller层添加注解就行。
学生教师管理:录入数据、添加、修改、删除、查询等
添加老师信息:
学生管理:录入数据、添加、修改、删除、查询等
添加学生信息:
班级管理:添加、修改、删除、查询等
课程管理:添加、修改、删除、查询等
添加修改课程信息:
学生课程选择:学生用户可以选课
课程成绩打分:老师对选课的同学成绩进行打分。
查看我的课程成绩信息:
学校通知公告信息:添加、修改、删除、查询等、利用富文本进行数据上传和显示
学校新闻管理:
图书资料上传下载:
附件查看预览下载:
修改密码:
主要代码展示:
用户登录验证
/** * 登录相关 * * @author lyy */ @RestController public class SysLoginController extends AbstractController { @Autowired private SysUserService sysUserService; @Autowired private SysUserTokenService sysUserTokenService; @Autowired private SysCaptchaService sysCaptchaService; /** * 验证码 */ @GetMapping("captcha.jpg") public void captcha(HttpServletResponse response, String uuid)throws IOException { response.setHeader("Cache-Control", "no-store, no-cache"); response.setContentType("image/jpeg"); //获取图片验证码 BufferedImage image = sysCaptchaService.getCaptcha(uuid); ServletOutputStream out = response.getOutputStream(); ImageIO.write(image, "jpg", out); IOUtils.closeQuietly(out); } /** * 登录 */ @PostMapping("/sys/login") public Map<String, Object> login(@RequestBody SysLoginForm form)throws IOException { boolean captcha = sysCaptchaService.validate(form.getUuid(), form.getCaptcha()); // if(!captcha){ // return R.error("验证码不正确"); // } //用户信息 SysUserEntity user = sysUserService.queryByUserName(form.getUsername()); //账号不存在、密码错误 if(user == null || !user.getPassword().equals(new Sha256Hash(form.getPassword(), user.getSalt()).toHex())) { return R.error("账号或密码不正确"); } //账号锁定 if(user.getStatus() == 0){ return R.error("账号已被锁定,请联系管理员"); } //生成token,并保存到数据库 R r = sysUserTokenService.createToken(user.getUserId()); return r; } /** * 退出 */ @PostMapping("/sys/logout") public R logout() { sysUserTokenService.logout(getUserId()); return R.ok(); }
前端VUE+element表单:
<h3 class="login-title">学生信息管理登录</h3> <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" status-icon> <el-form-item prop="userName"> <el-input v-model="dataForm.userName" placeholder="帐号"></el-input> </el-form-item> <el-form-item prop="password"> <el-input v-model="dataForm.password" type="password" placeholder="密码"></el-input> </el-form-item> <el-form-item prop="captcha"> <el-row :gutter="20"> <el-col :span="14"> <el-input v-model="dataForm.captcha" placeholder="验证码"> </el-input> </el-col> <el-col :span="10" class="login-captcha"> <img :src="captchaPath" @click="getCaptcha()" alt=""> </el-col> </el-row> </el-form-item> <el-form-item> <el-button class="login-btn-submit" type="danger" @click="dataFormSubmit()">登录</el-button> </el-form-item> </el-form>
dataFormSubmit () { this.$refs['dataForm'].validate((valid) => { if (valid) { this.$http({ url: this.$http.adornUrl('/sys/login'), method: 'post', data: this.$http.adornData({ 'username': this.dataForm.userName, 'password': this.dataForm.password, 'uuid': this.dataForm.uuid, 'captcha': this.dataForm.captcha }) }).then(({data}) => { if (data && data.code === 0) { this.$cookie.set('token', data.token) this.$router.replace({ name: 'home' }) } else { this.getCaptcha() this.$message.error(data.msg) } }) } }) },
权限控制:
@Bean("shiroFilter") public ShiroFilterFactoryBean shiroFilter(SecurityManager securityManager) { ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean(); shiroFilter.setSecurityManager(securityManager); //oauth过滤 Map<String, Filter> filters = new HashMap<>(); filters.put("oauth2", new OAuth2Filter()); shiroFilter.setFilters(filters); Map<String, String> filterMap = new LinkedHashMap<>(); filterMap.put("/webjars/**", "anon"); filterMap.put("/druid/**", "anon"); filterMap.put("/app/**", "anon"); filterMap.put("/sys/login", "anon"); filterMap.put("/swagger/**", "anon"); filterMap.put("/v2/api-docs", "anon"); filterMap.put("/swagger-ui.html", "anon"); filterMap.put("/swagger-resources/**", "anon"); filterMap.put("/captcha.jpg", "anon"); filterMap.put("/aaa.txt", "anon"); filterMap.put("/virtuel/**", "anon"); filterMap.put("/**", "oauth2"); shiroFilter.setFilterChainDefinitionMap(filterMap); return shiroFilter; }
数据库连接配置:
spring: datasource: type: com.alibaba.druid.pool.DruidDataSource druid: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/renren_students?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai username: root password: 123456 initial-size: 10 max-active: 100 min-idle: 10 max-wait: 60000 pool-prepared-statements: true max-pool-prepared-statement-per-connection-size: 20 time-between-eviction-runs-millis: 60000 min-evictable-idle-time-millis: 300000 #Oracle需要打开注释 #validation-query: SELECT 1 FROM DUAL test-while-idle: true test-on-borrow: false test-on-return: false stat-view-servlet: enabled: true url-pattern: /druid/* #login-username: admin #login-password: admin filter: stat: log-slow-sql: true slow-sql-millis: 1000 merge-sql: false wall: config: multi-statement-allow: true
数据库表结构文档:
数据库名:renren_students
文档版本:V1.0.0
文档描述:数据库表设计描述
表cla
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
id
int
10
0
N
Y
2
name
varchar
255
0
Y
N
3
class_num
varchar
255
0
Y
N
4
user_nums
varchar
255
0
Y
N
表course
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
id
int
10
0
N
Y
2
name
varchar
255
0
Y
N
3
teacher_num
varchar
255
0
Y
N
4
sk_time
datetime
19
0
Y
N
5
sk_place
varchar
255
0
Y
N
6
weeks_number
varchar
255
0
Y
N
7
kc_type
varchar
255
0
Y
N
8
faculty
varchar
255
0
Y
N
9
score
varchar
255
0
Y
N
10
bz
varchar
255
0
Y
N
表dj_news
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
id
int
10
0
N
Y
2
title
varchar
255
0
Y
N
标题
3
ty
varchar
255
0
Y
N
类型
4
create_time
datetime
19
0
Y
N
发布时间
5
unit
varchar
255
0
Y
N
发布单位
6
num
varchar
255
0
Y
N
发布编号
7
content
mediumtext
16777215
0
Y
N
主要内容
8
create_by
varchar
255
0
Y
N
发布人
9
bz
varchar
255
0
Y
N
备注信息
10
kind
varchar
255
0
Y
N
种类(党建要闻 组织风采 )
表file
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
id
int
10
0
N
Y
2
path
varchar
255
0
Y
N
3
file_name
varchar
255
0
Y
N
4
file_type
varchar
255
0
Y
N
5
classify
varchar
255
0
Y
N
6
create_time
datetime
19
0
Y
N
7
create_by
varchar
255
0
Y
N
表inform
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
id
int
10
0
N
Y
2
title
varchar
255
0
Y
N
3
content
text
65535
0
Y
N
4
create_time
timestamp
19
0
Y
N
CURRENT_TIMESTAMP
5
create_by
varchar
255
0
Y
N
6
bz
varchar
255
0
Y
N
表my_course
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
id
int
10
0
N
Y
2
name
varchar
255
0
Y
N
3
teacher_num
varchar
255
0
Y
N
4
sk_time
datetime
19
0
Y
N
5
sk_place
varchar
255
0
Y
N
6
weeks_number
varchar
255
0
Y
N
7
kc_type
varchar
255
0
Y
N
8
faculty
varchar
255
0
Y
N
9
score
varchar
255
0
Y
N
10
bz
varchar
255
0
Y
N
11
user_id
int
10
0
Y
N
12
user_name
varchar
255
0
Y
N
13
user_score
varchar
255
0
Y
N
表student
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
id
int
10
0
N
Y
2
name
varchar
255
0
Y
N
3
sex
varchar
255
0
Y
N
4
birth_date
datetime
19
0
Y
N
5
ruxue_date
datetime
19
0
Y
N
6
college
varchar
255
0
Y
N
7
bz
varchar
255
0
Y
N
8
cla_name
varchar
255
0
Y
N
表sys_captcha (系统验证码)
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
uuid
char
36
0
N
Y
uuid
2
code
varchar
6
0
N
N
验证码
3
expire_time
datetime
19
0
Y
N
过期时间
表sys_config (系统配置信息表)
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
id
bigint
20
0
N
Y
2
param_key
varchar
50
0
Y
N
key
3
param_value
varchar
2000
0
Y
N
value
4
status
tinyint
4
0
Y
N
1
状态 0:隐藏 1:显示
5
remark
varchar
500
0
Y
N
备注
表sys_dept (部门管理)
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
dept_id
bigint
20
0
N
Y
2
parent_id
bigint
20
0
Y
N
上级部门ID,一级部门为0
3
name
varchar
50
0
Y
N
部门名称
4
order_num
int
10
0
Y
N
排序
5
del_flag
tinyint
4
0
Y
N
0
是否删除 -1:已删除 0:正常
6
remark
varchar
255
0
Y
N
表sys_log (系统日志)
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
id
bigint
20
0
N
Y
2
username
varchar
50
0
Y
N
用户名
3
operation
varchar
50
0
Y
N
用户操作
4
method
varchar
200
0
Y
N
请求方法
5
params
varchar
5000
0
Y
N
请求参数
6
time
bigint
20
0
N
N
执行时长(毫秒)
7
ip
varchar
64
0
Y
N
IP地址
8
create_date
datetime
19
0
Y
N
创建时间
表sys_menu (菜单管理)
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
menu_id
bigint
20
0
N
Y
2
parent_id
bigint
20
0
Y
N
父菜单ID,一级菜单为0
3
name
varchar
50
0
Y
N
菜单名称
4
url
varchar
200
0
Y
N
菜单URL
5
perms
varchar
500
0
Y
N
授权(多个用逗号分隔,如:user:list,user:create)
6
type
int
10
0
Y
N
类型 0:目录 1:菜单 2:按钮
7
icon
varchar
50
0
Y
N
菜单图标
8
order_num
int
10
0
Y
N
排序
表sys_oss (文件上传)
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
id
bigint
20
0
N
Y
2
url
varchar
200
0
Y
N
URL地址
3
create_date
datetime
19
0
Y
N
创建时间
表sys_role (角色)
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
role_id
bigint
20
0
N
Y
2
role_name
varchar
100
0
Y
N
角色名称
3
remark
varchar
100
0
Y
N
备注
4
create_user_id
bigint
20
0
Y
N
创建者ID
5
create_time
datetime
19
0
Y
N
创建时间
6
dept_id
int
10
0
Y
N
表sys_role_dept (角色与部门对应关系)
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
id
bigint
20
0
N
Y
2
role_id
bigint
20
0
Y
N
角色ID
3
dept_id
bigint
20
0
Y
N
部门ID
表sys_role_menu (角色与菜单对应关系)
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
id
bigint
20
0
N
Y
2
role_id
bigint
20
0
Y
N
角色ID
3
menu_id
bigint
20
0
Y
N
菜单ID
表sys_user (系统用户)
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
user_id
bigint
20
0
N
Y
2
username
varchar
50
0
N
N
用户名
3
password
varchar
100
0
Y
N
密码
4
salt
varchar
20
0
Y
N
盐
5
email
varchar
100
0
Y
N
邮箱
6
mobile
varchar
100
0
Y
N
手机号
7
status
tinyint
4
0
Y
N
状态 0:禁用 1:正常
8
create_user_id
bigint
20
0
Y
N
创建者ID
9
create_time
datetime
19
0
Y
N
创建时间
10
dept_id
int
10
0
Y
N
11
stage
varchar
255
0
Y
N
12
parent_name
varchar
255
0
Y
N
部门名称
表sys_user_role (用户与角色对应关系)
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
id
bigint
20
0
N
Y
2
user_id
bigint
20
0
Y
N
用户ID
3
role_id
bigint
20
0
Y
N
角色ID
表sys_user_token (系统用户Token)
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
user_id
bigint
20
0
N
Y
2
token
varchar
100
0
N
N
token
3
expire_time
datetime
19
0
Y
N
过期时间
4
update_time
datetime
19
0
Y
N
更新时间
表tb_user (用户)
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
user_id
bigint
20
0
N
Y
2
username
varchar
50
0
N
N
用户名
3
mobile
varchar
20
0
N
N
手机号
4
password
varchar
64
0
Y
N
密码
5
create_time
datetime
19
0
Y
N
创建时间
表teacher
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
id
int
10
0
N
Y
2
name
varchar
255
0
Y
N
3
sex
varchar
255
0
Y
N
4
birthdate
datetime
19
0
Y
N
出生日期
5
education
varchar
255
0
Y
N
学历
6
position
varchar
255
0
Y
N
7
ruzhi_date
datetime
19
0
Y
N
8
college
varchar
255
0
Y
N
9
bz
varchar
255
0
Y
N
课程设计总结:
经过近期对Java 面向对象程序设计、前端知识以及Java框架的掌握和学习,以及这段时间本教育教学系统的开发,让我更加了解到 Java 学习的重要性。在开发这个系统时,我不仅进行了多次的试验,而且也对系统的功能进行了测试。在论文的实现过程当中,我从Java的认识到熟练运用注入了非常多的努力,到后面可以进行相关技术的运用也感到非常的开心。在这过程当中,我发现Java其实有非常之多的功能可以进行探索。Java同时具有封装性、抽象性、多态性以及继承性。可以对代码进行重复使用以及扩充使用,大幅度提高开发软件时的整体速度和效率。我作为教育技术学的学生,学好Java语言不管对我以后的就业还是现在的知识面的扩增都有着很重要的意义。我学习程序设计的主要目的就是提高自己实际问题的程序解决方案的关键技能和技术, Java 面向对象程序设计是一科实践性相对来说非常比较强的语言了、Springboot、SpringMVC框架的MVC三层架构模式、和框架中遇到的设计模式将数据访问和逻辑操作都集中到组件里面去了 , 增强了系统的复用性和扩展性。使系统的扩展性大大增强。以及前端VUE 、element、jQuery样式的掌握让我对网页的布局、样式调整、字体等让网页效果实现的更加精准。
在实现系统的过程中,我意识到现在个人隐私安全越发重视,学生管理系统应该拥有验证码安全机制以及打印功能。虽然在本次系统的实现中,我没来得及对这些功能进行探索,但本管理系统后期会将添加安全验证机制。
获取源码联系:
大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻微信公众号获取联系方式👇🏻👇🏻👇🏻
打卡 文章 更新 110/ 365天
精彩专栏推荐订阅:在下方专栏👇🏻👇🏻👇🏻👇🏻
-
Python实现学生信息管理系统
2021-09-14 11:48:18用python实现一个学生信息管理系统 实现学生信息管理。 学生信息管理系统包括:录入学生信息,查找学生信息,删除学生信息,修改学生信息,排序,统计学生总人数,显示所有学生信息。 def menum(): print('————...用python实现一个学生信息管理系统 实现学生信息管理。
学生信息管理系统包括:录入学生信息,查找学生信息,删除学生信息,修改学生信息,排序,统计学生总人数,显示所有学生信息。def menum(): print('——————学生信息管理系统——————') print('----------功能菜单--------') print('\t\t\t1.录入学生信息') print('\t\t\t2.查找学生信息') print('\t\t\t3.删除学生信息') print('\t\t\t4.修改学生信息') print('\t\t\t5.排序') print('\t\t\t6.统计学生总人数') print('\t\t\t7.显示所有学生信息') print('\t\t\t0.退出系统') print('-----------------------------')
主模块根据所排序的需求,按照用户输入的数字调用该模块,实现对学生信息的管理。
def main(): while True: menum() chocie = int(input('请选择:')) if chocie in [0,1,2,3,4,5,6,7]: if chocie == 0: answer = input('您确定要退出系统吗?y/n') if answer == 'y' or answer =='Y': print('谢谢您的使用!') break #退出系统 else: continue elif chocie == 1: insert() #录入学生信息 elif chocie == 2: search() #查找学生信息 elif chocie == 3: delete() #删除学生信息 elif chocie == 4: modify() #修改学生信息 elif chocie == 5: sort() #排序 elif chocie == 6: total() #统计学生总人数 elif chocie == 7: show() #显示所有学生信息
当用户输入学生信息时,将学生信息文件保存,如路径下未存在该文本文件,则创建文本文件,如已有该文本文件,则将用户输入的信息保存到文本文件中;
def save(lst): #将录入的学生信息保存 try: stu_txt = open(filename, 'a', encoding='utf-8') #如果该路径下无该文本文件,以追加模式创建文本文件,避免文件写入乱码,增加编码encoding='utf-8' except: stu_txt = open(filename, 'w', encoding='utf-8') #如该路径已有该文件,已写入模式打开文件 for item in lst: stu_txt.write(str(item)+'\n') #将输入的学生信息写入文本中 stu_txt.close()
当用户输入选择1时,调用录入学生信息模块,模块中包含输入学生学号,学生姓名,学生成绩等参数;
ef insert(): #录入学生信息 student_list = [] while True: id = input('请输入ID(如1001):') if not id: break name = input('请输入姓名:') if not name: break try: yuwen = int(input('请输入语文成绩:')) shuxue = int(input('请输入数学成绩:')) yingyu = int(input('请输入英语成绩:')) except: print('输入无效,不是整数类型,请重新输入。') continue #将录入的学生信息保存到字典 student = {'id' : id, 'name' : name, '语文' : yuwen, '数学' : shuxue, '英语' : yingyu} #将学生信息添加到列表中 student_list.append(student) answer = input('是否继续添加?y/n\n') if answer == 'y' or answer == 'Y': continue else: break #调用save()函数 save(student_list) print('学生信息录入完毕!')
当用户搜索学生信息时,需将学生信息显示,如无该学生信息,则打印输出无该学生信息,如有该学生信息,则显示该学生信息;
def show_student(lst): # 如过列表中字符串长度为0,则无学生信息 if len(lst) == 0: print('未查询到学生信息,无数据显示!!!') return #定义标题显示格式,用format()函数通过位置填充字符串 format_title = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}' print(format_title.format('ID', '姓名', '语文成绩', '数学成绩', '英语成绩', '总成绩')) #定义内容的显示格式 format_date = '{:^6}\t{:^12}\t{:^10}\t{:^18}\t{:^12}\t{:^10}' for item in lst: #用get()函数获取字典中对应的值,总成绩需要各科成绩相加,因此需要转换为整数类型 print(format_date.format(item.get('id'), item.get('name'), item.get('语文'), item.get('数学'), item.get('英语'), int(item.get('语文')) + int(item.get('数学')) + int(item.get('英语')) ))
当用户输入2时搜索学生信息,可通过学号和姓名查找该学生信息,如无该学生信息则打印输出未找到该学生信息,如找到该学生信息,则显示该学生信息;
def search(): #查找学生信息 student_query = [] while True: id = '' name = '' if os.path.exists(filename): #判断文件是否存在 mode = input('按ID查找请输入1,按姓名查找请输入2:') if mode == '1': id = input('请输入学生ID') elif mode == '2': name = input('请输入学生姓名') else: print('输入有误,请重新输入!') search() # 以只读模式打开文件 with open(filename, 'r', encoding='utf-8') as rfile: #读取文本文件中的内容 student = rfile.readlines() for item in student: #eval() 函数用来执行一个字符串表达式,并返回表达式的值。 # 将获取到的字符串转为列表 d = dict(eval(item)) if id != '': # 在列表中对比,是否和输入的值相等 if d['id'] == id: student_query.append(d) elif name != '': if d['name'] == name: student_query.append(d) #显示查询结果 show_student(student_query) #清空列表 student_query.clear() answer = input('是否要继续查询?y/n\n') if answer == 'y' or answer == 'Y': continue else: break else: print('暂未保存学生信息!') return
当用户输入6时调用显示所有学生信息模块,显示输出所有学生信息;
def show(): #显示所有学生信息 student_lst = [] if os.path.exists(filename): with open(filename, 'r', encoding='utf-8') as rfile: students = rfile.readlines() for item in students: student_lst.append(eval(item)) if student_lst: show_student(student_lst) else: print('暂未保存数据信息......')
当用户选择3调用删除学生信息模块,删除该学生信息后重新显示所有学生信息
def delete(): #删除学生信息 while True: student_id = input('请输入要删除的学生的ID:') if student_id !='': if os.path.exists(filename): #exists()判断文件是否存在 with open(filename, 'r', encoding='utf-8') as file: student_old = file.readlines() else: student_old = [] flag = False #标记是否删除 if student_id: with open(filename, 'w', encoding='utf-8') as wfile: d = {} for item in student_old: d = dict(eval(item)) #将字符串转成字典 if d['id'] !=student_id: wfile.write(str(d) + '\n') else: flag = True if flag: print(f'id为{student_id}的学生信息已被删除') else: print(f'没有找到ID为{student_id}的学生信息') else: print('无学生信息!') break show() #删除之后要重新显示所有学生信息 answer = input('是否继续删除?y/n\n') if answer == 'y' or answer =='Y': continue else: break
当用户选择4时调用修改学生信息模块,先显示所有学生信息,输入要修改的学生的学号,根据学号找到该学生信息并修改信息;
def modify(): #修改学生信息 show() if os.path.exists(filename): #判断文件是否存在 with open(filename, 'r', encoding='utf-8') as rfile: student_old = rfile.readlines() else: return student_id = input('请输入要修改的学员的ID:') with open(filename, 'w', encoding='utf-8') as wfile: for item in student_old: d = dict(eval(item)) if d['id'] == student_id: print('找到该学生信息,可以修改他的相关信息!') while True: try: d['name'] = input('请输入姓名:') d['语文'] = input('请输入语文成绩:') d['数学'] = input('请输入数学成绩:') d['英语'] = input('请输入英语成绩:') except: print('您输入的信息有误,请重新输入!') else: break wfile.write(str(d) + '\n') print('修改成功!') answer = input('是否继续修改其他学生信息?y/n\n') if answer == 'y' or answer == 'Y': modify()
当用户输入5调用排序模块,先显示所有学生信息,可以按照升序或者降序排列,再通过各科成绩进行排列;
def sort(): #排序 show() if os.path.exists(filename): #判断文件是否存在 with open(filename, 'r', encoding='utf-8') as rfile: student_lst = rfile.readlines() student_new = [] for item in student_lst: d = dict(eval(item)) student_new.append(d) else: return asc_or_desc = input('请选择(0.升序 1.降序):') if asc_or_desc == '0': asc_or_desc_bool = False elif asc_or_desc == '1': asc_or_desc_bool = True else: print('输入错误,请重新输入!') sort() mode = input('请选择排序方式(1.按语文成绩排序 2.按数学成绩排序 3.按英语成绩排序 0.按总成绩排序):') if mode == '1': # lambda是匿名函数,可以免去命名函数的麻烦 # x:xint(x['语文']): x是一个字典,在字典中根据键得到对应的值并转换为int类型,赋值给key # reverse=True/False,根据值确定升序降序 student_new.sort(key=lambda x : int(x['语文']),reverse=asc_or_desc_bool) elif mode == '2': student_new.sort(key=lambda x : int(x['数学']),reverse=asc_or_desc_bool) elif mode == '3': student_new.sort(key=lambda x : int(x['英语']),reverse=asc_or_desc_bool) elif mode == '0': student_new.sort(key=lambda x : int(x['english'])+int(x['python'])+int(x['java']),reverse=asc_or_desc_bool) else: print('您的输入有误,请重新输入!') sort() show_student(student_new)
当用户输入6时调用统计学生总人数模块,结果显示输入共多少名学生;
def total(): #统计学生总人数 if os.path.exists(filename): with open(filename, 'r',encoding='utf-8') as rfile: students = rfile.readlines() if students: print(f'一共有{len(students)}名学生') else: print('还未录入学生信息') else: print('学生信息暂时未保存!')
总结:这个项目主要是对模块的使用,了解了模块化操作的简便性。其中有很多不足,对python基础没有完全的掌握。自己的一个小作业。
-
学生信息管理系统可行性研究报告
2021-11-07 11:16:24学生信息管理系统是校园网络中一个重要的应用系统,它大大改善了学校教学、科研与管理的基础环境,在一定程度上反映出学校管理现代化的水平。信息管理系统提供了强大的学生档案管理功能,方便管理员对学生信息的添加... -
《学生信息管理系统》又一些优化和系统总结
2014-08-11 19:24:44先说几个系统中的小问题: 1.编写代码一定认真仔细,这是首要的,我一个窗体多写了句代码,一个窗体少写了句代码,导致出现了两个大bug,调试了一天,太不值得了 2.用户设置的密码不显示出来 3... -
学生信息管理系统报告
2020-09-17 19:12:58沈 阳 工 程 学 院 课 程 设 计 设计题目: 学生信息管理系统 院 系 信息学院 班级 计算机B191 学生姓名 陈力源 冯帅 学号 30 29 指导教师 关 颖... -
学生信息管理系统需求文档方案
2020-12-30 11:11:31学生信息管理系统 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kYzM8Lck-1609296973395)(media/15804811fc6e5e5b102e14c13ee9c559.png)] 课程名称 需求分析与建模 班级 18... -
学生信息管理系统技术点总结
2014-06-29 22:21:22前几天把学生信息管理系统中所有的代码都看了一遍, -
Android学生信息管理系统
2019-08-19 11:39:13一、Android实现学生信息管理系统之登录与数据库准备 -
学生信息管理系统 C# + SQL
2020-06-10 18:43:11根据对学生信息管理的需要,设计并实现“学生信息管理系统”,该程序主要有由学生登录和管理员登录组成,在登录之前应先注册,学生登录可以完成查询“个人信息”、“成绩信息”、“选课信息”、“修改密码”的操作,... -
python学生信息管理系统心得体会-Python的学习心得
2020-11-01 11:52:03Python的学习心得首先很庆幸自己选到了这门个性化选修课,可能是我个人比较认为这门课程所用的语言很特别很奇妙,老师也很有趣,能让我们更好的了解Python这门课程真正的用途。在学习Python这门课程的这段时间以来,... -
用Python写的学生信息管理系统
2020-09-23 20:06:53学生信息管理系统前言一、框架思考1.添加学生个人信息(包括个人信息、成绩)2.修改、删除学生信息3.查询学生信息4.根据成绩对学生排名二、主要功能函数介绍1.添加函数insert()2.查询函数search()3.删除函数delete()... -
PHP实现简单的学生信息管理系统(web版)
2021-01-28 13:46:55最近写了一个简单的网页版学生信息管理系统,前台用HTML,脚本用到了JavaScript和PHP,数据库用到了MySQL。麻雀虽小,五脏俱全。算是对这些知识的一次总结吧。2.源码工程包括5个php文件:index.php,负责首页展现;... -
基于ASP的学生信息管理系统的设计与实现
2010-05-16 16:27:41为此,切实有效的把学生信息管理系统引入学校教务管理中,对于促进学校管理制度和提高学校教学质量有着显著意义。 本系统采用B/S结构,ASP为开发语言,SQL Server 2000为数据库来进行设计与开发。本论文,简要阐述... -
Jsp&Servlet实现学生信息管理系统,快来学习!!!
2021-06-10 17:07:52本系统基于Internet平台,采用B/S结构模式开发。为了系统的安全及稳定,采用JSP进行开发,数据库采用MySQL。...客户端只要求能够运行IE浏览器5.0以上版本,其中供管理人员使用的微机应能够安装和运行Mysql5.5版。 -
项目总结| 学生信息管理系统
2017-08-01 17:31:50本来以为可以自己做一个学生系统,没想到学生信息系统可以用多种语言来完成,少有用vb语言完成的,多是Java,C 语言的版本,而且复杂的还有什么三层架构,可是我不会呀,所以在自己的幻想中,我浪费了一周的时间,... -
c++学生信息管理系统
2020-02-19 10:33:34c++学生信息管理系统 引言 这是我写的第一篇博客,是关于一个小的c艹课程设计,其中还有许多不足的地方,例如我使用的是UTF-8编码,但输出中文还是会有乱码的情况;还有就是从文件读出和存入是无法控制格式,以及我... -
山东大学Web课程个人项目 —— 学生信息管理系统(SpringBoot + Vue + ElementUI)
2020-12-15 11:21:30这是学校大二上Web课程的个人项目,要求完成一个学生信息管理系统,技术栈不限。本次使用了主流的前后端分离模式进行开发,不过前后端都是个人完成的。 文章目录系列文章目录前言总结 前言 提示:这里可以添加... -
C语言学生成绩管理系统设计 《C语言程序设计》实训报告
2020-12-02 13:37:39《学生成绩管理系统设计》 二、实训目的 (1)掌握结构化程序设计的基本方法,基本掌握面向对象程序设计的基本思路和方法。 (2)掌握C++的基本概念和基础知识。 (3)通过训练能够读懂较为复杂的C++语言源程序... -
学生信息管理系统/辅导员信息管理系统(完整设计流程——代码+设计文档)
2020-08-24 12:16:27信息管理系统 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对... -
基于java的学生信息管理系统(含源文件)
2021-02-27 17:46:45学生信息管理系统要实现的目标是为该校提供全面的学生信息管理的解决方案,以解决传统人工管理方式效率低、保密性差,不利于查找、更新和维护的问题,极大地提高学生信息管理的效率,节约教育经费,以适应学校信息... -
基于MFC——C++课程设计《学生信息管理系统》
2020-12-27 14:58:20系统主页面相应功能总结 前言 随笔之作,希望通过写文章的方式加深自己对于C++知识架构和设计过程中出现的一些Bug的印象,如有错误,多谢指正。 一、系统设计功能: 实现账号登陆界面。(例如:使用用户名和密码... -
学生信息管理系统————总结
2012-07-30 07:42:43刚开始敲学生信息管理系统的时候懵懵懂懂,很多语句都看不懂,实在看不懂的就上网搜,有的搜出答案来了,有的还是找不到答案。于是就先把问题记录下来了,然后一起商量问题,从中也学会了很多知识。 开始敲...