vc++课程设计报告.docx
《vc++课程设计报告.docx》由会员分享,可在线阅读,更多相关《vc++课程设计报告.docx(19页珍藏版)》请在冰豆网上搜索。
vc++课程设计报告
《VisualC++程序设计》课程设计报告
班级:
网络Z091学号:
094553姓名:
赵迷叶
一、设计题目
1、创建数据库应用程序
后台数据库可以连接ACCESS,SQLServer;
创建单文档的应用程序,可以选择数据库支持,View类的基类选择RecordView。
使用系统的Set类;不选择数据库支持,View类的基类选择FormView,自己创建Set类(基类选择RecordSet),View类的基类选择FormView。
功能要求:
查询、浏览、编辑、添加、删除。
2、编制购物程序
包含3类商品,能进行选择,计算合计。
二、课程设计报告内容要求
1、系统设计
系统功能模块图。
对各个模块的功能作详细的说明。
2、系统实现
(1)各模块主要代码分析(可附上所指代码)
(2)开发过程中遇到的问题及解决的办法
设计一:
创建教师管理信息数据库应用程序
一、课程设计代码
(1)连接数据代码:
voidCTeacherView:
:
OnInitialUpdate()
{
CFormView:
:
OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();
m_list.InsertColumn(0,"教师编号");
m_list.InsertColumn(1,"性别");
m_list.InsertColumn(2,"年龄");
m_list.InsertColumn(3,"工资");
m_list.SetColumnWidth(0,80);
m_list.SetColumnWidth(1,80);
m_list.SetColumnWidth(2,80);
m_list.SetColumnWidth(3,80);
CStringsql="select*fromteacher";
m_set.Open(AFX_DB_USE_DEFAULT_TYPE,sql);
inti=0;
while(!
m_set.IsEOF())
{
m_list.InsertItem(i,m_set.m_column1);
m_list.SetItemText(i,1,m_set.m_column2);
CStringstr;
str.Format("%s",m_set.m_column3);
m_list.SetItemText(i,2,str);
m_list.SetItemText(i,3,m_set.m_column4);
m_set.MoveNext();
i++;
}
m_set.Close();
}
(2)查询代码:
voidCTeacherView:
:
OnQuery()
{
UpdateData(TRUE);
if(m_chx=="")
this->MessageBox("请输入要查询的教师编号!
");
else
{
CStringsql="select*fromteacherwhere教师编号='"+m_chx+"'";
m_set.Open(AFX_DB_USE_DEFAULT_TYPE,sql);
m_list.DeleteAllItems();
inti=0;
while(!
m_set.IsEOF())
{
m_list.InsertItem(i,m_set.m_column1);
m_list.SetItemText(i,1,m_set.m_column2);
CStringstr;
str.Format("%s",m_set.m_column3);
m_list.SetItemText(i,2,str);
m_list.SetItemText(i,3,m_set.m_column4);
i++;
m_set.MoveNext();
}
m_set.Close();
m_list.SetRedraw
(1);
}
if(m_chx!
=m_set.m_column1)
this->MessageBox("您输入的教师编号不存在!
");
//TODO:
Addyourcontrolnotificationhandlercodehere
}
(3)浏览代码:
voidCTeacherView:
:
OnBrows()
{
m_list.DeleteAllItems();
CStringsql="select*fromteacher";
m_set.Open(AFX_DB_USE_DEFAULT_TYPE,sql);
inti=0;
while(!
m_set.IsEOF())
{
m_list.InsertItem(i,m_set.m_column1);
m_list.SetItemText(i,1,m_set.m_column2);
CStringstr;
str.Format("%s",m_set.m_column3);
m_list.SetItemText(i,2,str);
m_list.SetItemText(i,3,m_set.m_column4);
i++;
m_set.MoveNext();
}
m_set.Close();
//TODO:
Addyourcontrolnotificationhandlercodehere
}
(4)编辑代码:
voidCTeacherView:
:
OnEdit()
{
inti=m_list.GetSelectionMark();
if(i<0)
{
this->MessageBox("先选取记录");
return;
}
CStringsql;
sql.Format("select*fromteacherwhere教师编号='%s'",m_list.GetItemText(i,0));
m_set.Open(AFX_DB_USE_DEFAULT_TYPE,sql);
CTeacherdlgdlg;
dlg.m_num=m_set.m_column1;
dlg.m_age=m_set.m_column3;
if(m_set.m_column2=="男")
dlg.m_sex=0;
else
dlg.m_sex=1;
dlg.m_wage=m_set.m_column4;
dlg.DoModal();
m_set.Edit();
m_set.m_column1=dlg.m_num;
m_set.m_column3=dlg.m_age;
if(dlg.m_sex==0)
m_set.m_column2="男";
else
m_set.m_column2="女";
m_set.m_column4=dlg.m_wage;
m_set.Update();
m_set.Close();
//TODO:
Addyourcontrolnotificationhandlercodehere
}
(5)添加代码:
voidCTeacherView:
:
OnAdd()
{
CTeacherdlgdlg;
if(dlg.DoModal()==IDOK)
{
m_set.Open(AFX_DB_USE_DEFAULT_TYPE,NULL);
m_set.AddNew();
m_set.m_column1=dlg.m_num;
if(dlg.m_sex==0)
m_set.m_column2="男";
elsem_set.m_column2="女";
m_set.m_column3=dlg.m_age;
m_set.m_column4=dlg.m_wage;
m_set.Update();
m_set.Close();
}
//TODO:
Addyourcontrolnotificationhandlercodehere
}
(6)删除代码:
voidCTeacherView:
:
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*fromteacherwhere教师编号='"+xnum1+"'";
m_set.Open(AFX_DB_USE_DEFAULT_TYPE,sql);
m_set.Delete();
m_set.Close();
}
//TODO:
Addyourcontrolnotificationhandlercodehere
}
二、结果截图:
设计二:
购物程序设计
一、程序设计代码:
(1)内容记录信息代码:
structcommodity
{char*strType;
char*strName;
intnPrice;
}choose[]={
"餐具","刀叉",2,
"餐具","勺子",3,
"餐具","铁锅",5,
"餐具","盘子",2,
"书籍","漫画书",1,
"书籍","小说",2,
"书籍","散文",12,
"书籍","文学书",6,
"球类","篮球",22,
"球类","足球",25,
"球类","羽毛球",62,
"球类","网球",82,
};
(2)对话框添加数据代码:
BOOLCMyDlg:
:
OnInitDialog()
{
//CDialog:
:
OnInitDialog();
CDialog:
:
OnInitDialog();
m_danjia="单价:
";
m_gongji="共计:
";
total=0;
m_choosek.AddString("餐具");
m_choosek.AddString("书籍");
m_choosek.AddString("球类");
m_choose="餐具";
for(inti=0;i<4;i++)
{m_listk1.AddString(choose[i].strName);
}
UpdateData(0);
(3)点击确定代码:
voidCMyDlg:
:
OnOK()
{
UpdateData();
for(inti=0;i<12;i++)
{if(m_list1==choose[i].strName)
{total+=choose[i].nPrice;break;
}
}
m_listk2.AddString(m_list1);
chartbuf[80];
sprintf(tbuf,"共计:
%d元",total);
m_gongji=tbuf;
UpdateData(0);
}
(4)点击取消代码:
voidCMyDlg:
:
OnCancel()
{
exit
(1);
//TODO:
Addextracleanuphere
CDialog:
:
OnCancel();
}
(5)物品类型选择代码:
voidCMyDlg:
:
OnSelchangeChooseType()
{
intnStart;
intnIndex=m_choosek.GetCurSel();
m_choosek.GetLBText(nIndex,m_choose);
if(m_choose=="餐具")
{nStart=0;}
elseif(m_choose=="书籍")
{nStart=4;}
else
nStart=8;
m_listk1.ResetContent();
for(inti=nStart;i{m_listk1.AddString(choose[i].strName);
}
//TODO:
Addyourcontrolnotificationhandlercodehere
}
(6)列表选择代码:
voidCMyDlg:
:
OnSelchangeList1()
{
UpdateData();
for(inti=0;i<12;i++)
{if(m_list1==choose[i].strName)
{chartbuf[80];
sprintf(tbuf,"单价:
%d元",choose[i].nPrice);
m_danjia=tbuf;
UpdateData(0);
break;
}
}
//TODO:
Addyourcontrolnotificationhandlercodehere
}
二、结果截图:
三、设计心得:
通过对教师管理信息系统以及购物的设计,学到了很多VC++的知识,懂得了连接数据库得到数据信息,体现了学科间的紧密联系,让我受益匪浅,提高了我们的设计能力,让我受益匪浅。