您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页VC实验报告

VC实验报告

来源:爱go旅游网


实验报告 班级:网络Z091 学号:094552 姓名:李丹

一、

1. 2. 二、

1. 2. 三、

1.

实验目的

掌握数据库的基本知识、ODBC程序设计 掌握列表框和组合框控件 实验内容

在VC++6.0中编写程序

数据库应用程序基本设计和购物表设计 编程序 数据库

步骤:设置->控制面板->管理工具->数据源->添加->MicroSoft Access Driver(*mdb) 选择(刚建好的数据库)、数据源名(comp) 定义的变量:CCompanySet m_set;(CCompanySet自己添加的类,基类为CRecordSet) CListCtrl m_list; CString m_chax; ⑴初始化:

void CCompanyView::OnInitialUpdate() {

m_list.InsertColumn(0,\"num\"); m_list.InsertColumn(1,\"sex\"); m_list.InsertColumn(2,\"age\"); m_list.InsertColumn(3,\"wage\"); m_list.SetColumnWidth(0,100); m_list.SetColumnWidth(1,100); m_list.SetColumnWidth(2,100); m_list.SetColumnWidth(3,100); CString sql=\"select * from comp\";

m_set.Open(AFX_DB_USE_DEFAULT_TYPE,sql);//打开记录集 int i=0; while(!m_set.IsEOF()) { m_list.InsertItem(i,m_set.m_num); m_list.SetItemText(i,1,m_set.m_sex); CString str; str.Format(\"%d\ m_list.SetItemText(i,2,str); m_list.SetItemText(i,3,m_set.m_wage); m_set.MoveNext(); i++; }

m_set.Close(); }

⑵“添加”调出新对话框(IDD_DIALOG1)

创建一个新类CCompDlg,并添加头文件” #include \"CompDlg.h\"”

及成员变量(CString m_num; int m_sex; CString m_wage; int m_age;)

void CCompanyView::OnAdd() { CCompDlg dlg;

if(dlg.DoModal()==IDOK) { m_set.Open(AFX_DB_USE_DEFAULT_TYPE,NULL); m_set.AddNew(); m_set.m_num=dlg.m_num; if(dlg.m_sex==0) m_set.m_sex=\"男\"; else m_set.m_sex=\"女\"; m_set.m_age=dlg.m_age; m_set.m_wage =dlg.m_wage; m_set.Update(); m_set.Close(); } }

⑶“删除”

void CCompanyView::OnDel() { int i=m_list.GetSelectionMark(); if(i<0) this->MessageBox(\"先选取记录\"); else { CString xnum1; char xnum[10]; int x=m_list.GetItemText(i,0,xnum,10); xnum1.Format(\"%s\ CString sql=\"select * from comp where num='\"+xnum1+\"'\"; m_set.Open(AFX_DB_USE_DEFAULT_TYPE,sql); m_set.Delete(); m_set.Close(); } }

⑷“浏览”

void CCompanyView::OnScan() {

m_list.DeleteAllItems();

CString sql=\"select * from comp\";

m_set.Open(AFX_DB_USE_DEFAULT_TYPE,sql); int i=0;

while(!m_set.IsEOF())

{

m_list.InsertItem(i,m_set.m_num); m_list.SetItemText(i,1,m_set.m_sex); CString str; str.Format(\"%d\ m_list.SetItemText(i,2,str); m_list.SetItemText(i,3,m_set.m_wage); m_set.MoveNext(); i++; }

m_set.Close(); }

⑸“修改”

void CCompanyView::OnEdit() { CCompDlg dlg; int i=m_list.GetSelectionMark(); if(i<0) { this->MessageBox(\"先选取记录\"); return; }

CString xnum0,xnum1; char xnum[10];

int x=m_list.GetItemText(i,0,xnum,10); xnum1.Format(\"%s\ dlg.m_num=xnum1; xnum0=xnum1;

CString str=\"select * from comp where num='\"+xnum0+\"'\"; m_set.Open(AFX_DB_USE_DEFAULT_TYPE,str); dlg.m_num=m_set.m_num; dlg.m_age=m_set.m_age; dlg.m_wage=m_set.m_wage; if(m_set.m_sex==\"男\") dlg.m_sex=0; else dlg.m_sex=1; dlg.DoModal(); m_set.Edit(); m_set.m_num=dlg.m_num; m_set.m_age=dlg.m_age; m_set.m_wage=dlg.m_wage; if(dlg.m_sex==0) m_set.m_sex=\"男\";

else m_set.m_sex =\"女\"; m_set.Update(); m_set.Close(); }

⑹“查询”

void CCompanyView::OnQuery() {

this->UpdateData(); CString sql;

sql=\"select * from comp where num='\"+m_chax+\"'\"; m_set.Open(AFX_DB_USE_DEFAULT_TYPE,sql); m_set.Requery (); if(m_set.IsEOF()) { AfxMessageBox(\"ERROR\"); return ; }

m_list.DeleteAllItems(); int i=0;

while(!m_set.IsEOF()) {

m_list.InsertItem(i,m_set.m_num); m_list.SetItemText(i,1,m_set.m_sex); CString str; str.Format(\"%d\ m_list.SetItemText(i,2,str);

m_list.SetItemText(i,3,m_set.m_wage); m_set.MoveNext(); i++; }

m_set.Close(); }

2. 购物表设计

添加了两个结构体 struct GoodsType {

char * type; char * name; int price; }goods[]={

\"日常用品\牙刷\\"日常用品\牙膏\\"日常用品\毛巾\

\"日常用品\脸盆\\"日常用品\香皂\

\"文具\铅笔\\"文具\圆珠笔\\"文具\钢笔\\"文具\水彩笔\\"文具\签字笔\

\"球类\篮球\\"球类\足球\\"球类\羽毛球\\"球类\网球\\"球类\乒乓球\};

struct suoxuan {CString name; int shuliang; CString danjia; }choose[100]; 添加的变量: int total; int count; int j; CListBox m_isSelGoods; CListBox m_isName;

CComboBox m_cmbType; CString m_Type; CString m_Name; CString m_singleprice; CString m_totalprice; int m_count; CString m_SelGoods; ⑴ 初始化

BOOL CShoppingDlg::OnInitDialog() {

m_singleprice=\"单价\"; m_totalprice=\"共计:\"; total=0; count=0;

m_cmbType.AddString (\"日常用品\"); m_cmbType.AddString (\"文具\"); m_cmbType.AddString (\"球类\"); m_Type=\"日常用品\";

for(int i=0;i<5;i++) { m_isName.AddString(goods[i].name); }

UpdateData(0); } ⑵ 左侧列表框

void CShoppingDlg::OnSelchangeSaleList1() {

UpdateData(); for(int i=0;i<15;i++) { if(m_Name==goods[i].name ) { char x[100]; sprintf(x,\"单价:%d元\型转换成字符串型 m_singleprice=x; UpdateData(0); break; } } }

⑶ 组合框

void CShoppingDlg::OnSelchangeSaleType() {

int start;

int x=m_cmbType.GetCurSel();//组合框中选取当前商品类型 m_cmbType.GetLBText(x,m_Type);//传到列表框中 if(m_Type==\"日常用品\") { start=0; }

else if(m_Type==\"文具\") { start=5; } else start=10;

m_isName.ResetContent();//重置列表框1的内容 for(int i=start;i⑷ 确定

void CShoppingDlg::OnShop() {

UpdateData();

for(int i=0;i<15;i++) { if(m_Name==goods[i].name) {

total=total+goods[i].price*m_count; break; } }

m_isSelGoods.AddString(m_Name); char x[100];

sprintf(x,\"共计: %d元\ m_totalprice=x; UpdateData(0);

choose[j].name=m_Name; choose[j].shuliang=m_count; choose[j].danjia=m_singleprice; j++;

UpdateData(); } ⑸ 取消选择

void CShoppingDlg::OnCansel() { UpdateData();

for(int i=0;i<15;i++) { if(m_Name==goods[i].name) {

total-=goods[i].price*m_count; break; } }

int s=m_isSelGoods.GetCurSel(); m_isSelGoods.DeleteString(s); char x[100];

sprintf(x,\"共计: %d元\ m_totalprice=x; UpdateData(0); } ⑹ 取消

void CShoppingDlg::OnCancel()

{

CDialog::OnCancel(); } ⑺ 右侧列表框

void CShoppingDlg::OnSelchangeSaleList2() {

UpdateData();

m_isSelGoods.GetCurSel(); for(int i=0;i<15;i++) {

if(m_SelGoods==choose[i].name) { m_count=choose[i].shuliang; m_singleprice=choose[i].danjia; } }

UpdateData(0); }

四、 运行结果

1.数据库

2.购物表设计

五、

实验总结

通过此次课程设计的学习,对数据库的基本知识、ODBC程序设计以及列表框和组合框控件的编写有了一定程度的了解,希望对以后的学习有所帮助。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务