一个教务管理系统的Demo

一个教务管理系统的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对应在数据库中的那个对象。

备注:

1int update(sc)

 

2.2.3 成绩查询

事件描述:输入学生的学号,查询所有的成绩信息;

分析:

1,输入学号,List getGradeString id

备注:List getGradeString id

 

2.3管理员信息管理

2.3.1密码修改

事件描述:输入原来的密码,输入两次新的密码,点击修改密码按钮。

分析:如果原来的密码与数据库中的一样并且两次输入的密码也相同就更新数据;

备注:

1,admin getbyId(String id);

2,update();

3control中的全局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 getGradeString id

基本流:

备选流:

 

3.3密码维护

3.3.1密码修改

事件描述:

1,student getbyId(String id);

2,boolean update();

3control中的全局id

 

3.4签到

3.4.1实现每天的签到

事件描述:sign_in(stu_id,arrive,leave) stu_id arrive为主键;

分析:1boolean 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);更新一个对象;

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值