当前位置:文档之家› VC++课程设计报告详细

VC++课程设计报告详细

中北大学

VC + + 实验周

课程设计说明书

2011 年 12月5日

1.设计要求

1)创建单文档,以姓名+学号命名;

2)在主菜单增加菜单项:姓名;

3)点击菜单“姓名”产生对话框,对话框标题为学号;

4)对话框中要有一个List Control控件用于显示,要有三个Edit Control

控件用于输入学号、性别、班级,有三个Button控件实现添加、删除、

保存功能,保存在一个txt格式的文件中;

5)建立以姓名的拼音命名的Access数据库;

6)在主菜单增加菜单项:学号;

7)点击菜单“学号”将数据库中所有信息显示到View中;

8)文档。

2.2.内容设计

2.1运行环境

编译工具:Microsoft Visual Studio 2010;

数据库:Microsoft Access2003

2.2 功能设计

建立过程:

新建——项目——MFC应用程序——单文档——数据库支持(ODBC数据源)——完成;

实现功能:

功能一:

1,功能描述

将输入进Edit Control的姓名、性别、学号等信息通过按钮【添加】、【删除】、【保存】进行实现。并将数据保存到本地的Data.txt文档中。

2,详细建立步骤

在菜单栏添加”姓名”菜单,单击”姓名”弹出对话框,对话框标题是”学号:0806054213”。在资源视图中Dialog中添加新的Dialog资源,对新的Dialog添加类showitem;在窗体上增加一个ListControl控件,其view属性改为Report;增加三个Static Text控件分别为姓名、性别、班级;增加三个Edit Control控件用于输入;增加三个Button控件实现相应功能:添加,删除和保存。对ListControl添加变量t_list,对三个Edit Control分别添加变量t_name、t_sex、t_class;

功能二:

1,功能描述

显示数据库中的信息到VIEW中。

2、详细建立步骤

在菜单栏添加菜单项“0806054213”,单击“0806054213”,弹出对话框,对话框标题是“显示数据”。通过代码将数据库的信息显示到VIEW中。

2.3 界面设计及相关代码

图1设计页面

图2添加信息

图3 添加信息

图4添加信息

图5添加数据成功

实现代码:

void showitem::OnBnClickedAdd()

{

// TODO: 在此添加控件通知处理程序代码

UpdateData(TRUE);

if (t_Name.IsEmpty()||t_Sex.IsEmpty()||t_Class.IsEmpty())

{

MessageBox(_T("信息不完整,请填写完整后再添加条目^_^"),_T("提示"),MB_OK|MB_ICONWARNING);

return;

}

int n=t_List.InsertItem(t_List.GetItemCount(),t_Name);

t_List.SetItemText(n,1,t_Sex);

t_List.SetItemText(n,2,t_Class);

t_Name="";

t_Sex="";

t_Class="";

UpdateData(FALSE);

}

图6删除信息

图7删除信息

实现代码:

void showitem::OnBnClickedDelete()

{

// TODO: 在此添加控件通知处理程序代码

if(t_Index==-1)

{

MessageBox(_T("请选择一项再删除!"),_T("提示"),MB_OK|MB_ICONINFORMATION);

return;

}

t_List.DeleteItem(t_Index);

t_Index=-1;

}

图8保存数据

图9保存文档至TXT文档

实现代码:

void showitem::OnBnClickedSave()

{

// TODO: 在此添加控件通知处理程序代码

CFile file;

if (file.Open("Data.txt",CFile::modeCreate|CFile::modeWrite))

{

CString strText;

strText = "学号\t\t性别\t\t班级\r\n";

file.Write(strText,strText.GetLength());

for(int i=0;i

{

strText=t_List.GetItemText(i,0) + "\t\t"+t_List.GetItemText(i,1)+"\t\t"+t_List.GetItemText(i,2) +"\r\n";

file.Write(strText,strText.GetLength());

}

file.Close();

MessageBox(_T("数据保存成功"),_T("提示"),MB_OK|MB_ICONINFORMATION);

}

else

{

MessageBox(_T("文件打开失败"),_T("提示"),MB_OK|MB_ICONERROR);

}

}

图10显示数据

图11显示数据实现代码:

void CjiayuliangView::OnDraw(CDC* pDC)

{

// TODO: 在此添加专用代码和/或调用基类;

CjiayuliangDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

if (!isNO)

{

CPoint pText(10,0);

if(m_pSet->IsBOF())

return;

m_pSet->MoveFirst();

pDC->TextOut(pText.x+20,pText.y,_T("学号"));

pDC->TextOut(pText.x+98,pText.y,_T("性别"));

pDC->TextOut(pText.x+190,pText.y,_T("姓名"));

pText.y += 30;

while (!m_pSet->IsEOF())

{

pDC->TextOut(pText.x,pText.y,CString(m_pSet->column1));

pDC->TextOut(pText.x+100,pText.y,CString(m_pSet->column2));

pDC->TextOut(pText.x+180,pText.y,CString(m_pSet->column3));

m_pSet->MoveNext();

pText.y=pText.y+30;

}

}

}

void CjiayuliangView::On080605421332775()

{

// TODO: 在此添加命令处理程序代码

if (!isNO)

{

isNO=TRUE;

}

else

{

isNO=FALSE;

}

Invalidate();

}

3. 参考资料

[1]杜茂康、李昌兵、曹慧英、王永. Visual C++ .电子工业出版社.2007

4. 课程心得

在VC++这学期开课之前,我对C++语言其实没有什么了解,因为以前学过C、C#所以在做C++课程设计的时候,还是有一定帮助的。虽然以前做C#课程设计的时候也是用的Visual studio 2010,但是本次VC++主要做的是运用MFC框架来做,这是我以前没有接触过的。在上这门课之前我就通过网络信息和下载一些关于C++的相关知识。虽然网上所讲的信息很多,但却讲的非常不详细。但是听了秦老师讲的课之后,发现以前在视频里面不解的问题都迎刃而解了。秦老师开学就通过自身的实践来授课,我觉得这是非常好的,不仅可以让我们了解到了Visual studio的使用还掌握相应的代码实现。

在本次VC++课程设计之前还参加了秦老师在周六开设C++补充学习,使我受益菲浅,虽然秦老师只用了大约一大节的的时间来讲授C++,但是这一大节把编程中最重要的指针、数据、相关函数讲的条理清晰。所以在做本次课程设计的时候,所用的时间并不很多而且运用的相关函数都能够很轻易的找出来。

这学期的VC++课中,记忆最深的就是秦老师第一次开课的时候出的一道题,让1到100个数相加,当时我写的是一个for循环,觉得出的题太简单了,可是当秦老师把他的答案说出来时,我才豁然开朗。在大学这4年里,我才感悟到编程最重要的并不是单纯的编程而是要注重编程的思想。

相关主题
文本预览
相关文档 最新文档