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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据库课程设计报告修改稿第二组.docx

1、数据库课程设计报告修改稿第二组 哈 密 广播电视大学 计算机信息管理 专业数据库应用课程设计报告学生通讯录管理系统学 号 1165001450580姓 名 温轩指 导 教 师 涂皆成设计完成日期 2012年5月30日一、系统需求及功能说明现要求设计一个“学生通讯录管理系统”,用于管理一个班级、专业系或学校的学生基本信息及其通讯录信息。每个进入系统的用户必须经过登录才能访问,为安全起见,系统不设游客这种权限,必须拥有用户名(学生用学号作为用户名)和密码才能进入。在系统中只有两种权限,即系统管理员和一般学生用户。一般的 学生用户只能查询其他同学的通讯信息,不能对其他同学的记录信息进行修改和删除,也

2、可以修改自己的登录信息(主要是密码)和自己的通讯信息;而系统管理员拥有几乎所有的操作权力,即可以插入、修改、查询所有学生的信息和删除其他学生的记录等功能,但不能删除自己的登录信息。学生或管理员登录时采用无差别登录,然后在数据库中设置权限,在操作时先从数据库中读取用户的权限,然后根据权限赋予相应的操作权力。二、数据库设计说明对于比较复杂的系统,其数据库由比较多的表所组成,每个表可能会涉及到比较多的数据项,而各个表之间又可能存在较复杂的关系。我们所设计的“学生通讯录管理系统”是比较简单的演示系统,只有两个表,一个是用户的“密码表”,另一个是“学生通讯信息表”,两个表之间通过学号进行关联。二、1 登

3、录密码表“密码表”中保存有用户的登录名、密码和权限。我们用admin”表管理员权限,用“Student”表示一般学生装的权限。学生的用户名固定为学号,其初始密码与用户名相同,正确登录后,学生装可修改其默认的密码。管理员用户是特殊设立的用户,可以是学生班长,也可以是学生装之一外的管理员,如教员、辅导员或班主任老师等担当。二、2学生通讯信息表“学生通讯信息表”中记录了学生的基本信息及其通讯信息,包括的数据项有学号、姓名、性别、出生日期、所学专业、联系电话、QQ号和Email等。下面我们进入数据库设计中的概念设计、逻辑设计阶段和实现阶段。1、 概念设计 ( 图 1 )( 图 2 ) 附( 图 1、图

4、2 )学生通讯管理系统E-R图 2、 逻辑设计根据ER图转换成基本表的思想,即每个实体转换成基本表,多对多的联系转换成基本表,而1对多的联系根据实际需要可以转换或不转换为基本表,按照附(图 1、图 2)所示的ER图,该系统的基本表应为2个,分别为:密码表(用户名、密码、权限)学生通讯信息表(学号、姓名、性别、出生日期、所学专业、联系电话、QQ号、Email)3、 建立数据库和基本表在SQL中建立空的数据库“学生通讯管理系统”,然后建立如上所述的基本表,各个基本表的设计视图如附(图 3、图4)所示。(图3)密码表设计视图(图4)学生表设计视图三、系统的功能模块设计1、用户登录所有用户必须经过登录

5、验证才能进入系统。前面讲到,学生的用户名固定为学号,其初始密码与用户名(学号)相同,正确登录后,可修改其默认密码。管理员用户是建表时特殊设计的用户,由设计人员告诉其用户名和密码。2、用户密码修改正确登录后的用户可以修改自己的登录密码,为安全起见,需要用户给出正确的原始密码,并确认新密码才能修改成功。管理员用户可以修改所有用户的登录密码信息。3、用户信息查询正确登录后的管理员或学生用户可根据学号、姓名、和所在专业对学生有通讯信息表进行查询,通过结果窗口得到查询的结果信息。4、 插入用户记录管理员用户可插入学生基本信息,每个学生至少要有学号和姓名等基本信息,每插入一个学生基本信息记录,需要由系统同

