还剩20页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
数据库综合实验报告班级计科1004班学号—姓名2013年01月m_strAge.EnableWindowtrue;m_strAge.SelectString0,n20;femaleRadio-EnableWindowtrue;maleRadio-EnableWindowtrue;m_studentSet.Open;m_studentSet.AddNew;m_btnConfirm.EnableWindowtrue;m_btnAdd.EnableWindowfalse;m_btnEdit.EnableWindowfalse;m_btnDel.EnableWindowfalse;void CStudentDlg::OnStudentDel int row二m」ist.GetSelectionMark;CString s,strSQL;s=m_list.GetItemTextrow,0;ifs=*//如果为空,则表示没有选种行sMessageBox请选择一行!”;else{ifMessageBox确定要删除数据吗?删除询问”,MB_CANCEL|MB」CONQUESTION==IDOK{s trSQL.Format Hsno=%s,s;m_studentSet.Open;m_studentSet.m_strFilter=strSQL;m_studentSet.Requery;m_studentSet.Delete;m_studentSet.Close;RefreshList;void CStudent::OnStudentEditint row=m_list.GetSeletionMark;CString s,strSQL;s=m_list.GetItemTextrow,0;ifs==,,n{MessageBox请选择一行!;elsestrSQL.Formatsno=%su,s;m_studentSet.Open;m_studentSet.m_strFilter=strSQL;m_studentSet.Qequery;m_studentSet.Edit;m_btnConfirm.EnabIeWindowlrue;m_btnAdd.EnableWindowfalse;m_btnEdit.EnableWindowfalse;m_btnDel.EnableWindowfalse;m_strName.EnableWindowtrue;femaleRadio-EnableWindowtrue;malcRadio-EnableWindowtrue;m_strNo.EnableWindowtrue;m_strAge.EnableWindowtrue;void CStudentDlg::OnCancelCDialog::OnCancel;void CStudentDlg::OnOkCString name,strSex;int age,no;CString a,n;m_strNo.GetWindowTextname;int sex=this-GetCheckedRadioButtonIDC_RADIO_MALE,IDC_RADIO_FEMALE;ifsex==IDC_RADIO_FEMALEstrSex二“女”;elsestrSex=男;m_strAge.GetWindowTexta;age=atoia;ifname==,M,MessageBox,请输入学生姓名elsem_studentSet.m_Sno=no;m_studentSet.m_Sname=name;m_studentSet.m_Ssex=strSex;m_studentSet.m_Sage=age;m_studentSet.Updata;m_studentSet.Close;RefreshList;ResetButton;男学生笥理系统字号:课程管理系统学号i姓名性别i年龄雯迪100823女明信姓名:类似于学生管理窗口建立100824女丽一的方法100213小晓男100322凯崔女成绩管理窗口:兰王100731男刘张添力口CScoreDlgBOOL CScoreDlg::OnInitDialog CDialog::OnInitDialog;确定|增加编辑if!m_database.IsOpenm_database.Open_T HDB;m_recordSet.m_pDatabase=m_database;m」ist.InsertColumnOJ编号m」ist.InsertColumn1J学号”;m」ist.InseitColumn2,“学生名”;m」ist.InsertColumn3J课程名”;m_list.InseitColumn4J分数”;21322222RECT rectList;m_list.GetWindowRectrectList;int wid=rectList.right-rectList.left;forint i=0;i5;i++m_list.SetColumnWidthi,wid/5;m_list.SetExtendStyleLVS_EX_FULLROWSELECT;RefreshList;return true;void CScoreDlg::OnScoreAddCScoreAddDlg scoreAdd;scoreAdd.id=nOn;scoreAdd,DoModel;RefreshList;void CSoreDlg::OnScoreEditCSoreAddDlg scoreAdd;introw=m_list.GetSelectionMark;scoreAdd.id=m_list.GetItemTextrow,0;ifscoreAdd.id==,n,MessageBox请选择所需要修改的记录!”;else scoreAdd.DoModal;RefreshList;void CScoreDlg::OnScoreDel introw=m_list.GetSelectionMark;CString id=m」ist.GetItemTextrow,0;ifid==MHMessageBox请选择所需要删除的记录!elseCString strSQL;strSQL.Formatndelete fromsc whereScno=%s,id;m_database.ExecuteSQLstrSQL;RefreshList;void CScoreDlg::RefreshListm」ist.DeleteAHItems;CString strSQL;strSQL.Format”select*from view_Choice;m_recordSet.OpenCRecordset::forwardOnly,strSQL;forint i=0;im_recordSet.GetRecordCount;i++CString temp;m_recordSet.GetFieldValuenSCno,temp;m_list.lnsertltemi,temp;m_recordSet.GetFieldValuenSnoH,temp;m_list.SetItemTexti,1,temp;m_recordSet.GetFieldValue,Sname,temp;m」ist.SetItemTexti,2,temp;m_recordSet.GetFieldValuenCname,temp;m」ist.SetItemTexti,3,temp;m_recordSet.GetFieldValuenScore,temp;m_list.SetItemTexti,4,temp;m_recordSet.MoveNext;m_recordSet.Close;添力「CScoreAddDlgBOOL CScoreAddDlg::OnInitDialogCDialog::OnInitDialog;CRecordset m_recordSet;if!m_database.I sOpenm_datadase.Open_TDBH;m_recordSet.m_pDatabase=m_database;CString strSQL;strSQL.FormatHselect cnamefrom cu;m_recordSet.OpenCRecordset::forwardOnly,strSQL;forint i=0;im_recordSet.GetRecordCount;i+4-CString temp;m_recordSet.GetFieldValuecname,temp;m_cCourse.AddStringtemp;m_recordSet.Movenext;m_recordSet.Close;m_cCourse.SetCurSel1;strSql.Formatselect snamefrom sn;m_recordSet.OpenCRecordset::forwardOnly,strSQL;forint j=0;jm_recordSet.GetRecordCount;j++CString temp;m_recordSet.GetFieldValuensname,tenip;m_cStudent.AddStringtemp;m_recordSet.MoveNext;m_recordSet.Close;m_cStudent.SetCurSel1;ifid!=Othis・SetWindowText修改成绩窗口”;strSQL.Formatselect sname,cname,score fromview_choice wherescno=%s,id;m_recordSet.OpenCRecordset::forwardOnly,strSQL;CString temp;m_recordSet.GetFieldValue,snameH,temp;m_cStudent.SelectStringO,temp;m_recordSet.GetFieldValuecname,temp;m_cCourse.SelectString1,temp;m_recordSet.GetFieldValuescore”,temp;m_cScore.SetWindowTexttemp;elsethis-SetWindowTextHAdd Score;return true;void CScoreAddDlg::OnOK m_cStudent.GetWindowTextstudent;m_cCourse.GetWindowtextcourse;m_cScore.GetWindowTextscore;ifscore==nuMessageBox(”请输入成绩)elseCString strSQL;strSQL.Formatselect sname,sno froms wheresname=,%s,student”;CRecordset m_recordSet=m_database;m_recordSet.OpenCRecordset::forwardOnly,strSQL;m_recordSet.GetFieldValue1,sno;m_recordSet.Close;strSQL.FormatHselect cname,cno fromc wherecname=%sH,,course;m_recordSet.OpenCRecordset::formatOnly,strSQL;m_recordSet.Close;ifid=HOMstrSQL.FormatHupdate scset sno=%s,cno=%s,score=%s wheresno=%sn,sno,eno,score,atoiid;m_database.ExecuteSQLstrSQL;elsem_database.ExecuteSQLSstrSQL;m_database.Close;CDialog::OnOK;li-增加记录*学生I课程I-------成绩I诺定]|返回成绩查询窗口:添加CQuery::OnInitDialog方法BOOL CQuery::OnInitDialogCDialog::OnlnitDialogO;if!m_database.IsOpenm_database.Open_TnDBn;m_recordSet.m_pDatabase=m_database;sortBy=0;return true;单选按钮void CQuery::OnRadioStudentsortBy=l;void CQuery::OnRadioCoursesortBy=2;添加“查询”按钮void CQuery::OnQueryBOOL bSuccess=true;ifsortBy=0MessageBox请先选择查询条件ifsortBy==l CEdit*pName=CEdit*this-GetDlgItemIDC_QUERY_NAME;CString m_name;pName-GetWindowTextm_naine;ifm_name==HMessageBox”请输入学生姓名bSuccess=false;ifbSucessCString strSQL;strSQL.Formatnselect c.cname,score fromc,s,sc wherec.cno=sc.dno ands.sno二sc.sno andsname=%s H,m_name;m_list.DeleteColumn0;m」ist.DeleteColumn1;m_list.DeleteAintems;01_底匕1115«1*9011101110,“课程名;m_list.InsertColumn1,”学生成绩”;RECT rectlist;m」ist.GetWindowRectreclList;int wid=rectList.right-rectList.left-4;forint i=0;i〈2;i++;m_list.SetColumnWidthi,wid/2;m_list.SetExtendedStyleLVS_EX_FULLROWSELECT;m_recordSet.OpenCRecordset::forwardOnly,strSQL;forint j=0;jm_recordSet.GetRecordCount;j++;CString temp;m_recorsSet.GetFiledValuecname,temp;m_list.lnsertltemj,temp;
一、实验类另!J综合型实验
二、实验目的.掌握数据库设计的基本技术,熟悉数据库设计的每个步骤中的任务和实施方案,并加深对数据库系统系统1概念和特点的理解.初步掌握基于C/S的数据库应用系统分析、设计和实现方法
2.进一步提高学生的知识综合运用能力3
三、实验内容在SQL Server2005数据库管理系统上,利用Visual C++
6.0开发工具开发一个学生选课系统的数据库应用系统、实验过程系统需求说明
4.本系统可以划分为3大功能模块,用户身份验证模块、基本信息管理模块和信息查询模块功能需求分析如下:
1.用户身份验证模块用户身份验证模块提供对用户身份的验证,保证了安全性
2.基本信息管理模块能够对学生的一些基本信息进行添加、修改、删除等操作学生个人信息包括学号、姓名、性别、年龄、系别的基本信息
3.信息查询模块用户可以通过输入学号和课程名称来查询相关信息数据库结构设计
2.概念结构设计12逻辑结构设计m_recorsSet.GetFiledValuenscore,temp;m_recordSetItemTextj,1,temp;m_recordSet.MoveNext;m_recordSet.Close;系别成债傀程名称ifsortBy==2CEdit*pCourse=CEdit*this-GetDlgItemIDC_QUERY_COURSE;CString m_course;pCourse-GetWindowTextm_course;ifm_course==,H,MessageBox”请输入课程名称elseCString strSQL;strSQL.Formatselect s.sname,score fromc,s,sc wherec.cno=sc.cno snds.sno=c.cno sndcname=%s,,m_course;m」ist.DeleteColumn1;m」ist.DeleteColumn0;m」ist.DeleteAlltems;m_list.InsertCohimn0,”学生名m」ist.DeleteColumn1,学生成绩RECT rectlist;m」ist.GelWindowRectrectList;int wid=rectList.right-rectList.left-4;forint i=0;i2;i++m_list.SetColumnWidthi,wid/2;m_list.SetExtendedStyleLVS_EX_FULLROWSELECT;m_recordSet.OpenCRectset::forwordOnly,strSQL;forint j=0;jm_recordSet.GetRecordCount;j++CString temp;m_recordSet.GetFiledValuensnamen,temp;m_list.lnsertltemj,temp;rri-recordSet.GetFiledValueC^core\temp;m」ist.SetItemTextj,1,temp;m_recordSet.MoveNext;m_recordSet.Close;
五、实验总结通过这次的开发系统,我掌握了软件开发的基本过程,首先要先进行软件的需求分析,这样才能够设计出满足大众要求的软件,最后是要进行软件可行性的检验,只有经过了可行性检验的软件,才能得到认同经过儿个星期的设计和开发,系统基本开发完毕在本次课程设计中困难遇到不少,比如数据库的连接,SQL语言的书写格式,全局参数的传递等由于设计时间较短,所以该系统还有许多不尽如人意的地方,比如用户界面不够美观,功能不够完善等多方面问题在这次系统开发的过程中,我深深体会到了做一个系统,首先进行需求分析的重要性,了解了一个系统的制作,从功能分析到功能模块分析、与其他系统的关系,再到数据库设计、数据库结构实现及各功能模块的创建都需要从整体上考虑设计这些都有待以后进一步改进通过实践对于我以后的学习是一笔不小的财富!学生(学号,姓名,性别,年龄,系别);PK学号选修(学号,课程号,成绩);PK(学号,课程号)课程(课程号,课程名);PK课程号()物理结构设计3用户密码表(Useinfo)序号字段名称字段描述数据类型长度属性1Username用户名char10PK2UserPwd密码char10非空学生表(S)序号字段名称字段描述数据类型长度属性1Sno学生学号int4PK2Sname学生姓名char103Ssex性别,值有“男”“女”char24Sage学生年龄int45Sdept系别char10课程表(C)序号字段名称字段描述数据类型长度属性1Cno课程编号int4PK2Cname课程名称char10选课表(SC)序外字段名称字段描述数据类型长度属性1SCno选课编号int42Sno学生编号int43Cno课程编号int44Score成绩int3可以为空.系统功能设计3在Microsoft SQLSERVER2005中创建Student表,并输入部分数据,本实验采用MFC ODBC数据库访问技术,所以首先要建立数据源大体步骤流程如下
①配置数据源;
②建立工程;
③登陆窗口;
④系统主窗口;
⑤学生管理窗口;
⑥课程管理窗口;
⑦成绩管理窗口;
⑧成绩查询窗口系统实现
4.
(1)系统的开发环境本系统的设计是在Win7操作系统环境下,使用Visual C++
6.0为系统前台应用程序开发工具,SQL Server2005作为后台数据库2数据库创建过程及其连接创建数据库启动数据库连接本机在对象资源管理器中选择“数据库”文件夹并右击,在弹出快捷菜单中选择“新建数据库”命令即可配置SQL serverODBC数据源在保证SQL服务开启后,“控制面板”-“管理工具”-“数据源ODBC”在系统DSN中添加输入名称,服务器选择Local,选择使用用户登录ID和密码SQL server验证,同时将“链接SQL server以获取其他默认选项的配置”,输入本机SQL用户名和密码选择更改默认数据库为XXXDataBase最后在测试数据源,成功即可配置成功3创建工程文件及窗体,添加所需的控件,为相应控件的事件编写代码,以实现目标功能添加界面背景首先选择一个背景图案BMP格式,在ResourceView中插入Bitmap,并命名为IDB_BITMAP其次,在CStudentDlg::0nPaint,在if...else中的else下添加如下代码else{CPaintDC dethis;CRect rect;GetClientRect rect;CDC dcMem;deMem.CreateCompatibleDCdc;CBitmap bmpBackground;bmpBackground.LoadBitmapIDB BITMAP;BITMAP bitmap;bmpBackground.GetBitmapbi tmap;CBitmap*pbmp01d=dcMem.SelectObjectbmpBackground;de.StretchBlt0,0,rect.Width,rect.Height,dcMem,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY;登录窗口主要代码BOOL CStudentApp::InitInstance CLoginDlglogin;iflogin.DoModal==IDOKCSingleDocTemplate*pDocTemplate;pDocTemplate=new CSingleDocTemplateIDR_MAINFRAME,RUNTIME_CLASSCStudentDoc,RUNTIME_CLASSCMainFrame,RUNTIME_CLASSCStudentView;AddDocTemplatepDocTemplate;CCommandLinelnfo cmdlnfo;ParseCommandLinecmdlnfb;if!ProcessShellCommandcmdInforeturn FALSE;CMenu ipMenu=m_pMainWnd-Get ActiveWindow-GetMenu;return TRUE;else{return false;}void CLoginDlg::OnOKCString username,password;m_strUserName.GetWindowTextusername;m_strPassword.GetWindowTextpassword;if!m_database.IsOpenm_recordSet.m_pDatabase=m_database;CString strSQL;strSQL.Formatselect*from Userinfowhere Username=%s andUserpwd=,%s,n,username,password;m_recordSet.OpenCRecordset::forwordOnly,strSQL;ifm_recordSet.GetRecordCount==0MessageBox Usernameor PasswordError!,Error!,MB_OK|MB_ICONWARNING;m_strPassword.SetWindowText,,H;m_strPassword.SetFocus;elseCDialog::OnOK;}m_recordSet.Close;m_database.Close;elseMessageBoxCan,t Openthe database!;void CLoginDlg::OnCancelifMessageBoxAre yousure toexit”JAre yousure toexit,MB_OK|MB_ICONQUESTION==IDOKCDialog::OnCancel;系统王茴口:void CMainFrame::OnPassword CPasswordDlgPassword;ifPassword.DoModal==IDOKelse}int CMainFrame::OnCreateLPCREATESTRUCT IpCreateStructifCFrameWnd::OnCreatelpCreateStruct==-1return-1;return0;^CStudentDIg级
⑤信息省理M查询帮助回©学生告理
⑤课程管理g学生选课管理学生管理窗口:void CStudentDlg::RefreshListm_list.DeleteAHItems;m_studentSet.Open;m_studentSet.m_strFilter=n;m_studentSet.Requery;forinti=0;im_studentSet.GetRecordCount;i++CString temp;m_studentSet.GetFieldValue,Sno,,temp;m_list.TnsertItemi,temp;char a
[10],s
[3];itoam_studentSet.m_Sno,a,10;m_list.SetItemTexti,O,a;m_list.SetItemTexti,I,m_studentSet.m_Sname;m_list.SetItemTexti,2,m_studentSet.m_Ssex;itoam_studentSet.m_Sage,s,10;m_list.SetItemTexti,3,s;m_studentSet,MoveNext;m_studentSet.Close;void CStudentDlg::ResetButtonm_strNo.EnableWindowfalse;m_strName.EnableWindowfalse;m_strAge.EnableWindowfalse;femaleRadio-EnableWindowfalse;maleRadio-EnableWindowsfalse;m_btnConfirm.EnableWindowfalse;m_btnAdd.EnableWindowtrue;m_btnDel.EnableWindowtrue;m_btnEdit.EnableWindowtrue;添加初始化对话框BOOL CStudentDlg::OnInitDialogCDialog::OnInitDialog;m_list.InsertColumnOJ学号m_list.InsertColumn1,姓名;m_list.InsertColumn2,“性别”;“1_瓜
1.11156110111111113,“年龄”;RECT rectList;m」ist.GetWindowRectrectList;int wid=rectList.right-rectList.left;fdrint i=0;i4;i++m_list.SetColumnWidthi,wid/4;m_list.SetExtendedStyleLVS_EX_FULLROWSELECT;RefreshList;forintj=l;j100;j++CString s;s.Formatn%dH,j;m_strAge.AddStrings;femaleRadio=CButton*this-GetDlgItemIDC_RADIO_FEMALE;maleRadio=CButton*this-GetDlgItemIDC_RADIO_MALE;femaleRadio-EnableWindowfalse;maleRadio-EnableWindowfalse;ResetButton;return true;CListCtrl控件添加事件void CStudentDlg::OnClickStudentListHMHDR*pNMHDR,LRESULT*pResult introw=m_list.GetSelectionMark;CString s;s二m」ist.GetItemTextrow,0;m_strNo.SetWindows;s=m_list.GetItemTextrow,1;m_strName.SetWindows;s=m_list.GetItemTextrow,2;ifs==女famalcRadio-SetChecktrue;maleRadio-SetCheckfalse;elsefemaleRadio-SetCheckfalse;maleRadio-SetChecktrue;s=m_list.GetItemTextrow,3;int i=m_strAge.FindStringO,s;m_strAge.SelectStringi,s;*pResult=0;“添加”按钮事件void CStudentDlg::OnStudentAddm_strNo.EnableWindowtrue;m_strNo.SetWindowText;m_strName.EnableWindowtrue;m_strName.SetWindowTextu;。
个人认证
优秀文档
获得点赞 0