JAVA程序设计课程设计报告课题:学生信息管理系统姓名:学号:同组姓名:专业班级:指导教师:设计时间:评阅意见:评定成绩:指导老师签名:年月日-1-目录一、系统描述..............................................................................21、需要实现的功能..............................................................32、设计目的..........................................................................3二、分析与设计..........................................................................31、功能模块划分..................................................................32、数据库结构描述..............................................................43、系统详细设计文档..........................................................64、各个模块的实现方法描述..............................................95、测试数据及期望结果....................................................11三、系统测试............................................................................16四、心得体会............................................................................23五、参考文献............................................................................24六、附录....................................................................................24-2-一、系统描述1、需求实现的功能1.1、录入学生基本信息的功能学生基本信息主要包括:学号、姓名、年龄、出生地、专业、班级总学分,在插入时,如果数据库已经存在该学号,则不能再插入该学号。1.2、修改学生基本信息的功能在管理员模式下,只要在表格中选中某个学生,就可以对该学生信息进行修改。1.3、查询学生基本信息的功能可使用“姓名”对已存有的学生资料进行查询。1.4、删除学生基本信息的功能在管理员模式下,只要选择表格中的某个学生,就可以删除该学生。1.5、用户登陆用不同的登录权限可以进入不同的后台界面,从而实现权限操作。1.6、用户登陆信息设置可以修改用户登陆密码2、设计目的学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差、人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟,-3-其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有手工管理无法比拟的优点。例如:检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学校信息管理的效率,也是一个单位科学化、正规化管理,与世界接轨的重要条件。本系统是将现代化的计算机技术和传统的教学、教务工作相结合,按照学院的工作流程设计完成的。通过一个简化的学生信息管理系统,使学生信息管理工作系统化、规范化、自动化,从而达到提高学生信息管理效率的目的。二、分析与设计1、功能模块划分图1功能模块划分图学生信息管理系统浏览学生信息查询学生信息添加学生信息修改学生信息删除学生信息普通学生(用户)模块班委(管理员)模块浏览学生信息查询学生信息学生管理登陆管理修改登陆密码显示登陆用户-4-2、数据库结构描述2.1、数据库E-R模型图2登录用户管理E-R图图3实体学生E-R图2.2、数据库关系模型——二维表表1学生表(student)字段数据类型说明stuIdnvarchar(30)学号stuNamenvarchar(30)姓名stuSexnvarchar(30)性别stuAgeint年龄stuJgnvarchar(30)籍贯stuZynvarchar(30)专业登录用户管理账号密码职位学生总学分出生地年龄专业性别姓名学号班级-5-classIdnvarchar(30)班号stuSoursenumeric(5,2)总学分图4录入数据后的学生表表2登陆权限表(login)字段数据类型说明userIdnvarchar(30)用户名(账号),即登陆Idpasswordnvarchar(30)登陆密码positionnvarchar(30)职位,如班委,普通学生图5录入数据后的登陆权限表-6-3、系统详细设计文档3.1、系统执行流程图图6系统执行流程图进度条(闪屏)用户登陆登陆验证falsetrue班委(管理员)界面普通学生界面查询添加修改删除查询显示班委(管理员)普通学生(用户)退出退出系统结束结束退出系统truefalsefalsetrue修改用户登陆密码显示登陆用户信息-7-3.2、类的划分表3学生信息查询类类名类的成员属性与方法说明StuQuery.javaJPaneljp1定义一个面板JLabeljp1_jl1定义两个标签JTextFieldjp1_jtf1定义一个文本输入框JButtonjp1_jb1,jp1_jb2,jp1_jb3定义三个按钮JTablejtb定义一个表JScrollPanejsp定义一个滚动面板,用于存放表TableModeltm自定义一个表模型,用于更新表数据publicStuQuery(FrameMain,Stringtitle,booleanmodel)构造方法,通过传递三个参数,实现对话super(Main,title,model)调用父类的构造方法,实现模式对话publicvoidactionPerformed(ActionEventarg0)事件响应方法表4修改学生信息类类名类的成员属性与方法说明UpdateStu.javaJLabeljl1,jl2,jl3,jl4,jl5,jl6,jl7,jl8定义八个标签,用于设置数据库表的字段名JTextFieldjtf1,jtf2,jtf3,jtf4,jtf5,jtf6,jtf7,jtf8定义八个文本框,用于接收表的各字段值JButtonjb1,jb2,jb3定义三个按钮,用于事件响应publicvoidaddView()这是修改学生界面的函数封装publicAddStu(FrameMain,Stringtitle,booleanmodel)构造方法,通过传递三个参数,实现对话super(Main,title,model)调用父类的构造方法,实现模式对话publicUpdateStu(FrameMain,Stringtitle,TableModeltm,introwNo,booleanmodel)因为要修改信息,那么必须要获得所选中的那一行的所有信息,把它们添加到文本框作为默认值,因此构造方法还-8-应添加一个参数即传递一个模型tm,并传递所选中的行号rowpublicvoidactionPerformed(ActionEvente)事件响应方法表5修改管理人员信息类类名类的成员属性与方法说明UpdateLogin.javaJLabeljl1,jl2,jl3定义三个标签,即用户名,密码,职位JTextFieldjtf1,jtf2,jtf3定义三个文本框,对应三个标签的值JButtonjb1,jb2,jb3定义三个按钮,用于事件响应JTablejtb定义一个表格,用于显示登陆用户信息PurViewModelpvm自定义登陆用户信息的数据更新模型publicvoidupView()这是修改账户信息权限的界面函数的封装publicUpdateLogin(FrameMain,Stringtitle,PurViewModelpvm,introwNo,booleanmodel)因为要修改信息,那么必须要获得所选中的那一行的所有信息,把它们添加到文本框作为默认值,因此构造方法还应添加一个参数即传递一个模型tm,并传递所选中的行号rowsuper(Main,title,model)调用父类的构造方法,实现模式对话publicvoidactionPerformed(ActionEvente)事件响应方法表6表模式-更新数据类名类的成员属性与方法说明TableModel.javaVectorrowData,row,column定义表格所需要的集合(表,行,列)ResultSetrs定义一个记录集,用于接收从数据库返回来的记录集SqlConnconn定义一个用于连接数据库的对象,SqlConn是连接数据库的类publicTableModel(String构造方法,并传一个SQL语句,-9-sql)实现查询操作publicStringgetColumnName(intcolumn)这是一个重写的方法,用于设置表的列名publicintgetColumnCount()得到数据模型记录集的列数publicintgetRowCount()得到数据模型记录集的行数publicObjectgetValueAt(intarg0,intarg1)得到数据模型记录集某行某列的值4、各个模块的实现方法描述说明:此处只包含了个人完成的模块的实现方法描述4.1、学生信息查询学生信息查询窗口,采用了基于管理窗口,即主界面的对话框实现,实现方法如下:1)定义查询所需要的面板和组件。2)调用父类的构造方法,实现模式对话。3)进行学生信息查询。4.2、修改管理人员信息修改管理人员信息的界面,通过模式对话,即继承JDialog对话框来实现的,实现方法如下:1)定义修改学生信息的相关组件。2)加载数据库,获得选中的那一行的所有信息。3)把组件添加到窗体。4)调用父类的构造方法,实现模式对话。5)调用修改用户权限信息的界面的方法。6)修改管理人员信息。7)调用数据库连接,并设置操纵更新的sql语句。-10-4.3、修改学生信息修改学生信息的界面,通过模式对话,即继承JDialog对话框来实现,实现方法如下:1)定义修改学生信息的相关组件。2)加载数据库,获得选中的那一行的所有信息。3)把组件添加到窗体。4)调用父类的构造方法,实现模式对话。5)调用修改学生信息的界面的方法。6)修改学生信息。7)完成相应功能。4.4、更新数据这是一个表模型,用于数据更新,实现方法如下:1)定义表格所需要的集合。2)定义一个记录集,用于接收从数据库返回来的记录集。3)定义一个用于连接数据库的对象。4)设置表格的列名。5)创建表的记录集。6)调用数据库连接。7)设置表的列名,并得到表的列数和行数。8)得到某行某列的值。-11-5、测试数据及期望结果5.1、学生信息查询数据测试及期望结果数据测试及期望结果如下图:图7为学生登录后的最初界面;图8为学生查看所有信息界面;