6、时在用户登录表中插入一条登录信息,并给定初始的登录用户名、密码和权限。学生记录中的其 信息可由学生自己登录系统后进行添加或修改。5、5、删除用户记录 对于少数由于特殊原因退学,转学或开除的学生记录,可由管理员将其记录进行删除,同时也要删除其登录用的登录记录。6、 修改用户记录 学生用户可以修改本人的基本通讯信息,而管理员用户可以修改所有学生的基本信息数据,修改完成后存入数据表。(图5)系统模块功能图四、构建用户登录模块 在正式进入管理系统之前,需要一个登录验证模块,用户通过在编辑框中输入用户名和密码,按“登录”按钮,经程序验证(数据库的登录密码表中有这样的用户名和密码)后,进入系统的主模块,完

7、成相应的功能。1、构建登录对话框界面在前面建立的“学生通讯录管理系统”工程中,系统已经生成了一个对话框,这个对话框是程序运行时首先启动的,我们改造它来作为用户登录对话框。用于提示用户输入“用户名”和“密码”,再加上两个编辑框和两个按钮控件,调整其大小,如图6所示。 (图6用户登录对话框)2、设计主窗口模块从方便实的角度来考虑,我们将主窗口设计成如图7所示的对话框。(图7“学生通讯录管理系统”主窗体) 按钮的ID属性分别设置为:“修改密码”按钮的ID为:IDC_editpassword“修改学生记录”按钮的ID为:IDC_editrecord“插入学生记录”按钮的ID为:IDC_insertre

8、cord“查询学生记录”按钮的ID为:IDC_pueryrecord“删除学生记录”按钮的ID为:IDC_deleerecord“重新登录”按钮的ID为:IDC_cancel五、实现系统各功能模块1、 修改密码模块建立修改密码窗口,如图8所示 (图8修改密码窗体)1)、对窗体本身的属性进行修改,将窗体的ID设置为”IDD-EditPassword”,标题设置为“修改用户密码”。2)、对三个文本输入框的ID属性进行设置。将原密码文本框ID属性设置为”IDC-oldpassword”,新密码文本框ID属性设置为”IDC-newpassword1”,新密码确认文本框ID属性设置为”IDC- newp

9、assword2”。3)、“确定”按钮的ID设置为,”IDC-editpassok”,“退出”按钮的ID设置为”IDC-editpassexit”。#include “editpasswordDlg.h”CeditpasswordDlg *EditpassDlg;EditpassDlg=new CeditpasswordDlg;if(EditpassDlg-GetSafeHwnd()=0) EditpassDlg-Creat(IDD_EditPassword);#include”passwordSet.h”;extern Cmaindlg * MainDlg;/主窗体extern CStrin

