C++ MFC人事管理系统

一、 初始页面

当页面没有数据时,把修改、删除、查询按钮置为不可用状态
当页面没有数据时,把修改、删除、查询按钮置为不可用状态

    string s;
    //以只读的方式打开文件,如果不存在则进行创建
	ifstream ifs("staff.txt");
	while (getline(ifs, s)) {
		Staff st = getStaff(s);
		allStaff.push_back(st);
	}
	ifs.close();
	if (allStaff.size() == 0) {
		(&btnDelete)->EnableWindow(FALSE);
		(&btnUpdate)->EnableWindow(FALSE);
		(&btnQuery)->EnableWindow(FALSE);
	}

二、 新增页面

单击新增按钮弹出新增对话框,在编辑框中输入数据后点击确定按钮即可完成添加
单击新增按钮弹出新增对话框,在编辑框中输入数据后点击确定按钮即可完成添加

//IDOK代表单击了确定按钮
	if (IDOK == a.DoModal()) {
		//获取总行数
		int totalCount = mList.GetItemCount();
		Staff st(a.tNumber, a.tName, a.tSex, a.tSFZ, a.tDT, atof(a.tSalary));
		//向文件中追加员工
		insertStaff(st);
		//容器也要追加员工
		allStaff.push_back(st);
		string strStaff[] = { st.number,st.name,st.sex,st.sfz,st.dt,a.tSalary };
		mList.InsertItem(totalCount, strStaff[0].c_str());
		for (int i = 1; i < 6; ++i) {
			mList.SetItemText(totalCount, i, strStaff[i].c_str());
		}
	}

当页面有数据时,把按钮全部设置为可用状态

//当前存放员工的容器如果不为空,就把修改、删除、查询按钮设置为可用
	if (allStaff.size() != 0) {
		(&btnDelete)->EnableWindow(TRUE);
		(&btnUpdate)->EnableWindow(TRUE);
		(&btnQuery)->EnableWindow(TRUE);
	}

三、修改页面

单击修改按钮后,弹出修改对话框,填入修改后的数据,单击确定即可

	//当前行
	int currentRow = mList.GetNextSelectedItem(pos);
	Add a;
	//IDOK代表单击了确定按钮
	if (IDOK == a.DoModal()) {
		Staff st(a.tNumber, a.tName, a.tSex, a.tSFZ, a.tDT, atof(a.tSalary));
		insertStaff(st);
		string strStaff[] = { st.number,st.name,st.sex,st.sfz,st.dt,a.tSalary };
		for (int i = 0; i < allStaff.size(); ++i) {
			//把容器中对应行的数据进行修改
			if (currentRow == i) {
				allStaff[i].number = st.number;
				allStaff[i].name = st.name;
				allStaff[i].sex = st.sex;
				allStaff[i].sfz = st.sfz;
				allStaff[i].dt = st.dt;
				allStaff[i].salary = st.salary;
			}
			//更新文件中员工数据
			updateStaff(allStaff[i]);
		}
		for (int i = 0; i < 6; ++i) {
			mList.SetItemText(currentRow, i, strStaff[i].c_str());
		}
	}

页面中数据已经被修改了

四、删除功能

选中后才可以点击删除

//当前行
	int currentRow = mList.GetNextSelectedItem(pos);
	//把该行数据从容器中删除
	allStaff.erase(allStaff.begin() + currentRow);
	//删除选中行
	mList.DeleteItem(currentRow);
	//清空文件数据
	ClearFielData();
	//更新员工
	for (int i = 0; i < allStaff.size(); ++i) {
		insertStaff(allStaff[i]);
	}
	if (allStaff.size() == 0) {
		(&btnDelete)->EnableWindow(FALSE);
		(&btnUpdate)->EnableWindow(FALSE);
		(&btnQuery)->EnableWindow(FALSE);
	}

五、查询页面

输入工号或者姓名,单击查询按钮就可以实现查询了输入工号或者姓名,单击查询按钮就可以实现查询了
效果图

//控件中的内容更新到变量中 
   UpdateData(1);
   if (inputValue == "") {
	   MessageBox(_T("工号或姓名不能为空!"), "人事管理系统");
	   return;
   }
   string s;
   ifstream ifs("staff.txt");
   vector<Staff> allStaff;
   while (getline(ifs, s)) {
	   Staff st = getStaff(s);
	   allStaff.push_back(st);
   }
   ifs.close();
   for (int i = 0; i < allStaff.size(); ++i) {
	   if (allStaff[i].number == inputValue || allStaff[i].name == inputValue) {
		    ......
		   UpdateData(0);
		   return;
	   }
   }
   MessageBox(_T("查无此人!"), "人事管理系统"); 
