c++1学生信息管理系统Word格式文档下载.docx
- 文档编号:21678876
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:23
- 大小:135.42KB
c++1学生信息管理系统Word格式文档下载.docx
《c++1学生信息管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《c++1学生信息管理系统Word格式文档下载.docx(23页珍藏版)》请在冰豆网上搜索。
(2)软件环境
操作系统:
WindowsXP
Microsoftvisualc++Microsoftaccess数据库
3.总体设计
系统的结构图
学生信息管理系统是对学生的基本信息和成绩信息进行管理,主要包括添加、修改和删除学生的基本信息及课程的基本信息;
录入、修改和删除学生的成绩信息,对基本信息、成绩信息进行查询、排序及统计等操作,从而实现学生信息管理的自动化与计算机化。
本课题将实现一个简化的学生信息管理系统。
(1)添加信息:
使用这个模块,可以添加学生的基本信息,包括学生的学号,姓名,民族,性别,籍贯,出生年月日,政治面貌,学院,专业,所在年级,寝室地址,毕业院校,身份证号,电子邮箱,联系电话,家庭住址,备注等。
(2)成绩导入:
包括学号,课程编号,课程名称,学分,成绩。
(3)信息查询:
包括学号,姓名,班级,学院。
(4)成绩查询:
包括课程名称,课程编号。
(5)个人信息:
当点击这个按钮时,可以显示当前某个人的信息。
(6)查看成绩:
点击这个按钮时,可以显示当前这个人的所有成绩。
设计数据库
用MicrosoftAccess创建一个数据库,含有3个主要数据表:
学生基本信息表student、课程信息表couese和学生成绩表score。
这3个数据表的结构如表1~3所示。
这几个表中,学号studentno和课程号courseno内容都是唯一的,分别是student和course表中的主关键字。
Score表中的studentno和student表中的同名字段相对应,字段course和course表中的courseno字段相对应。
说明:
由于student和course表中都有专业字段,因此为便于用户操作,需要一个专业数据字典。
该数据字典也作为数据库的一个数据表speical,其结构如表4所示。
表1学生基本信息表(student)结构
序号
字段名称
数据类型
字段大小
小数位
字段含义
1
2
3
4
5
studentname
studentno
xb
birthday
speical
文本
是/否
日期/时间
20
10
50
姓名
学号
性别
出生年月
专业
表2课程信息表(course)结构
6
7
courseno
special
coursename
coursetype
openterm
hours
credit
数字
字节
单精度
——
课程号
所属专业
课程名
课程类型
开学学期
课时数
学分
表3学生课程成绩表(score)结构
course
score
8
成绩
4.详细设计
该系统包含多个模块,期中重要的有6大模块,添加信息,成绩导入,信息查询,成绩查询,个人信息,查看成绩。
该系统的主界面如图2所示。
图2系统的主界面
信息查询的设计
下面我们对信息查询做详细的设计。
信息查询这个模块的功能主要通过某个学生的某一项信息,比如学号,班级,姓名,专业,年级,然后查询到这个学生的多个信息。
比如通过学生的学号,可以查询到这个学生所在学院,所在班级等。
当我们点击信息查询这个按钮时,显示一个对话框,如图3所示。
图3信息查询的界面
当我们点击信息查询按钮时,会立刻弹出一个对话框,期中对话框中包括一个列表框,列表框中包括学号,姓名,学院,专业,年级,列表框中还包括2个按钮,一个查找按钮,一个取消按钮。
使用CRecordSet类的成员变量m_strFilter、m_strSort和成员函数Open可以对表进行记录查询。
(1)打开Ex_ODBC应用程序的表的单资源,按如图4所示的布局添加控件,七宗添加的编辑框ID号设为IDC_EDIT_QUERY,查询按钮的ID号设为IDC_BUTTON_QUERY..
图4添加控件
(2)用MFCclasswizard为控件IDC_EDIT_QUERY添加关联变量m_strQuery.
(3)在CEx_ODBCView类中添加按钮控件IDC_BUTTON_QUERY的BN_CLICKED消息映射,并在映射函数中添加下列代码:
voidCMemberView:
:
RemoveAll()
{
c++实用教程[M].北京高等教育出版社,83-126
[2]孙越编著.VisualC++数据库开发自学教程[M].人民邮电出版社50-75
[3]王彬华,李建华编著.VisualC++实例教程[M]电子科技大学出版社
[4]李春葆,曾平编著.数据库原理与应用[M].北京清华大学出版社,41-74
附录:
#include"
"
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
}
//CMemberViewprinting
BOOLCMemberView:
OnPreparePrinting(CPrintInfo*pInfo)
//defaultpreparation
returnDoPreparePrinting(pInfo);
OnBeginPrinting(CDC*/*pDC*/,CPrintInfo*/*pInfo*/)
//TODO:
addextrainitializationbeforeprinting
OnEndPrinting(CDC*/*pDC*/,CPrintInfo*/*pInfo*/)
addcleanupafterprinting
//CMemberViewdiagnostics
AssertValid()const
CListView:
AssertValid();
Dump(CDumpContext&
dc)const
Dump(dc);
CMemberDoc*CMemberView:
GetDocument()//non-debugversionisinline
ASSERT(m_pDocument->
IsKindOf(RUNTIME_CLASS(CMemberDoc)));
return(CMemberDoc*)m_pDocument;
#endif//_DEBUG
//CMemberViewmessagehandlers
//增加指针变量指向ListView的CListCtrl
CListCtrl*ctl;
ctl=&
GetListCtrl();
//删除CListCtrl中的所有记录
ctl->
DeleteAllItems();
//strSearch查询条件strMember关键字
ListMember(CStringstrSearch,CStringstrMember)
//前此输出的用户记录
RemoveAll();
//建立一个指针,用以操作ListCtrl输出用户记录
//创建CMemberReSet的实例
CMemberReSetm_MemberReSet;
//记录用户序号
inti=0;
//定义一个变量来保存"
%"
以便设置SQL语句
charchrTemp='
%'
;
CStringstrTemp;
try
{
if())
();
//设置查询条件"
MemName=strMemberName"
if(strMember=="
)
{
AfxMessageBox("
请输入关键字"
);
return;
}
if(strSearch=="
学号"
{
CStringstr;
("
select*frommemberwhereMemID='
%s'
orderbyMemIDASC"
strMember);
(CRecordset:
snapshot,str,CRecordset:
none);
}
elseif(strSearch=="
姓名"
"
MemNameLIKE'
%c%s%c'
chrTemp,LPCTSTR(),chrTemp);
(CRecordset:
snapshot,NULL,CRecordset:
学院"
MemIns='
LPCTSTR());
专业"
"
MemSpeLIKE'
(CRecordset:
年级"
MemYearLIKE'
年级tree"
MemYear=%sorderbyMemIDASC"
else
条件选择错误"
//输出匹配上查询到的用户记录,直到记录为空
while(!
())
ctl->
InsertItem(i,;
ctl->
SetItemText(i,1,;
SetItemText(i,2,;
SetItemText(i,3,;
SetItemText(i,4,;
SetItemText(i,5,;
SetItemText(i,6,;
SetItemText(i,7,;
();
}
catch(CDBException*e)
e->
Delete();
EditCurUser()
//建立一个指针,用以操作ListCtrl输出用户记录
//寻找当前选中的记录的位置
POSITIONpos=ctl->
GetFirstSelectedItemPosition();
if(pos==NULL)
//如果没有选择记录,则提示并退出
AfxMessageBox("
请先选择一条信息!
//获取当前记录的位置游标
intm_CurUser=ctl->
GetNextSelectedItem(pos);
//创建一个MemberEditDlg的实例
CMemberEditDlgm_MemberEditDlg;
//创建一个临时字符串来保存当前用户信息
charchrTemp[201]={'
\0'
};
//查找学号
GetItemText(m_CurUser,0,chrTemp,sizeof(char[20]));
"
MemIDLIKE'
chrTemp);
//输出匹配上条件用户记录,直到记录为空
if()&
&
!
{
//开始显示记录的内容
=;
=;
if()!
=IDOK)
//如果用户选择取消按钮,则退出
UpdateData(FALSE);
if(MessageBox("
确定修改记录"
"
修改确认"
MB_YESNO|MB_ICONQUESTION)==IDYES)
MemID=chrTemp"
MemID='
//如果用户记录存在,则进行修改操作
if()&
!
{
//设置编辑当前记录
//开始编辑该条记录的内容
=;
if())
{
();
}
//更新完毕,关闭数据库
//关闭数据库
if())
//提示用户
该记录不存在,无法修改!
return;
catch(CDBException*e)
ReportError();
//将用户信息及时更新到ListCtrl中
SetItemText(m_CurUser,0,;
SetItemText(m_CurUser,1,;
SetItemText(m_CurUser,2,;
SetItemText(m_CurUser,3,;
SetItemText(m_CurUser,4,;
SetItemText(m_CurUser,5,;
SetItemText(m_CurUser,6,;
SetItemText(m_CurUser,7,;
OnDblclk(NMHDR*pNMHDR,LRESULT*pResult)
Addyourcontrolnotificationhandlercodehere
*pResult=0;
EditCurUser();
LookMember()
//创建一个MemberDialog的实例
CMemberDialogm_MemberDialog;
CMemberReSetm_MemberReSet;
CStringchrTemp=FindPosition();
if(chrTemp=="
//输出匹配上条件用户记录,直到记录为空
if()&
()){
//开始显示记录的内容
if()==IDCANCEL)
//如果用户选择取消按钮,则退出
UpdateData(FALSE);
DelCurUser()
请先选中一条记录!
charchrTemp[21]={'
//取得用户ID
删除该学生同时会删除该生所有成绩记录,确定删除记录"
删除确认"
try{
//删除个人信息
orderbyMemID"
//设置编辑当前记录
else//考虑特例,如果操作中用户信息不存在了
该记录不存在,无法删除!
}
//删除对应的所有个人成绩
CScoreReSetm_ScoreReSet;
CStringsql;
select*fromscorewhereMemID='
snapshot,sql,CRecordset:
();
//在ListCtrl中删除当前用户信息
c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 学生 信息管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)