学生信息管理系统毕业设计
图书馆收藏
中图分类号: 密级:
UDC : 编号:
毕业设计
设计题目名称:学生信息管理系统
学 生 姓 名:
专业名称:
班 级:
学 制:
学 号:
指导教师:
评 阅 人:
论文(设计)提交日期: 2013年 6月 14日
论文(设计)答辩日期: 2013年 6 月 18 日
江苏建筑职业技术学
二○一三 年 六 月 十四 日
院
毕业设计成绩评定书
专业、班级 姓名 日期 2013.6.14
1、设计题目 学生信息管理系统
2、设计指导教师(签名)
3、设计评阅人(签名) 评阅日期
4、评定意见及成绩
年 月 日
摘 要
在信息高速发展的当今社会,任何学校和企业都离不开信息化的建设,信息化水平已经成为一个评价综合实力的重要指标。随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。面对庞大的信息量,就需要有学生信息管理系统来提高学生管理工作的效率。通过这样的系统,可以做到信息的规范管理,科学统计和快速的查询,从而减少管理方面的工作量。在学校或班级,会对每个学生的个人信息进行统计和管理,由于学生数目繁多,因此在处理统计学生个人信息时的工作会相对繁琐,所以针对这种情况,同时对分析信息管理所需要的功能,设计了一种小型的学生信息管理系统,该系统具有学生成绩相关性息的录入、显示、查询、修改、删除和统计功能。
关键字:信息化,学生信息管理,统计。
English Abstract
In the information high speed development of today's society, any school and enterprise cannot leave the informationization construction, informatization level evaluation has become an important indicator of overall strength. With school's scale expands unceasingly, the number of students increased dramatically, all kinds of information about student also multiplied. In the face of huge amount of information, student information management system will be necessary to improve the efficiency of student management work. Through such system, can achieve information management, scientific statistics and quick query, thereby reducing the workload of management. In schools or classes, of statistics and management for each student's personal information, because the number of students is various, therefore in the treatment of the statistics of student personal information work relatively tedious, so for this case, the need to analyze information management function at the same time, we design a small student information management system, the system has a student performance correlation rate of input, display, query, modify, delete, and statistical functions.
Key words: information, student information management, statistics.
目录
第一章 前言
1.1毕业设计目的及任务··········································1
1.1.1目的····················································1
1.1.2任务····················································1
第二章 概述
2.1系统开发背景················································2
2.2系统开发目的及意义··········································2
2.3系统现状及发展趋势··········································2
第三章 系统分析
3.1系统研究目标·················································3
3.2系统研究内容·················································3
3.3可行性分析···················································3
3.4需求分析·····················································4
3.5性能分析·····················································4
3.6开发平台与关键技术···········································5
3.6.1Visual Studio 2010 简介···································5
3.6.2Access 数据库简介·········································5
第四章 总体设计
4.1系统主要功能模块图···········································6
4.2系统流程图···················································7
4.3数据库设计··················································8
第五章 系统实现
5.1用户登录·····················································10
5.2功能界面····················································12
5.2.1查询····················································12
5.2.2修改····················································19
5.2.3增加····················································23
5.2.4用户设置················································27
第六章 总结和展望
6.1设计总结与展望··············································30
致谢·····························································31 参考文献·························································32
1.1毕业设计目的及任务
1.1.1目的
毕业设计是带有研究性质的专题研究分析、设计报告,是完成教学任务、培养合格人才的一个重要实践性教学环节。通过毕业设计,可以培养学生的开发和设计能力,提高综合运用所学知识和技能去分析、解决实际问题的能力,检验学生的学习效果等均具有重要意义。 通过毕业设计,旨在是学生对所学过的基础理论和专业知识进行一次系统的回顾和总结,通过对具体题目的分析,是理论与实际相结合,巩固和发展所学理论知识,掌握正确的思维方法和基本技能,提高学生独立思考能力和团结协作的工作作风,提高学生利用计算机解决实际问题的能力及计算机实际操作水平,促进学生建立严谨的科学态度和工作作风。
1.1.2任务
(1)巩固和提高学生学过的基础理论和专业知识。
(2)提高学生运用所学专业知识进行独立思考和综合分析、解决实际问题的能力。
(3)培养学生掌握正确的思维方法和利用计算机解决实际问题的基本技能。
(4)增强学生对软件开发过程的认识,掌握软件设计方法,进行编制技术文件等基本技能的训练,使之具有一定程度的实际工作能力。
(5)是学生掌握文件检索、资料查询的基本方法以及获取新知识的实际工作能力。
(6)促使学生学习和获取新知识,掌握自我学习的能力。
(7)通过参与实际工作,使学生了解社会工作,具备一定是实际工作能力。
2.1系统开发背景
学生信息管理系统是当前一个很热门,实用性很强的系统,这里我们实现的是学生个人基本信息模块,把它作为毕业设计的题目,可以把已有的知识用于实践,又可以学到一些新的概念,在这个过程中,可以增加我们的工程经验,对以后的工作学习是一次很有意义的经验积累。
2.2系统开发目的及意义
明确本系统的详细需求,确认系统的功能和性能,并作为软件设计人员的设计依据。研究本系统的总体需求、背景。对开发评价进行分析,得出经验与教训。开发本系统旨在编制一个具有良好的人机交互界面、容易操作(即使是新手)、功能齐全且安全稳定性高的操作软件,要求界面友好,方便直观。为学校有关学生信息管理方面的相关人员提供应有的技术支持与服务。
2.3系统现状及发展趋势
现代社会,信息化管理和信息化设备已经深入到我们生活的方方面面,同时,信息时代带给现代企业强烈的冲击,信息管理已经不再满足于在传统的纸质媒体上纪录,而要求更加快速,更加精确的记录各种相关信息,而随着基于数据库的网络信息系统的发展,人们已经开始在这个平台上面开发出了学生信息管理系统,而随着企业的不断发展,学生信息的日益庞大,学生信息管理系统的发展也发生着深刻变革。
第三章 系统分析
3.1系统研究目标
本系统可以能减少很多不必要的资源,不用像以前那样用冗余的纸张式的管理。大节省了学校能源。并且计算机的存储与快速查询功能大大提高了学籍管理的效率,并且还提高了学生信息管理的精确度。方便快速的操作,可减少学籍信息管理的漏洞,又减少因工作的冗余出现的错误,并且操作非常简单,可减少许多不很必要的人员,这无论从物质上还是工作人员的工资上都为学校节约了开支。为学校增加了财富。
3.2系统研究内容
学生信息管理系统可以说是一个综合性的学校学生管理系统,它集成了学生信息管理、学生成绩管理、学生档案管理、学生教学管理等多种功能,因而具有较强的实用性、全面性和先进性。
3.3可行性分析
目的:
可行性研究的目的是用最小的代价在尽可能的时间内确定问题是否能解决。
经济性:
由于学校等中小型管理系统并不复杂,且本身要求的运行环境不高,所以一般Windows 2000以上的系统环境都可以使用。
实用性:
本学生信息管理系统管理系统无太多复杂的操作要求,也没有过分花哨的装饰品,人性化的设计界面可以使操作者轻易运用自如。
机器方面:
由于本学生信息管理系统管理的对象比较单一,都是在校学生,且数据内容之间具有较强的关联性,涉及的计算过程也不是很复杂,因此,比较适合于采用数据库管理,且学校用于学生信息管理的机器在存储量、速度方面也能满足数据库运行的要求。
技术方面:
在实际运行操作中,一旦遇到棘手问题可以去请教相关人士和指导老师,或者是去查询
网上资料和参考相关文献,也可以参阅其它程序的功能,因此实现它是不容置疑的。
资金方面:
本学生信息管理系统在资金方面的要求不是很高,即使是普通的高校也能够承担得起并且愿意承担这一部分费用,因为这是一件功在当代,利在千秋的事情。本系统在协作成本、人工费、耗电量、调试和编码费用等方面都设有一定数量的活动资金,并且备有风险金,完全解决了资金方面的后顾之忧。
3.4需求分析
21世纪以来,人类经济高速发展,人们发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域。使原本的旧的管理方法越来越不适应现在社会的发展。许多人还停留在以前的手工操作。这大大地阻碍了人类经济的发展。为了适应现代社会人们高度强烈的时间观念,学校信息管理系统软件为学校办公室带来了极大的方便。
(一)学生管理现状分析
学校工作总体规划由教务人员在学生信息管理系统中完成对运行教务处所需的基本数据的维护,包括这些信息的增加、修改及对各项信息的变动都将在这进行操作。新的学年,教务人员首先加入年级信息,然后编排班级,再对来校学生进行基本的信息录入,新生入学后由教务人员在学籍系统中完成新学生信息的维护。
(二)具体需求分析
管理员:对各个学生信息的查询,增加,修改等操作。
通过研究调查,本系统需以下功能:
综合学生信息的查询。
方便用户了解和管理学生的全面动态信息。
良好的界面设计,更人性化的设计理念,使用户拥有更轻松的使用心情。
3.5性能分析
由于本高校学生信息管理系统存储的信息量较大,历史跨度长,所以要求系统具有良好的安全性与稳定性。具体表现如下:
(1)本系统应具有良好的交互界面, 扩展性强;
(2)由于该系统的用户较多, 要求具有良好的权限管理;
(3)单个数据的修改与更新不会影响到其他数据的安全与稳定;
(4)当用户提出请求时,服务端模块能在短时间内做出回应。
3.6开发平台与关键技术
3.6.1 Visual Studio 2010 简介
Visual Studio 2010 是一套完整的开发工具,用于生成 ASP Web 应用程序、XML Web services 、桌面应用程序和移动应用程序。Visual Basic .NET 、Visual C++ .NET、Visual C# .NET 和 Visual J# .NET 全都使用相同的集成开发环境 (IDE),该环境允许它们共享工具并有助于创建混合语言解决方案。
3.6.2 Access数据库简介
Access 是一个数据库管理系统,它之所以被集成到Office 中而不是Visual Studio中,是因为它与其它的数据库管理系统(如Visual FoxPro)相比更加简单易学,一个普通的计算机用户即可掌握并使用它。而且最重要的一点是,Access 的功能足够强大,足以应付一般的数据管理及处理需要。
Access 可以实现建立数据库、报表,以及对数据库、报表的修改、查询等功能。 而它不要空间费用,而SQL 要空间费用。这个很适合企业站,容量不太,而且经济!不过要说明的一点,ACCESS 稳定性不好,如果这个网站日访问量很大的话,最好不用ACCESS 。
第四章 总体设计
4.1系统主要功能模块图
图1-系统功能模块图
一个简单的学生成绩信息管理系统主要包括输入信息、显示信息、查询信息、修改信息、删除信息、按顺序显示以及退出。如果连这些最基本的功能都没有,系统也不能减轻教师工作压力。连最基本的功能都没有,那还不如不做,做了也不会有人用,所以首先要满足他的基本功能。(图1)
4.2系统流程图
图2-系统流程图
4.3数据库设计
4.3.1逻辑结构
表-1用户登陆表
表-2学生信息表
4.3.2数据表
图8-用户信息
数据库内存有用户信息,用户名及用户密码单独存储在一张表内。
图9-学生信息
所有学生信息都保存在这张表内,增加、修改都能同步到这张表。
在输入用户名登录的时候,输入正确后系统会同时连接到数据库并显示数据。 try
{
CoInitialize(NULL);
hr = m_pConnection.CreateInstance(_T("ADODB.Connection")); if(SUCCEEDED(hr)) {
hr = m_pConnection->Open(_T("Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=test.mdb"),_T(""),_T(""),adModeUnknown);
}
}
catch(_com_error e)
{ }
CWinApp::InitInstance(); if (!AfxSocketInit()) { }
AfxMessageBox(IDP_SOCKETS_INIT_FAILED); return FALSE; CString errormessage;
errormessage.Format(_T("连接失败!\r\n错误信息:%s"),e.ErrorMessage()); AfxMessageBox(errormessage); return FALSE;
第五章 系统实现
5.1用户登录
图3-登录界面
输入管理员的账号和密码。如果输入正确,点击“确定”则进入主界面进行下一操作;如果输入错误,点击“确定”则无反应。
// Cpage4 对话框
IMPLEMENT_DYNAMIC(Cpage4, CDialogEx) Cpage4::Cpage4(CWnd* pParent /*=NULL*/) { }
Cpage4::~Cpage4() { }
void Cpage4::DoDataExchange(CDataExchange* pDX) { }
BEGIN_MESSAGE_MAP(Cpage4, CDialogEx)
: CDialogEx(Cpage4::IDD, pParent) , cname(_T("")) , cpass(_T(""))
CDialogEx::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT1, cname); DDX_Text(pDX, IDC_EDIT2, cpass);
// Cpage4 消息处理程序
void Cpage4::OnTimer(UINT_PTR nIDEvent) { }
BOOL Cpage4::OnInitDialog() { }
void Cpage4::OnBnClickedOk() {
// TODO: 在此添加控件通知处理程序代码 UpdateData(TRUE); vpass=cpass; vname=cname; try {
m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
m_pRecordset->Open(_T("SELECT * FROM login where name='"+cname+"' and CDialogEx::OnInitDialog(); // TODO: 在此添加额外的初始化 return TRUE;
// 异常: OCX 属性页应返回 FALSE
// TODO: 在此添加消息处理程序代码和/或调用默认值 CDialogEx::OnTimer(nIDEvent); ON_BN_CLICKED(IDOK, &Cpage4::OnBnClickedOk) ON_BN_CLICKED(IDCANCEL, &Cpage4::OnBnClickedCancel)
END_MESSAGE_MAP()
pass='"+cpass+"'"),_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error e) { }
if(!m_pRecordset->adoEOF) { }
AfxMessageBox(_T("读取数据库失败1!"));
CDialogEx::OnOK();
void Cpage4::OnBnClickedCancel() { }
// TODO: 在此添加控件通知处理程序代码 CDialogEx::OnCancel();
5.2功能界面
5.2.1查询
图4-查询界面
查询界面可根据学生的姓名或学号进行相关信息查询。在没有输入查询信息的情况下系统自动显示全部信息。
如果要查询的信息存在,则会将相应的信息显示在表头下。如果要查询的信息不存在,则会显示空白。
// Cpage1 对话框
IMPLEMENT_DYNAMIC(Cpage1, CDialogEx) Cpage1::Cpage1(CWnd* pParent /*=NULL*/)
: CDialogEx(Cpage1::IDD, pParent) , name(_T(""))
{ }
Cpage1::~Cpage1() { }
void Cpage1::DoDataExchange(CDataExchange* pDX) { }
BEGIN_MESSAGE_MAP(Cpage1, CDialogEx)
// Cpage1 消息处理程序 BOOL Cpage1::OnInitDialog() {
CDialogEx::OnInitDialog(); CString abc;
// TODO: 在此添加额外的初始化 ::SendMessage(m_userlist.m_hWnd,
m_userlist.InsertColumn(0,_T("学号"),LVCFMT_LEFT,100); m_userlist.InsertColumn(1,_T("姓名"),LVCFMT_LEFT,100); m_userlist.InsertColumn(2,_T("年龄"),LVCFMT_LEFT,60); m_userlist.InsertColumn(3,_T("性别"),LVCFMT_LEFT,100); m_userlist.InsertColumn(4,_T("住址"),LVCFMT_LEFT,100); m_userlist.InsertColumn(5,_T("籍贯"),LVCFMT_LEFT,100); m_userlist.InsertColumn(6,_T("入学日期"),LVCFMT_LEFT,100); m_userlist.InsertColumn(7,_T("备注"),LVCFMT_LEFT,150); int nItem; try
CDialogEx::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT1, name); DDX_Text(pDX, IDC_EDIT2, id);
DDX_Control(pDX, IDC_LIST3, m_userlist);
ON_WM_CLOSE()
ON_BN_CLICKED(IDC_BUTTON1, &Cpage1::OnBnClickedButton1) ON_NOTIFY(HDN_ITEMDBLCLICK, 0, &Cpage1::OnHdnItemdblclickList3) ON_NOTIFY(NM_DBLCLK, IDC_LIST3, &Cpage1::OnNMDblclkList3)
ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST3, &Cpage1::OnLvnItemchangedList3)
END_MESSAGE_MAP()
LVM_SETEXTENDEDLISTVIEWSTYLE,LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);
m_pRecordset.CreateInstance(_T("ADODB.Recordset")); m_pRecordset->Open(_T("SELECT * FROM
main"),_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error e) { }
while(!m_pRecordset->adoEOF) {
vid = m_pRecordset->GetCollect(_T("id")); vname = m_pRecordset->GetCollect(_T("name")); vnum = m_pRecordset->GetCollect(_T("num")); vunit = m_pRecordset->GetCollect(_T("unit")); vlocation = m_pRecordset->GetCollect(_T("location")); vlocal = m_pRecordset->GetCollect(_T("local")); vdate = m_pRecordset->GetCollect(_T("date")); vother = m_pRecordset->GetCollect(_T("other")); cname=(LPCTSTR)(_bstr_t)vname; clocation=(LPCTSTR)(_bstr_t)vlocation; clocal=(LPCTSTR)(_bstr_t)vlocal; cdate=(LPCTSTR)(_bstr_t)vdate; cother=(LPCTSTR)(_bstr_t)vother;
nItem=m_userlist.InsertItem(0xffff,(_bstr_t)vid); if(cname!="NULL") { }
m_userlist.SetItem(nItem,2,1,(_bstr_t)vnum,NULL,0,0,0); m_userlist.SetItem(nItem,3,1,(_bstr_t)vunit,NULL,0,0,0); if(clocation!="NULL") { }
if(clocal!="NULL") {
m_bSuccess = TRUE;
AfxMessageBox(_T("读取数据库失败1!"));
m_userlist.SetItem(nItem,1,1,(_bstr_t)vname,NULL,0,0,0);
m_userlist.SetItem(nItem,4,1,(_bstr_t)vlocation,NULL,0,0,0);
}
void Cpage1::OnClose() { }
void Cpage1::OnBnClickedButton1() {
// TODO: 在此添加控件通知处理程序代码 UpdateData(); int nItem; try {
m_pRecordset.CreateInstance(_T("ADODB.Recordset")); CString tmp,tmp2,tmp3,tmp4; tmp="SELECT * FROM main where 1"; tmp2=" and name like \'%"; tmp3="%\'"; tmp4=" and id=";
if(name.GetLength()>0||id.GetLength()>0)
}
}
if(cdate!="NULL") { }
if(cother!="NULL") { }
m_pRecordset->MoveNext();
m_userlist.SetItem(nItem,7,1,(_bstr_t)vother,NULL,0,0,0); m_userlist.SetItem(nItem,6,1,(_bstr_t)vdate,NULL,0,0,0);
return TRUE;
// 异常: OCX 属性页应返回 FALSE
// TODO: 在此添加消息处理程序代码和/或调用默认值 if(m_bSuccess) { }
CDialogEx::OnClose();
m_pRecordset->Update(); m_pRecordset->Close();
} else { } m_pRecordset->Open(_variant_t(tmp+" order by if(name=="NULL"&&id=="NULL") { } if(name!="NULL"&&name.GetLength()>0) { } if(id!="NULL"&&id.GetLength()>0) { } tmp=tmp+tmp4+id; tmp=tmp+tmp2+name+tmp3;
id"),_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenDynamic,adLockOptimistic,adCmdText);
} catch(_com_error e) { } m_userlist.DeleteAllItems(); while(!m_pRecordset->adoEOF) { vid = m_pRecordset->GetCollect(_T("id")); vname = m_pRecordset->GetCollect(_T("name")); vnum = m_pRecordset->GetCollect(_T("num")); vunit = m_pRecordset->GetCollect(_T("unit")); vlocation = m_pRecordset->GetCollect(_T("location")); vlocal = m_pRecordset->GetCollect(_T("local")); vdate = m_pRecordset->GetCollect(_T("date")); vother = m_pRecordset->GetCollect(_T("other")); cname=(LPCTSTR)(_bstr_t)vname; clocation=(LPCTSTR)(_bstr_t)vlocation; clocal=(LPCTSTR)(_bstr_t)vlocal; cdate=(LPCTSTR)(_bstr_t)vdate;
AfxMessageBox(_T("输入错误!"));
}
void Cpage1::OnHdnItemdblclickList3(NMHDR *pNMHDR, LRESULT *pResult)
{
}
void Cpage1::OnNMDblclkList3(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMITEMACTIVATE pNMItemActivate = NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
} nItem=m_userlist.InsertItem(0xffff,(_bstr_t)vid); if(cname!="NULL") { } m_userlist.SetItem(nItem,2,1,(_bstr_t)vnum,NULL,0,0,0); m_userlist.SetItem(nItem,3,1,(_bstr_t)vunit,NULL,0,0,0); if(clocation!="NULL") { } if(clocal!="NULL") { } if(cdate!="NULL") { } if(cother!="NULL") { } m_pRecordset->MoveNext(); m_userlist.SetItem(nItem,7,1,(_bstr_t)vother,NULL,0,0,0); m_userlist.SetItem(nItem,6,1,(_bstr_t)vdate,NULL,0,0,0); m_userlist.SetItem(nItem,5,1,(_bstr_t)vlocal,NULL,0,0,0); m_userlist.SetItem(nItem,4,1,(_bstr_t)vlocation,NULL,0,0,0); m_userlist.SetItem(nItem,1,1,(_bstr_t)vname,NULL,0,0,0); m_userlist.SetFocus(); LPNMHEADER phdr = reinterpret_cast(pNMHDR); // TODO: 在此添加控件通知处理程序代码 *pResult = 0; reinterpret_cast(pNMHDR);
}
void Cpage1::OnLvnItemchangedList3(NMHDR *pNMHDR, LRESULT *pResult)
{
}
void Cpage1::tc()
{
}
m_pRecordset->MoveFirst(); int a=0; for(a=0;aGetCollect(_T("name")); c::gvid = m_pRecordset->GetCollect(_T("id")); c::gvnum = m_pRecordset->GetCollect(_T("num")); c::gvunit = m_pRecordset->GetCollect(_T("unit")); c::gvlocation = m_pRecordset->GetCollect(_T("location")); c::gvlocal = m_pRecordset->GetCollect(_T("local")); c::gvdate = m_pRecordset->GetCollect(_T("date")); c::gvother = m_pRecordset->GetCollect(_T("other")); Form1 f1; f1.DoModal(); m_pRecordset->MoveNext(); LPNMLISTVIEW pNMLV = reinterpret_cast(pNMHDR); NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; // TODO: 在此添加控件通知处理程序代码 *pResult = 0; if(pNMListView->uNewState&LVIS_SELECTED) { } m_nCurrentSel = pNMListView->iItem; tc();
5.2.2修改
图5-修改界面
修改界面可以进行信息的修改,在显示界面双击要修改的学生信息那一行,弹出修改界面,可以修改姓名、年龄、性别、住址、籍贯、入学日期以及备注。
如果修改成功,则会提示“修改成功”对话框。
// Form1 对话框
IMPLEMENT_DYNAMIC(Form1, CDialogEx)
Form1::Form1(CWnd* pParent /*=NULL*/)
{
}
Form1::~Form1()
{ : CDialogEx(Form1::IDD, pParent) , name(_T("")) , num(0) , weizhi(_T("")) , id(_T("")) , local(_T("")) , other(_T("")) , qw(_T(""))
void Form1::DoDataExchange(CDataExchange* pDX)
{
}
BEGIN_MESSAGE_MAP(Form1, CDialogEx)
// Form1 消息处理程序
void Form1::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码 UpdateData(); int tmp=0; CString unit,tmp2("NULL"); tmp=danwei.GetCurSel(); if(tmp==0) { } else if(tmp==1) { } CTime timeTime; CString cnum; CString str; if (riqi.GetTime(timeTime) == GDT_VALID) str = timeTime.Format(_T("%Y-%m-%d"));
CDialogEx::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT1, name); DDX_Text(pDX, IDC_EDIT2, num); DDX_Text(pDX, IDC_EDIT3, weizhi); DDX_Control(pDX, IDC_DATETIMEPICKER1, riqi); DDX_Text(pDX, IDC_EDIT4, id); DDX_Control(pDX, IDC_COMBO1, danwei); DDX_Text(pDX, IDC_EDIT5, local); DDX_Text(pDX, IDC_EDIT6, other); DDX_Text(pDX, IDC_EDIT7, qw); ON_BN_CLICKED(IDC_BUTTON1, &Form1::OnBnClickedButton1) END_MESSAGE_MAP() unit="男"; unit="女";
{ } if(name.GetLength()==0) { } c::gvnum=(long)num; cnum=c::gvnum; if(weizhi.GetLength()==0) { } if(local.GetLength()==0) { } if(other.GetLength()==0) { other=tmp2; } local=tmp2; weizhi=tmp2; name=tmp2; str=tmp2; CString a,b,c,d,e,f,g,h; a="update main set [name]='"; b="',[num]="; c=",[unit]='"; d="',[location]='"; e="',[local]='"; f="',[other]='"; g="',[date]='"; h="' where id="; a=a+name+b+cnum+c+unit+d+weizhi+e+local+f+other+g+str+h+id; qw=a; UpdateData(FALSE); m_pRecordset.CreateInstance(_T("ADODB.Recordset")); m_pRecordset->Open(_variant_t(a),_variant_t((IDispatch*)theApp.m_pConnectioMessageBox(L"修改成功"); CDialog::OnCancel();
n,true),adOpenDynamic,adLockOptimistic,adCmdText);
BOOL Form1::OnInitDialog()
{
CDialogEx::OnInitDialog(); // TODO: 在此添加额外的初始化 CString tmp; name=(LPCTSTR)(_bstr_t)c::gvname; if(name=="NULL") { } id=(LPCTSTR)(_bstr_t)c::gvid; num=(long)c::gvnum; tmp=(LPCTSTR)(_bstr_t)c::gvunit; if(tmp=="男") { } else if(tmp=="女") { } this->weizhi=(LPCTSTR)(_bstr_t)c::gvlocation; if(weizhi=="NULL") { } this->local=(LPCTSTR)(_bstr_t)c::gvlocal; if(local=="NULL") { } this->riqi.SetTime(c::gvdate); this->other=(LPCTSTR)(_bstr_t)c::gvother; if(other=="NULL") { } UpdateData(FALSE);
name=""; danwei.SetCurSel(0); danwei.SetCurSel(1); weizhi=""; local=""; other="";
}
// 异常: OCX 属性页应返回 FALSE
5.2.3增加
图6-增加界面
增加界面可以任何时间增加学生信息。学号是系统自动生成。 如果添加成功,则会提示“添加成功”对话框。
// Cpage2 对话框
IMPLEMENT_DYNAMIC(Cpage2, CDialogEx)
Cpage2::Cpage2(CWnd* pParent /*=NULL*/)
: CDialogEx(Cpage2::IDD, pParent)
, name(_T(""))
, id(_T(""))
, num(0)
, weizhi(_T(""))
, local(_T(""))
, time(_T(""))
, other(_T(""))
{
Cpage2::~Cpage2()
{
}
void Cpage2::DoDataExchange(CDataExchange* pDX)
{
C DialogEx::DoDataExchange(pDX);
D DX_Text(pDX, IDC_EDIT1, name);
D DX_Text(pDX, IDC_EDIT2, id);
D DX_Text(pDX, IDC_EDIT7, num);
D DX_Text(pDX, IDC_EDIT3, weizhi);
D DX_Text(pDX, IDC_EDIT4, local);
D DX_Text(pDX, IDC_EDIT6, time);
D DX_Text(pDX, IDC_EDIT5, other);
D DX_Control(pDX, IDC_DATETIMEPICKER1, riqi);
D DX_Control(pDX, IDC_COMBO1, danwei);
}
BEGIN_MESSAGE_MAP(Cpage2, CDialogEx)
O N_BN_CLICKED(IDC_BUTTON1, &Cpage2::OnBnClickedButton1) O N_WM_CLOSE()
O N_CBN_SELCHANGE(IDC_COMBO1, &Cpage2::OnCbnSelchangeCombo1) END_MESSAGE_MAP()
// Cpage2 消息处理程序
void Cpage2::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
U pdateData();
i nt tmp=0;
C String unit,tmp2("NULL");
t mp=danwei.GetCurSel();
i f(tmp==0)
{
}
e lse if(tmp==1)
{
}
unit="男"; unit="女";
}
BOOL Cpage2::OnInitDialog() {
C DialogEx::OnInitDialog();
// TODO: 在此添加额外的初始化 C oInitialize(NULL);
t ry
{
m_pRecordset->AddNew(); CTime timeTime; CString str; if (riqi.GetTime(timeTime) == GDT_VALID) str = timeTime.Format(_T("%Y-%m-%d")); vdate=tmp2; if(str.GetLength()>0) vdate = str; else else { } vnum=(long)num; if(weizhi.GetLength()>0) else else else if(local.GetLength()>0) if(other.GetLength()>0) vunit=unit; m_pRecordset->PutCollect("name",vname); //m_pRecordset->PutCollect("id",vid); m_pRecordset->PutCollect("num",vnum); m_pRecordset->PutCollect("unit",vunit); m_pRecordset->PutCollect("location",vlocation); m_pRecordset->PutCollect("local",vlocal); m_pRecordset->PutCollect("date",vdate); m_pRecordset->PutCollect("other",vother); m_pRecordset->Update(); vlocation=weizhi; vlocation=tmp2; vlocal=local; vlocal=tmp2; vother=other; vother=tmp2; vname=tmp2; if(name.GetLength()>0) vname=name; M essageBox(L"添加成功");
m_pRecordset.CreateInstance(_T("ADODB.Recordset")); m_pRecordset->Open(_T("SELECT * FROM
main"),_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenDynamic,adLockOptimistic,adCmdText);
}
c atch(_com_error e)
{
}
d anwei.SetCurSel(0);
r eturn TRUE;
// 异常: OCX 属性页应返回 FALSE
}
void Cpage2::OnClose()
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
i f(m_bSuccess)
{
}
C DialogEx::OnClose();
}
m_pRecordset->Update(); m_pRecordset->Close(); AfxMessageBox(_T("读取数据库失败!2")); m_bSuccess = TRUE;
5.2.4用户设置
图7-用户设置界面
设置界面可以进行增加用户名、重置密码的操作。
// Set 对话框
IMPLEMENT_DYNAMIC(Set, CDialogEx)
Set::Set(CWnd* pParent /*=NULL*/)
{
}
Set::~Set()
{
}
void Set::DoDataExchange(CDataExchange* pDX)
{
}
BEGIN_MESSAGE_MAP(Set, CDialogEx)
: CDialogEx(Set::IDD, pParent) , cname(_T("")) , cpass(_T("")) CDialogEx::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT1, cname); DDX_Text(pDX, IDC_EDIT2, cpass);
// Set 消息处理程序
void Set::OnBnClickedOk()
{
}
void Set::OnEnChangeEdit2()
{
}
void Set::OnBnClickedButton1()
{
}
BOOL Set::OnInitDialog()
{
CDialogEx::OnInitDialog(); CoInitialize(NULL); try {
ON_EN_CHANGE(IDC_EDIT2, &Set::OnEnChangeEdit2) ON_BN_CLICKED(IDC_BUTTON1, &Set::OnBnClickedButton1) ON_WM_CLOSE() ON_BN_CLICKED(IDC_BUTTON2, &Set::OnBnClickedButton2) END_MESSAGE_MAP() // TODO: 在此添加控件通知处理程序代码 CDialogEx::OnOK(); // TODO: 如果该控件是 RICHEDIT 控件,它将不 // 发送此通知,除非重写 CDialogEx::OnInitDialog() // 函数并调用 CRichEditCtrl().SetEventMask(), // 同时将 ENM_CHANGE 标志“或”运算到掩码中。 // TODO: 在此添加控件通知处理程序代码 // TODO: 在此添加控件通知处理程序代码 UpdateData(TRUE); vpass=cpass; vname=cname; m_pRecordset->AddNew(); m_pRecordset->PutCollect("name",vname); m_pRecordset->PutCollect("pass",vpass); m_pRecordset->Update(); MessageBox(L"添加成功");
m_pRecordset->Open(_T("SELECT * FROM
login"),_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenDynamic,adLockOptimistic,adCmdText);
}
void Set::OnClose()
{
}
void Set::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码 UpdateData(); m_pRecordset.CreateInstance(_T("ADODB.Recordset")); m_pRecordset->Open(_T("update login set pass='"+cpass+"' where // TODO: 在此添加消息处理程序代码和/或调用默认值 m_pRecordset->Close(); CDialogEx::OnClose(); } catch(_com_error e) { AfxMessageBox(_T("读取数据库失败!2")); }// TODO: 在此添加额外的初始化 return TRUE; // 异常: OCX 属性页应返回 FALSE
name='"+cname+"'"),_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenDynamic,adLockOptimistic,adCmdText);
}
MessageBox(L"已重置");
第六章 总结与展望
6.1设计总结与展望
学生信息管理系统是学校信息管理系统的一个重要组成部分。他为其他系统(如学校图书管理系统、学校档案管理系统、教学管理系统、总务后勤管理系统等)提供学生的基本信息,同时它也需要如教学管理系统提供课程设置数据等。这些系统在具体应用中构成一个大系统,相互调用对方的数据。由以上分析,我们可以充分认识到设计并开发一个学生信息管理系统的必要性和迫切性,本次设计和开发的学生信息管理系统应符合学校学生信息管理的规定,满足对学校学生信息管理的需要,并达到操作过程中的直观,方便,实用,安全等要求。系统采用模块化程序设计的方法,既便于系统功能的组合和修改,又便于未参与系统开发的技术维护人员补充和维护。
尽管本管理系统存在着很多不足,通过开发这个系统,我掌握了的项目基本开发过程,用到的知识巩固了我对计算机编程语言的学习,但在这次设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。
致 谢
本论文在撰写的过程中,得到了老师的指导。通过指导老师的教导,培养了我认真的工作态度,为下一步走向工作岗位打下了坚实的基础,在这里表示谢意。
经过几个月的构思与设计,在指导老师的精心指导和安排下,本系统已经设计完毕,也具有一定的实用性。但是由于时间比较仓促,加上本人软件设计经验的不足。因此,在分析问题、解决问题时还有不足,还需要在以后的工作中不断地改进和完善。
在这次的毕业设计中,我体会到进行软件开发不是一件简单的事情,它需要设计者具有全面的专业知识、高的分析问题、解决问题的能力以及耐性,而我在很多方面还有欠缺。最后,我要衷心感谢老师在我的设计过程中给予我的极大帮助,使我能够及时、顺利地完成此次的毕业设计。同时,也要感谢我的老师和同学们及实习企业在本系统的设计过程中给予我的支持和帮助。我也明白了:做一件事情,不一定过非要在意最终的结果,贵的是过程中的收获。
毕业设计,是我大学生涯交上的最后一个作业了。想借此机会感谢三年以来给我帮助的所有老师、同学,你们的友谊是我人生的财富,是我生命中不可或缺的一部分。我的课程设计指导老师段老师,给我不厌其烦的指导。在此,特向她道声谢谢。我还要感谢所有在这将近三年里的时光里教导过我的老师,你们不但给了我们很多学习的方法和还有孜孜不倦的教诲,不但让我学到了很多知识,而且还让我学会了做人的道理,在此表示衷心的感谢。
参考文献
1. 丁宝康,数据库实用教程,北京:清华大学出版社,2003.
2. 甘仞初,管理信息系统,北京:机械工业出版社,2006.10.
3. 周钦,学生信息管理系统的应用[J],福建:福建电脑2010年04期
4. 陆丽娜,软件工程,北京:经济科技出版社,2000.
5. 李兰友等编著,Visual C++程序设计,清华大学出版社,2003.
6. 何玉洁编著,数据库原理与应用,机械工业出版社,2006.
7. 源码专业站:
8. 免费模板网: