一个教务管理系统的Demo
Last modified:2013-04-06 23:52:58
***********************************************
系统设计说明书:
1.登陆 |
1.1登录(学生、教师、管理员自动区分) |
1.1.1登陆(根据帐号显示对应页面) |
|
2.管理员 |
2.1学生信息管理 |
2.1.1添加学生信息 |
|
2.1.2 删除学生信息 |
|||
2.1.3 查询学生信息 |
2.1.3.1查所有,根据成绩排序(指定科目) |
||
2.1.3.2根据学号查询 |
|||
2.1.3.3根据姓名查询[一批] |
|||
2.4成绩管理 |
2.2.1成绩录入 |
为选修了指定课程号的学生录入成绩 |
|
2.2.2 成绩修改 |
原理同2.2.1都是更新 |
||
2.2.3 成绩查询 |
按照指定学号查询成绩 |
||
2.5管理员信息管理 |
2.3.1密码修改 |
||
2.3课程管理 |
2.4.1添加课程 |
||
2.4.2删除课程 |
|||
2.4.3 修改课程 |
|||
2.4.4 查询课程 |
|||
2.6公告管理 |
2.5.1发布公告 |
||
2.5.2 修改公告 |
|||
2.5.3 删除公告 |
|||
2.5.4 查看公告 |
2.5.4.1按照条件查看 |
||
2.5.4.2根据内容的关键字进行匹配查看 |
|||
2.2教师信息管理(同学生信息管理) |
|||
3.学生 |
3.1个人信息维护 |
3.1.1个人信息的填写和修改 |
|
3.2 成绩查询 |
3.2.1 查询各科成绩 |
||
3.3密码维护 |
3.3.1密码修改 |
||
3.4签到 |
3.4.1实现每天的签到 |
每天签到、签退各一次,多签提示。 |
|
3.4.2实现每天的签退 |
|||
3.5查看公告(同管理员的查看权限) |
3.5.1按照条件查看 |
||
3.5.2根据内容的关键字进行匹配查看 |
|||
3.6 选课管理 |
3.6.1通过课程号选课 |
||
3.6.2取消选课 |
|||
4.教师 |
4.1个人信息维护(同学生) |
||
4.2成绩管理(同管理员) |
|||
4.3密码维护(同管理员) |
|||
4.4签到(同学生) |
|||
5.注销 |
5.1退出登录 |
退出java虚拟机 |
数据库设计:
1,student(id,pass,name,birthday) 主键:id
2,admin(id,pass)主键:id
3,teacher(id,pass,name,birthday)主键:id
4,Course(id,name,tea_id)主键:id
5,sc(cou_id,stu_id,grade) id + id为主键,参照student和course
6,notice(id,title,content,time)id为主键
7,stuMark(id,arrive,leave) stu_id 和arrive为主键;stu_id参照student
8,teaMark(id,arrive,leave) tea_id 和arrive为主键;tea_id参照teacher
相应的sql语句:
CREATE TABLE student (
id varchar2(10),
pass varchar2(10),
name varchar2(10),
birthday date,
constraint s_pk primary key(id)
);
CREATE TABLE admin (
id varchar2(10),
pass varchar2(10),
constraint a_pk primary key(id)
);
CREATE TABLE teacher (
id varchar2(10),
pass varchar2(10),
name varchar2(10),
birthday date,
constraint t_pk primary key(id)
);
CREATE TABLE course (
id varchar2(10),
name varchar2(20),
tea_id varchar2(10),
constraint c_pk primary key(id),
constraint c_fk foreign key(tea_id) references teacher(id)
);
CREATE TABLE sc (
cou_id varchar2(10),
stu_id varchar2(10),
grade number,
constraint sc_pk primary key(cou_id,stu_id),
constraint sc_fk_1 foreign key(cou_id) references course(id),
constraint sc_fk_2 foreign key(stu_id) references student(id)
);
CREATE TABLE notice (
id varchar2(10),
title varchar2(20),
content varchar2(3999),
time date default sysdate,
constraint n_pk primary key(id)
);
CREATE TABLE stuMark (
id varchar2(10),
arrive date ,
leave date ,
constraint sm_pk primary key(id,arrive),
constraint sm_fk foreign key(id) references student(id)
);
CREATE TABLE TeaMark (
id varchar2(10),
arrive date,
leave date,
constraint tm_pk primary key(id,arrive),
constraint tm_fk foreign key(id) references teacher(id)
);
1.登录
1.1 用户登录
1.1.1登陆(根据帐号显示对应页面)
事件描述:用户在登录界面输入用户名和密码,选择登录用户的类型,点击登录,如果登录成功就跳转到相应的页面,登录失败就提示。
分析:
1, 在文本框内输入用户名和密码;选择登录用户的类型;
2, 查找对应的表,通过getById获得password,验证密码是否一致;
3, 一致则登录成功,提示登录成功,并显示相应的管理页面;
备注:
1, student(stu_id,stu_pass,stu_name,stu_birthday )
2, admin(adm_id,adm_pass )
3, getById()
4, LogView.java,AdmView.java, StuView.java
2.管理员
2.1 学生信息管理
2.1.1添加学生信息
事件描述:在textFiled中输入stu_id、stu_pass、stu_name、stu_birthday,点击提交按钮,将数据封装为一个学生对象,在数据库中检索看有没有学号重复的,如果有就提示,如果没有就插入(并提示)。
分析:
1, 填写数据,生日要特殊处理,输入是将出生年月分开获取,然后整体在dao层中转换为date;
2, 在数据库中通过getById进行检索,如果没有检索到,就添加,如果检索到就提示重复。
备注:
1,boolean add();
2.1.2 删除学生信息
事件描述:在textFiled中输入要删除学生的stu_id,点击删除按钮。
分析:
1, 将stu_id通过getById进行获取,如果获取到就删除,并提示删除学生的信息,如果没有找到就提示没有这个学生。
备注:
1,student delete(student);
2.1.3 查询学生信息
2.1.3.1查所有,根据成绩排序(指定科目)
事件描述:点击查询所有,显示所有学生的信息,并且按照成绩排序;
分析:
1,select * from (
select rownum r,ename,sal from (select * from emp order by sal))
where r between 3(star) and 5(end);
2,点击上一页,下一页,实现翻页效果。
备注:
1,List getSub(int star,int end);
2.1.3.2根据学号查询
事件描述:输入学号,通过getById获取相应的学生信息。
分析:student getById(String id);
2.1.3.3根据姓名查询[一批]
事件描述:输入姓名,通过List getByName()获取相应的学生信息
分析:List getByName();
2.2成绩管理
2.2.1成绩录入
事件描述:选择相应的课程编号;为选择相应课程的学生进行分数的录入;
分析:
1, 查找sc表中的选课信息;获取选择了指定课程id的学生;
2, 如果没有对应的课程号就提示。
备注:
1, sc(course_id,stu_id,grade) course_id+stu_id为主键。
2, List getById(String Course_id)
3, Int Update(sc obj);
4, Course(Course_id,course_name,t_name)
2.2.2 成绩修改
事件描述:获得要修改的课程号course_id、学生号stu_id和新的成绩grade;点击更新;
分析:
1, 将要更新的数据封装为一个sc对象。
2, 更新sc对应在数据库中的那个对象。
备注:
1,int update(sc)
2.2.3 成绩查询
事件描述:输入学生的学号,查询所有的成绩信息;
分析:
1,输入学号,List getGrade(String id)
备注:List getGrade(String id)
2.3管理员信息管理
2.3.1密码修改
事件描述:输入原来的密码,输入两次新的密码,点击修改密码按钮。
分析:如果原来的密码与数据库中的一样并且两次输入的密码也相同就更新数据;
备注:
1,admin getbyId(String id);
2,update();
3,control中的全局id;
2.4课程管理
2.4.1添加课程
事件描述:输入Course_id(课程id),course_name(课程名),t_name(授课老师)
分析:getbyid()先查找又没有相同的记录,如果有就提示已经有相同的记录,如果没有就插入add()
2.4.2删除课程
事件描述:输入要删除课程的课程号,点击删除;
分析:course delete(course);
备注:如果course为空就提示没有这个课程;
2.4.3 修改课程
事件描述:获取输入的Course_id(课程id),course_name(课程名),t_name(授课老师),点击修改
分析:int update(course c)
2.4.4 查询课程
事件描述:getbyid(String course_id);
getsub(int starRow ,int endRow);
2.5公告管理
2.5.1 发布公告
事件描述:输入标题title,内容content,时间time;点击发布按钮;
分析:notice(no,title,content,time)
2.5.2 修改公告
事件描述:int update(notice n)
2.5.3 删除公告
事件描述:notice delete(notice n)
2.5.4查看公告
2.5.4.1按照条件查看
事件描述:
基本流:
备选流:
2.5.4.2根据内容的关键字进行匹配查看
事件描述:notice selectbyname(String title);模糊查找
3.学生
3.1个人信息维护
3.1.1个人信息的填写和修改
事件描述:通过全局的id获取登录用户的信息getById(String id);
int updata(student stu)
基本流:
备选流:
3.2 成绩查询
3.2.1 查询各科成绩
事件描述:List getGrade(String id)
基本流:
备选流:
3.3密码维护
3.3.1密码修改
事件描述:
1,student getbyId(String id);
2,boolean update();
3,control中的全局id;
3.4签到
3.4.1实现每天的签到
事件描述:sign_in(stu_id,arrive,leave) stu_id 和arrive为主键;
分析:1,boolean add(signFrom sign)
3.4.2实现每天的签退
事件描述:int update(signFrom sign)
基本流:
备选流:
3.5查看公告(同管理员的查看权限)
3.6选课管理
3.6.1通过课程号选课
事件描述:boolean add(sc sscc)
3.6.2取消选课
事件描述:sc delete(sc)
4.教师(略)
5.注销
5.1退出登录
事件描述:点击退出登录,退出系统。
分析:也就是退出java虚拟机。
相关类的搭建:
domain:
1,Student
2,Admin
3,Teacher
4,Course
5,SC
6,Notice
7,StuMark
8,TeaMark
------------------------------------------------
Dao:
1,IBaseDao
obj getById(String id)
int add();
int delete(obj);
int Update(obj)
public abstract int add(E e);
public abstract int delete(E e);
public abstract int update(E e);
public abstract E getById(String id);
--------------------------------------------------
2,IStuDao:(StuDaoImpl)
student表特有操作:
List getByName();
3,ITeaDao:(TeaDaoImpl)
List getByName();
4,ICouDao:(CouDaoImpl)
List getSub(int star,int end);
5,ISCDao:(SCDaoImpl)
sc表特有操作:
List getGrade(String stuid)
List getSub(int star,int end);查找多条记录是会使用到
6,INoticeDao:(NoticeDaoImpl)
notice表特有操作:
notice selectbyname(String title);模糊查找
7,IStuMarkDao:(StuMarkImpl)
8,ITeaMarkDao:(TeaMarkImpl)
------------------------------------------------
IServer:
1,<E> E Login(E e):登录
2,<E> boolean add(E e):添加对象
3,<E> E delete(E e):删除一个对象
4,<E> list<E> getSub(E e,int star,int end):分页效果,查询所有
5,<E> E getById(E e,id):通过id查询
6,<E> List<E> getByName(E e):根据学生的姓名查询学生(教师,公告<这里要判断一下> );
7,<E> boolean updatePass(E e,String newpass);修改密码;
8,<E> int update(E e);更新一个对象;
相关推荐
一套简单的Java的教务管理系统,可用作模板进行二次开发,所用工具IDEA
vue-koa-iview-demo 使用Vue2.x+Koa2.0构建的一个学校教务管理系统。 前端参考原型 iView Admin
c#基于.netcore6.0+vue3.0+elementUI3.0实现的教务管理系统源码.zip
列举了15个JavaWeb和JavaSE小项目:有SSM的、SpringBoot+Mybatis的、纯JavaSE+JavaFX的。对初学者非常友好,感兴趣的同学拿去学习。 1、汽车租赁管理demo 2、教务信息查询管理demo ...15、旅游管理系统demo
自己做的学生管理系统。系统简洁实用,每句话都是自己写的,特别适合初学者参考。本人负责任地声明:1、该系统绝对是自己写的。2、该系统绝对能运行!(不能运行的话甘愿受骂!)3、请一定要配置好数据源(最重要!...
在学校成绩管理系统中,用户包括学生、教师,管理人员,有学生、教师和管理人员三大角色,教师角色又可细化普通教师和具有管理职能教师,如班主任、年级主任、教务人员等,系统的权限就是系统提供给用户的功能。...
1 新生入学信息管理系统DEMO的处理流程图: 7 4.2 总体结构和外部模块设计: 7 5 编程实现 9 5.1 用户登录界面 9 5.2 用户管理界面 9 5.3 修改密码界面 10 5.4 授课管理界面 10 5.5 教师管理界面 11 5.6 新生信息...
Android应用源码开发Demo,主要用于毕业设计学习。
一个(仿) 一元夺宝主页设计 万年历 下拉刷新,tab切换 事项助手 云笔记 五十音图 五险一金计算 交互操作控件 人脸检测 今日头条 你画我猜 健康菜谱 全屏动画滚动 医药网 卡卡汽车 获取用户 设备信息 同乐居商城:...
图书管理系统.zip 题库:选择选项,切换至下一题.zip 商城.zip 排队取号,map组件使用.zip 今日头条.zip 教务系统.zip 仿微信DEMO.zip 仿网易云音乐.zip 豆瓣电影.zip 电商小程序.zip 电商-拼团 倒计时.zip 滴滴公交...
一个(仿) 一元夺宝主页设计 万年历 下拉刷新,tab切换 东航订机票 事项助手 二维码生成器 云笔记 五十音图 五险一金计算 人脸检测 今日头条 仿微信DEMO 仿找事吧 仿网易云音乐 会议精灵 你画我猜 侧滑布局 健康...
这是个简单的教务系统网站,并且结合了图书订购功能,希望这个小DEMO能对大家学习有帮助 使用技术 IoC容器:spring web框架:springmvc orm框架:mybatis 安全框架:shiro 数据源:dbcp2 日志: sl4j Json: Gson 前端框架:...