




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库与信息管理课程设计一实验题目:托管培训中心信息管理系统二实验目的数据库与信息管理课程设计是软件工程专业集中实践性环节之一,是计算机学科基础的一门重要的实践教学课程,是学习完数据库概论课程后进行的一次全面的综合练习。其目的在于加深对数据库基础理论和基本知识的理解,掌握使用数据库进行软件设计的基本方法,提高运用数据库解决实际问题的能力,最终实现对于给定的应用要求,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。三实验要求1处理学生报名根据学生报名的科目查询科目信息,如果该科目已经满员,则提醒学员,如果该科目没有满员,则让用户选择相应的教师,并报名登记,交纳学费。2维护科目开设不同的科目,同一门课程根据教师的知名度,向学生收取不同的费用。3安排教室及上课日程根据教师及学生信息确定某个科目的上课地点及时间,并形成学生的课表。4管理帐目收取学费并入帐,催交费用等。四需求分析 托管培训中心信息管理系统,有两类用户:一是培训中心的管理者,可添加、删除、修改、查询学生信息、课程信息、账目信息等,是托管中心信息管理系统的最高权力者。添加、删除、修改时,若遇到类型不匹配或破坏了数据库完整性,应弹出相应的提示对话框,查询时,应尽量使信息一目了然;另一个用户则是学生用户,学生可查询课程信息、教师信息、个人课表和个人账目信息,可选课并自助交费。选课时,让学生选择课程和教师,若该课程人数已满,则提示报名人数已满,若该生已经选择该课程,也提示您已经选择了该课程,力争使软件的操作性友好。为了便于管理,管理员编号为以“00”开头的四位数字,教师编号为以“01”开头的四位数字,学生编号为以“02”开头的四位数字,这样在登陆时,系统就可以通过判断编号类型,调用不用的界面。当有学生注册或添加教师或课程时,系统将自动生成学生号、教师号、课程号,为了防止删除时产生编号的缺失,系统在分配编号时,将分配给新数据当前未使用的最小编号,填补之前删除的数据的空白,这样就能保证编号的连续性。数据字典:1.管理员表 表名:Manager 字段名类型备注MnoVarchar管理员编号MnameVarchar管理员姓名MpasswordVarchar登陆密码2.学生表 表名:Student字段名类型备注SnoVarchar学生编号SnameVarchar学生姓名SpasswordVarchar登陆密码3.教师表 表名:Teacher字段名类型备注TnoVarchar教师编号TnameVarchar教师姓名TlevelVarchar教师等级TcharacterVarchar教师特点4.课程表 表名:Course字段名类型备注CnoVarchar课程号CnameVarchar课程名TnoVarchar教师号Cneed_StudentInt招生人数Class_TimeVarchar学时CcycleVarchar课程周期CaddrVarchar上课地点Camountint学费5.账目表 表名:SC_Amount字段名类型备注CnoVarchar课程号SnoVarchar学生号My_AmountInt交费金额SC_Amount_TimeDate交费时间 五实验设计1.概要结构设计教师教师特长教师等级教师姓名教师号学生姓名学生号密码课程课程名学时上课周期上课地点课程号招收人数教师号费用账目课程号学生号费用交费时间学生选择课程教师教学费用学生姓名学生号密码选择课程课程名学时上课周期上课地点课程号招收人数教师教师特长教师等级教师姓名教师号账目课程号学生号费用教学费用交费时间教师号费用2.逻辑结构设计 管理员表:Manager (Mno,Mname,Mpassword) 3NF 学生表:Student (Sno,Sname,Spassword) 3NF 教师表:Teacher (Tno,Tname,Tlevel,Tcharacter) 3NF 课程表:Course (Cno,Cname,Tno,Cneed_Stu,Cclass_time,Ccycle,Caddr,Camount) 3NF Tno是参照Teacher表的外码 账目表:SC_Amount (Cno,Sno,My_Amount,SC_Amount_Time) 3NF Cno是参照Course表的外码 Sno是参照Student表的外码3物理结构设计管理员表:CREATE TABLE Manager(Mno Varchar(5) primary key, Mname Varchar(20) not null, Mpassword Varchar(20) not null);学生表:CREATE TABLE Student(Sno Varchar(5) primary key, Sname Varchar(20) not null, Spassword Varchar(20) not null);教师表:CREATE TABLE Teacher(Tno Varchar(5) primary key not null, Tname Varchar(20) not null, Tlevel Varchar(10), Tcharacter Varchar(100);课程表:CREATE TABLE Course(Cno Varchar(5) PRIMARY KEY not null, Cname Varchar(20) not null, Tno Varchar(5), Cneed_Stu int, Cclass_time Varchar(10), Ccycle Varchar(10), Caddr Varchar(20), Camount int, FOREIGN KEY(Tno) REFERENCES Teacher(Tno) ON DELETE CASCADE);账目表:CREATE TABLE SC_Amount(Cno Varchar(5), Sno Varchar(5), FOREIGN KEY(Cno) REFERENCES Course(Cno) ON DELETE CASCADE, FOREIGN KEY(Sno) REFERENCES Student(Sno) ON DELETE CASCADE, PRIMARY KEY(Cno,Sno), MyAmount int, SCamount_time DATE);六软件设计与实现登陆与注册界面登陆界面仿照登陆界面,设计简单,一目了然,要求用户输入用户名和密码,界面下方有两个按钮,分别是“登陆”和“注册”。输入用户名和密码后,点击“登陆”按钮时,判断用户名是否存在,若不存在,则弹出提示对话框;若存在,则判断密码是否相符;若相符,进入相应的界面;若不相符,弹出对话框提示密码错误。点击“注册”按钮时,弹出注册界面,要求输入姓名和密码,并要求确认密码;当有未输入项时,弹出对话框提示输入;若两次输入的密码不一致,弹出对话框提示重新输入;提交成功后,弹出对话框告知学生号。学生注册时,系统将自动生成学生号,为了防止删除时产生编号的缺失,不便于管理,系统在分配编号时,将分配给新数据当前未使用的最小编号,如:原有0201,0202,0203,0204四个学生,管理员将0203号学生信息删除后,再有新学生来注册时,系统分配给他的学生号就是0203号,而不是0205号,这样能填补之前删除的编号缺失,保证编号的连续性。分配学生号的代码如下:ResultSet rsno;String b;rsno=sql.executeQuery(SELECT Sno FROM Student GROUP BY Sno); rsno.last(); n=rsno.getRow(); rsno.beforeFirst(); int k=0; b = new Stringn; while(rsno.next() bk=rsno.getString(1);k+; int sno=0, i; for(i=0;in;i+) if(Integer.parseInt(bi)!= 200+i+1) sno=200+i+1; break; if(i=n) sno=200+n+1;登陆和注册界面如下:管理员界面登陆到管理员界面后,窗口标题为“欢迎你,管理员某某”。管理员界面是一个选项卡窗格,分“添加”“删除”“查询”“更新”四个选项卡,每个选项卡上有不同的图片背景和对应功能的按钮,点击按钮时会弹出不同的功能窗口,完成各种管理活动,主界面如下: 添加时,要求输入该实体的主码作为索引,弹出一个只有一行空白区表格的窗口,输入要添加的信息后,点击“确定”按钮,即可提交,领取相应的编号,若失败,弹出对话框提示添加失败;删除时,要求输入该实体的主码作为索引,点击“确定”按钮,在下方显示要删除的信息,再点击“删除”按钮,即可删除;若该实体不存在,则弹出对话框提示;查询时,弹出带有表格的窗体,显示要查询的相应信息;更新时,要求输入该实体的主码作为索引,点击“确定”按钮,在下方显示要修改的信息,再点击“修改”按钮,即可修改;修改成功弹出对话框提示,修改失败弹出对话框提示;若该实体不存在,弹出对话框提示;由于添加、删除、修改窗体皆是通过表格组件实现的,所以界面在此处不一一举例,尽给出添加课程和查询欠费学生信息的界面:3学生界面当软件检测到用户名为学生编号时,则自动进入学生登陆界面,窗口标题为“欢迎你,某某同学”。当该生有未交费或费用已到期的情况时,将弹出对话框提示,该功能是通过存储过程实现的:create or replace procedure Warning(PCno in Varchar2, PSno in Varchar2, time out number)as PMyAmount int; PSCamount_Time Date;BEGIN Select MyAmount,SCamount_Time into PMyAmount,PSCamount_Time From SC_Amount Where Cno=PCno and Sno=PSno; if PSCamount_Time IS null then time:=30; else select trunc(sysdate)-trunc(PSCamount_Time) into time from dual; end if;commit;end;该存储过程传入两个参数,课程号和学生号,返回一个参数,距上次交费的课程开始日期的天数,如果这个天数大于28(一般托管中心都是四周为一个月的课程),则提示“请及时交费” ,存储过程调用代码如下:CallableStatement proc = null;for(int i=0;i28) rs=sql.executeQuery(SELECT Cname FROM Course Where Cno=+bi+); rs.next();JOptionPane.showMessageDialog(button1, 请及时交费:+rs.getString(1)+课(课程号为+bi+),交费通知,JOptionPane.WARNING_MESSAGE); 学生登陆界面有两个菜单,分别是“查询”和“管理”,管理则有一个菜单项,“注销课程”,窗口中间有两个按钮,分别为“选择课程”和“自助交费”,点击“选择课程”,将弹出选课界面,学生主界面如下图: 选课界面:在制作这个界面时,我真是下了不少的功夫,因为它要与数据库动态连接,前面的JCheckBox是通过查询得到的,而后面的JComboBox是根据前面的JCheckBox的值查询课程表得到的,所以过程有些复杂,一方面想要代码简单,另一方面又要考虑数据库在同一时刻有允许的最大连接数目,而通过实践发现同时对两个ResultSet进行操作就会出错,所以最终只能将查询到的科目存在数组中,再供它用。我所采用的是盒式布局,科目是可以添加的,所以在查询科目个数之前无法确定盒子的个数,好在java能够用变量定义数组,于是我创建了一个盒子数组,终于实现如图效果。可随之而来又产生了一个问题,随着科目的增加,窗体大小不够显示所有组件了,所以我又想到可以将这些盒子添加到一个滚动面板里,最后终于得到我想要的效果了。还有一个小插曲,就是由于我添加了背景图片,没加入滚动面板时,图片能够显示,加入滚动面板后,图片就怎么都不显示了,即使我将滚动面板pane设为透明:pane.setOpaque(false);图片依然无法正确显示,后来通过上网查找解决方法,了解到要想让滚动面板透明,光设置面板透明是不够的,同时还要要设pane.getViewport().setOpaque(false);滚动条也要设置成透明:pane.getVerticalScrollBar().setOpaque(false); 最终得到理想的效果。部分代码如下:JCheckBox chbox;JComboBox cbox;/查询Cname并将科目名存入JCheckBox类型的chbox数组的代码略/通过JCheckBox类型的chbox数组中的Cname值获得相应的教师信息,并存入JComboBox类型的cbox数组中,代码如下:ResultSet rs2;String str; for(j=0;jn;j+) rs2=sql.executeQuery(SELECT Tno FROM Course WHERE Cname = + chboxj.getText() + ORDER BY Tno); rs2.last(); m=rs2.getRow(); rs
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2025年标准)社工兼职合同协议书
- 2025年村级农家乐招聘统计员面试题集及答题思路解析
- (2025年标准)通奷协议书
- 2025年猫咪借育协议书
- (2025年标准)商户消防协议书
- (2025年标准)校园购房协议书
- 2025年新投标委托代理协议书
- 2025年特殊疾病校方协议书
- 歌厅买卖合同(标准版)
- 撕劳动合同(标准版)
- 工业厂房租赁管理办法
- 辽宁动物检疫管理办法
- 肺癌免疫治疗病例分享
- 2025年汽车智能驾驶技术及产业发展白皮书-清华大学
- 2025云南师范大学辅导员考试题库
- 2025年国考行测试题及答案解析
- 财务岗位安全培训课件
- 2025年贵州省中考语文试卷真题(含答案)
- 2025至2030中国电容膜片真空计行业发展趋势分析与未来投资战略咨询研究报告
- 社工儿童沟通技巧课件
- 2025年甘肃省高考物理试卷(含答案)
评论
0/150
提交评论