ImageVerifierCode 换一换
格式:DOCX , 页数:55 ,大小:270.04KB ,
资源ID:18519254      下载积分:6 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-18519254.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(学生选课管理信息系统设计与实现.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

学生选课管理信息系统设计与实现.docx

1、学生选课管理信息系统设计与实现完成学生选课管理系统的开发一、课程设计任务完成学生选课管理系统的开发二、需求描述本系统是一个单机版的小型的学生选课管理系统,在本系统中,开发了一个面向管理员、学生和教师这三个对象的教务平台,对学生提供的服务有登录、选课、修改登录密码、和查询成绩这几个服务,所选课程总数不能超过3门;对教师提供的服务有登录、修改登录密码和登录成绩;对管理员提供的服务有登录开设学生和教师帐号、删除学生和教师帐号的服务。三、系统总体设计1.系统架构设计(1)架构:单机(2)运行软件环境: windows XP SP3 、jdk1.6(3)开发环境: 硬件平台: CPU:P41.8GHz

2、内存:256MB以上 软件平台:windows XP SP3 、jdk1.6 操作系统:WindowsXP 数据库:SQL Server 2000、SQLServer SP4补丁 开发工具:Eclipse 3.3 分辨率:1024*7682.功能模块设计各模块功能: 登录界面:登录界面是有帐号,密码两个JTextField,管理员帐号一字母A开头,教师帐号一字母T开头,学生帐号以字母S开头,登录帐号或密码输入错误会弹出相应的提示对话框。 学生信息管理模块:管理员用于添加和删除学生信息的模块。 教师信息管理模块:管理员用于添加和删除教师信息的模块。 教师密码修改模块和学生密码修改模块:管理员添加

3、的用户帐号的初始密码与用户的帐号相同,用户通过密码修改模块可以自己需改密码。 教师录入成绩模块:教师可以浏览选修自己课程的学生的信息并且录入该学生的成绩。 学生选择选修课模块:该模块通过表格的形式将所有课程列出来,学生可以根据个人兴趣选择不同的课程,每个学生选择的课程数目不能超过3门,而且不能重复选课,否则会弹出对话框,提示用户查看已经选择了的课程。 学生查询成绩模块:通过表格的形式将该学生选择了的课程列出来,如果教师有录入成绩,则可以看到自己的课程成绩。 3.数据库设计 (概要设计.)(1)E-R图(2)关系模式 学生(学生学号,学生姓名,教师性别,教师生日,所在班级)教师(教师编号,教师姓

4、名,教师性别,教师生日,教师职称,所在院系)课程(课程号,课程名,学分,选课人数)选课(课程号,学生学号,成绩)授课(课程号,教师编号,上课地点)(3)数据库管理系统:Microsoft SQL Server 2000(4)数据库命名StudentManager(5)数据库表 Logon(登录帐号密码) 主要用来保存用户登录信息字段名数据类型长度是否为空是否主键UserIDchar10不为空主键Passwordrcharr10StudentTable1(学生信息表)主要用来保存学生信息。字段名数据类型长度主键否是否为空描述StudentIDChar10主键不为空学生学号StudentNameC

5、har10不为空学生姓名StudentSexChar2不为空学生性别StudentBirthdayDatetime8学生生日Classchar16所在班级TeacherTable1(教师信息表) 用来储存教师的基本信息字段名数据类型长度主键否是否为空描述TeacherIDChar10主键不为空教师编号TeacherNameChar10不为空教师姓名TeacherSexChar2不为空教师性别TeacherBirthdayDatetime8教师生日Postchar10教师职称Departmentchar20所在院系CourseTable(课程信息表)字段名数据类型长度主键否是否为空描述Cours

6、eIDChar16主键不为空课程编号CourseNameChar16不为空课程名PointChar8不为空学分StuNumberDatetime4不为空选课人数ScoreTable(学生成绩表)用于存储学生成绩字段名数据类型长度是否为空是否主键CourseIDchar16不为空主键StudentIDchar10不为空主键Scoreint4TeachTable(j教师授课表)字段名数据类型长度是否为空是否主键CourseIDchar16不为空主键TeacherIDchar10不为空主键Locationint10(8)数据库账户及权限 (截图)学生账户表教师账户表用户登录表:(9)数据库存储过程:

7、AllCourse:create proc AllCourseasbegin select x.CourseID,x.CourseName,x.Point ,y.TeacherName,y.Post,z.Location,x.StuNumber from Course x,TeacherTable1 y,TeachTable z where x.CourseID=z.CourseID and y.TeacherID=z.TeacherIDendDeleteLogon :create proc DeleteLogon(id char(10)asbegin delete from Logon wh

8、ere UserID=idendDeleteStudent:create proc DeleteStudent(id char(10)asbegin delete from StudentTable1 where StudentID=idendDeleteTeacher :create proc DeleteTeacher(id char(10)asbegin delete from TeacherTable1 where TeacherID=idendInsertLogon :create proc InsertLogon(id char(10)asbegin insert into Log

9、on values(id,id)endInsertStudent :create proc InsertStudent(userid char(10),username char(10),sex char(2),birth datetime,class char(10)asbegininsert into StudentTable1 values(userid ,username,sex,birth,class)endreturnInsertTeacher:create proc InsertTeacher(userid char(10),username char(10),sex char(

10、2),birth datetime,post char(10),department char(10)asbegininsert into TeacherTable1 values(userid ,username,sex,birth,post,department)endreturnIsExistsStu :create proc IsExistsStu(id char(10)asbegin select * from StudentTable1 where StudentID=idendIsExistsTea:create proc IsExistsTea(id char(10)asbeg

11、in select * from Teachertable1 where TeacherID=idendProcAllStu :create proc ProcAllStuasbeginselect * from StudentTable1endProcAllTea create proc ProcAllTeaasbeginselect * from TeacherTable1endProcLogon:create proc ProcLogon(userid char(16),password char(10)asbegin select * from Logon where UserID=u

12、serid and Password=passwordendreturnProcModify:create proc ProcModify(id char(10),password char(16)asbegin update Logon set Password=password where UserID=idendProcStudent :create proc ProcStudent(id char(10)asbegin select * from StudentTable1 where StudentID=idendSelectCourse :create proc SelectCou

13、rse(id char(10),courseid char(16)asbegin insert into ScoreTable values(courseid,id,null)endSelectedCourse: create proc SelectedCourse(id char(10)asbegin select * from ScoreTable where id=StudentIDendSelectedCourseNum:create proc SelectedCourseNum(id char(10)asbegin select COUNT(*) from Scoretable wh

14、ere StudentID=idendSelectedDetail :create proc SelectedDetail(id char(10)asbegin select x.CourseID,x.CourseName,x.Point ,y.TeacherName,y.Post,z.Location,s.Score from Course x,TeacherTable1 y,TeachTable z,ScoreTable s where id=s.StudentID and x.CourseID=z.CourseID and z.TeacherID=y.TeacherID and x.Co

15、urseID=s.CourseIDend4.系统界面设计(1)窗体功能描述 登录界面Logon.java管理员以帐号Admin密码123登录成功进入管理员的信息管理界面,通过点击“学生信息管理”和“教师信息管理”进入不同的管理界面,学生信息管理界面如下:教师信息管理界面如下:以学生帐号(如:帐号:S001001,密码:S001001)登陆成功后进入如下界面,首先显示的 是学生的基本信息:点击“课程列表”按钮进入如下界面根据自己的跟人兴趣选择课程,选择的课程数目不能超过3门否则弹出对话框如下:点击“确定”跳转到已选课程列表。在主界面点击“已选课程”按钮也可以进入下面的界面查看已经选择的课程:以教

16、师帐号(如:帐号:T01001,密码:T01001)登陆成功后进入如下界面,首先显示的 是教师的基本信息,点击“录入成绩”可以通过表格来录入学生的成绩,界面如下图所示:(2)页面/窗体关系结构图四、系统实现技术小结为了方便管理,将数据库的封装分成两部分,数据库资源配置文件和封装数据库操作的类SqlManager.java: 数据库资源配置文件sysConfig.properties:#Sepecify the system type: window or unixsystem-type=windows#specify the databases typedatabase-type=sqlser

17、ver#specify some parametersDBhost=localhostDBport=1433DBname=StudentManagerDBuser=saDBpassword= 封装数据库操作的类:SqlManager.javaimport java.sql.*;import java.util.*;import javax.swing.JOptionPane;public class SqlManager private static SqlManager p=null; private PropertyResourceBundle bundle; private static

18、 String jdbcDriver=null; private static String split=null; private String DBType=null; private String DBhost=localhost; private String DBname=; private String DBport=; private String DBuser=; private String DBpassword=; private Connection Sqlconn=null; private Statement Sqlstmt=null; private String

19、strCon=null; private SqlManager() try bundle=new PropertyResourceBundle(SqlManager.class. getResourceAsStream(/sysConfig.properties); this.DBhost=getString(DBhost); this.DBname=getString(DBname); this.DBport=getString(DBport); this.DBuser=getString(DBuser); this.DBpassword=getString(DBpassword); Str

20、ing system_type=getString(system-type); if(system_type!=null) if(system_type!=null) if(system_type.toLowerCase().equals(widows) split=; else if(system_type.toLowerCase().equals(unix) split=:; String database_type=getString(database-type); this.DBType=database_type; if(database_type!=null) if(databas

21、e_type.toLowerCase().equals(mysql) jdbcDriver=com.mysql.jdbc.Driver; strCon=jdbc:mysql:/+DBhost+:+DBport+/+DBname; else if(database_type.toLowerCase().equals(oracle) jdbcDriver=oracle.jdbc.driver.OracleDriver; strCon=jdbc:oracle:thin:+DBhost+:+DBport+:+DBname; else if(database_type.toLowerCase().equ

22、als(sqlserver) jdbcDriver=com.microsoft.jdbc.sqlserver.SQLServerDriver; strCon=jdbc:microsoft:sqlserver:/+DBhost+:+DBport+;DatabaseName=+DBname; catch(Exception e) e.printStackTrace(); public static SqlManager createInstance() if(p=null) p=new SqlManager(); p.initDB(); return p; private String getSt

23、ring(String s) return this.bundle.getString(s); public void initDB() System.out.println(strCon); System.out.println(jdbcDriver); try Class.forName(jdbcDriver); catch(Exception ex) System.err.println(Cant Find Database Driver.); public void connectDB() try System.out.println(SqlManager:Connecting to

24、database.); Sqlconn=DriverManager.getConnection(strCon,DBuser,DBpassword); Sqlstmt=Sqlconn.createStatement(); catch(SQLException ex) System.err.println(connectDB+ex.getMessage(); System.out.println(SqlManager:Connect to database successful.); public void closeDB() try System.out.println(SqlManager:C

25、lose connection to database.); Sqlstmt.close(); Sqlconn.close(); catch(SQLException ex) System.err.println(closeDB:+ex.getMessage(); System.out.println(Sqlmanager:Close connection successful.); public int executeUpdate(String sql) int ret=0; try ret=Sqlstmt.executeUpdate(sql); catch(SQLException ex)

26、 System.out.println(executeUpdate:+ex.getMessage(); return ret; public ResultSet executeQuery(String sql) ResultSet rs=null; try rs=Sqlstmt.executeQuery(sql); catch(SQLException ex) System.err.println(executeQuery:+ex.getMessage(); return rs; public static void main(String args) SqlManager.createIns

27、tance().connectDB(); SqlManager.createInstance().closeDB(); 五、课程设计体会该系统主要实现了学生选课的功能,这个系统是我独立完成,从需求分析,界面的搭建,到数据库的连接,表格,存储过程和存储过程等的建立,在这段时间的摸索中,我确实学到了很多东西,特别是对以前不太了解的Java Swing组件有了更深刻的了解。比如JTable,对于它的用法我在网上找了很多资料,JTable的建立有各种不同的方法,可以使用DefaultTableModel类来实现,如DefaultTableModel dtm=new DefaultTableModel(

28、new Object ,课程编号,课程名称,学分,任课教师,教师职称,上课地点,以选人数,0);然后再table.setModel(dtm); 或者继承AbstractTableModel类,还有对于如何在JTable中添加Swing组件,原本我是直接新建一个JcheckBox对象直接添加到表格的 单元格里,结果发现只能显示出一串字符串,上网查找后才知道,要用DefaultCellEditor来添加Swing组件,再设置setCellRenderer(new MyTableRenderer() 这是一个实现了TableCellRenderer接口的JCheckBox。TableCellRenderer可以看做是Swing组件的呈

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2