开发工具:
SQL Server (其他版本并无差别)Visual Studio
安装以上两个开发工具都没有困难,我们的整体架构是使用SQL Server 创建我们用于存储教师信息的数据库,然后在VS 中新建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、VS 连接数据库
使用VS 新建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个相应的变量,如下:
CStringWm_stuid;CStringWm_stuname;CStringWm_stuclass;longm_usualscore;longm_testscore;longm_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图片的IDwndSplash.CenterWindow();wndSplash.UpdateWindow();//send WM_PAINTSleep(2000);wndSplash.DestroyWindow();//销毁初始画面窗口
图1-10 添加欢迎页面类
5、工程测试
综述,整个系统采用C/S模式构建成功,对于整个系统进行各项功能测试,主要包括添加、修改、查询、删除、刷新显示等功能。
图1-11 系统主界面
当鼠标放在列表框中的某一行时,编辑区内会显示对应的数据信息,可供管理人员进行修改操作,查询功能分为三种方式,当我们选择使用按职称查询时,将会在列表框中显示相同职称的教室信息,如下图:
图1-12 按职称查询界面
测试结果显示基本功能全部实现,而且响应速度和查询准确性等较好,系统具备投入实用的基础。
6、改进之处
(1)整个系统的功能全部实现,且能较好的完成任务,但是欢迎页面使用的是一张图片进行了简单的延迟操作,下一步可以将欢迎页面设置成一个登陆入口,输入账号密码之后才能进入管理系统。
(2)修改信息之后,整个表格中的信息不会立即更改,需要手动点击显示全表进行刷新,后续还需要对修改代码进行优化。
代码主要参考:VS MFC ODBC连接SQL SERVER数据库编程、MFC软件欢迎界面(基于对话框,VS)
下载课设论文戳此
下载完整代码戳此
注:下载完成后可以自己新建一个与上文一模一样的数据库,然后修改工程DSN地址即可运行程序
【点击图片直达】
如果觉得《基于SQL Server和C++搭建的高校教师信息管理系统》对你有帮助,请点赞、收藏,并留下你的观点哦!