欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    数据库的课程设计校友录系统设计.doc

    • 资源ID:2395497       资源大小:604KB        全文页数:44页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据库的课程设计校友录系统设计.doc

    系统摘要校友录系统是每个学校都必备的系统,其主要用于管理学院已毕业的校友的信息,是联系校友和学院之间的纽带。校友录系统的开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。可将整个系统设计分为两个模块:数据库的设计和应用程序的开发。模块一 数据库的设计<1>需求分析阶段需求收集和分析,从分析结果中的到数据字典描述的数据需求<2>概念结构设计阶段 形成一个独立于具体DBMS的概念模型,可以用E-R图表示<3>逻辑结构设计阶段 将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化<4>数据库物理设计阶段 为逻辑数据模型选取一个最合适应用环境的物理结构模块二 应用程序的开发 使用Access数据库进行数据库方面的设计,通过VC+编译器进行框架的生成,结合两者实行对校友录系统的基本操作查询,增加,修改,删除。 制作人 2010年1月5日第一章 系统设计需求分析1.1前言目前,经济发展迅猛,人们的压力也越来越大,以致把大多数人时间都投入在工作中,往往就会淡忘以前的生活,学生时代是梦想最多时代,感情最纯真的时代,在那时,我们都会遇到很多不同的人,也交了很多知己,但是一走上工作岗位,大多数人都会与以前的朋友失去联系。有时,即使想联系都没有联系方式。通过校友录管理系统,可以要联系的朋友,这是许多人都认可的,可以看出设计一个校友录是极具可行性的。校友录是为了方便校友之间联系而使用的一种系统,一个校友录管理系统,用户以个人的身份进入,查找满足条件的班级,并可以填写个人资料,以便被查询,通过校友录这种网络联系方式,可以让很多因毕业而分离的同学们还能经营聚首,互相嘘寒问暖,了解各自的近况,还可以建立毕业生和在校生的沟通渠道,增强学校的凝聚力,能很方便的和同学沟通和交流。1.2系统来源近年来计算机技术的快速发展,特别是计算机网络的发展,越来越深刻的改变了人们生活的方方面面,使得人们能以更低廉的价格,开发出更方面,更实用的网络工具,各种在线服务系统,更是深刻的影响了人们的联系方式,使得人们可以在远隔千里之遥随时通讯,过去的种种陈旧的联系方式,已经不能满足现代生活的需要。校友录作为一种方便校友之间联系的实用系统便应运而生。校友录是校友之间进行交流和联系提供的一个平台,通过提供完善的校友录服务和规范校友录的管理,可以达到增进校友之间。校友与母校之间的感情,方便校友联系的母校。1.3目的和意义校友录管理系统的最终目的是加强各地校友之间的联系,增进校友之间,校友与母校之间的感情,通过校友之间的交流,为各地学习提供广泛的事业合作机会,能增强学校的凝聚力,让各地学子联合起来,校友录是为校友之间进行交流和联系提供的一个平台,虽然现在大多数人都能用各种聊天工具与同学朋友联系,但是聊天工具有个最大的弱点就是安全性不高,一旦密码丢失或被盗,所有联系人资料都丢失,而校友录管理系统能解决这个问题,所有校友的信息都将长期储存在数据库,用户登录校友录就能找到同学的信息并与之取得联系,并且可以实时关注母校的动态,现在我们也都面临这毕业,拥有一个属于自己的校友录系统也是很多同学的心愿,所以,设计并制作这个校友录管理系统是很大 的实际意义。1.4系统功能分析 校友录管理系统满足来自两个方面的需求,这两个方面分别是用户(校友),校友管理人员。用户管理功能:用户管理功能主要包括用户登录和注册,只有已注册登录的用户才能找到同学的信息并与之取得联系,并且可以实时关注母校的动态,。校友管理人员:校友管理人员的功能最为复杂,对用户注册,删除,添加,修改信息进行管理和维护1.5需求分析过程各个阶段需求分析数据库设计人熟悉校友录的功能明确学院和校友需求确定系统边界概念模型DFDDD1.6数据流图的设计数据流图的设计 1. 校友录0层数据流图校友录管理系统 校友录管理员校友 查询 更新 信息 信息 2. 校友录一层数据流图这是该系统的一张0层数据流图,主要体现的是一个针对系统本身而言的一个输入输出的关系。从这张图可以明确的看出校友与系统的关系,它是一个索取信息的关系,他们都是系统的输出信息的地方;而管理员则是该系统的输入者,系统所拥有的资源都是管理员所提供的。校友和校友录管理员都是这个系统的外部项。一层数据流图是对0层数据流图的细化。注册主界面登录校友 无注册 登录 有注册 进入校友信息 专业信息 管理员信息 系院信息通讯录通讯录的校友通讯信息1.7数据字典数据词典的作用是给数据流图上每个要素给以定义和说明。这里主要是对校友这个外部项进行了解释和说明。修改记录 简要说明:本系统提供的校友信息是有限的输出数据流:校友信息主要特征:校友的姓名,性别,年龄,家庭住址,专业以及系院输入数据流:所要的校友信息外部项系统名:_校友录数据库系统_ 编号:_条目名:_校友_ 别名:_2010-1-5日期江*编写日期审核尹*2010-1-5第二章 概念模型的设计2.1系统功能模块 根据系统设计的需求分析的要求,可以将整个系统划分分成三部分,经过模块化的分析得到了如图所示的功能模块化结构图:校友录数据库系统管理员各系院校友管理员自身信息的查询更新数据库中校友的信息搜索所有校友信息定期对数据库进行重组和重构监控数据库的性能改进提供毕业生信息将更新系院专业信息提供给管理员更新个人信息查询其他校友的信息个人信息的查询 功能结构图2.2概念设计的步骤 在概念设计阶段中,设计人员从用户的角度看待数据集处理要求和约束,产生一个反映用户观点的概念模式。然后再把概念模式转换成逻辑模式。将概念设计从设计过程中独立开来,使各阶段的任务相对单一化,设计复杂程度大大降低,不受特定DBMS的限制。 利用E-R方法进行数据库的概念设计,可分成三步进行:首先设计局部E-R模式,然后把各局部E-R模式综合成一个全局模式,最后对全局E-R模式进行优化,得到最终的模式,即概念模式。2.3设计各个局部E-R模式E-R模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,进一步确定是1:m,m:n,还是1:1等。还要考察一个实体类型类型内部是否存在联系,等等。校友管理员搜索校友信息编号姓名姓名性别地址电话专业系院学号性别1n拥有校友信息姓名地址电话专业系院学号性别校友姓名地址电话专业系院学号性别11属于系院系名系号简述校友姓名地址电话专业系院学号性别n1属于专业专业名专业号简述校友姓名地址电话专业系院学号性别n1管理校友姓名地址电话专业系院学号性别n校友管理员编号姓名性别1系院系名系号简述m专业专业名专业号简述n包含2.4设计全局E-R模式所有局部E-R模式设计好了后,接下来就是把它们综合成单一的全局概念结构。全局概念结构不仅要支持所有局部E-R模式,而且必须合理地表示一个完整,一致的数据库概念结构。1.确定公共实体类型为了给多个局部E-R模式的合并提供开始合并的基础,首先要确定各局部结构中的公共实体类型。在这一步中我们仅根据实体类型名和键来认定公共实体类型。一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型作为公共实体类型的另一类候选。2.局部E-R模式的合并合并的原则是:首先进行两两合并;先和合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部结构。1.消除冲突冲突分为三类:属性冲突,结构冲突,命名冲突。设计全局E-R模式的目的不在于把若干局部E-R模式形式上合并为一个E-R模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模式。2.全局E-R模式的优化在得到全局E-R模式后,为了提高数据库系统的效率,还应进一步依据处理需求对E-R模式进行优化。一个好的全局E-R模式,除能准确,全面地反映用户功能需求外,还应该满足下列条件:实体类型的个数压迫尽可能的少;实体类型间联系与冗余。综上所述,“校友录管理系统”的全局E-R模式如图:校友管理员搜索校友信息编号姓名姓名性别地址电话专业系院学号性别1n校友专业系院管理拥有属于属于学号系号专业系院性别姓名地址1n11简述系名简述专业号专业名包含nn11n1电话第三章 逻辑模型的设计3.1逻辑设计部分3.1.1概念模型向关系模型转换及依赖关系分析:根据总E-R图中的实体与实体之间的联系以及转换的一般原则,得到如下的关系:拥有校友信息校友11根据以上1:1的关系可得到关于校友的关系: friendinfo(studentno,name,sex,birthday,address,special,department) uselogin(name,passwd,uesrtype)3.1.2各个关系模型的函数依赖关系分析:uselogin(name,passwd,uesrtype)namepasswdusertype 从函数依赖图可以看出,该关系中不存在部分函数依赖、传递函数依赖,且只有姓名能确定其他各项。所以该关系是BCNF范式。 该关系来源于校友这个实体,该关系的函数依赖图如下:friendinfo(studentno,name,sex,birthday,address,special,department)namesexstudentnobirthdayspecialdepartmentaddress由该函数依赖图可知,该关系仍然是BCNF范式3.2整个系统的关系设计所有关系的定义:specialinfo(specialno,special,detail)friendinfo(studentno,name,sex,birthday,address,special,department)uselogin(name,passwd,uesrtype)admininfo(adminno,adminname,sex,age,adminqq)departmentinfo(departmentno,department,detail)connectioninfo(name,phone,friendqq)第四章 物理结构模型设计4.1物理设计的内容 数据库的物理设计是为了逻辑数据模型设计适合应用环境的物理结构:为关系选择存取方法和存取路径;确定数据库存储结构,即确定关系,索引,聚簇,日志,备份等数据的存储安排和存储结构;确定系统配置。4.2存储结构及视图的设计Create procedure name1name varchar(10)mycursor cursor varying outputAs Set mycursor forSelect(studentno,name,sex,birthday,address,special,departmentFrom friendinfoWhere name like %+name+%)Open mycurrsorDecalre studentno varchar(10)Decalre name varchar(10)Decalre sex varchar(10)Decalre birthday varchar(50)Decalre address varchar(50)Decalre special varchar(50)Decalre department varchar(50)Declare thecursor cursorExec name name=江,mycursor=the cursou outputWhile(0=0)BeginFetch next from thecursou into studentno,name,sex,address,special,departmentIf(fetch_status<>0) breakSelect studentno,name,sex,address,special,departmentEndClose thecursorDeallocate thcursor 这是friendinfo的存储过程Create view CS_friendinfoAsSelect *From friendinfo这是创建了一个CS_friendinfo视图,它是基于表friendinfo,可通过它来保护friendinfo中的信息。第五章 数据库的实施运行5.1建立数据库并组织数据入库SQL语句脚本:Create database schoolfriendcreate table specialinfo(specialno text primary key,special text,detail text)create table friendinfo(studentno varchar(10) primary key,name varchar (10),sex varchar(10) text varchar(10),birthday varchar(50),address varchar(50),special varchar(50) ,department varchar(50)create table uselogin(name text peimary key,passwd text,uesrtype text)create table admininfo(adminno text parmary key,adminname text,sex,age text,adminqq text)create table departmentinfo(departmentno text primary key,department text,detail text)create table connectioninfo(name text primary key,phone text,friendqq text) 5.2后台数据库表中的数据通讯录联系表系院表校友信息表系信息表管理员信息表用户登录信息表第六章 课程设计应用程序的开发6.1C+应用程序的设计六张表对应六个Set类分别为CadmininfoSet,CconnectionSet,CdepartmentinfoSet,CFriendSet,CspecialinfoSet,CuserinfoSet.主窗口程序#include "stdafx.h"#include "friend.h"#include "searchfriendDlg.h"#include "MainFrm.h"#include "userloginDlg.h"#include "specialDlg.h"#include "separtmentDlg.h"#include "connectionDlg.h"#include "admininfoDlg.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CMainFrameIMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)/AFX_MSG_MAP(CMainFrame)ON_WM_CREATE()ON_COMMAND(ID_MENU_RES, OnMenuRes)ON_COMMAND(ID_MENU_LOOK, OnMenuLook)ON_COMMAND(ID_MENU_department, OnMENUdepartment)ON_COMMAND(ID_MENU_special, OnMENUspecial)ON_COMMAND(ID_MENU_CONNECTION, OnMenuConnection)ON_COMMAND(ID_MENU_ADMIN, OnMenuAdmin)ON_COMMAND(ID_MENU_EXIT, OnMenuExit)/AFX_MSG_MAPEND_MESSAGE_MAP()static UINT indicators =ID_SEPARATOR, / status line indicatorID_INDICATOR_CAPS,ID_INDICATOR_NUM,ID_INDICATOR_SCRL,;/ CMainFrame construction/destructionCMainFrame:CMainFrame()/ TODO: add member initialization code hereCuserloginDlg dlg;dlg.DoModal();CMainFrame:CMainFrame()int CMainFrame:OnCreate(LPCREATESTRUCT lpCreateStruct)if (CFrameWnd:OnCreate(lpCreateStruct) = -1)return -1;if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) |!m_wndToolBar.LoadToolBar(IDR_MAINFRAME)TRACE0("Failed to create toolbarn");return -1; / fail to createif (!m_wndStatusBar.Create(this) |!m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT)TRACE0("Failed to create status barn");return -1; / fail to create/ TODO: Delete these three lines if you don't want the toolbar to/ be dockablem_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);EnableDocking(CBRS_ALIGN_ANY);DockControlBar(&m_wndToolBar);return 0;BOOL CMainFrame:PreCreateWindow(CREATESTRUCT& cs)if( !CFrameWnd:PreCreateWindow(cs) )return FALSE;/ TODO: Modify the Window class or styles here by modifying/ the CREATESTRUCT csreturn TRUE;/ CMainFrame diagnostics#ifdef _DEBUGvoid CMainFrame:AssertValid() constCFrameWnd:AssertValid();void CMainFrame:Dump(CDumpContext& dc) constCFrameWnd:Dump(dc);#endif /_DEBUG/ CMainFrame message handlersvoid CMainFrame:OnMenuRes() / TODO: Add your command handler code hereCuserloginDlg dlg;dlg.DoModal();void CMainFrame:OnMenuLook() / TODO: Add your command handler code here CsearchfriendDlg dlg;dlg.DoModal();void CMainFrame:OnMENUdepartment() / TODO: Add your command handler code hereCsepartmentDlg dlg;dlg.DoModal();void CMainFrame:OnMENUspecial() / TODO: Add your command handler code hereCspecialDlg dlg;dlg.DoModal();void CMainFrame:OnMenuConnection() / TODO: Add your command handler code hereCconnectionDlg dlg;dlg.DoModal();void CMainFrame:OnMenuAdmin() / TODO: Add your command handler code hereCadmininfoDlg dlg;dlg.DoModal();void CMainFrame:OnMenuExit() / TODO: Add your command handler code hereif(AfxMessageBox("您确定要退出系统吗?",MB_OKCANCEL)=IDCANCEL)return;CFrameWnd:OnClose();用户登录注册窗口#include "stdafx.h"#include "friend.h"#include "userloginDlg.h"#include "userinfoSet.h"#include "friendinfoDlg.h"#include "FriendSet.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CuserloginDlg dialogCuserloginDlg:CuserloginDlg(CWnd* pParent /*=NULL*/): CDialog(CuserloginDlg:IDD, pParent)/AFX_DATA_INIT(CuserloginDlg)m_strname = _T("");m_strpasswd = _T("");/AFX_DATA_INITvoid CuserloginDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CuserloginDlg)DDX_Text(pDX, IDC_EDIT_NAME, m_strname);DDX_Text(pDX, IDC_EDIT_PASSWD, m_strpasswd);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CuserloginDlg, CDialog)/AFX_MSG_MAP(CuserloginDlg)ON_BN_CLICKED(IDC_BUTTON_RES, OnButtonRes)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CuserloginDlg message handlersvoid CuserloginDlg:OnOK() / TODO: Add extra validation here CuserinfoSet recordset;CString strSQL;UpdateData(TRUE);if(m_strname.IsEmpty()AfxMessageBox("请输入姓名!");return;/检查密码是否输入if(m_strpasswd.IsEmpty()AfxMessageBox("请输入密码!");return;/CLibraryApp* ptheApp = (CLibraryApp *) AfxGetApp();strSQL.Format("select * from userlogin where name='%s' AND passwd='%s'",m_strname,m_strpasswd);if(!recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)MessageBox("打开数据库失败!","数据库错误",MB_OK);return ;if(recordset.GetRecordCount()=0)recordset.Close();MessageBox("密码错误,请重新输入!");m_strpasswd=""UpdateData(FALSE);else/ptheApp->m_bIsAdmin = recordset.m_isadmin;/ptheApp->m_strOperator = recordset.m_user;recordset.Close();CDialog:OnOK();CDialog:OnOK();void CuserloginDlg:OnButtonRes() / TODO: Add your control notification handler code hereUpdateData();if(m_strname.IsEmpty()AfxMessageBox("请输入读者姓名!");return;if(m_strpasswd.IsEmpty()AfxMessageBox("请输入密码!");return;CString strSQL;strSQL.Format("select * from userlogin where name = '%s'",m_strname);CuserinfoSet rs;if(!rs.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)MessageBox("打开数据库失败!","数据库错误",MB_OK);return ;if(rs.GetRecordCount()!=0)rs.Close();AfxMessageBox("该用户名已经存在,请重新输入!");return;rs.Close();if(!rs.Open(AFX_DB_USE_DEFAULT_TYPE)MessageBox("打开数据库失败!","数据库错误",MB_OK);return ;rs.AddNew();rs.m_passwd = m_strpasswd;rs.m_name = m_strname;rs.m_usertype=2;rs.Update();rs.Close(); CfriendinfoDlg dlg;dlg.DoModal();增加联系窗口#include "stdafx.h"#include "friend.h"#include "addconnectionDlg.h"#include "connectionSet.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CaddconnectionDlg dialogCaddconnectionDlg:CaddconnectionDlg(CWnd* pParent /*=NULL*/): CDialog(CaddconnectionDlg:IDD, pParent)/AFX_DATA_INIT(CaddconnectionDlg)m_strname = _T("");m_strphone = _T("");m_strqq = _T("");/AFX_DATA_INITvoid CaddconnectionDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CaddconnectionDlg)DDX_Text(pDX, IDC_EDIT_NAME, m_strname);DDX_Text(pDX, IDC_EDIT_phone, m_strphone);DDX_Text(pDX, IDC_EDIT_QQ, m_strqq);/

    注意事项

    本文(数据库的课程设计校友录系统设计.doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开