230 likes | 388 Views
数据库应用程序设计过程. 例:建立一个学生成绩管理的数据库应用程序. 程序运行界面如图:. 数据库应用程序设计过程. 该程序设计的过程为: (一)设计数据库 ⑴首先创建 Microsoft Access 类型数据库 student.mdb 。. 数据库 student 中 fen 表的记录如下表:. fen 表. ⑵ 然后打开控制面板,找到 32 位 ODBC 数据源图标。. ⑶ 双击 32 位 ODBC 图标,出现数据源管理器对话框。. 数据库应用程序设计过程. ⑷ 在用户 DSN 选项卡中单击“添加”按钮,弹出创建新数 据源对话框。.
E N D
数据库应用程序设计过程 例:建立一个学生成绩管理的数据库应用程序 程序运行界面如图:
数据库应用程序设计过程 该程序设计的过程为: (一)设计数据库 ⑴首先创建Microsoft Access类型数据库student.mdb。 数据库student中fen表的记录如下表: fen表 ⑵然后打开控制面板,找到32位ODBC数据源图标。 ⑶双击32位ODBC图标,出现数据源管理器对话框。
数据库应用程序设计过程 ⑷在用户DSN选项卡中单击“添加”按钮,弹出创建新数 据源对话框。 ⑸选定数据库类型Microsoft Access Driver,单击“完成” 按钮,弹出ODBC Microsoft Access 安装对话框,在数 据源名输入student数据库一个别名“not”,在说明输入 student数据库,单击数据库中的“选取…”按钮,在弹出 的文件选择对话框中选定所用的数据库文件(如 student.mdb),单击“确定”按钮,回到数据源管理器对 话框,选择“确定”按钮,建立数据源的工作完成了。
数据库应用程序设计过程 (二)创建lhwy工程: ⑴利用MFC AppWizard(exe)来生成lhwy工程。在Step 1 中选择Single document。并选择“英语[美国][APPWZ- ENU.DLL]”。 ⑵在MFC AppWizard –Step2 of 6对话框中,选择Data- base view without file support选项。 ⑶单击Data Source按钮,弹出Database Option对话框, 选择ODBC单选按钮,并从下拉列表框中选择student, 选好数据源后,APPWizard还会提示用户选择一个表, 此时选择fen表。其余步骤选默认选项。
数据库应用程序设计过程 (三)设计程序界面: ⑴在Workspace窗口的ResourceView选项卡上找到一个名 为IDD_LHWY_DIALOG的对话框,双击它打开对话框 编辑器,然后按下图加入控件。
数据库应用程序设计过程 ⑵设置六个按钮控件的 ID分别为IDC_ADD、IDC_DELECT、 IDC_EDIT、IDC_FIND、IDC_SORT、IDC_ALL。 其中列表框属性设置中Styles选项卡“查看”选Report。 ⑶利用Class Wizard的Member Variables中列出了所有控 件的ID,按下图设置相应变量。
数据库应用程序设计过程 (四)添加对话框资源: ⑴增加4个对话框资源。它们的名字分别为IDD_ADD、IDD_DELECT、IDD_EDIT、IDD_FIND。分别设置4个对话框的界面及界面上控件的 ID值和相应变量,4个对话框的类名分别为CAddDialog、CDeleteDialog、CEditDialog、CFindDialog。如图:
数据库应用程序设计过程 IDC_PASSWARD编辑框属性设置中Styles选项卡选中Password复选框。
数据库应用程序设计过程 IDC_PASSWARD编辑框属性设置中Styles选项卡选中Password复选框。
数据库应用程序设计过程 (五)程序初始化 ⑴添加CLhwyView的成员变量 public: HBRUSH m_Brush; ⑵通过ClassWizard添加CLhwyView的消息相应函数OnInitialUpdate() : void CLhwyView::OnInitialUpdate() { m_pSet = &GetDocument()->m_lhwySet; CRecordView::OnInitialUpdate(); GetParentFrame()->RecalcLayout(); ResizeParentToFit(); //创刷子用来设置界面背景色 m_Brush=CreateSolidBrush(RGB(30,180,180)); //设表格表题和列的宽度 m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); m_ListCtrl.InsertColumn(0,_T("学号"),LVCFMT_IMAGE|LVCFMT_LEFT); m_ListCtrl.InsertColumn(1,_T("姓名"));
数据库应用程序设计过程 m_ListCtrl.InsertColumn(2,_T("数学")); m_ListCtrl.InsertColumn(3,_T("英语")); int j; for(j=0;j<4;j++) { m_ListCtrl.SetColumnWidth(j ,90); } //显示所有记录 this->Show(); } //这样列表标题就设置好了,同时设置列的宽度。 ⑶通过ClassWizard添加CLhwyView的WM_CTRCOLOR消息相应函数 OnCtlColor并修改代码为 //设置界面为草绿色 HBRUSH CLhwyView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { return m_Brush; }
数据库应用程序设计过程 ⑷因为程序一运行时,要求所有记录都显示出来,所以接着需增加一个CLhwyView 类的成员函数Show()函数,Show()函数如下: int CLhwyView::Show() { int i=0; m_pSet->MoveFirst(); do { CString s; s.Format("%d",m_pSet->m_column1); m_ListCtrl.InsertItem(i,s,0); m_ListCtrl.SetItemText(i,1,m_pSet->m_column2); s.Format("%d",m_pSet->m_column3); m_ListCtrl.SetItemText(i,2,s); s.Format("%d",m_pSet->m_column4); m_ListCtrl.SetItemText(i,3,s); i++; m_pSet->MoveNext(); } while(!m_pSet->IsEOF()); m_pSet->MoveFirst(); return i; }
数据库应用程序设计过程 (六)程序基本功能的实现 : 为了实现程序的基本功能,在视图上增加了六个按钮,在视图实现 文件中对按钮响应。 ⑴增加记录:双击IDD_LHWY_FORM上的增加记录按钮 void CLhwyView::OnAdd() { // TODO: Add your control notification handler code here CAddDialog dlg; if( dlg.DoModal()==IDOK) { if(dlg.m_Xuehao==0) { AfxMessageBox("学号不可为零!"); } else { m_pSet->AddNew(); m_pSet->m_column1=dlg.m_Xuehao; m_pSet->m_column2=dlg.m_strName; m_pSet->m_column3=dlg.m_Maths; m_pSet->m_column4=dlg.m_English;
数据库应用程序设计过程 m_pSet->Update(); m_pSet->Requery(); m_pSet->MoveLast(); CString s; s.Format("%d",dlg.m_Xuehao); m_ListCtrl.InsertItem(0,s,0); m_ListCtrl.SetItemText(0,1,dlg.m_strName); s.Format("%d",dlg.m_Maths); m_ListCtrl.SetItemText(0,2,s); s.Format("%d",dlg.m_English); m_ListCtrl.SetItemText(0,3,s); } } m_pSet->MoveFirst(); }
数据库应用程序设计过程 ⑵删除记录:双击IDD_LHWY_FORM上的删除记录按钮 void CLhwyView::OnDelect() {// TODO: Add your control notification handler code here CDeleteDialog dlg; if(dlg.DoModal()==IDOK) { if(dlg.m_Password!=1234) AfxMessageBox("你没有权限删除记录!请重输入密码:"); else { BOOL b=FALSE; m_pSet->MoveFirst(); do { if(dlg.m_Xuehao!=m_pSet->m_column1 &&dlg.m_Name!=m_pSet->m_column2) m_pSet->MoveNext(); else {
数据库应用程序设计过程 m_ListCtrl.DeleteAllItems(); b=TRUE; m_pSet->Delete(); m_pSet->Requery(); this->Show(); m_pSet->MoveFirst(); break; } }while(!m_pSet->IsEOF()); if(b==FALSE) AfxMessageBox("没有此记录"); } } }
数据库应用程序设计过程 ⑶修改记录:双击IDD_LHWY_FORM上的修改记录按钮 void CLhwyView::OnEdit() { // TODO: Add your control notification handler code here CEditDialog dlg; if(dlg.DoModal()==IDOK) { if(dlg.m_Password!=1234) AfxMessageBox("你没有权限更改记录!请重输入密码:"); else { BOOL b=FALSE; m_pSet->MoveFirst(); do { if(dlg.m_Xuehao!=m_pSet->m_column1) m_pSet->MoveNext(); else { m_ListCtrl.DeleteAllItems(); m_pSet->Edit(); b=TRUE;
数据库应用程序设计过程 m_pSet->m_column1=dlg.m_Xuehao; m_pSet->m_column2=dlg.m_strName; m_pSet->m_column3=dlg.m_Maths; m_pSet->m_column4=dlg.m_English; m_pSet->Update(); m_pSet->Requery(); this->Show(); m_pSet->MoveFirst(); break; } }while(!m_pSet->IsEOF()); if(b==FALSE) AfxMessageBox("没有此记录"); } } }
数据库应用程序设计过程 ⑷查寻记录:双击IDD_LHWY_FORM上的查寻记录按钮 void CLhwyView::OnFind() { // TODO: Add your control notification handler code here BOOL k=FALSE; CFindDialog dlg; if(dlg.DoModal()==IDOK) { m_pSet->MoveFirst(); m_ListCtrl.DeleteAllItems(); do{ if(dlg.m_Maths!=m_pSet->m_column3) m_pSet->MoveNext(); else { k=TRUE; CString s; s.Format("%d",m_pSet->m_column1); m_ListCtrl.InsertItem(0,s); m_ListCtrl.SetItemText(0,1,m_pSet->m_column2);
数据库应用程序设计过程 s.Format("%d",m_pSet->m_column3); m_ListCtrl.SetItemText(0,2,s); s.Format("%d",m_pSet->m_column3); m_ListCtrl.SetItemText(0,3,s); m_pSet->MoveNext(); } } while(!m_pSet->IsEOF()); if(k==FALSE) AfxMessageBox("没有符和条件的记录"); } } ⑸排序记录:双击IDD_LHWY_FORM上的排序记录按钮 void CLhwyView::OnSort() {// TODO: Add your control notification handler code here m_ListCtrl.DeleteAllItems(); m_pSet->m_strSort="[学号]"; m_pSet->Requery(); this->Show(); }
数据库应用程序设计过程 ⑹显示全部记录:双击IDD_LHWY_FORM上的全部记录按钮 void CLhwyView::OnAll() { // TODO: Add your control notification handler code here m_ListCtrl.DeleteAllItems(); this->Show(); } ⑺最后在lhwyView.h中的#endif // _MSC_VER > 1000下面加入下列代码: #include "AddDialog.h" #include "DeleteDialog.h" #include "FindDialog.h" #include "EditDialog.h “
数据库应用程序设计过程 • 课程设计要求: • 1. 根据例题,自己建立一个其它数据库管理的应用程序(比如,图书馆管理、宿舍管理、酒店管理等),根据管理的不同设计出不同的数据库。 • 2. 使用工具:VC++、Access、SQL Sever等。 • 3.系统设计要求 • ⑴主要功能包括①增加记录②删除记录③修改记录④查询记录⑤排序记录⑥全部记录。等功能。 • ⑵写出环境要求 • ⑶写出建立数据库应用程序的过程 • ⑷写出用户使用说明书 • 4. 每个人交一份,不能类同,最后全班刻到一张光盘交上来