VC实验报告.docx
- 文档编号:18394337
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:15
- 大小:128.95KB
VC实验报告.docx
《VC实验报告.docx》由会员分享,可在线阅读,更多相关《VC实验报告.docx(15页珍藏版)》请在冰点文库上搜索。
VC实验报告
实验报告
班级:
网络Z091
学号:
094552
姓名:
李丹
一、实验目的
1.掌握数据库的基本知识、ODBC程序设计
2.掌握列表框和组合框控件
二、实验内容
1.在VC++6.0中编写程序
2.数据库应用程序基本设计和购物表设计
三、编程序
1.数据库
步骤:
设置->控制面板->管理工具->数据源->添加->MicroSoftAccessDriver(*mdb)
选择(刚建好的数据库)、数据源名(comp)
定义的变量:
CCompanySetm_set;(CCompanySet自己添加的类,基类为CRecordSet)
CListCtrlm_list;
CStringm_chax;
⑴初始化:
voidCCompanyView:
:
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);
CStringsql="select*fromcomp";
m_set.Open(AFX_DB_USE_DEFAULT_TYPE,sql);//打开记录集
inti=0;
while(!
m_set.IsEOF())
{
m_list.InsertItem(i,m_set.m_num);
m_list.SetItemText(i,1,m_set.m_sex);
CStringstr;
str.Format("%d",m_set.m_age);
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"”
及成员变量(CStringm_num;intm_sex;CStringm_wage;intm_age;)
voidCCompanyView:
:
OnAdd()
{
CCompDlgdlg;
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();
}
}
⑶“删除”
voidCCompanyView:
:
OnDel()
{
inti=m_list.GetSelectionMark();
if(i<0)
this->MessageBox("先选取记录");
else
{
CStringxnum1;
charxnum[10];
intx=m_list.GetItemText(i,0,xnum,10);
xnum1.Format("%s",xnum);
CStringsql="select*fromcompwherenum='"+xnum1+"'";
m_set.Open(AFX_DB_USE_DEFAULT_TYPE,sql);
m_set.Delete();
m_set.Close();
}
}
⑷“浏览”
voidCCompanyView:
:
OnScan()
{
m_list.DeleteAllItems();
CStringsql="select*fromcomp";
m_set.Open(AFX_DB_USE_DEFAULT_TYPE,sql);
inti=0;
while(!
m_set.IsEOF())
{
m_list.InsertItem(i,m_set.m_num);
m_list.SetItemText(i,1,m_set.m_sex);
CStringstr;
str.Format("%d",m_set.m_age);
m_list.SetItemText(i,2,str);
m_list.SetItemText(i,3,m_set.m_wage);
m_set.MoveNext();
i++;
}
m_set.Close();
}
⑸“修改”
voidCCompanyView:
:
OnEdit()
{
CCompDlgdlg;
inti=m_list.GetSelectionMark();
if(i<0)
{
this->MessageBox("先选取记录");
return;
}
CStringxnum0,xnum1;
charxnum[10];
intx=m_list.GetItemText(i,0,xnum,10);
xnum1.Format("%s",xnum);
dlg.m_num=xnum1;
xnum0=xnum1;
CStringstr="select*fromcompwherenum='"+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();
}
⑹“查询”
voidCCompanyView:
:
OnQuery()
{
this->UpdateData();
CStringsql;
sql="select*fromcompwherenum='"+m_chax+"'";
m_set.Open(AFX_DB_USE_DEFAULT_TYPE,sql);
m_set.Requery();
if(m_set.IsEOF())
{
AfxMessageBox("ERROR");
return;
}
m_list.DeleteAllItems();
inti=0;
while(!
m_set.IsEOF())
{
m_list.InsertItem(i,m_set.m_num);
m_list.SetItemText(i,1,m_set.m_sex);
CStringstr;
str.Format("%d",m_set.m_age);
m_list.SetItemText(i,2,str);
m_list.SetItemText(i,3,m_set.m_wage);
m_set.MoveNext();
i++;
}
m_set.Close();
}
2.购物表设计
添加了两个结构体
structGoodsType
{
char*type;
char*name;
intprice;
}goods[]={
"日常用品","牙刷",2,
"日常用品","牙膏",3,
"日常用品","毛巾",5,
"日常用品","脸盆",2,
"日常用品","香皂",4,
"文具","铅笔",1,
"文具","圆珠笔",2,
"文具","钢笔",12,
"文具","水彩笔",6,
"文具","签字笔",2,
"球类","篮球",22,
"球类","足球",25,
"球类","羽毛球",62,
"球类","网球",82,
"球类","乒乓球",50
};
structsuoxuan
{CStringname;
intshuliang;
CStringdanjia;
}choose[100];
添加的变量:
inttotal;
intcount;
intj;
CListBoxm_isSelGoods;
CListBoxm_isName;
CComboBoxm_cmbType;
CStringm_Type;
CStringm_Name;
CStringm_singleprice;
CStringm_totalprice;
intm_count;
CStringm_SelGoods;
1初始化
BOOLCShoppingDlg:
:
OnInitDialog()
{
m_singleprice="单价";
m_totalprice="共计:
";
total=0;
count=0;
m_cmbType.AddString("日常用品");
m_cmbType.AddString("文具");
m_cmbType.AddString("球类");
m_Type="日常用品";
for(inti=0;i<5;i++)
{
m_isName.AddString(goods[i].name);
}
UpdateData(0);
}
2左侧列表框
voidCShoppingDlg:
:
OnSelchangeSaleList1()
{
UpdateData();
for(inti=0;i<15;i++)
{
if(m_Name==goods[i].name)
{
charx[100];
sprintf(x,"单价:
%d元",goods[i].price);//int型转换成字符串型
m_singleprice=x;
UpdateData(0);
break;
}
}
}
3组合框
voidCShoppingDlg:
:
OnSelchangeSaleType()
{
intstart;
intx=m_cmbType.GetCurSel();//组合框中选取当前商品类型
m_cmbType.GetLBText(x,m_Type);//传到列表框中
if(m_Type=="日常用品")
{
start=0;
}
elseif(m_Type=="文具")
{
start=5;
}
else
start=10;
m_isName.ResetContent();//重置列表框1的内容
for(inti=start;i { m_isName.AddString(goods[i].name);//追加商品名称 } } 4确定 voidCShoppingDlg: : OnShop() { UpdateData(); for(inti=0;i<15;i++) { if(m_Name==goods[i].name) { total=total+goods[i].price*m_count; break; } } m_isSelGoods.AddString(m_Name); charx[100]; sprintf(x,"共计: %d元",total); m_totalprice=x; UpdateData(0); choose[j].name=m_Name; choose[j].shuliang=m_count; choose[j].danjia=m_singleprice; j++; UpdateData(); } 5取消选择 voidCShoppingDlg: : OnCansel() { UpdateData(); for(inti=0;i<15;i++) { if(m_Name==goods[i].name) { total-=goods[i].price*m_count; break; } } ints=m_isSelGoods.GetCurSel(); m_isSelGoods.DeleteString(s); charx[100]; sprintf(x,"共计: %d元",total); m_totalprice=x; UpdateData(0); } 6取消 voidCShoppingDlg: : OnCancel() { CDialog: : OnCancel(); } 7右侧列表框 voidCShoppingDlg: : OnSelchangeSaleList2() { UpdateData(); m_isSelGoods.GetCurSel(); for(inti=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程序设计以及列表框和组合框控件的编写有了一定程度的了解,希望对以后的学习有所帮助。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VC 实验 报告