




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河北北方学院信息科学与工程学院信息系数据库原理与应用实 验 报 告 课程名称 数据库原理与应用 实验学期 2013 至 2014 学年 第 2 学期学生所在系部 电子系 年级 11级 专业班级 电子信息工程二班 学生姓名 刘庆 学号 任课教师 赵志升 实验成绩 数据库原理与应用课程综合性实验报告实验室: A501 2014 年 6 月 18 日年级与专业11级电子信息工程姓名刘庆日期6月18号实验室A501实验题目数据库原理与应用综合设计实验报告一、实验目的综合前面所学的知识,开发一个简单的学生管理数据库应用系统。通过开发这个系统学习开发一个数据库应用的过程和主要方法。二、设备与环境PC兼容机、Windows操作系统、Microsoft Sql Server2000软件等。三、实验内容1、对需求进行分析,设计出ER图。2、根据自己设计的ER图,设计数据库表,至少要有三张表。建立表间关系,需要使用外键来建立表间关系。3、根据需求分析,自己设计要实现的主要功能,设计出主要的界面。4、要求使用Microsoft Sql Server2000系统来实现这个数据库应用系统,要求使用窗体来设计界面,建立查询,使用宏,最后系统应该完整可运行。四、实验结果及分析1. 需求分析 (列出系统的背景和主要的功能需求)系统的背景:-一高中因班级较多,学生人数多,学生信息管理较繁琐,需建立一个学生信息数据库-系统管理对象为08级,09级,10级三届学生,每届有两个班,每班有5个人,每人学习6门课程。-该专业每学期有一次学生基本信息进行核对,两次(期中、期末)考试,考试后需要对成绩进行汇总,排名和分析。实体需求分析:-学生信息:学号,姓名,性别,年龄,班级,生源地,入学时间-班级信息:班号,班名,届别,班主任-课程信息:课程编号,课程名称,性质,总分-另:教师可录入修改学生的基本信息,成绩;教师可以查看学习该课程所有学生的成绩;教师可以查看各班的成绩;学生可以查看自己期中、期末的每门课成绩,班级排名。2. 概念模型设计(根据需求进行数据分析,找出主要实体、属性和关系,画出ER图)实体:E-R图:班名学号班号届别性别年龄姓名班级设置学生班级生源地班级入学时间班主任学习课程名称课程编号课程设置性质课程 总分物理结构设计以表格形式详细描述系统需要的基本表及属性、视图和索引,对基本表的主键、候选键、外键及被参照表进行说明,对基本表中数据的约束条件进行说明。用户密码表(Userinfo) 课程表(C) 学生表(S) 选课表(SC)在根据以上实体的关系,形成表与表之间的逻辑关系1 系统功能设计(阐述系统的每个功能。系统应具有身份验证、对数据库数据的增加、删除、修改、查询、浏览、输出等基本功能。)2 系统实现(1)系统的开发环境(软、硬件配置情况)本系统在装有SQL server2000数据库管理系统及VC+6.0开发工具的计算机上完成。(2)数据库创建过程(简要一些)及其连接(说明数据库连接方法写出关键代码或步骤)1、创建数据库2、在Student数据库中设计用户密码表(Userinfo)、课程表(C)、学生表(S)、选课表(SC)。3、打开上述数据库中各表的所有行逐一添加数据。(3)创建工程文件及窗体,添加所需的控件,为相应控件的事件编写代码,以实现目标功能。(在此包括:关键代码、运行后的界面)1.配置数据源利用系统自带的ODBC数据库管理器来建立一个名为student的用户DSN。配置SQL server ODBC 数据源;首先要保证SQL Server服务开启,打开我的电脑-控制面板-管理工具-ODBC数据源-系统DSN,然后单击添加按钮,在弹出对话框中寻找SQL Server,进入“创建到SQL server新数据源”对话框:输入信息如下:名称:student;服务器:(local)单击下一步;选择“使用用户登录ID和密码的SQL server验证”同时将“连接SQL server以获取其他默认配置选项的默认配置”选中,输入本机SQL的用户名(sa)和密码(123)。单击下一步;选中“更改默认数据库为”,并选择Student;并选中“使用ANSI引用的标识符”和“使用ANSI的空值、填充及警告单击下一步;单击完成;单击测试数据源,如果成功,弹出图所示对话框,说明SQLServer数据源配置成功选择这个条目,单击完成。 2.建立工程使用Visual C+的应用程序向导建立起应用程序的框架,本系统采用单文档作为主窗口,建立工程的过程步骤如下:(1) 启动Microsoft Visual C+新建一个“MFC APP Wizerd(exe)”工程,输入工程名,我们在这里使用“student”,选择工程所在的文件夹。然后单击OK。(2) 在“MFC APP Wizerd-step1”对话框中选择“Single Document”,单击“Next”按钮。(3) 单击“Finish”按钮,结束项目的创建,至此,基于单文档的应用程序就创建成功。3.登陆窗口的创建启动时需要先进入登录窗口,所以先建立一个登陆窗口和一个名为CloginDlg的类,操作步骤如下:(1)先建立名为“Dialog”的对话框资源。(2)在对话框资源添加控件,填完后的登陆框口如下:(3)创建为该对话框负责事件响应的名为“CloginDlg”类,并未各控件关联变量。(4)添加数据库对象m_database和记录集对象m_recordset。(5)由于当向导创建应用程序时,系统默认是启动调用主窗口,而我们需要系统启动后先创建登录窗口,登陆系统后在进入主界面,在CtudentApp这个类中InitInstance()方法中做修改:CLoginDlg login;/在启动主窗口之前先创建一个登录窗口对象if(login.DoModal ()=IDOK)CSingleDocTemplate* pDocTemplate;pDocTemplate=new CSingleDocTemplate(IDR_MAINFRAME,RUNTIME_CLASS(CStudentDoc),RUNTIME_CLASS(CMainFrame), / main SDI frame windowRUNTIME_CLASS(CStudentView);AddDocTemplate(pDocTemplate);CCommandLineInfo cmdInfo;ParseCommandLine(cmdInfo);if (!ProcessShellCommand(cmdInfo)return FALSE;CMenu *pMenu=m_pMainWnd-GetActiveWindow ()-GetMenu ();return TRUE;Else return false;(6)为“确定”和“取消”按钮添加事件,在确定上双击,添加CloginDlg:OnOK()方法。在取消上双击,添加CloginDlg:OnCancel()代码如下:void CLoginDlg:OnOK() / TODO: Add extra validation here CString username,password;m_strUserName.GetWindowText (username);m_strPassword.GetWindowText (password);if(!m_database.IsOpen ()if(m_database.Open (_T(DB)m_recordSet.m_pDatabase =&m_database;CString strSQL;strSQL.Format (select * from Userinfo where Username=%s and Userpwd=%s,username,password);m_recordSet.Open (CRecordset:forwardOnly,strSQL);if(m_recordSet.GetRecordCount ()=0)MessageBox(username or password error!,error!,MB_OK|MB_ICONWARNING);m_strPassword.SetWindowText ( );m_strPassword.SetFocus ();else CDialog:OnOK ();m_recordSet.Close ();m_database.Close ();elseMessageBox(cant open the database!);/CDialog:OnOK();void CLoginDlg:OnCancel() / TODO: Add extra cleanup hereif(MessageBox(are you sure to exit?,are you sure to exit?,MB_OK|MB_ICONQUESTION )=IDOK)CDialog:OnCancel();4.系统主窗口建立好登录窗口,下面设计主窗口中的菜单项,并未每个菜单添加事件。(1)在资源视图下,打开菜单,设计结果:(2)为各菜单项添加控件,并设置属性。(3)在添加完控件后,分别为各个控件添加事件:(4)添加代码处理事件void CMainFrame:OnStudent() / TODO: Add your command handler code here CStudentDlg Student;if(Student.DoModal()=IDOK)else(5)删除系统生成的工具栏int CMainFrame:OnCreate(LPCREATESTRUCT lpCreateStruct)if (CFrameWnd:OnCreate(lpCreateStruct) = -1)return -1;return 0;5.学生管理窗口新建一个学生管理窗口,一个名为CStudentDlg的类和一个从CRecordset继承过来的数据库记录集CStudent。(1)添加窗口资源。在学生管理窗口上控件,添加事件后的学生管理窗口如图:(2)添加数据库记录集操作类CStudentSet.这里需要创建一个名为CstudentSet的类,该类从Crecordset中继承。这样就利用Visual C+的向导新建了与S表表项关联的记录集。(3) 定义全局CStudentSet的类对象。需要添加一个全局的Cstudentset类的对象来控制整个窗口的数据库操作。(4)添加RefreshList()和ResetButton()方法。代码如下:void CStudentDlg:RefreshList() m_list.DeleteAllItems(); m_studentSet.Open(); m_studentSet.m_strFilter=; m_studentSet.Requery(); for(int i=0;iEnableWindow(false); maleRadio-EnableWindow(false); m_btnConfirm.EnableWindow(false); m_btnAdd.EnableWindow(true); m_btnDel.EnableWindow(true); m_btnEdit.EnableWindow(true);/添加初始化对话框OnInitDialog()方法。BOOL CStudentDlg:OnInitDialog()CDialog:OnInitDialog();m_list.InsertColumn(0,学号);m_list.InsertColumn(1,姓名);m_list.InsertColumn(2,性别);m_list.InsertColumn(3,年龄);RECT rectList;m_list.GetWindowRect(&rectList);int wid=rectList.right-rectList.left;for(int i=0;i4;i+)m_list.SetColumnWidth(i,wid/4);m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT);RefreshList();for(int j=1;jGetDlgItem(IDC_RADIO_FEMALE); maleRadio=(CButton*)this-GetDlgItem(IDC_RADIO_MALE); femaleRadio-EnableWindow(false); maleRadio-EnableWindow(false); ResetButton(); return true;/6)为CListCtrl控件添加事件。void CStudentDlg:OnClickStudentList(NMHDR* pNMHDR, LRESULT* pResult) / TODO: Add your control notification handler code hereint row=m_list.GetSelectionMark();CString s;s=m_list.GetItemText(row,0);m_strNo.SetWindowText(s);s=m_list.GetItemText(row,1);m_strName.SetWindowText(s);s=m_list.GetItemText(row,2);if(s=女)femaleRadio-SetCheck(true);maleRadio-SetCheck(false);elsefemaleRadio-SetCheck(false);maleRadio-SetCheck(true);s=m_list.GetItemText(row,3);int i=m_strAge.FindString(0,s);m_strAge.SelectString(i,s);*pResult=0;/7)添加按钮事件。这几个按钮分别对应的事件方法为OnStudentAdd(),OnStudentEdit(),/OnStudentDel(),OnOK()和OnCancel().代码如下:void CStudentDlg:OnStudentAdd() / TODO: Add your control notification handler code herem_strNo.EnableWindow(true);m_strNo.SetWindowText();m_strName.EnableWindow(true);m_strName.SetWindowText();m_strAge.EnableWindow(true);m_strAge.SelectString(0,20);femaleRadio-EnableWindow(true);maleRadio-EnableWindow(true);m_studentSet.Open();m_studentSet.AddNew();m_btnConfirm.EnableWindow(true);m_btnAdd.EnableWindow(false);m_btnEdit.EnableWindow(false);m_btnDel.EnableWindow(false);void CStudentDlg:OnStudentDel() / TODO: Add your control notification handler code hereint row=m_list.GetSelectionMark();CString s,strSQL;s=m_list.GetItemText(row,0);if(s=)MessageBox(请选择一行! );elseif(MessageBox( 确定要删除记录吗 ?, 删除询问 ,MB_OKCANCEL|MB_ICONQUESTION)=IDOK)strSQL.Format(sno=%s,s);m_studentSet.Open();m_studentSet.m_strFilter=strSQL;m_studentSet.Requery();m_studentSet.Delete();m_studentSet.Close();RefreshList();void CStudentDlg:OnStudentEdit() / TODO: Add your control notification handler code hereint row=m_list.GetSelectionMark();CString s,strSQL;s=m_list.GetItemText(row,0);if(s=)MessageBox(请选择一行! );elsestrSQL.Format(sno=%s,s);m_studentSet.Open();m_studentSet.m_strFilter=strSQL;m_studentSet.Edit();m_btnConfirm.EnableWindow(true);m_btnAdd.EnableWindow(false);m_btnEdit.EnableWindow(false);m_btnDel.EnableWindow(false);m_strName.EnableWindow(true); femaleRadio-EnableWindow(true);maleRadio-EnableWindow(true);m_strNo.EnableWindow(true);m_strAge.EnableWindow(true);void CStudentDlg:OnCancel() / TODO: Add extra cleanup hereCDialog:OnCancel();void CStudentDlg:OnOk() / TODO: Add your control notification handler code hereCString name,strSex;int age,no;CString a,n;m_strNo.GetWindowText(n);no=atoi(n);m_strName.GetWindowText(name
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 苗医技能型人才培养中的师承与技术传承机制建设
- 政企合作对乡村职业教育发展的实际影响
- 幼小衔接协同育人机制的策略及实施路径
- 推进绿色创新的策略及实施路径
- 区域旅游生态位的动态评估与竞合模式
- 企业财务分析对经营决策的作用与影响
- 深圳市光明区区属公办中小学招聘教师笔试真题2024
- 内蒙古亿利化学工业有限公司招聘笔试真题2024
- 2024年木里县选聘社区工作者真题
- 海南省农村义务教育阶段学校特设岗位教师招聘笔试真题2024
- 语文综合实践《走进传统节日探寻文化根脉》课件-【中职专用】高一语文同步课件(高教版2023·基础模块下册)
- 风力发电设备维修合同
- 跨文化交际智慧树知到期末考试答案章节答案2024年苏州大学
- TSG-T7001-2023电梯监督检验和定期检验规则宣贯解读
- 地质行业安全培训课件
- PDCA提高卧床患者踝泵运动的执行率
- 中医培训课件:《中药热奄包技术》
- 小班健康:不乱扔垃圾
- 万科物业管理公司员工手册
- 机器学习在教育领域的应用研究
- 电力电气 纺织厂供配电系统设计
评论
0/150
提交评论