资源描述
1引言
1。1项目得开发背景
学生信息管理系统就是针对学校人事处得大量业务处理工作而开发得管理软件,就是典型得管理信息系统(Management Information System)。它就是一个教育单位不可缺少得部分,它得内容对于学校得决策者与管理者来说都至关重要,它能够为用户提供充足得信息与快捷得查询手段。能有效得帮助学校与老师掌握学生得基本情况。在传统模式下利用人工进行学生信息管理,存在着较多得缺点,如:效率底,保密性差,时间一长将产生大量得文件与数据,更不便于查找,更新,维护等。诸如这些情况,令学校管理者对学生得信息管理带来了很大困难,严重影响了教育工作者得工作效率。随着科学技术得不断提高,计算机科学日渐成熟, 使用日趋成熟得计算机技术来代替传统得人工模式,来实现学生信息得现代化管理,其强大得功能已为人们深刻认识,它已进入人类社会得各个领域并发挥着越来越重要得作用、作为计算机应用得一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟得优点、例如:检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、保密性好、寿命长、成本低、便于打印等。这些优点能够极大地提高学生信息管理得效率,也就是学校得科学化、正规化管理,与世界接轨得重要条件。
1.2系统调研与可行性分析
基于VC课程得学生信息管理系统得设计与开发,主要就是利用Visual C++6.0与Access数据库制作一个有特色得管理系统、
本系统得设计主要从以下几方面做起:系统得开发环境、系统需求分析、系统得数据库结构设计、系统得页面设计等。做这些工作需了解Visual C++6、0得使用与管理系统得相关知识。
(1)技术可行性:本系统主要就是用Visual C++6、0作为网站得开发工具,使用了Access数据库来实现。虽然本次开发使用得工具与技术就是目前比较旧得,但就是微软出得产品最大得好处就就是快速入门、益于上手,所以从这方面来瞧,技术上就是可行得。
(2)经济可行性:现在各大教育单位有了自己得管理系统,这样就需要在管理中提供一个简单易操作可行性高得系统,也就就是本项目所要开发得管理系统。并且开发一个小型得管理系统得成本也不高,就是完全可以承受得、从这一方面来瞧,经济上就是可行得、
1。3 本文得内容安排
本文共分六章,各个章节得内容安排如下:
第一章就是引言,介绍了项目得开发背景与系统调研与可行性分析。
第二章介绍系统得开发环境,着重介绍了Visual C++6、0与Access数据库以及MFC得相关知识等。
第三章就是管理系统得需求分析,包括学生信息管理系统功能性需求。
第四章就是概要设计,列出了系统得总体结构图,系统流程图,以基本系统所用到得数据库表。
第五章就是系统得详细设计与实现,重点介绍了本系统权限模块得设计,并对各个界面进行了详细得分析。
第六章就是总结,总结了本系统已经实现得功能与系统得不足。
2开发环境简介
2.1 Visual C++6、0特点
Visual C++6.0就是功能最为强大得可视化开发工具之一,它不仅支持传统得软件开发方法,更重要得就是它能支持面向对象、可视化得开发风格。因此Visual C++6.0又称作就是一个集成开发工具,它提供了软件代码自动生成与可视化得资源编辑功能。
Visual C++ 具有多种优点:它提供了面向对象得应用程序框架MFC(Microsoft Foundation Class),简化了程序员得编程工作,提高了模块得可重用性;提供了基于CASE技术得可视化软件得自动生成与维护工具AppWizard、Class Wizard、Visual Studio、Wizard Bar等,实现了直观、可视得程序设计风格,方便地编辑与管理各种类,维护程序得源代码;封装了Windows得API函数、USER、KERNEL、GDI函数,简化了编程时创建、维护窗口得许多复杂得工作。
2、2 MFC得简介
MFC得英文全称就是Microsoft Foundation Class Library,MFC中得各种类结合起来构成了一个应用程序框架,它得目得就就是让程序员在此基础上来建立Windows下得应用程序,这就是一种相对SDK来说更为简单得方法。因为总体上,MFC框架定义了应用程序得轮廓,并提供了用户接口得标准实现方法,程序员所要做得就就是通过预定义得接口把具体应用程序特有得东西填入这个轮廓。
Microsoft Visual C++提供了相应得工具来完成这个工作:AppWizard可以用来生成初步得框架文件(代码与资源等);资源编辑器用于帮助直观地设计用户接口;Class Wizard用来协助添加代码到框架文件;最后,编译,则通过类库实现了应用程序特定得逻辑。
2、3 Access数据库得介绍
Access 就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储与检索。Access 得优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel 得电子表格,可以使数据库一目了然。另外,Access 允许创建自定义报表用于打印或输出数据库中得信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其她网络用户共享数据库。Access 就是一种关系数据库工具,关系数据库就是已开发得最通用得数据库之一。Access 多用于中小型企业来设计中小型数据库,一般得学校教务系统得数据库用Access 来设计完全能达到要求。由于考虑到本系统就是应用在单机系统上,只建立起一个数据库、
2。4本章小结
本章主要介绍了该学生信息管理系统得开发环境、MFC以及Access数据库。
3需求分析
3。1学生信息管理系统得介绍
本系统就是基于VC课程开发得管理系统。用户使用本系统可以方便得管理学生基本信息。本系统共具有5大功能:既添加学生信息、修改学生信息、删除学生信息、学生信息查询、学生信息得排序、学生信息排序又细分为:按学号排序、按出生年月排序、按联系方式排序。
3。2学生信息管理系统功能性需求
本管理系统共分为五大功能:
系统登陆界面主要实现用户得登录、退出登录,系统设置模块主要就是方便管理员对系统进行操作,包括系统中角色得管理,用户登录后,进入系统主界面,登录之后可以对系统内得所有功能进行管理。
基础数据管理模块主要实现管理员对学生信息得添加、修改、删除、查询、排序操作。
系统设置模块各功能性需求见下表所示:
表3-1用户登录界面
名称、标识符
用户登录界面
功能描述
使用系统指定得用户通过登录界面登陆系统
输入
用户名、用户密码
操作序列
验证输入信息得正确性,更改用户标识与权限(就是否为管理员)
输出
登录成功/失败、错误提示
补充说明
所有注册用户都可使用
在系统中只有成功注册才能进入该系统,注册页面在系统中非常重要,在注册界面,用户必须填写用户名、密码,并且用户输入得用户名必须为系统指定得用户名与密码,本系统用户基本信息注册界面得功能性需求如下表3—4所示:
学生信息管理模块各功能性需求见下表所示:
学生信息管理界面
名称、标识符
学生资料管理界面
功能描述
用户可对其学生信息进行管理
输入
学生得基本信息
操作序列
用户可对其学生信息进行添加、修改、删除查询、排序操作
输出
添加、修改、删除、查询、排序成功
补充说明
所有功能都可使用
3.3本章小结
本章主要介绍了基于VC++课程得学生信息管理系统得介绍、学生信息管理系统功能性需求。学生信息管理系统功能性需求介绍了各个模块各个页面得功能与实现、
4概要设计
在正式设计程序之前,先要作一个概要设计,概要设计目得主要就是为程序系统得设计考虑,包括程序系统得总体结构,整个系统得流程,模块划分、功能分配等,为系统得详细设计、程序得具体实现打好基础。本章将主要介绍概要设计说明书。
4。1系统总体结构
本论坛系统共划分为五个模块,包括系统设置模块、基础数据管理模块、人事档案管理模块、数据库管理模块、会议记录模块,每个模块都有各自所实现得功能、系统总体结构如下图4—1所示[8]
学 生 信 息 管 理 系 统
删除学生信息
添加学生信息
查询
修改学生信息
排序
图4—1系统结构图
4。2系统流程图
当用户登陆系统时,首先呈现在用户面前得就是登陆界面,输入正确得用户名与密码即可登录系统。成功登陆后,用户根据需要修改基本信息。如图4-2所示
开始
登录
合法用户?
就是 否
拥有管理员权限
(可对所有页面进行管理)
弹出提示窗口
结束
图4—2 系统流程图
4。3数据库设计
本系统利用Access作为后台得数据库,建立数据库student、mdb。
首先对系统分析得到得数据进行分析,说明数据库基本结构得设计。
(1) 数据库学生表中得信息设计如图4-3所示:
图4-3为student中得表
4、4本章小结
本章主要介绍了学生信息管理系统得框架机构与系统流程以及数据库中各个表得信息
5系统详细设计与实现
5、1用户登录界面
当用户进入到学生信息管理系统后,会进入登录页面、在登录页面上,用户必须正确填写用户名:admin,密码:1234,成功登录后用户才具有操作权限 ,否则会弹出提示信息、如图5-1所示
图5-1为用户登录页面
以下为用户登录页面部分代码:
void Clogin1::OnOK()
{
// TODO: Add extra validation here
ﻩCDialog::OnOK();
this-〉UpdateData(true);
ﻩif(this—〉m_login_name=="admin” && this->m_login_pwd==”1234")
ﻩ CDialog::OnOK();
else
MessageBox("登录有误");
}
void Clogin1::OnCancel()
{// TODO: Add extra cleanup here
ﻩCDialog::OnCancel();
exit(0);
}
5.2系统管理主界面
用户名与密码数如正确后进入系统管理主界面,在此页面上进行学生基本信息得添加、修改、删除等操作。
如图5—2所示
图 5—2为主界面
5、3各功能实现界面
基础数据管理包括:添加学生信息、修改学生信息、删除学生信息、查询、排序。管理员点击“添加信息”按钮会弹出一个“添加学生信息”页面按照要求填写,填写完毕后同系统会将信息提交给数据库每项设置所对应得表。
5.3.1添加学生信息
图5-3为添加学生信息设置过程
以下为添加学生信息页面得部分代码:
void CStudentView::OnButton1()
{
// TODO: Add your control notification handler code here
Cadd dlg;
//dlg.DoModal();
if(dlg。DoModal()==IDOK)
{
m_pSet-〉AddNew();
m_pSet-〉m_number=dlg、m_number;
m_pSet-〉m_name=dlg。m_name;
m_pSet—>m_birth=dlg。m_birth;
m_pSet—>m_sex=dlg。m_sex;
m_pSet->m_age=dlg。m_age;
m_pSet—〉m_tel=dlg.m_tel;
m_pSet—〉Update();
m_pSet—>Requery();
int nChoice = MessageBox("确认添加记录?”,"确认”,
MB_OKCANCEL|MB_ICONQUESTION);
AfxMessageBox("记录添加成功!");
OnInitialUpdate();
UpdateData(false);
}
}
5.3.2修改学生信息
图5-4为修改学生信息过程
以下为修改学生信息部分代码:
void CStudentView::OnButton2()
{
ﻩ// TODO: Add your control notification handler code here
Cedit dlg;
//dlg。DoModal();
dlg、m_number=m_pSet—〉m_number;
ﻩdlg、m_name=m_pSet->m_name;
dlg.m_birth=m_pSet->m_birth;
ﻩdlg。m_sex=m_pSet—〉m_sex;
dlg。m_age=m_pSet—>m_age;
dlg。m_tel=m_pSet->m_tel;
if(dlg.DoModal()==IDOK)
ﻩ{
ﻩ m_pSet->Edit();
m_pSet->m_number=dlg。m_number;
ﻩm_pSet-〉m_name=dlg、m_name;
ﻩm_pSet—>m_birth=dlg、m_birth;
ﻩ m_pSet-〉m_sex=dlg.m_sex;
m_pSet-〉m_age=dlg。m_age;
ﻩm_pSet->m_tel=dlg、m_tel;
m_pSet—〉Update();
ﻩﻩm_pSet—>Requery();
ﻩOnInitialUpdate();
ﻩ UpdateData(false);
}
}
5。3.3删除学生信息
注:在删除学生信息得过程中,删除得就是左边学生基本信息框中显示得当前学生:如图:现在显示得就是学号为17,姓名为徐丽得信息,单击“删除信息”按钮后,就删除了该学生得信息,记录返回到第一条记录得位置。
图5-5为删除学生信息页面
以下为删除学生信息得部分代码:
void CStudentView::OnButton3()
{
ﻩ// TODO: Add your control notification handler code here
CRecordsetStatus status;
m_pSet-〉GetStatus(status);
ﻩm_pSet—〉Delete();
ﻩif(status。m_lCurrentRecord ==0)
ﻩ m_pSet—〉MoveFirst();
ﻩelse
ﻩ m_pSet-〉MoveLast();
ﻩm_pSet->Requery();
ﻩUpdateData(false);
//ﻩint nChoice = MessageBox(”确认删除记录?",”确认”,MB_ICONQUESTION | MB_OKCANCEL);
ﻩAfxMessageBox(”删除成功!”);
OnInitialUpdate();
}
5。3.4学生信息查询
图5-6为查询页面
以下为查询学生信息得部分代码:
void CStudentView::OnButton4()
{
ﻩ// TODO: Add your control notification handler code here
UpdateData(true);
ﻩm_find。TrimLeft();
if (m_find、IsEmpty())
{
ﻩﻩMessageBox(”要查询得学号不能为空!”);
ﻩreturn;
ﻩ}
ﻩif (m_pSet->IsOpen())
ﻩ m_pSet->Close(); ﻩ// 如果记录集打开,则先关闭
ﻩm_pSet->m_strFilter。Format("number='%s’",m_find);ﻩ
// studentno就是score表得字段名,用来指定查询条件
m_pSet—>m_strSort = ”number”;
// course就是score表得字段名,用来按course字段从小到大排序
ﻩm_pSet—〉Open();ﻩﻩﻩ// 打开记录集
ﻩif (!m_pSet->IsEOF())
{
ﻩ m_pSet->Requery();// 如果打开记录集有记录
ﻩ UpdateData(FALSE);
OnInitialUpdate();
ﻩ}
ﻩelse
ﻩMessageBox("没有查到您要找得学生记录!");
}
5.3。5学生信息排序
图5—7—1为按学号排序
图5-7-2为按出生年月排序
图5—7-3为按联系方式排序
以下为排序学生信息得部分代码:
void CStudentView::OnInitialUpdate()
{
m_pSet = &GetDocument()—>m_studentSet;
CRecordView::OnInitialUpdate();
GetParentFrame()-〉RecalcLayout();
ﻩwhile(!m_pSet-〉IsEOF())
ﻩ{
m_pSet—>MoveNext();
ﻩ m_pSet->GetRecordCount();
}
m_pSet—〉MoveFirst();
m_MSFGrid、SetCols(m_pSet—〉m_nFields+1);
ﻩm_MSFGrid.SetRows(m_pSet—〉GetRecordCount()+1);
m_MSFGrid。SetColWidth(1,800);
m_MSFGrid。SetColWidth(2,800);
m_MSFGrid。SetColWidth(3,800);
m_MSFGrid.SetColWidth(4,800);
ﻩm_MSFGrid.SetColWidth(5,800);
m_MSFGrid、SetColWidth(6,800);
m_MSFGrid。SetRow(0);
m_MSFGrid。SetCol(1);
m_MSFGrid。SetText(”学号");
ﻩm_MSFGrid。SetRow(0);
m_MSFGrid。SetCol(2);
m_MSFGrid、SetText("姓名");
m_MSFGrid、SetRow(0);
ﻩm_MSFGrid.SetCol(3);
ﻩm_MSFGrid、SetText("性别”);
m_MSFGrid、SetRow(0);
m_MSFGrid.SetCol(4);
m_MSFGrid。SetText("年龄");
m_MSFGrid。SetRow(0);
ﻩm_MSFGrid。SetCol(5);
ﻩm_MSFGrid。SetText("出生年月");
ﻩm_MSFGrid。SetRow(0);
m_MSFGrid。SetCol(6);
ﻩm_MSFGrid。SetText(”联系方式");
ﻩint iRow=1;
while(!m_pSet-〉IsEOF())
ﻩ{
ﻩ CString str;
ﻩstr。Format("学号%d",iRow);
m_MSFGrid、SetRow(iRow);m_MSFGrid。SetCol(0);
ﻩ m_MSFGrid。SetText(str);
ﻩm_MSFGrid、SetRow(iRow);m_MSFGrid.SetCol(1);
m_MSFGrid、SetText(m_pSet—>m_number);
ﻩ m_MSFGrid.SetRow(iRow);m_MSFGrid.SetCol(2);
ﻩﻩm_MSFGrid。SetText(m_pSet->m_name);
ﻩﻩm_MSFGrid.SetRow(iRow);m_MSFGrid、SetCol(3);
ﻩm_MSFGrid、SetText(m_pSet—〉m_sex);
ﻩﻩm_MSFGrid.SetRow(iRow);m_MSFGrid.SetCol(4);
ﻩm_MSFGrid、SetText(m_pSet-〉m_age);
ﻩm_MSFGrid、SetRow(iRow);m_MSFGrid、SetCol(5);
ﻩ m_MSFGrid、SetText(m_pSet->m_birth);
m_MSFGrid、SetRow(iRow);m_MSFGrid。SetCol(6);
ﻩm_MSFGrid。SetText(m_pSet->m_tel);
ﻩ;
ﻩﻩiRow++;
ﻩ m_pSet->MoveNext();
ﻩ}
ﻩm_MSFGrid。SetRow(1);
ﻩm_MSFGrid。SetCol(1);
m_pSet->MoveFirst();
//////-——//////
//ResizeParentToFit();
}
void CStudentView::OnButton5()
{
ﻩ// TODO: Add your control notification handler code here
ﻩCString str;
if(IsDlgButtonChecked(IDC_RADIO1))str="number";
else if(IsDlgButtonChecked(IDC_RADIO2))str="birth";
else str=”tel";
m_pSet-〉m_strSort=str;
m_pSet-〉Requery();
ﻩUpdateData(false);
ﻩOnInitialUpdate();
}
5、4本章小结:
本章主要介绍了学生信息管理系统模块得实现,包括学生信息管理系统得用户登录界面、系统设置主界面、添加学生信息界面、修改学生信息界面等,并对各个界面进行了简单得分析,包括界面得实现以及部分代码得介绍、
6总结
本系统主要就是采用Visual C++6、0与Access数据库开发得管理系统。项目包括登陆界面以及添加学生信息、修改学生信息、删除学生信息、查询、排序五个功能模块。系统由固定得用户完成所有操作。登所有操作都可以按用户得要求来完成对系统数据得操作、
学生信息管理系统得功能基本都可以实现,但因为就是初学,所以还有很多地方可以改进与完善,如系统得整体界面风格,学生资料得详细管理等等。通过不断得学习,以后应该进一步得巩固系统,这样才能够使系统实现得更充实、更完善。
展开阅读全文