c++1学生信息管理系统docxWord文件下载.docx

上传人:b****6 文档编号:19881863 上传时间:2023-01-11 格式:DOCX 页数:37 大小:22KB
下载 相关 举报
c++1学生信息管理系统docxWord文件下载.docx_第1页
第1页 / 共37页
c++1学生信息管理系统docxWord文件下载.docx_第2页
第2页 / 共37页
c++1学生信息管理系统docxWord文件下载.docx_第3页
第3页 / 共37页
c++1学生信息管理系统docxWord文件下载.docx_第4页
第4页 / 共37页
c++1学生信息管理系统docxWord文件下载.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

c++1学生信息管理系统docxWord文件下载.docx

《c++1学生信息管理系统docxWord文件下载.docx》由会员分享,可在线阅读,更多相关《c++1学生信息管理系统docxWord文件下载.docx(37页珍藏版)》请在冰豆网上搜索。

c++1学生信息管理系统docxWord文件下载.docx

位为班级号)、姓名、性别、出生日期和所在专业。

(2)学生成绩信息的添加、修改和删除。

学生成绩信息包括:

学号、课程号、成绩和和学分。

2.2查询功能

可以通过学号来查询学生基本信息,通过学号可以查询学生的选课信息,通过学号

和学期查询学生的成绩,通过课程号查询该课程的信息。

2.3统计功能

统计学生某个学期或所有学期课程的总学分,统计学生某个学期的或所有学期的单

科成绩或者总成绩。

运行环境

(1)硬件环境

处理器:

InterCentrinoDuo。

内存:

521MB。

硬盘空间:

80G。

(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

studentname

文本

20

姓名

2

studentno

10

学号

3

xb

是/否

50

性别

4

birthday

日期/时间

出生年月

5

speical

专业

表2

课程信息表(course)结构

courseno

7

——

课程号

special

所属专业

coursename

课程名

coursetype

课程类型

openterm

数字

字节

开学学期

6

hours

课时数

credit

单精度

学分

表3

学生课程成绩表(

score)结构

8

course

score

成绩

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#ifdef_DEBUG

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);

snapshot,NULL,CRecordset:

学院"

MemIns='

LPCTSTR());

专业"

MemSpeLIKE'

年级"

MemYearLIKE'

年级

tree"

MemYear=%sorderbyMemIDASC"

else

条件选择错误"

//输出匹配上查询到的用户记录,直到记录为空

while(!

())

InsertItem(i,;

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)

//如果没有选择记录,则提示并退出

请先选择一条信息!

"

//获取当前记录的位置游标

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()&

!

//设置编辑当前记录

//开始编辑该条记录的内容

//更新完毕,关闭数据库

//关闭数据库

//提示用户

该记录不存在,无法修改!

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;

CStringchrTemp=FindPosition();

if(chrTemp=="

()){

if()==IDCANCEL)

//如果用户选择取消按钮,则退出

DelCurUser()

请先选中一条记录!

charchrTemp[21]={'

//取得用户ID

GetIt

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1