基于SQL Server和C++搭建的高校教师信息管理系统

开发工具:

  • 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地址即可运行程序

【点击图片直达】

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值