# 基于MFC和Access数据库实现的学生学习成绩信息管理系统
# 1 题目要求
设计一个学生学习成绩信息管理系统,ODBC方式连接。
# 2 功能需求
- **用户管理**:新增用户,删除用户
- **学生信息管理**:增加学生信息,删除学生信息,查询学生信息
- **学生成绩管理**:录入学生成绩,修改学生成绩,删除学生成绩
- **计算总评**:计算总评功能的实现
```c++
void CStudentbaView::OnButton1()
{
// TODO: Add your control notification handler code here
m_pSet->m_SumScore=long(m_pSet->m_NormalScore*0.1+m_pSet->m_MidScore*0.2+m_pSet->m_FinalScore*0.7);
UpdateData(FALSE);
}
```
# 3 总体设计
**系统模块**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/20abc4feff684cb42d0f24e6816019a0.writebug)
# 4 详细设计
在原来的基础上进行了完善。实验指导书上有的内容省略。
学生成绩查改删功能的实现:
在资源视图下添加一个对话框,添加ID,添加相应控件,如下图:
![](http://www.writebug.com/myres/static/uploads/2021/10/19/97dbb5a2bc3a2c970e6e0bb571e74840.writebug)
为IDD_DIALOG_SEARCH添加一个新类 SEARCH 并添加相应映射变量:
![](http://www.writebug.com/myres/static/uploads/2021/10/19/0240e786904dfe6e605b78af9fcb6450.writebug)
重载OnInitDialog()函数:
```c++
BOOL SEARCH::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_ctrList.InsertColumn(0," 序号");
m_ctrList.InsertColumn(1," 学号");
m_ctrList.InsertColumn(2," 姓名");
m_ctrList.InsertColumn(3," 科目");
m_ctrList.InsertColumn(4," 成绩");
m_ctrList.InsertColumn(5," 补考成绩");
m_ctrList.InsertColumn(6," 缺考标志");
m_ctrList.SetColumnWidth(0,60);
m_ctrList.SetColumnWidth(1,80);
m_ctrList.SetColumnWidth(2,80);
m_ctrList.SetColumnWidth(3,100);
m_ctrList.SetColumnWidth(4,80);
m_ctrList.SetColumnWidth(5,80);
m_ctrList.SetColumnWidth(6,60);
m_ctrList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
CString strSQL="select * from score";
RefreshData(strSQL);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
```
为SEARCH类添加RefreshData(strSQL)函数:
```c++
void SEARCH::RefreshData(CString strSQL)
{
m_ctrList.DeleteAllItems();
m_ctrList.SetRedraw(FALSE);
UpdateData(TRUE);
if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{
MessageBox(" 打开数据库失败!"," 数据库错误",MB_OK);
return ;
}
int i=0;
char buffer[20];
while(!m_recordset.IsEOF())
{
_ltoa(m_recordset.m_ID,buffer,10);
m_ctrList.InsertItem(i,buffer);
m_ctrList.SetItemText(i,1,m_recordset.m_code);
m_ctrList.SetItemText(i,2,m_recordset.m_name);
m_ctrList.SetItemText(i,3,m_recordset.m_subject);
_ltoa(m_recordset.m_score,buffer,10);
m_ctrList.SetItemText(i,4,buffer);
_ltoa(m_recordset.m_makeup_score,buffer,10);
m_ctrList.SetItemText(i,5,buffer);
m_ctrList.SetItemText(i,6,m_recordset.m_absent);
i++;
m_recordset.MoveNext();
}
m_recordset.Close();
m_ctrList.SetRedraw(TRUE);
}
```
为查询添加消息响应函数:
```c++
void SEARCH::OnBnClickedButtonSearch()
{
// TODO: Add your control notification handler code here
UpdateData();
CString strSQL,strTemp;
strTemp="";
BOOL bHaveCon = FALSE;
if(m_strSubject!="")
{
strSQL.Format("select * from score where subject = '%s' ",m_strSubject);
bHaveCon = TRUE;
}
if(m_strName!="")
{
if(bHaveCon)
{
strTemp.Format(" name = '%s' ",m_strName);
strSQL=strSQL+ " and " + strTemp;
}
else
{
strSQL.Format("select * from score where name = '%s' ",m_strName);
}
bHaveCon=TRUE;
}
if(m_strClass!="")
{
if(bHaveCon)
{
strTemp.Format(" class = '%s' ",m_strClass);
strSQL=strSQL+ " and " + strTemp;
}
else
{
strSQL.Format("select * from score where class = '%s' ",m_strClass);
}
bHaveCon=TRUE;
}
if(!bHaveCon)
{
strSQL="select * from score";
}
RefreshData(strSQL);
}
```
为删除添加消息响应函数:
```c++
void SEARCH::OnButton1Delete()
{
// TODO: Add your control notification handler code here
int i = m_ctrList.GetSelectionMark();
if(0>i)
{
AfxMessageBox(" 请选择一条记录进行查看!");
return;
}
CString strSQL;
/*strSQL.Format("select * from score where ID = '%s'",m_ctrList.GetItemText(i,0));*/
/* strSQL.Format("select * from score where ID = '%d'",m_ctrList.GetSelectionMark());*/
strSQL.Format("select * from score where ID=%s",m_ctrList.GetItemText(i,0));
if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{
AfxMessageBox(" 打开数据库失败!");
return ;
}
m_recordset.Delete();
m_recordset.Close();
strSQL= "select * from score";
RefreshData(strSQL);
}
```
在资源视图下添加一个对话框IDD_DIALOG_SCORE_UP
添加相应控件,如下图:
![](http://www.writebug.com/myres/static/uploads/2021/10/19/339da59f8d2dc044e18ead569bf31fc6.writebug)
为其添加一个类:SCORE_UP_Dialog 并对应相应变量:
![](http://www.writebug.com/myres/static/uploads/2021/10/19/d2e3fb372406a1b90658a5f188070fb5.writebug)
- 在SEARCH.h添加:#include "ScoreSet.h"
- 并声明一个变量:CScoreSet m_recordset;
- 在SEARCH类添加:#include "SCORE_UP_Dialog.h"
为修改添加消息响应函数:
```c++
void SEARCH::OnButton1Modify()
{
// TODO: Add your control notification handler code here
SCORE_UP_Dialog Dlg;
UpdateData();
int i = m_ctrList.GetSelectionMark();
if(0>i)
{
AfxMessageBox(" 请选择一条记录进行修改!");
return;
}
/* Dlg.m_strCode=m_ctrList.GetItemText(i,0);*/
/* Dlg.m_ID=m_ctrList.GetItemText(i,0);*/
if(IDOK==Dlg.DoModal())
{// 修改记录
CString strSQL;
/* strSQL.Format("select * from student where code = '%s'",Dlg.m_strCode);*/
strSQL.Format("select * from score where ID=%s",m_ctrList.GetItemText(i,0));
/* strSQL.Format("select * from score where ID=%s",Dlg.m_ID);*/
if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{
AfxMessageBox(" 打开数据库失败!");
return ;
}
m_recordset.Edit();
/* CString m_str_Score;*/
// m_recordset.m_code =Dlg.m_strCode ;
// m_recordset.m_name =Dlg.m_strName ;
// m_recordset.m_sex =Dlg.m_strSex ;
// m_recordset.m_birthday =Dlg.m_tmBirth ;
// m_recordset.m_department =Dlg.m_strDepartment ;
// m_recordset.m_major =Dlg.m_strMajor ;
// m_recordset.m_class =Dlg.m_strClass ;
// m_recordset.m_phone =Dlg.m_strPhone ;
// m_recordset.m_address =Dlg.m_strAddress ;
/* m_recordset.m_ID=Dlg.Dlg.m_ID;*/
/* m_recordset.m_ID=m_ctrList.GetItemText(i,0);*/
/* itoa(Dlg.m_strSCore,m_strScore,10);*/
m_recordset.m_score=Dlg.m_str_Score;
m_recordset.m_makeup_score=Dlg.m_str_Makeup;
m_recordset.Update();
m_recordset.Close();
strSQL= "select * from score ";
RefreshData(strSQL);
}
}
```
调用该对话框:
```c++
为 StudentView.cpp 添加包含“SEARCH.h”的语句。为 CStudentView 类添加菜单ID_SCORE_SEARCH 的命令消息响应函数:
void CStudentView::OnScoreSearch()
{
// TODO: Add your command handler code here
SEARCH dlg;
dlg.DoModal();
}
```
# 5 测试与实现
![](http://www.writebug.com/myres/static/uploads/2021/10/19/8fc4cf4638bc97c1d738253075f0a227.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/20efcb4587c06e4ac7c4c0743520901c.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/81a08ed500ff321dd6c0279131466149.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/c334e8f3a434be19b9d875e9d0ca055b.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/2093e2b8d391a98e61d085a3a778e74e.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/d8b5a06bd96057cfe5ce6256a84adeac.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/5942fbf1de6ef0cda4b33560722a6b2a.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/36
没有合适的资源?快使用搜索试试~ 我知道了~
精选_基于MFC和Access数据库实现的学生学习成绩信息管理系统_源码打包
共85个文件
h:25个
cpp:23个
ico:4个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 2 浏览量
2022-03-09
09:38:13
上传
评论
收藏 4.97MB ZIP 举报
温馨提示
基于MFC和Access数据库实现的学生学习成绩信息管理系统
资源推荐
资源详情
资源评论
收起资源包目录
9303285047527363.zip (85个子文件)
achievement-management
src
Student.7z 574KB
studentba
studentbaDoc.h 1KB
studentba.dsp 4KB
studentbaDoc.cpp 1KB
resource.h 1KB
studentba.clw 3KB
studentbaView.h 2KB
studentba.dsw 512B
MainFrm.cpp 2KB
studentbaView.cpp 5KB
studentbaSet.cpp 2KB
res
Toolbar.bmp 1KB
studentba.ico 1KB
studentba.rc2 388B
studentbaDoc.ico 1KB
studentba.ncb 81KB
studentba.cpp 5KB
studentba.h 1KB
studentba.opt 49KB
MainFrm.h 1KB
ReadMe.txt 4KB
studentba.aps 30KB
studentba.rc 13KB
StdAfx.cpp 203B
studentbaSet.h 1KB
studentba.plg 1KB
Debug
student1.mdb 220KB
studentba.exe 2.25MB
StdAfx.h 1KB
studentba.7z 466KB
1508030331尹铮计科1503.7z 2.46MB
Student
StudentSet1.cpp 2KB
Student.opt 55KB
UserSet2.h 1KB
UserDlg.cpp 6KB
Student.aps 425KB
Student.h 1KB
SEARCH.cpp 6KB
ScoreInputDlg.h 1KB
StudentDlg.h 2KB
Student.plg 3KB
ScoreSet.cpp 2KB
Student.rc 19KB
StudentView.h 2KB
resource.h 3KB
SCORE_UP_Dialog.cpp 1KB
MainFrm.cpp 2KB
StudentInfoDlg.cpp 1KB
UserDlg.h 1KB
ScoreSet.h 1KB
StudentInfoDlg.h 1KB
StudentView.cpp 5KB
res
Thumbs.db 13KB
Student.ico 1KB
agan_qishi-007.bmp 372KB
Toolbar.bmp 1KB
StudentDoc.ico 1KB
Student.rc2 386B
StudentSet1.h 1KB
WriterDialog.cpp 1005B
MainFrm.h 1KB
Student.cpp 5KB
ReadMe.txt 4KB
SCORE_UP_Dialog.h 1KB
StudentDoc.cpp 2KB
StdAfx.cpp 201B
Score.cpp 1KB
ScoreInputDlg.cpp 6KB
WriterDialog.h 1KB
Student.dsp 6KB
UserLogin.cpp 2KB
UserLogin.h 1KB
Student.clw 10KB
SEARCH.h 1KB
Student.dsw 508B
UserSet2.cpp 1KB
Score.h 1KB
StudentDoc.h 1KB
Debug
Student.exe 2.79MB
student.mdb 468KB
StdAfx.h 1KB
Student.ncb 185KB
StudentDlg.cpp 7KB
LICENSE 1KB
README.md 10KB
共 85 条
- 1
资源评论
工具盒子
- 粉丝: 60
- 资源: 1313
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功