《学生信息管理系统课程设计报告(共31页).doc》由会员分享,可在线阅读,更多相关《学生信息管理系统课程设计报告(共31页).doc(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上西安科技大学数据库原理及应用课程设计报告 题目: 学生信息管理系统 学院: 计算机科学与技术学院 专业及班级:计算机科学与技术专业1303班 学号: 姓名: 杨鑫磊、唐婷婷、朱媛 日期: 2015年7月 专心-专注-专业目 录1课程设计目的及意义12设计内容及人员分工13 需求分析 23.1 需求陈述23.2 功能需求23.3 数据需求23.4 其它需求34 数据库设计34.1概念结构设计54.2逻辑结构设计64.3数据表结构设计75 系统功能设计9 5.1 系统功能95.2操作流程106 系统实现116.1 开发环境 116.2 数据库的创建与连接技术116.3 主
2、要功能的运行结果及代码177 总结 268 参考文献 261课程设计目的及意义 通过本课程设计,培养具有C/S模式的数据库应用软件系统的设计和开发能力;熟练掌握SQL Server数据库的使用,熟练掌握使用VC+6.0或其它开发工具开发数据库应用的能力;为毕业设计打下坚实的基础。根据所学的数据库原理与程序设计的知识, 通过对一个实际问题的分析,设计与实现,将原理与应用相结合,使我们学会如何把书本上学到的知识用于解决实际问题,培养我们的动手能力;另一方面,使我们能深入理解和灵活掌握教学内容。 学生信息管理系统的开发目的是管理全校学生的各种信息,方便学生信息的查询。系统的使用对象是学生管理部门,如
3、教务处工作人员、校院系领导、班主任、教师等。本章所开发的系统的主要使用对象是教务处。2设计内容及人员分工设计内容及任务完成人员系统功能结构设计杨鑫磊系统功能流程设计唐婷婷数据库设计共同完成主窗体设计朱媛各操作模块设计唐婷婷、杨鑫磊代码编写及测试共同完成报告书写共同完成表2.1 设计内容及任务划分表3 需求分析3.1需求陈述 针对越来越多的院校的学生信息管理的工作量越来越大,加之数据也越来越多,数据与数据之间的关系也越来越复杂,人工处理非常困难。学生信息管理系统能够利用计算机快速的计算能力与大容量存储能力,通过合理使用Sql Sever数据库的优点,从而能够在数据的存储与处理方面更加便捷。从而大
4、大减少学生工作管理人员的工作量,提升工作效率,使数据的存储具有一定的结构性、安全性,从而保证学生信息的正确性与完整性。3.2功能需求 本系统主要实现了以下功能:l 学生信息录入l 学生成绩录入l 程序等级设置l 学生违规处理l 学生成绩排行l 学生信息查询l 学生成绩查询、打印3.3数据需求 用户信息:(用户名、登录密码) 教师信息:(教师编号、姓名、性别、科室、学历、级别) 科目信息:(科目名称、科目代码) 学生信息:(学生编号、姓名、性别、年龄、地址、联系电话、班级) 学生违规信息:(学生编号、违规内容、处理结果、备注、违规时间) 科室信息:(科室名称) 学生考试评定信息:(成绩等级、等级
5、分数上限、等级分数下限) 学生考试种类信息:(考试类别)学生成绩信息:(学生编号、考试科目、考试成绩、考试类别、考试日期) 班级信息:(班级名称、班主任)班级科目信息:(班级名称、课程代码)3.4 其它需求安全性与完整性方面的要求:安全性:为了保证学生信息的安全性,采取了以下的措施:一、采用Sql Sever2008R2数据库管理系统对学生的相关信息进行有结构化有关联性地存储,保证了数据的不易丢失性,减少了因不自然情况所造成的数据丢失等事件的发生概率;二、在应用程序的开发阶段,为了保证学生信息数据的安全性,系统设置了登录系统,只有具有正确账号密码及授权账号才能够正常登录,并通过系统对数据库中的
6、学生信息进行增删改查等多种操作。完整性:主要是在删除学生信息和课程信息的时候如果在选课信息中存在选课成绩信息的话,那么就不能直接进行相应信息的删除,在开发中要给出相应的信息提示,在进行各种添加、和更新操作之前也有进行相应的判断,如果原来的信息中已经有了所要添加的该条信息,怎不能添添加,并给出相应的提示,如果不存在所要更新的信息的时候也不能进行更新,并给出相应的提示。具体的完整性约束在编程中具体给出。4 数据库设计4.1 概念结构设计 图4.1 用户实体E-R图图4.2 学生信息实体E-R图图4.3 学生违规信息实体E-R图图4.4 学生成绩信息实体E-R图图4.5 学科信息实体E-R图图4.6
7、 科室信息实体E-R图图4.7 考试信息实体E-R图图4.8 教师信息实体E-R图图4.9 班级信息实体E-R图图4.10 班级科目信息实体E-R图4.2 逻辑结构设计 科室 1 所属 n 教师 1 所属 1 班级 1 学生 m 选修 n 科目111 处分 考试nn违规记录 成绩图4.11 关系E-R图4.3 数据表结构设计列名数据类型允许NULL值主键描述classnameVarchar(50)否否班级名称codeVarchar(50)否是科目代码表4.1 tb_class_subject 班级科目信息表列名数据类型允许NULL值主键描述classnameVarchar(50)否是班级名称t
8、eacherVarchar(50)否否班主任表4.2 tb_classinfo 班级信息表列名数据类型允许NULL值主键描述studentVarchar(50)否否学生编号codeVarchar(50)否否课程代码gradefloat否否考试成绩kindVarchar(50)否否考试类别examdatedatetime否否考试日期表4.3 tb_examinfo_sub 学生成绩信息表列名数据类型允许NULL值主键描述kindVarchar(50)否是考试类别表4.4 tb_examkinds 学生考试种类信息表列名数据类型允许NULL值主键描述Grade_levelVarchar(50)否是
9、优秀等级Up_gradefloat否否登记分数上限Low_gradefloat否否登记分数下限 表4.5 t b_gradelevel 学生考试评定信息表列名数据类型允许NULL值主键描述officeVarchar(50)否是科室名称表4.6 tb_office 科室信息表列名数据类型允许NULL值主键描述studentidVarchar(50)否是学生编号breakcontentVarchar(50)否否违规内容handleresultVarchar(50)否否处理结果memeoVarchar(50)是否备注breaktimesmalldatetime否否违规时间表4.7 tb_regbre
10、akinfo 学生违规信息表列名数据类型允许NULL值主键描述studentidVarchar(50)否是学生编号studentnameVarchar(50)否否姓名sexVarchar(50)否否性别agefloat否否年龄addrVarchar(50)是否地址phoneVarchar(50)是否联系电话classVarchar(50)否否班级表4.8 tb_studentinfo 学生信息表列名数据类型允许NULL值主键描述subjectVarchar(50)否否科目名称codeVarchar(50)否是科目代码表4.9 tb_subject 科目信息表列名数据类型允许NULL值主键描述t
11、eacheridVarchar(50)否是教师编号teachernameVarchar(50)否否姓名sexVarchar(50)否否性别officeVarchar(50)否否科室knowledgeVarchar(50)否否学历levelVarchar(50)是否级别表4.10 tb-teacher 教师信息表列名数据类型允许NULL值主键描述usernameVarchar(50)是是用户名pwdVarchar(50)否否密码表4.11 tb_user 用户信息表5 系统功能设计5.1系统功能学生信息管理系统 基础信息管理模块 系统管理模块科 科 教 班 班 考 用 退 室 目 师 级 级 试
12、 户 出 信 信 信 信 科 类 管 系息 息 息 息 目 别 理 统 管 管 管 管 设 设 理 理 理 理 置 置 学生管理模块 查询管理模块 学 学 成 学 学 学 学 生 生 绩 生 生 生 生 信 信 等 违 基 成 违 息 息 级 规 础 绩 规 管 管 设 处 信 报 查 理 理 置 理 息 表 询 查 询图5.1系统结构图5.2操作流程 用户 否 登录 错误提示 是 系统主界面 管理员 基本信息录入 科室信息 科目信息 教师信息 班级信息 班级科目信息 考试类别设置 学生信息录入 学生成绩录入 学生违规处理 查询功能 学生基本信息查询 学生成绩报表 学生违规查询 图5.2操作流
13、程图6 系统实现6.1 系统的开发环境开发工具:VC+6.0企业版数据库管理系统:Sql Sever 2008R2电脑系统:Win7旗舰版6.2 数据库创建过程及其连接创建过程流程:图6.1 右键点击数据库-创建新数据库图6.2 创建数据库图6.3 创建表图6.4 建成的表数据库连接采用ODBC连接驱动,建立过程如下:图6.5 搜索 数据源(ODBC)图6.6 添加新用户数据源图6.7 选择数据源的驱动程序图6.8 创建新数据源图6.8 默认的验证连接方式图6.9 选择需要连接的数据库tb_student图6.10 测试数据源,测试成功则配置成功6.3 系统主要功能实现及代码图6.11登陆及错
14、误提示图6.12 主界面图6.13 主界面加载菜单的方式图6.14 教师信息管理图6.14 科室信息管理图6.15 考试类别设置图 6.16 班级信息管理图6.17 班级科目设置图6.18 科目信息管理图6.19 学生信息管理图6.20 学生成绩录入图6.21 学生违规信息录入图6.22 学生信息查询图6.23 成绩查询及等级设置图6.24 学生违规查询图6.25 用户管理图6.26 退出系统/登陆void CLogin:OnOK() / TODO: Add extra validation hereUpdateData(TRUE);if(m_Name.IsEmpty() | m_PassWo
15、rd.IsEmpty()MessageBox(用户名或密码不能为空);return;m_Num+;CString sql;sql.Format(select * from tb_user where username = %s and pwd = %s,m_Name,m_PassWord);m_LoginSet = new CLoginSet(&(CMystudentsysApp*)AfxGetApp()-m_DB);if(!m_LoginSet-Open(AFX_DB_USE_DEFAULT_TYPE,sql)AfxMessageBox(tb_studentinfo 表打开失败!);if(m
16、_LoginSet-GetRecordCount()!=0)CDialog:OnOK(); /登陆成功,打开主界面elseif(m_Num = 3)MessageBox(密码3次不正确);CDialog:OnCancel();elseMessageBox(用户名或密码不正确);m_Name = ;m_PassWord = ;UpdateData(FALSE);if(m_LoginSet-IsOpen()m_LoginSet-Close();delete m_LoginSet; /数据的录入或显示BOOL CStudentinfo_finddlg:OnInitDialog() CDialog:O
17、nInitDialog();/ TODO: Add extra initialization herem_List.InsertColumn(0,学生姓名);m_List.InsertColumn(1,性别);m_List.InsertColumn(2,年龄);m_List.InsertColumn(3,住址);m_List.InsertColumn(4,电话);m_List.InsertColumn(5,班级);RECT rect;m_List.GetWindowRect(&rect);int wid=rect.right-rect.left;m_List.SetColumnWidth(0,
18、wid/6);m_List.SetColumnWidth(1,wid/6); m_List.SetColumnWidth(2,wid/6);m_List.SetColumnWidth(3,wid/6);m_List.SetColumnWidth(4,wid/6);m_List.SetColumnWidth(5,wid/6);m_List.SetExtendedStyle(LVS_EX_FULLROWSELECT);return TRUE;void CStudentinfo_finddlg:Onfindstudentinfo() / TODO: Add your control notifica
19、tion handler code hereUpdateData(TRUE);CString sqlStr;sqlStr=SELECT * FROM tb_studentinfo WHERE studentid=;sqlStr+=m_studentid;sqlStr+=;mystudentset = new CStudentinfoset(&(CMystudentsysApp*)AfxGetApp()-m_DB);if(!mystudentset-Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr)AfxMessageBox(tb_studentinfo表打开失败!);Di
20、splayRecord();if(mystudentset-IsOpen()mystudentset-Close();delete mystudentset;bool CStudentinfo_finddlg:DisplayRecord()/*if(mystudentset-IsBOF()mystudentset-MoveNext();elseif(mystudentset-IsEOF()mystudentset-MovePrev();*/m_List.DeleteAllItems();CString addr,sage,sclass;CString name,phone,sex;CStrin
21、g date;int age; name = mystudentset-m_studentname;addr = mystudentset-m_addr;age = mystudentset-m_age;sclass = mystudentset-m_class;phone = mystudentset-m_phone; sex = mystudentset-m_sex;sage.Format(%d,age);m_List.InsertItem(0,name.GetBuffer(50); m_List.SetItemText(0,1,sex.GetBuffer(50);m_List.SetIt
22、emText(0,2,sage.GetBuffer(50);m_List.SetItemText(0,3,addr.GetBuffer(50); m_List.SetItemText(0,4,phone.GetBuffer(50);m_List.SetItemText(0,5,sclass.GetBuffer(50);UpdateData(FALSE);return TRUE;7 总结 杨鑫磊:进一步深入理解数据库设计的整个过程,该学生信息管理系统的需求分析、数据库概念结构设计有关内容等。掌握使用前台程序设计技术VC+和Sql Server结合设计C/S结构的管理信息系统。综合练习了Sql S
23、erver的使用和数据库得管理技术。综合熟悉并练习了SQL语言在编程中的使用。综合训练编程能力。认识系统,取得系统需求分析,更重要得是在编程方面提高了实现目标代码得能力及调试代码得能力。 本系统主要实现了对学生相关信息的录入、查询、删除、浏览功能,但是未能实现相关信息的更改功能,这一点是本系统需要改进的。而且,本系统没有使用帮助这一功能,所以在后期的完善中,可以加入相关的操作帮助文档,更便于用户的使用。 朱媛:通过这次课程设计发现这其中需要的很多知识我们没有接触过,上网查找资料的时候发现我们以前所学到的仅仅是皮毛,还有很多需要我们掌握的东西我们根本不知道。同时也发现有很多已经学过的东西我们没有
24、理解到位,不能灵活运用于实际,不能很好的用来解决问题,这就需要自己不断的大量的实践,通过不断的自学,不断地发现问题,思考问题,进而解决问题。在这个过程中我们将深刻理解所学知识,同时也可以学到不少很实用的东西。 唐婷婷:通过本次课程设计,我觉得不管做什么,始终都要相信自己。不要畏惧,不要怕遇到困难,什么都要去尝试,有些你开始认为很难的事在你尝试之后你可能会发现原来它并没有你你想象的那么难。如果没有自信,没有目标,没有信心就很难把事情做好,当其他人都在迷茫的时候,自己一定要坚信目标。从学习这个专业,到以后从事这方面的工作都需要不断地去学习去实践,这次实践可以给我们敲一个警钟,我们面临毕业,面临择业
25、,需要这些实践经验,在困难面前要勇于尝试,这是这次课程设计给我的最大感想!8 参考文献1. 刘乃琦. Visual C+应用开发与实践.北京.人民邮电出版社, 2012.12 : 3343712. 戴霄 陈学武李文勇 公交IC 卡信息处理的数据挖掘技术研究.交通与计算机2006,1 第24 卷(总第128 期)3.王晟 马里杰.SQL SERVER 数据库开发经典案例解析.北京.清华大学出版社,2006.165230 沁园春雪北国风光, 千里冰封, 万里雪飘。望长城内外,惟余莽莽;大河上下,顿失滔滔。山舞银蛇, 原驰蜡象, 欲与天公试比高。须晴日, 看红装素裹,分外妖娆。江山如此多娇, 引无数英雄竞折腰。惜秦皇汉武,略输文采;唐宗宋祖,稍逊风骚。一代天骄,成吉思汗,只识弯弓射大雕。俱往矣,数风流人物, 还看今朝。 克