学生信息管理系统MFC课程设计报告_第1页
学生信息管理系统MFC课程设计报告_第2页
学生信息管理系统MFC课程设计报告_第3页
学生信息管理系统MFC课程设计报告_第4页
学生信息管理系统MFC课程设计报告_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、为了巩固本学期所学的C+面向程序设计以及数据库原理的学习。提高和加强学生的计算机应用及软件开发能力,使学生具备初级程序员的基本素质;培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应信息管理行业日新月异的发展形势;本次课程设计为一个学生信息管理系统。该系统通过ODBC模式连接了SQL2005数据库,数据库包含了:一学生的基本信息表 (学号、姓名、姓名、性别、年龄、所学专业、电话)二选修课程信息表 (课程号、课程名、 学分 )三. 选课信息表 (学号、 课程号、 成绩 )该系统还对这三个表都具有【增】、【删】、【查】、【改】的功能,同时还设计它们之间的关系,如学生与课程关系和学生的成绩

2、等,同时还要对一些数据进行查询,如通过课程号查询学生成绩的集合。八心得体会1)过这次课程设计,初步掌握MFC程序设计,对消息的机制有了较为深刻的认识,对MFC中的应用结构类,菜单类,窗口,对话框有了理解。2)也了解了数据库的有关知识,学会了一些常用的数据库查询语句,对数据库的功能和作用也有了一定的认识。3)合理的规划和设计界面也是十分重要的,一个好的程序也需要便捷的操作和美观的界面,人性化设计是需要考虑进取的。4)了解了ODBC数据库访问技术,ODBC提供了一组标准应用程序接口,可以使用SOL语句实现对数据库的管理系统的访问。一、设计思路:本程序运用了MFC ODBC应用程序设计与SQL数据库

