开发工具:
- SQL Server 2014(其他版本并无差别)
- Visual Studio 2013
安装以上两个开发工具都没有困难,我们的整体架构是使用SQL Server 创建我们用于存储教师信息的数据库,然后在VS 2013中新建MFC应用程序,通过ODBC实现数据库和对话框客户端的连接。
图1-1 系统架构结构图
1、SQL数据库的建立
在已经安装完成的SQL Server 数据库软件中新建一个用于存储教师信息的名为Edudatabase的数据库,打开数据库,在表选项上右键新建表,打开新建的数据表,在表中按照下图所示设置各列:
图1-2 数据表截图
我们对表进行编辑,手动输入一些教师人员的信息,当做测试数据,如下图所示:
图1-3 编辑数据表内容图
2、配置ODBC
上文已经将教师信息数据库以及存储数据的表建立完成,接下来需要对数据源进行一个配置,使数据源能够被我们的应用程序连接。
在控制面板中找到管理工具选项,打开之后找到数据源(ODBC)选项,进入ODBC数据源管理器,进行创建数据源,点击添加,选择相应的数据源驱动,然后输入相应的名称选择本机服务器,如图:
图1-4 数据源配置1
图1-5 数据源配置2
将默认的数据库更改为上文创建的命为Edudatabase的数据库,选择下一步完成创建。
图1-5 数据源配置3
图1-6 数据源配置4
数据源创建完成之后,点击测试数据源,出现如下图所示页面即表示创建成功了,此时名为Edudatabase的数据源已经和数据库连接成功。
图1-7 数据源配置成功
3、VS2013 连接数据库
使用VS 2013新建MFC应用程序,选择基于对话框类型。在新建的项目中,打开类视图,选择添加MFC ODBC类,如下图所示:
图1-8 添加MFC ODBC类
连接我们配置完成的数据源,选择数据库对象及其对应的数据表,点击完成将会自动创建相应的类文件,打开新生成的对应源文件,将错误的一句源码注释掉,如下图:
图1-9 注释错误源码
4、功能实现
在对话框中根据功能需求配置各种相应的控件,本系统主要用到的控件有如下几种:
-
Grope-box Control
-
Edit Control
-
Text Control
-
Button Control
-
Radio-button Control
-
List Control
整个系统的设计页面如图:
图1-10 界面设计图
在新建ODBC类时自动生成的头文件中可以看到,自动生成了6个相应的变量,如下: CStringW m_stuid;
CStringW m_stuname;
CStringW m_stuclass;
long m_usualscore;
long m_testscore;
long m_totalscore;
将对话框中的控件绑定对应的变量,主要功能的实现如下:
(1)列表框显示教师信息
m_list.SetExtendedStyle(dwExStyle);
m_list.SetTextColor(RGB(255, 0, 0));
m_list.SetBkColor(RGB(240, 247, 233));
m_list.InsertColumn(0, L"工号", LVCFMT_CENTER, 80, 0);
m_list.InsertColumn(1, L"姓名", LVCFMT_CENTER, 80, 0);
m_list.InsertColumn(2, L"职称", LVCFMT_CENTER, 80, 0);
m_list.InsertColumn(3, L"工龄", LVCFMT_CENTER, 80, 0);
m_list.InsertColumn(4, L"年龄", LVCFMT_CENTER, 80, 0);
m_list.InsertColumn(5, L"收入", LVCFMT_CENTER, 80, 0);
CString strsql;
strsql.Format(L"select * from score order by stuid");
List_All(strsql);
(2)添加记录实现代码
void CTestDlg::OnBnClickedButton1() //添加记录
{
// TODO: 在此添加控件通知处理程序代码
Cscore m_set;
if (m_set.IsOpen())
m_set.Close();
m_set.Open();
m_set.AddNew();
UpdateData(true);
m_set.m_stuid = m_stuid;
m_set.m_stuname = m_stuname;
m_set.m_stuclass = m_stuclass;
m_set.m_usualscore = m_usualscore;
m_set.m_testscore = m_testscore;
m_set.m_totalscore = m_totalscore;
UpdateData(false);
m_set.Update();
m_set.Close();
List_All(L"select*from score order by stuid");
}
(3)修改记录
void CTestDlg::OnBnClickedButton2() //修改
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(true);
Cscore m_revise;
m_revise.Open();
if (m_revise.IsEOF()){
MessageBox(L"没有找到该学生");
return;
}
if (!m_revise.CanUpdate()){
MessageBox(L"不可修改");
return;
}
m_revise.MoveFirst();
m_revise.Edit();
m_revise.m_stuid = m_stuid;
m_revise.m_stuclass = m_stuclass;
m_revise.m_stuname = m_stuname;
m_revise.m_testscore = m_testscore;
m_revise.m_totalscore = m_totalscore;
m_revise.m_usualscore = m_usualscore;
m_revise.Update();
m_revise.Close();
MessageBox(L"修改成功");
}
(4)删除记录
void CTestDlg::OnBnClickedButton3()//删除记录
{
// TODO: 在此添加控件通知处理程序代码
Cscore m_score;
m_score.Open();
m_score.MoveFirst();
while (!m_score.IsEOF()){
if (m_score.m_stuid == m_stuid){
m_score.Delete();
break;
}
m_score.MoveNext();
}
m_score.Close();
List_All(L"select*from score order by stuid");
}
(5)插询记录
void CTestDlg::OnBnClickedButton5() //查询记录
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(true);
switch (num_radio){
case 0:List_All(L"select * from score where stuid='" + m_stuid + L"'");
break;
case 1:List_All(L"select * from score where stuname='" + m_stuname + L"'");
break;
case 2:List_All(L"select * from score where stuclass='" + m_stuclass + L"'");
break;
default:break;
}
}
(6)显示全表
void CTestDlg::OnBnClickedButton6() //显示全表
{
// TODO: 在此添加控件通知处理程序代码
List_All(L"select *from score order by stuid");
}
(7)添加欢迎页面
按照如下图所示新建类,在主框架源文件的初始化函数中添加如下代码:
mySplash wndSplash; //创建启动窗口类的实例
wndSplash.Create(IDB_BITMAP1); //BMP图片的ID
wndSplash.CenterWindow();
wndSplash.UpdateWindow(); //send WM_PAINT
Sleep(2000);
wndSplash.DestroyWindow();//销毁初始画面窗口
图1-10 添加欢迎页面类
5、工程测试
综述,整个系统采用C/S模式构建成功,对于整个系统进行各项功能测试,主要包括添加、修改、查询、删除、刷新显示等功能。
图1-11 系统主界面
当鼠标放在列表框中的某一行时,编辑区内会显示对应的数据信息,可供管理人员进行修改操作,查询功能分为三种方式,当我们选择使用按职称查询时,将会在列表框中显示相同职称的教室信息,如下图:
图1-12 按职称查询界面
测试结果显示基本功能全部实现,而且响应速度和查询准确性等较好,系统具备投入实用的基础。6、改进之处
(1)整个系统的功能全部实现,且能较好的完成任务,但是欢迎页面使用的是一张图片进行了简单的延迟操作,下一步可以将欢迎页面设置成一个登陆入口,输入账号密码之后才能进入管理系统。
(2)修改信息之后,整个表格中的信息不会立即更改,需要手动点击显示全表进行刷新,后续还需要对修改代码进行优化。
代码主要参考:VS2013 MFC ODBC连接SQL SERVER数据库编程、MFC软件欢迎界面(基于对话框,VS2013)
下载课设论文戳此
下载完整代码戳此
注:下载完成后可以自己新建一个与上文一模一样的数据库,然后修改工程DSN地址即可运行程序
【点击图片直达】