版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、项目名称设计开始日期2012-08-20项目完成日期2012-08-24文 档评审主要考核内容 评审项目评审内容项目名称课题是否从实际出发,是否满足工作量需求,是否具有创意等文档格式文档格式是否规范;文字是否规范;图表是否规范;术语是否准确等文档质量程序设计思想与整体框架是否清晰等程序功能完备性评审主要内容评审项目评 审 内 容程序运行状况程序是否能正常运行;是否出现死锁;是否遇到错误而中止运行程序正确性对于给定的输入数据,是否能得到正确的输出结果程序与文档的一致性程序与各种文档的内容是否一致程序的代码量程序代码量的大小实现方法图形界面或命令行界面,美观程度程序功能程序的功能是否完备答辩评审内
2、容评审项目评审内容答辩思路答辩思路是否清晰回答问题回答问题是否正确考 勤 评 定 成 绩考勤成绩课程设计是否按照要求在机房完成课程设计总成绩 课程设计题目: 学生信息管理系统 问题阐述与分析:1.设计背景:随着学校的发展,需要对越来越多的学生信息进行处理,依靠传统的处理方式已经满足不了要求,所以可以通过编一个学生信息管理系统,使学生的信息能够集中管理,由于这个数据量比较大,而对于大量数据的处理,采用数据库更为安全简便。在此,可以通过学生信息管理系统这个项目来学习数据库的使用和注意事项。对于学生信息管理系统这个项目,需要处理学生的基本信息,姓名,学号,年龄,性别,宿舍,联系方式等。2.设计实现意
3、义 有利于学生的管理便利3.所要解决的主要问题帮助老师、同学们更方便快捷的查询学生的信息4.应用范围本系统适用于理论研究。即用来对平台功能的增减,修改及相关算法优化等做研究。 工作量:我在学习VC+ 的MFC编程,数据库的相关知识,同时进行下面的工作,1拟定课程设计的主要方向学生信息管理系统;2明确所做系统的主要需要解决的问题,根据问题分析系统所要实现的主要功能,根据功能设计出不同的模块登陆模块,注册模块,维护模块。3设计系统的登录及各个主要功能的界面外观;4以各个界面所要实现的功能为以依据,为各个部分编写代码并匹配数据库;登陆模块,能进行登录,并且输入错误时,有提示信息注册模块,可进行用户的
4、注册维护模块,能进增加,删除,修改等动作5调试程序,修改程序中出现的错误,并在功能,外观方面对程序进行完善,使程序实用性更强; 6完成工程。 工作计划安排:2012年8月20日8月20日 : 进行系统分析,确定各模块及具体实现方案。2011年8月20日8月21日 :进行系统的分析,确定各部分需要完成的主要功能,确定具体实现方案,并学习相关知识,确定使用VC+6.0。2011年8月21日8月22日 :根据分析和设计,开始系统的实现,进行代码的编写。2011年8月22日8月23日各模块合并,调试运行。2011年9月23日8月24日:系统完善,撰写报告目录 TOC o 1-3 h z u 1绪论 P
5、AGEREF _Toc334541394 h 11.1项目简介 PAGEREF _Toc334541395 h 11.2设计目的 PAGEREF _Toc334541396 h 11.3设计内容 PAGEREF _Toc334541397 h 12需求分析 PAGEREF _Toc334541398 h 12.1数据需求 PAGEREF _Toc334541399 h 12.2事务需求 PAGEREF _Toc334541400 h 23概要设计 PAGEREF _Toc334541401 h 23.1系统的大致流程图 PAGEREF _Toc334541402 h 24详细设计 PAGERE
6、F _Toc334541403 h 24.1系统的流程图 PAGEREF _Toc334541404 h 24.2整体逻辑数据库结构 PAGEREF _Toc334541405 h 34.3涉及算法的思想 PAGEREF _Toc334541406 h 35用户使用说明 PAGEREF _Toc334541407 h 45.1开发运行环境 PAGEREF _Toc334541408 h 45.2数据库的名称及内容 PAGEREF _Toc334541409 h 46关键源程序 PAGEREF _Toc334541410 h 56.1建立工程 PAGEREF _Toc334541411 h 56
7、.2模块1 PAGEREF _Toc334541412 h 56.3模块2 PAGEREF _Toc334541413 h 96.5模块4 PAGEREF _Toc334541414 h 127测试结果及运行界面 PAGEREF _Toc334541415 h 198总结 PAGEREF _Toc334541416 h 238.1系统实现程度 PAGEREF _Toc334541417 h 238.2问题及难点 PAGEREF _Toc334541418 h 238.3收获与体会 PAGEREF _Toc334541419 h 23参考文献 PAGEREF _Toc334541420 h 24
8、1绪论1.1项目简介本系统主要实现学生信息管理功能,为老师与同学提供一个可以快速查找信息的平台。1.2设计目的方便老师与同学查看学生信息,提高学生信息管理的效率,节省时间,从而实现学校工作的边界管理。1.3设计内容主要包括:用户的登陆于注册,对学生信息的增加删除修改。2需求分析2.1数据需求系统需要处理哪些数据总体分为用户输入的数据和从数据库中获得的数据。主要数据类型包括:CString类型数据、double类型数据、int类型数据和CTime类型数据。2.2事务需求用户:登陆、注册,对数据的增删改3概要设计3.1系统的大致流程图注册模块登录模块维护模块录入学生信息删除学生信息修改学生信息通讯
9、录管理系统4详细设计4.1系统的流程图注册结束开始添加显示信息登录流程切换详细信息修改退出删除4.2整体逻辑数据库结构数据库用户登陆操作score表修改信息添加信息删除信息 4.3涉及算法的思想4.3.1建立数据库通过ADO建立两个数据库(新建 Microsoft Office Access 应用程序)存放登陆信息和学生信息。4.3.2数据录入在新建学生信息数据库中录入学生信息。4.3.3登录框的设计 建立变量Sname,Spsw,通过格式变幻,将CString格式转换成数据库规定的格式 通过compare函数将输入的用户名与密码与数据库比较4.3.4注册框的设计先判定输入框里的名字在数据库里
10、不存在,然后将输入的信息替换入数据库4.3.5添加记录建立一个新的窗口,包含姓名,学号,年龄等基本信息录入框 用户录入要添加记录信息,如果要添加记录和已有记录不冲突就会把录入信息添加到新建 Microsoft Office Access 应用程序记录集中。4.3.6修改记录对已经录入的学生信息进行修改4.3.7删除记录 将已选中的记录从记录集中去除。5用户使用说明5.1开发运行环境5.1.1设备:本系统对设备的要求很低,一般的电脑主机都能运行。运行前安装Visual C 6.0。5.1.2支持软件:系统支持:Windows 7等。开发工具:Visual C 6.0、Access 2010。5.
11、2数据库的名称及内容本系统包含两个数据库,Data和Database数据库,Database数据库中储存的是用户名与密码,Data数据库中储存的是学生的学号、姓名、年龄、联系方式、宿舍。Data(学生通讯表)字段名称中文含义数据类型宽度Num学号文本20Name姓名文本20Age年龄数字3Home宿舍文本20Phone联系电话文本20Database(管理登录表)字段名称中文含义数据类型宽度Logname用户名文本20Logpsw用户密码文本206关键源程序6.1建立工程6.2模块1先在学生信息管理系统.cpp中添加代码,通过ADO创建登陆数据库/ 学生信息管理系统.cpp : Defines
12、 the class behaviors for the application.#include stdafx.h#include 学生信息管理系统.h#include 学生信息管理系统Dlg.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CMyAppBEGIN_MESSAGE_MAP(CMyApp, CWinApp)/AFX_MSG_MAP(CMyApp)/ NOTE - the ClassWizard will add and remove mapping
13、 macros here./ DO NOT EDIT what you see in these blocks of generated code!/AFX_MSGON_COMMAND(ID_HELP, CWinApp:OnHelp)END_MESSAGE_MAP()/ CMyApp constructionCMyApp:CMyApp()/ TODO: add construction code here,/ Place all significant initialization in InitInstance/ The one and only CMyApp objectCMyApp th
14、eApp;CDaoDatabase db;/建立全局变量,在其他地方调用时要加extern/ CMyApp initializationBOOL CMyApp:InitInstance()AfxEnableControlContainer();/ Standard initialization/ If you are not using these features and wish to reduce the size/ of your final executable, you should remove from the following/ the specific initializ
15、ation routines you do not need.#ifdef _AFXDLLEnable3dControls();/ Call this when using MFC in a shared DLL#elseEnable3dControlsStatic();/ Call this when linking to MFC statically#endif/这里就是程序入口,在这里添加数据库检查代码CString Filepath=Database.mdb;CDaoRecordset Dbset(&db); CFileFind Ffind;/先看看存不存在数据库文件 BOOL fla
16、g=Ffind.FindFile(Filepath); Ffind.Close(); if(!flag)/如果没有就创建CString sqlcmd=CREATE TABLE DataTable(Name VARCHAR(20),Psw VARCHAR(20);db.Create(Filepath);db.Execute(sqlcmd);Dbset.Open(AFX_DAO_USE_DEFAULT_TYPE,SELECT * FROM DataTable,0);Dbset.AddNew();Dbset.SetFieldValue(Name,_variant_t(wzh);Dbset.SetFi
17、eldValue(Psw,_variant_t(123456);Dbset.Update();Dbset.Close();db.Close();/建立数据库文件,设置初始化账号CMyDlg dlg;m_pMainWnd = &dlg;int nResponse = dlg.DoModal();if (nResponse = IDOK)/ TODO: Place code here to handle when the dialog is/ dismissed with OKelse if (nResponse = IDCANCEL)/ TODO: Place code here to hand
18、le when the dialog is/ dismissed with Cancel/ Since the dialog has been closed, return FALSE so that we exit the/ application, rather than start the applications message pump.return FALSE;void CMyDlg:OnPaint() if (IsIconic()CPaintDC dc(this); / device context for paintingSendMessage(WM_ICONERASEBKGN
19、D, (WPARAM) dc.GetSafeHdc(), 0);/ Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;/ Draw the icondc.DrawIcon(x, y, m_hIcon
20、);else/ 给窗体添加背景 CPaintDC dc(this); CRect rc; GetClientRect(&rc); CDC dcMem; dcMem.CreateCompatibleDC(&dc); CBitmap bmpBackground; bmpBackground.LoadBitmap(IDB_BITMAP1); BITMAP bitmap; bmpBackground.GetBitmap(&bitmap);/取得bmpBackground中图片的信息,放在bitmap所指的指针中 CBitmap* pbmpPri = dcMem.SelectObject(&bmpBac
21、kground); dc.StretchBlt(0,0,rc.Width(), rc.Height(), &dcMem,0,0,bitmap.bmWidth, bitmap.bmHeight, SRCCOPY);/CDialog:OnPaint();进入系统void CMyDlg:OnButton1() DIALOGLOG tec;tec.DoModal();退出系统void CMyDlg:OnButton2() if(IDYES=MessageBox(确定退出?,退出程序, MB_ICONQUESTION|MB_YESNO )DestroyWindow();6.3模块2登陆extern CD
22、aoDatabase db;/调用那个全局变量void DIALOGLOG:Onlogbt() /判断输入筐里的内容和数据库里的内容是否吻合UpdateData(true);CDaoRecordset Dbset(&db);CString Filepath=Database.mdb;CString Sname,Spsw;_variant_t varname,varpsw;db.Open(Filepath);Dbset.Open(AFX_DAO_USE_DEFAULT_TYPE,SELECT * FROM DataTable,0);varname=Dbset.GetFieldValue(Name
23、);varpsw=Dbset.GetFieldValue(Psw);Sname=(LPCSTR)_bstr_t(varname);Spsw=(LPCSTR)_bstr_t(varpsw);Dbset.Close();db.Close();if(m_logname.IsEmpty()|m_logpsw.IsEmpty()/如果输入框中存在空输入MessageBox(信息不能为空!);return;if(Sname.Compare(m_logname)=0&Spsw.Compare(m_logpsw)=0)/如果密码和用户与数据库一致MessageBox(登入成功!,温情提示);DIALOG3 d
24、lg;dlg.DoModal();elseMessageBox(用户名或密码错误!,温情提示);return;注册void DIALOGLOG:Onlogreg() DIALOGREG dlg;dlg.DoModal();6.4模块3取消void DIALOGREG:OnRegcancle() CDialog:OnCancel();注册void DIALOGREG:OnRegbt() /让数据库里一直只有一个用户UpdateData(true);/及时更新数据CString Filepath=Database.mdb;CString Sname;_variant_t varname;CDaoR
25、ecordset Dbset(&db);db.Open(Filepath);Dbset.Open(AFX_DAO_USE_DEFAULT_TYPE,SELECT * FROM DataTable,0);varname=Dbset.GetFieldValue(Name);Sname=(LPCSTR)_bstr_t(varname);if(m_regname.IsEmpty()|m_regpsw.IsEmpty()MessageBox(信息不能为空!,温情提示);return;if(m_regpsw!=m_regpsw1) AfxMessageBox(密码不一致); return;if(Sname
26、.Compare(m_regname)!=0)/如果输入框里的名字在数据库里不存在Dbset.Edit();/将新数据代替旧数据Dbset.SetFieldValue(Name,_variant_t(m_regname);Dbset.SetFieldValue(Psw,_variant_t(m_regpsw);Dbset.Update();MessageBox(用户注册成功!,温情提示);CDialog:OnOK(); else/如果输入的名字和数据库里的一致,这提示存在该用户MessageBox(该用户已存在!,温情提示);Dbset.Close();db.Close();6.5模块4初始化
27、窗口BOOL DIALOG3:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization herem_list.SetExtendedStyle(LVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_GRIDLINES);/设置扩展样式m_list.InsertColumn(0,学号,LVCFMT_LEFT,100,0);/添加学号项m_list.InsertColumn(1,姓名,LVCFM
28、T_LEFT,100,1);/添加姓名项m_list.InsertColumn(2,年龄,LVCFMT_LEFT,100,2);/添加年龄项m_list.InsertColumn(3,联系方式,LVCFMT_LEFT,200,3);/添加联系方式项m_list.InsertColumn(4,宿舍,LVCFMT_LEFT,100,4);/添加宿舍项readDb();/在初始化函数中,如果没有找到数据库文件就创建,并且在列表中显示出来return TRUE; / return TRUE unless you set the focus to a control通过ADO创建学生信息数据库void
29、DIALOG3:readDb()CString Filepath=Data.mdb;/将数据库文件Data.mdb在程序的同一目录下 CFileFind Ffind;/先看看存不存在数据库文件 BOOL flag=Ffind.FindFile(Filepath); Ffind.Close(); if(!flag)/如果没有,就创建aa.Create(Filepath); CString sqlcmd=CREATE TABLE DataTable(Num VARCHAR(20),Name VARCHAR(20),Age VARCHAR(3),Phone VARCHAR(20),Home VARC
30、HAR(20);/创建内部表,并设置两个属性(姓名,年龄) aa.Execute(sqlcmd);/执行sql指令 aa.Close();/创建完成一定要关闭,否则出错 MessageBox(数据库已建立成功!,温情提示);_variant_t varnum,varname;COleVariant varage,varphone,varhome; CString Sname,Sage,Snum,Sphone,Shome;int i=0;aa.Open(Filepath);Dbset.Open(AFX_DAO_USE_DEFAULT_TYPE,SELECT * FROM DataTable,0)
31、;while(!Dbset.IsEOF()varnum=Dbset.GetFieldValue(Num);varname=Dbset.GetFieldValue(Name);varage=Dbset.GetFieldValue(Age);varphone=Dbset.GetFieldValue(Phone);varhome=Dbset.GetFieldValue(Home);Snum=(LPCSTR)_bstr_t(varnum);Sname=(LPCSTR)_bstr_t(varname);Sage=(LPCSTR)varage.pbstrVal;Sphone=(LPCSTR)varphon
32、e.pbstrVal;Shome=(LPCSTR)varhome.pbstrVal;/分别将数据库里面读出来的文件转换成CStringm_list.InsertItem(i,);m_list.SetItemText(i,0,Snum);m_list.SetItemText(i,1,Sname);m_list.SetItemText(i,2,Sage);m_list.SetItemText(i,3,Sphone);m_list.SetItemText(i,4,Shome);Dbset.MoveNext();/没有就不能循环i+;Dbset.Close();aa.Close();与表格相关联voi
33、d DIALOG3:OnClickList(NMHDR* pNMHDR, LRESULT* pResult) int pos=m_list.GetSelectionMark();m_num=m_list.GetItemText(pos,0);m_name=m_list.GetItemText(pos,1);m_age=m_list.GetItemText(pos,2);m_phone=m_list.GetItemText(pos,3);m_home=m_list.GetItemText(pos,4);UpdateData(false);*pResult = 0;新建void DIALOG3:O
34、nadd() UpdateData(true);if(m_name.IsEmpty()|m_age.IsEmpty()|m_num.IsEmpty()|m_phone.IsEmpty()|m_home.IsEmpty()/如果输入框为空,则提示信息MessageBox(信息不能为空!,温情提示);elseCString Filepath=Data.mdb;int i=m_list.GetItemCount();/在列表的队尾添加,所以先获取行数aa.Open(Filepath);Dbset.Open(AFX_DAO_USE_DEFAULT_TYPE,SELECT * FROM DataTabl
35、e,0);Dbset.AddNew();/在记录集的队尾添加 Dbset.SetFieldValue(Num,_variant_t(m_num);Dbset.SetFieldValue(Age,atol(m_age);Dbset.SetFieldValue(Name,_variant_t(m_name);Dbset.SetFieldValue(Home,atol(m_home);Dbset.SetFieldValue(Phone,atol(m_phone);/将CString格式转换成数据库规定的格式Dbset.Update();/及时更新Dbset.Close();aa.Close();/并
36、关闭m_list.InsertItem(i,);m_list.SetItemText(i,0,m_num);m_list.SetItemText(i,1,m_name);/在列表里显示m_list.SetItemText(i,2,m_age);m_list.SetItemText(i,3,m_phone);m_list.SetItemText(i,4,m_home);删除void DIALOG3:Ondel() int pos=m_list.GetSelectionMark();/所选中行的索引号if(!(pos+1)/如果没有选中从第一行到最后一行,则提示选中先MessageBox(请先选择
37、需要删除的一行!,温情提示);elseCString Filepath=Data.mdb;aa.Open(Filepath);Dbset.Open(AFX_DAO_USE_DEFAULT_TYPE,SELECT * FROM DataTable,0);Dbset.Move(pos);/将记录集的指针移动到当前数据的索引处Dbset.Delete();/删除数据Dbset.Close();aa.Close();m_list.DeleteAllItems();readDb();/最后两句的作用是刷新列表修改void DIALOG3:Onmodify() UpdateData(true);int p
38、os=m_list.GetSelectionMark();if(!(pos+1)MessageBox(请先选择需要修改的行!,温情提示);elseCString Filepath=Data.mdb;aa.Open(Filepath);Dbset.Open(AFX_DAO_USE_DEFAULT_TYPE,SELECT * FROM DataTable,0);Dbset.Move(pos);Dbset.Edit();/将指针移动到所选项后,将数据置于编辑状态Dbset.SetFieldValue(Num,_variant_t(m_num);Dbset.SetFieldValue(Name,_va
39、riant_t(m_name);Dbset.SetFieldValue(Age,atol(m_age); Dbset.SetFieldValue(Phone,atol(m_phone);Dbset.SetFieldValue(Home,atol(m_home);Dbset.Update();/修改完以后更新,否则会出错Dbset.Close();aa.Close();m_list.DeleteAllItems();readDb();成员变量信息:/ stdafx.h : include file for standard system include files,/ or project sp
40、ecific include files that are used frequently, but/ are changed infrequently#if !defined(AFX_STDAFX_H_B7A04679_274E_49A4_BE2C_DE7F27AD1443_INCLUDED_)#define AFX_STDAFX_H_B7A04679_274E_49A4_BE2C_DE7F27AD1443_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000#define VC_EXTRALEAN/ Exclude rar
41、ely-used stuff from Windows headers#include / MFC core and standard components#include / MFC extensions#include / MFC Automation classes#include / MFC support for Internet Explorer 4 Common Controls#ifndef _AFX_NO_AFXCMN_SUPPORT#include / MFC support for Windows Common Controls#endif / _AFX_NO_AFXCMN_SUPPORT#include #include/AFX_INSERT_LOCATION/ Microsoft Visual C+ will insert additional declarations immediately before the previous line.#endif / !defined(AFX_STDAFX_H_B7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年内蒙古电子信息职业技术学院单招职业适应性考试模拟试题及答案解析
- 2026年惠州城市职业学院单招职业适应性测试参考题库及答案解析
- 2026年广西生态工程职业技术学院单招职业适应性考试备考试题及答案解析
- 2026年郑州西亚斯学院单招职业适应性测试备考题库及答案解析
- 2026年咸宁职业技术学院单招职业适应性测试模拟试题及答案解析
- 期中考试考前动员讲话稿
- 2026年昆明工业职业技术学院单招职业适应性考试备考题库及答案解析
- 期末复习校园专题广播稿
- 2026年河北资源环境职业技术学院单招职业适应性考试模拟试题及答案解析
- 2026年江西财经职业学院单招职业适应性考试模拟试题及答案解析
- 智能装备制造业售后服务体系建设
- 埃斯特维华义制药有限公司年产35吨4800、25吨4790高级中间体技改项目环境影响报告书
- 魔力宝贝宠物卡片武器物品编码
- 小学毕业班动员会教学课件
- 汽车坡道玻璃雨棚施工方案
- 护理质量检查记录69528
- 盆底肌表面肌电解读
- 《南州六月荔枝丹》公开课PPT
- 四川省地震灾区重大地质灾害治理工程资料全套表格
- 核对稿-700单元联锁
- 山塘整治工程建设方案
评论
0/150
提交评论