为了稳固本学期所学的?C++面向程序设计?以及?数据库原理?的学习。提高和加强学 生的计算机应用及软件开发能力,使学生具备初级程序员的根本素质;培养学生独立分 析问题、解决问题、查阅资料以及自学能力,以适应信息管理行业日新月异的开展形势 ;本次课程设计为一个?学生信息管理系统?。该系统通过ODBC模式连接了SQL2005数据库 ,数据库包含了: 一.学生的根本信息表 〔学号、姓名、姓名、性别、年龄、所学专业、 〕 二.选修课程信息表 〔课程号、课程名、 学分 〕 三. 选课信息表 〔学号、 课程号、 成绩 〕 该系统还对这三个表都具有【增】、【删】、【查】、【改】的功能,同时还设计 它们之间的关系,如学生与课程关系和学生的成绩等,同时还要对一些数据进行查询, 如通过课程号查询学生成绩的集合。 八.心得体会 1〕过这次课程设计,初步掌握MFC程序设计,对消息的机制有了较为深刻的认识, 对MFC中的应用结构类,菜单类,窗口,对话框有了理解。 2〕也了解了数据库的有关知识,学会了一些常用的数据库查询语句,对数据库的功能和 作用也有了一定的认识。 3〕合理的规划和设计界面也是十分重要的,一个好的程序也需要便捷的操作和美观的界 面,人性化设计是需要考虑进取的。 4〕了解了ODBC数据库访问技术,ODBC提供了一组标准应用程序接口,可以使用SOL语句 实现对数据库的管理系统的访问。 一、设计思路: 本程序运用了MFC ODBC应用程序设计与SQL数据库,利用VC++中提供的MFC ODBC 开放数据库连接组件进行数据库的访问,利用了记录集(RECORDSET类)进行信息的添加( ADD ( ) ),删除 (DEL ( )),修改 (UPDATE( )), 查询〔select〔〕〕功能,并且对用户登陆的权限进行检验,并且具有错误提示功能。 二、设计说明与调试分析 A 根据设计要求分析数据的结构: 数据项列表 "名称 "注释 "数据类型 "主要的 "所在表" "Sname "姓名 "nchar(4 ) "not " " " " " "null " " "Ssex "性别 "nchar(3) "null " " "Sage "年龄 "tinyint "null " " "Sprof "专业 "nchar〔20 "null " " " " "〕 " " " "Stel " "char〔11〕"null " " "Kid "课程号 "char〔3〕 "主键 "kc " "Kname "课程名 "nchar(20) "not " " " " " "null " " "Kscore "课程学分 "tnyint "not " " " " " "null " " "Sid "学号 "Char(6) "主键 "s_kc " "Kid "课程号 "char(3) "主键 " " "grade "选修成绩 "tinyint "not " " " " " "null " " B 建立表 根据设计要求分析数据的结构,利用SQL 2005创立一个数据库,数据库命名为:【wami】, 创立3张表:xs表,kc表,xs_kc表,,如下列图: C 在表里面填好初始化数据 三.ODBC的配置源程序说明&附加SQL Server 2005数据库 配置ODBC 运行本实例需要配置用户DSN,在ODBC数据源管理器中配置用户DSN连接指定的SQL Server数据库。关键操作步骤如下: 〔1〕单击"开始〞按钮,选择"程序〞 "管理工具〞 "数据源〔ODBC〕〞命令,翻开"OD BC数据源管理器〞对话框,翻开"用户DSN〞选项卡。 〔2〕单击"添加〞按钮,翻开"创立新数据源〞对话框,选择安装数据源的驱动程序,这 里选择"SQL Server〞。 〔3〕单击"完成〞按钮,翻开"创立到SQL Server的新数据源〞对话框,在"名称〞文本框中设置数据源名称为"wangming〞〔即程 序里面的DSN〕,在"描述〞文本框设置数据源描述为"配置SQL Server数据库DSN〞,在"效劳器〞下拉列表框中选择连接的数据库所在效劳器为"自己的 计算机名〔例如我的是:WIN-PHT03USEDJ9\SQLEXPRESS〕〞。 〔4〕单击"下一步〞按钮,选择"使用网络登录ID的Windows NT验证〞单项选择框,其他默认〔5〕单击"下一步〞按钮,选择"更改默认的数据库为〞 复选框,并在其下拉列表框中选择连接的数据库名称,这里选择"student〞【数据库的 名字】,单击"下一步〞按钮。 〔6〕单击"完成〞按钮,翻开"ODBC Microsoft SQL Server安装〞对话框,显示新创立的ODBC数据源配置信息。 〔7〕单击"测试数据源〞按钮测试数据库连接是否成功,如果测试成功,单击"确定〞按
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值