10、g username,userpower;/用户名和密码extern CDatabase m_database;/数据库对象CpasswordSet upwset;CString str;if (upwset.IsOpen () upwset.Close();UpdateDATA (true); /将用户的输入反映到变量中Str.Format(“select *from密码表where用户名=%s and 密码=%s”, username, m_oldpassword); /构造查询语句Upwset.Open(AFX_DB_USE_DEFAULT_TYPE,str); /建立记录集if(upw

11、set.IsBOF() /记录集为空MessageBox(“用户密码不正确!或用户名与密码不相对应,请重输!”); else /准准备备修改密码If(strcmp(m_newpasswordl, m_newpassword2)!=0 MessageBox(“用户输入的两次密码不一致!请重新输入!”);else / 修改Ste.Format(“update 密码表set密码=%s Where用户名=%s, m_newpassword1,username);Try m_database.ExecuteSQL(str); / 更新密码Catch (CDBException el) AfxMessag

12、eBox(“数据库操作失败!”);Catch (CMemoryException e2) AfxMessageBox (“内存出错!”);MessageBox (“密码修改成功!”);If (upwset.IsOpen() upwset.Close(); / 关闭记录集m_oldpassword=”; /清空文本框内容m_newpassword1=”;m_newpassword2=”;UpdateData (false); /将变量值返回到编辑框,即编辑框清空!MainDlg _ShowWindow(SW_SHOW); /返回主窗口Showwindow(SO_HIDE); /隐藏自身2、重新登

13、录模块单击“重新登录”按钮,退出当前窗体,返回登录窗体。ShowWindow(SW_HIDE);/隐藏自身 CMyDlg mdl; /定义主对话框类变量 mdl.DoModal(); /以有模式方式打开对话框3、插入学生记录模块在工作区窗口的资源视图下,插入一个新的对话框。对话框的相关属性设置为:ID :IDD_INSERT_DIALOG标题:插入和修改记录在其中添加控件,得到如图8所示窗体 (图8插入和修改学生记录窗体)对应文本输入框或下拉框的ID号分别为:学号:IDC_SNO_EDIT姓号:IDC_SNAME_EDIT姓别:IDC_SEX_COMBO出生年、月、日:IDC_YY_EDIT,

14、IDC_MM_EDIT,IDX_DD_EDIT所在专业系:IDC_DEPT_EDIT联系电话:IDC_PHONE_EDITEmail:IDC_EMAIL_EDITQQ号:IDC_QQ_EDIT其余控件ID取默认值。#inslude “InsertDlg.h”CInsertDlg *InsDlg;InsDlg=new CInsertDlg;If (InDlg -GetSareHwnd ()= = 0)InsDlg -Create(IDD_INSERT_DIALOG);4、删除和修改学生记录模块为方便管理员删除和修改学生记录,用列表的方式将学生用户的有关信息显示出来。管理员首先选中要删除或修改的记

15、录,然后单击对应的删除或修改按钮,再进行相应的操作。添加如下代码:M_list.InsertColumn(0,”学号”);M_list.InsertColumn(1,”姓名”);M_list.InsertColumn(2,”性别”);M_list.InsertColumn(3,”出生日期”);M_list.InsertColumn(4,”所在专业系”);CRect r;M_list.GetWindowRect(&r);Int wid=r,Width(); /取得List control控件宽度;For(int i=0;i5;i+) M_list.SetColumn.Width(I,wid/5)

16、; /每个属性分配五分之一的宽度;M_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);/设置List Control控件属性,使其具有类似Excel的网格样式;如图9所示 (图9“删除或修改学生记录”对话框)5、查询学生记录模块可以根据学生的姓名、所在专业系和出生年份中的一个或多个项目进行查询,通过复选按钮进行选择,将查询的结果显示在List Control中。1)、设计其窗体查询窗体我们设计查询窗体如图10所示,并建立对话框类(CQueryDlg)。(图10设计查询窗体)要使用新建立的类,将其头文件加入到文件中,并设立

17、指向此窗体的全局变量,然后对指针变量进行初始化。2)、初始化列表控件,在类向导中,选择对象ID为CqueryDlg,在其消息对话框中选择WM_INITDIALOG,双击它,建立初始化函数;在其中插入如下所示代码:m_querylist.DeleteAllItems();m_querylist.InsertColumn(0,”学号”);m_querylist.InsertColumn(1,”姓名”);m_querylist.InsertColumn(2,”性别”);m_querylist.InsertColumn(3,”出生日期”);m_querylist.InsertColumn(4,”所在专

18、业”);m_querylist.InsertColumn(5,”联系电话”);m_querylist.InsertColumn(6,”Email”);m_querylist.InsertColumn(7,”QQ号”);CRect r;M_quetylist.GetWindowRect(&r);Int wid=r.Width();/取得List control控件宽度;For (int i=0; iOnRfreshData(spl)QuyDlg-Show Window(SW_SHOW)Show window(SW_HIDE)Viod CqueryDlg: OnRefreshData(Cstrin

19、g spl)|Cstring str,temp; m_querylist.DeleteAllItens()CstudentInfom_stuinfoset;If(m_stuinfoset.IsOpen()m_suinfoset Close();m_stuinfoset.m_pDatabase=&m_databasem_stuinfoset,Open(AFX_DB_USE_DEFAULT_TYPE,spl);inti=0;while(! m_stuinfoset,lIsEOF()while(m_stuinfoset,IsDeteted() m_stuinfoset,MoveNext();str=

20、m_stinfoset . m_columnl;str.TrimLeft();str.TrimRight();m_querylist.InsertItem(I,str); /学号str= m_stuinfoset. m_column2;str.TrimRight();m_queryist.SrtItemText(I , l, str) ;/姓名str= m_stuinfoset. m_column3;str.TrimLeft();str.TrimRight();m_queryist.SrtItemText(I , 2, str) ;/性别str= m_stuinfoset. m_column4

21、;str.TrimLeft( );str.TrimRight( );m_queryist.SrtItemText(I , 3, str); /出生日期str= m_stuinfoset . m_column5; /所在专业系str.TrimLeft( );str.TrimRight( );m_queryist.SrtItemText(I , 4, str);str= m_stuinfoset . m_column6; /联系电话str.TrimLeft( );str.TrimRight( );m_queryist.SrtItemText(I , 5, str);str= m_stuinfose

22、t . m_Email; /Emailstr.TrimLeft( );str.TrimRight( );m_queryist.SrtItemText(I , 6, str);str= m_stuinfoset . m_QQ; /QQstr.TrimLeft( );str.TrimRight( );m_queryist.SrtItemText(I , 7, str);m_stuinfoset.MoveNext();4)、完成查询操作,双击查询窗体中的“查询”命令按钮,建立函数,在其中加入以下语句完成查询操作。Cstring sql;Cstring temp1,temp;Updatedata(tr

23、ue);Sql.Format (“select*from 学生通讯通讯信息表 where 学号 is not NULL”);If (m_checkname.GetCheck() Temp.Format (“and姓名 =%s”,m_qname); Sql=sql+temp;If (m_checkdate.GetCheck () Sql=sql+”and所在专业like %”+m_qdept+”%”;If (m_checkdate.GetCheck () Temp.Format (“%d”,m_year); temp.TrimLeft(); temp.TrimRight();Temp1.Form

24、at (“%d”,m_year2); temp.TrimLeft(); temp.TrimRight();Sql=sql+”and出生日期between”+temp+”-01-01and”+temmp1+”-01-01”;This-OnRefreshData (aql); /数据刷新5)、从查询窗体返回主窗体,双击查询窗体中的“返回”命令按钮,建立函数,在其中加入以下语句可。MainDlg-ShowWindow (SW_SHOW); /返回主窗体Showwindow (SW_HIDE); /隐藏自身至此,通讯录管理系统的设计工作全部完成,通过测试后,可以投入使用。六、总结(感想与收获)刚开始做

25、课程设计时,总认为用sql做系统简单,不用做说明准备,另外,我的选题来自己熟悉高校,以为很快就能很好的完成,其实不然。在设计中,碰到了许多问题,例如,登录成绩时怎样方便教务员操作,成绩查询时如何实现等问题,对这些问题都反复修改了许多次,直到基本满意为止。另外,我的设计尽量通过向导完成,但向导的局限性太大,无法实现一些复杂的功能,因此在其中一些部分只能通过宏和模块来实现。系统也存在一些小问题,例如,录入成绩时到了最后无法自然提示,删除数据时提示也是系统本身提供,不是很适合使用者等。通过此次课程设计,能够真正做出一个小系统,将所学的知识应用到实际中去,心中特别高兴,尽管上课时我们也有做实验,但比较

26、单一,缺少联系性,不能从整体上和实际需要上去考虑为题,有被牵着走的感觉。通过设计还锻炼了我们自己思考、深入学习和解决为题的能力。七、 致谢 感谢同组同学的共同讨论和帮助,感谢指导老师的建议和精心指导。八、 参考资料1 刘世峰,数据库基本与应用,北京:中央广播电视大学出版社,20032 刘世峰,徐孝凯,SQL SERVER上机操作指导,北京:中央广播电视大学出版社20033 耿文兰,SQL Server2000数据库管理与开发,北京:电子工业出版社,20034 启明工作室,VisualC+ SQL Server数据库应用系统开发与实例,北京:人民邮电出版社,2004-5 王育坚,VisualC+面向对象编程教程,北京:清华大学出版社,20036 刘刀桂,孟繁晶,Visual C+实践与提高数据库篇,北京:中国铁道出版社,20017 廖望,等,SQL Server2000案例教程,北京:冶金工业出版社,2004-

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1