课程设计之简易学生管理系统设计 精品.docx
《课程设计之简易学生管理系统设计 精品.docx》由会员分享,可在线阅读,更多相关《课程设计之简易学生管理系统设计 精品.docx(17页珍藏版)》请在冰豆网上搜索。
课程设计之简易学生管理系统设计精品
课程设计题目:
专业基本技能实践:
简易学生管理系统设计
课程设计任务书
1.设计目的:
数据库操作对于工程中有很重要的应用价值。
本课题要求同学在熟练掌握VC下有关数据库编程的基础上,实现一个简易的学生管理系统,能够实现浏览、添加、删除及修改等基本功能。
2.设计内容和要求(包括原始数据、技术参数、条件、设计要求等):
功能要求:
1、学习VC有关数据库编程的方法。
2、利用ACCESS实现底层数据库的建立。
3、利用ADO将数据库与VC进行连接。
4、利用VC实现前台界面的设计工作,并实现有关浏览、、添加、删除及修改等基本功能。
5、三位同学各自实现不同分工。
3.设计工作任务及工作量的要求〔包括课程设计计算说明书()、图纸、实物样品等〕:
(1)要求设计组的每个成员都要了解设计的要求和思路;
(2)编写详细的设计说明书一份;
(3)要求有正确的运行结果及结果分析。
课程设计任务书
4.主要参考文献:
5.设计成果形式及要求:
课程设计说明书
运行结果
6.工作计划及进度:
20XX年
12月24日~12月28日:
学习VC有关编程方法;
12月29日~20XX年1月8日:
在指导教师指导下实现程序设计;
20XX年1月9日~1月10日:
撰写课程设计说明书;
1月11日:
答辩
系主任审查意见:
签字:
年月日
1.设计目的及简介…………………………………………………………….1
2.数据库设计……………………………………………………………….....1
2.1概念设计…………………………………………………………...…1
2.2逻辑设计和物理结构设计………………………………………..….2
2.3数据库的输入……………………………………………………..…2
2.4定义ODBC的数据源.........................................................................2
3.程序设计………………………………………………………………..….4
3.1工程建立…………………………………………………………..….4
3.2信息查询………………………………………………………….…..6
3.3添加操作………………………………………………………….…..8
3.4修改操作……………………………………………………….……..9
3.5删除操作……………………………………………………………..10
3.6浏览操作………………………………………………………...…...12
4.调试报告………………………………………………………………..…..14
5.心得体会…………………………………………………………………....14
6.参考文献……………………………………………………………………14
简易学生管理系统
1.设计目的及简介
管理信息系统MIS(ManagementInformationSystem),在强调管理,强调信息的现代社会中越来越得到普及,如:
人事管理、学生管理系统、工资管理系统等。
常用的MIS系统都是基于数据库操作,实现信息的查询、增加、删除、修改等。
学生成绩管理系统是用AECESS数据库进行数据库的设计和添加数据,在设置数据源(ODBC)建立数据库与程序的连接后,利用VC开发可视化界面完成基于数据库的操作,实现学生信息的查询、增加、删除、修改。
采用ADO(ActiveXDataObject)连接实现学生基本信息的浏览。
从而实现学生成绩信息的多方位显示,方便管理者对学生成绩的管理。
2.数据库设计
2.1概念设计
根据设计要求,要对学生信息进行操作,所以系统实体主要为学生基本信息表。
学生基本信息包括姓名、学号、性别、年龄、系别,由此可得到该系统的E-R关系图:
图1
2.2逻辑设计和物理结构设计
根据概念设计中的E-R图,可设计学生基本信息表,其关系模型如下:
学生基本信息表:
学号,姓名,性别,年龄,系别。
在ACCESS中定义表的物理结构如下:
图2
2.3数据库的输入
在ACCESS中定义好物理结构后就可以输入数据。
学生基本信息表的输入内容如下:
图3
2.4定义ODBC的数据源
建立了数据库之后,必须配备ODBC数据源,使其指向刚刚建立的数据库。
如果操作系统是Windows2000/XP,则运行控制面板中【管理工具】下的【数据源ODBC】
双击ODBC图标,进入ODBC数据源管理器。
在这里用户可以设置ODBC数据源的一些信息,其中的【用户DSN】选项卡中可以让用户定义的在本地计算机使用的数据源名(DSN),如图所示。
图4
定义用户DNS的步骤如下:
(1)单击【添加】按钮,弹出【创建新数据源】对话框,如图所示:
图5
(2)为新的数据源选择数据库驱动程序。
由于使用的是Access数据库,所以选择MicrosoftAccessDriver,并单击【完成】按钮。
(3)在如图所示的【ODBCMicrosoftAccess安装】对话框中,为该数据源起一个简短的名称。
应用程序将使用该名称来指定用于数据库连接的ODBC数据源配置,因此建议所起的名称能反映出该数据库的用途,或者与使用该数据库的应用程序名称类似。
对于该例,给该数据源命名为STUDENT,并在下一个编辑框中输入对该数据库的说明。
图6
(4)指定数据库的位置。
单击【选取】按钮,然后指定所创建的Access数据库。
(5)单击【确定】按钮,刚才创建的用户数据源则被添加在ODBC数据源管理器的用户数据源列表中了。
3.程序设计
3.1工程建立及主窗体的设计
创建一个支持数据库的标准SDI风格的应用程序。
其过程如下。
(1)用MFCAppWizard(exe)创建一个SDI应用程序“学生管理系统”。
选择单文档。
图7
图8
(2)在向导的第二步对话框中,指定要包括支持文件的Database视图。
单击DataSource按钮,弹出DatabaseOptions对话框,如图所示。
图9
(3)在DatabaseOptions对话框中,指定将使用ODBC数据源,并从为Access数据库配置的列表中选择ODBC配置,本例为STUDENT。
(4)单击OK按钮,弹出如图所示的SelectDatabaseTables对话框,从中选择要使用的表。
(5)后面的选项可设置成默认,这样工程就建立完毕了。
创建了应用程序外壳后,必须设计用来查看和编辑数据库记录的主窗体。
可使用VisualC++的标准控件来设计窗体。
本设计的主页面如下:
图10
3.2信息查询
查询操作的功能是输入学号,点击查询按钮,就可以弹出新窗口显示出学生的基本信息。
图11
代码如下:
voidCMyView:
:
OnButton1()
{
UpdateData();
CDIALOG1dlg;
m_pSet->Close();//关闭记录集
m_pSet->m_strFilter.Format("sno='%s'",m_snofind);//查询
m_pSet->Open();//打开记录集
intrecCount=m_pSet->GetRecordCount();//返回记录个数
if(recCount==0)
{
MessageBox("没有匹配的记录!
","查找",MB_ICONWARNING);
m_pSet->Close();
m_pSet->m_strFilter="";
m_pSet->Open();
}
else
{
dlg.m_sno1=m_pSet->m_sno;
dlg.m_name1=m_pSet->m_name;
dlg.m_sex1=m_pSet->m_sex;
dlg.m_age1=m_pSet->m_age;
dlg.m_dept1=m_pSet->m_dept;
UpdateData(FALSE);
dlg.DoModal();
}
//TODO:
Addyourcontrolnotificationhandlercodehere
}
3.3添加操作
添加操作是在点击添加按钮后,添加记录窗口跳出,在新窗口输入要添加的记录,点击确定按钮后,如果该学生的信息已存在(以学号判断),则提醒该学生信息已存在,如果添加成功,则跳出添加成功提示。
如图:
图12
voidCMyView:
:
OnButton2()
{
CRECADDdlg;
if(dlg.DoModal()==IDOK)
{
m_pSet->AddNew();
m_pSet->m_sno=dlg.m_sno2;
m_pSet->m_name=dlg.m_name2;
m_pSet->m_sex=dlg.m_sex2;
m_pSet->m_age=dlg.m_age2;
m_pSet->m_dept=dlg.m_dept2;
m_pSet->Update();
m_pSet->Requery();
}
}
3.4修改操作
修改操作是在主页面输入要修改的学生信息的学号(在查询条件处输入),点击修改按钮,跳出修改窗口,在窗口中会显示该学生现有的信息,将其修改后点击确定按钮。
图13
voidCMyView:
:
OnButton3()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
CRECEDITdlg;
dlg.m_sno3=m_pSet->m_sno;
dlg.m_name3=m_pSet->m_name;
dlg.m_sex3=m_pSet->m_sex;
dlg.m_age3=m_pSet->m_age;
dlg.m_dept3=m_pSet->m_dept;
if(dlg.DoModal()==IDOK)
{
m_pSet->Edit();
m_pSet->m_sno=dlg.m_sno3;
m_pSet->m_name=dlg.m_name3;
m_pSet->m_sex=dlg.m_sex3;
m_pSet->m_age=dlg.m_age3;
m_pSet->m_dept=dlg.m_dept3;
m_pSet->Update();
UpdateData(FALSE);
}
}
3.5删除操作
删除操作是点击删除按钮后,跳出删除窗口,在提示后确认无误后删除。
图14
图15
voidCMyView:
:
OnButton4()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
CRECDELdlg;
dlg.m_sno4=m_pSet->m_sno;
dlg.m_name4=m_pSet->m_name;
dlg.m_sex4=m_pSet->m_sex;
dlg.m_age4=m_pSet->m_age;
dlg.m_dept4=m_pSet->m_dept;
if(dlg.DoModal()==IDOK)
{
if(MessageBox("真的要删除该记录吗?
","删除记录",MB_YESNO|MB_ICONQUESTION)==IDYES)
{
m_pSet->Delete();
m_pSet->MovePrev();//移动到上一条记录
UpdateData(FALSE);
}
}
}
3.6浏览操作
在主页面,添加了一个学生信息浏览按钮,点击该按钮会在跳出的窗口中显示学生信息表,该表与数据库中的学生信息表连接,这样可以通过浏览该表来查看自己的删除,修改和添加等操作是否完成,同时可以通过它查看自己不熟悉学号的学生信息。
这个操作应用了ADOData控件和DataGrid控件,通过ADOData控件连接数据表,DataGrid控件连接ADOData控件后显示数据表。
图16
点击主页面的浏览按钮,显示窗口,程序如下:
voidCMyView:
:
OnButton5()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
CADODataDlgdlg;
dlg.DoModal();
}
为对话框类CADODataDlg添加OnInitDialog()函数,用于设置ADOData控件的数据源和DataGrid控件的列宽度。
代码如下:
BOOLCADODataDlg:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
//TODO:
Addextrainitializationhere
//设置ADOData控件的数据源,将列名用汉字显示
m_adodc.SetRecordSource("SelectsnoAS学号,nameAS姓名,sexAS性别,ageAS年龄,deptAS专业FROMSTUDENT");
m_adodc.Refresh();//刷新结果集的内容
//设置列宽度
_variant_tvIndex;
vIndex=long(0);//将整型值转换为_variant_t类型
m_datagrid.GetColumns().GetItem(vIndex).SetWidth(30);
vIndex=long
(1);
m_datagrid.GetColumns().GetItem(vIndex).SetWidth(100);
vIndex=long
(2);
m_datagrid.GetColumns().GetItem(vIndex).SetWidth(50);
vIndex=long(3);
m_datagrid.GetColumns().GetItem(vIndex).SetWidth(50);
vIndex=long(4);
m_datagrid.GetColumns().GetItem(vIndex).SetWidth(60);
vIndex=long(5);
m_datagrid.GetColumns().GetItem(vIndex).SetWidth(100);
returnTRUE;//returnTRUEunlessyousetthefocustoacontrol
}
4.调试报告
在程序编写过程中,建立新窗口时总是爱忘掉包含新窗口的头文件。
建立的新控件总是忘了添加类,导致出现一些错误。
5.心得体会
设计过程中,对MFC进行可视化程序的设计有了基本的认识。
对数据库有了新的认识,对数据库的连接也有了基本的了解。