3、,利用VC+中提供的MFC ODBC 开放数据库连接组件进行数据库的访问,利用了记录集(RECORDSET类)进行信息的添加( ADD ( ) ),删除 (DEL ( ),修改 (UPDATE( ), 查询(select()功能,并且对用户登陆的权限进行检验,并且具有错误提示功能。二、设计说明与调试分析A 根据设计要求分析数据的结构:数据项列表名称注释数据类型主要的所在表Sid学号char(6)主键xsSname姓名nchar(4 )not nullSsex性别nchar(3)nullSage年龄tinyintnullSprof专业nchar(20)nullStel电话char(11)null

4、Kid课程号char(3)主键kcKname课程名nchar(20)not nullKscore课程学分tnyintnot nullSid学号Char(6)主键s_kcKid课程号char(3)主键grade选修成绩tinyintnot nullB 建立表根据设计要求分析数据的结构,利用SQL 2005创建一个数据库,数据库命名为:【wami】,创建3张表:xs表,kc表,xs_kc表,,如下图: C 在表里面填好初始化数据 三ODBC的配置源程序说明&附加SQL Server 2005数据库配置ODBC运行本实例需要配置用户DSN,在ODBC数据源管理器中配置用户DSN连接指定的SQL Se

5、rver数据库。关键操作步骤如下:(1)单击“开始”按钮,选择“程序”“管理工具”“数据源(ODBC)”命令,打开“ODBC数据源管理器”对话框,打开“用户DSN”选项卡。(2)单击“添加”按钮,打开“创建新数据源”对话框,选择安装数据源的驱动程序,这里选择“SQL Server”。(3)单击“完成”按钮,打开“创建到SQL Server的新数据源”对话框,在“名称”文本框中设置数据源名称为“wangming”(即程序里面的DSN),在“描述”文本框设置数据源描述为“配置SQL Server数据库DSN”,在“服务器”下拉列表框中选择连接的数据库所在服务器为“自己的计算机名(例如我的是:WIN

6、-PHT03USEDJ9SQLEXPRESS)”。(4)单击“下一步”按钮,选择“使用网络登录ID的Windows NT验证”单选框,其他默认(5)单击“下一步”按钮,选择“更改默认的数据库为”复选框,并在其下拉列表框中选择连接的数据库名称,这里选择“student”【数据库的名字】,单击“下一步”按钮。(6)单击“完成”按钮,打开“ODBC Microsoft SQL Server安装”对话框,显示新创建的ODBC数据源配置信息。(7)单击“测试数据源”按钮测试数据库连接是否成功,如果测试成功,单击“确定”按钮,完成数据源配置。否则将无法使用!附加数据库(1)将database文件夹中的两个

7、文件拷贝到SQL Server 2005安装路径下的Data文件夹中。(2)打开SQL Server 2005中的“企业管理器”,然后展开本地服务器,在“数据库”数据项上单击鼠标右键,在弹出的快捷菜单中选择“所有任务”/“附加数据库”菜单项。(3)将弹出“附加数据库”对话框,在该对话框中单击“”按钮,选择所要附加数据库的.mdf文件,单击“确定”按钮,即可完成数据库的附加操作。四整个系统运行结构以及主界面如下所示:1.登录界面(ID:admin Psw:123)2.菜单界面3.学生基本信息界面4.课程基本信息界面5选修课程成绩界面6.课程号综合查询成绩界面五部分关键代码说明1 .删除信息代码v

8、oid Student:OnDel() /删除记录tryUpdateData(TRUE);if(m_UId=)AfxMessageBox(请输入学号);return;CString strSql;strSql.Format(delete xs where Sid=%s,m_UId);/打开数据库,执行查询/ DNS指ODBC配置的数据源名称/ CDatabase:openReadOnly | CDatabase:noOdbcDialog:设置数据库读取状态 当连上了,数据与对话框列绑定了,就往下读取 /Sa是Sqlserver默认管理员CDatabase database;database.O

9、penEx(DSN=wangming;UID=Sa,CDatabase:openReadOnly | CDatabase:noOdbcDialog); database.ExecuteSQL(strSql);/ 执行SQL语句, 不返回值AfxMessageBox(_T(删除成功);m_UId=;m_UName=;m_USex=;m_UAge=;m_UClass=;m_UPhone=;UpdateData(FALSE);catch(.)AfxMessageBox(_T(删除失败);2 增加信息代码 void Student:OnAdd() /增加学生信息/ TODO: Add your con

10、trol notification handler code hereUpdateData(TRUE); if(m_UAge=) /验证输入消息AfxMessageBox(请输入年龄); return;if(m_UClass=)AfxMessageBox(请输入专业); return;if(m_UId=)AfxMessageBox(请输入学号); return;if(m_UName=)AfxMessageBox(请输入姓名); return;if(m_UPhone=)AfxMessageBox(请输入电话); return;if(m_Sex=)AfxMessageBox(请输入性别); ret

11、urn;tryCString strSql; strSql.Format(insert into xs (Sid,Sname,SSex,Sage,Sprof,Stel) values (%s,%s,%s,%s,%s,%s),m_UId,m_UName,m_Sex,m_UAge,m_UClass,m_UPhone);/打开数据库,执行查询CDatabase database;database.Open(NULL,FALSE,FALSE,ODBC;DSN=wangming;UID=Sa;PWD;);database.ExecuteSQL(strSql);AfxMessageBox(_T(添加成功)

12、;m_UAge=;m_UClass=;m_UId=;m_UName=;m_UPhone=;m_USex=;catch(.)AfxMessageBox(_T(添加失败,此学号存在);UpdateData(FALSE);3查询信息代码void Student:OnSelect() /查询学生信息/ TODO: Add your control notification handler code heretryUpdateData(TRUE);if(m_UId=) /验证输入消息AfxMessageBox(请输入学号); return;CString strSql;strSql.Format(sel

13、ect Sid,Sname,SSex,Sage,Sprof,Stel from xs where Sid=%s,m_UId)/打开数据库,执行查询CDatabase database;database.OpenEx(DSN=wangming;UID=Sa,CDatabase:openReadOnly | CDatabase:noOdbcDialog);CRecordset recordSet(&database);recordSet.Open(CRecordset:snapshot,strSql);/提取结果集if(recordSet.IsEOF()&recordSet.IsBOF() if(

14、recordSet.IsBOF() /recordSet.MoveNext(); /elseif(recordSet.IsEOF() / recordSet.MovePrev(); /CString MyId;CString MyName;CString MySex;CString MyAge;CString MyClass;CString Myphone;short ss=0;recordSet.MoveFirst(); /while(!recordSet.IsEOF() /recordSet.GetFieldValue(ss,MyId);m_UId=MyId;ss+;recordSet.G

15、etFieldValue(ss,MyName);m_UName=MyName;ss+;recordSet.GetFieldValue(ss,MySex);m_Sex=MySex;ss+;recordSet.GetFieldValue(ss,MyAge);m_UAge=MyAge;ss+;recordSet.GetFieldValue(ss,MyClass);m_UClass=MyClass;ss+;recordSet.GetFieldValue(ss,Myphone);m_UPhone=Myphone;UpdateData(FALSE);catch(.)4.修改信息代码void CClassI

16、nfo:OnButton3() / TODO: Add your control notification handler code heretryif(m_Id=) /验证消息AfxMessageBox(请输入课程号);return;UpdateData(TRUE); /CString strSql;strSql.Format(update kc set Kname=+m_Name+,Kscore=+m_Score+ where Kid=+m_Id+);/打开数据库,执行查询CDatabase database;database.OpenEx(DSN=wangming;UID=Sa,CDat

17、abase:openReadOnly | CDatabase:noOdbcDialog);database.ExecuteSQL(strSql);AfxMessageBox(_T(修改成功);m_Id=;m_Name=;m_Score=;UpdateData(FALSE);catch(CDBException *e)AfxMessageBox(_T(修改失败);5单科成绩综合查询界面(多表连接)void Alli:OnOK() m_List.DeleteAllItems();/ TODO: Add extra validation heretryUpdateData(TRUE);if(m_Na

18、me=)AfxMessageBox(请输入课程号);return;/打开数据库,执行查询CString strSql; /strSql.Format(select Kid,Kname,Kscore,Sid,Sprof,Sname,SSex,Sage,grade from View1 where Kid=%s,m_Name); /CDatabase database; /database.OpenEx(DSN=wangming;UID=Sa,CDatabase:openReadOnly | CDatabase:noOdbcDialog); /CRecordset recordSet(&datab

19、ase); /recordSet.Open(CRecordset:snapshot,strSql); /结果集指针if(recordSet.IsEOF()&recordSet.IsBOF() /AfxMessageBox(无此学号信息);if(recordSet.IsBOF()recordSet.MoveNext();CString Sid; /CString Kid;CString Kname;CString Kscore;CString Sname;CString SSex;CString Sage;CString grade;CString Sclass;int i=0;short ss=0;recordSet.MoveFirst();/读取结果集while(!recordSet.IsEOF()recordSet.GetFieldValue(ss,Kid);ss+; /获取结果集的值 ,获取ss列的值,存放在KId recordSet.GetFieldValue(ss,Kname);ss+;recordSet.GetFieldValue(ss,Kscore);ss+;recordSet.GetFieldValue(ss,Sid);ss+;recordSet.GetFiel

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论