《面向对象程序设计》课程设计1050303061—吕思超

更新时间:2024-04-28 19:13:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

课程名称:

课程设计题目:

面向对象程序设计 学生信息管理系统

姓 名:系:专 业:年 级:学 号:指导教师:职 称:

计算机 计算机科学与技术

10级 1050303061 王李进

副教授

2011年12月14日

1

课程设计结果评定

序号 1 2 3 4 5 6 评 定 项 目 选题合理、目的明确 设计方案正确,具有可行性、创新性 程序运行结果正确 态度认真、学习刻苦、遵守纪律 设计报告的规范化、参考文献充分(不少于5篇) 答辩:思路清晰,语言表达准确,概念清楚、正确 最后得分 指导老师(签名) 日期 分值 10 20 20 15 10 25 得分 年 月 日

2

目 录

1.课程设计的目的………………………………………………………………4 2.课程设计的要求………………………………………………………………4 3.课程设计报告内容……………………………………………………………4 3.1 需求分析…………………………………………………………………4 3.2 设计说明…………………………………………………………………5 4.设计结果及体会………………………………………………………………31 5.5.参考文献……………………………………………………………………31

3

学生信息管理系统

1.课程设计的目的

1. 全面系统的学习面向对象程序设计的基本概念、基本语法和编程方法。 2. 正确理解掌握C++面向对象程序设计的基本特性:类、对象、继承与派生、多态、虚函数、模板、流类库等。

3. 遵循软件开发过程的各个环节进行系统分析、设计、实现、集成、测试,并相应给出软件规格说明书等制品。

4. 了解当前常用的软件开发工具(Visual C++),要求熟练掌握基于MFC的程序设计,培养解决实际问题的能力。

2.课程设计的要求

1. 要求利用面向对象程序设计(Visual C++)课程上学习的基础编程技巧来完成程序的设计;

2. 在设计的过程中,要建立清晰的循环、函数和类并正确使用相应的数据类型;在系统设计中要分析类与类之间的关系,将查找和排序的算法独立出来形成为单独的函数。正确使用继承、重载、虚函数、模板和多态等高级技巧。

3. 所有数据用文件存储,并通过流类与程序交换;

4. 用户界面用基于MFC的设计,最后完成一个可运行的程序;

5. 三人一个小组,选择一个题目,要求发挥团队合作精神,分工协助; 6. 设计完成应提交的制品

? 课程设计报告说明书(打印文档) ? 源程序、可执行程序

3.课程设计报告内容

3.1 需求分析 ① 功能分析:

(1)由于使用人群众多,因此要求有较好的管理权限,保证用户信息安全; (2)由于要求方便操作人员的工作,要求要有良好的人性界面; (3)原始数据修改简单方便;

4

(4)删除数据容易简单,要求在相应权限下; (5)方便的数据查询;

3.2 设计说明

①主要的C++课程设计设计说明:

该学生信息管理系统基于MFC构建,适用于window操作系统。在可视化的窗口下进行的,方便操作。该系统主要用于管理学生信息,通过对学生信息的分类,来达到易查询,好管理的目的。

②程序的主要流程图:

③ 程序的主要模块,要求对主要流程图中出现的模块进行说明

1) 登入窗口:

用于确认用户信息,保证系统中资料安全。同时确保系统稳定。

5

2) 修改用户密码:

确保密码的安全性,容易记忆。

3) 添加学生信息:

通过添加信息,容易分类管理。

4)修改(删除)学生信息

修改和删除信息,有利于对信息的管理和保管,为后面的查询奠定基础。

6

5)学生信息查询: 方便信息的查询,和调用。

7

④ 程序的主要函数及其代码和说明

该软件主要包含了14大类和一个CaboutDlg类

1)登录窗口CloginDlg类:

代码如下:

#include \#include \#include \#include \#ifdef _DEBUG

#define new DEBUG_NEW #undef THIS_FILE

static char THIS_FILE[] = __FILE__; #endif

///////////////////////////////////////////////////////////////// // CLoginDlg dialog

CLoginDlg::CLoginDlg(CWnd* pParent /*=NULL*/)

8

{ }

: CDialog(CLoginDlg::IDD, pParent)

//{{AFX_DATA_INIT(CLoginDlg) m_Username = _T(\m_PWD = _T(\//}}AFX_DATA_INIT

void CLoginDlg::DoDataExchange(CDataExchange* pDX) { }

BEGIN_MESSAGE_MAP(CLoginDlg, CDialog)

//{{AFX_MSG_MAP(CLoginDlg)

ON_BN_CLICKED(IDC_BUTTON_Login, OnBUTTONLogin) ON_BN_CLICKED(IDC_BUTTON_Cancle, OnBUTTONCancle) //}}AFX_MSG_MAP

CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CLoginDlg)

DDX_Text(pDX, IDC_EDIT_UserName, m_Username); DDX_Text(pDX, IDC_EDIT_PWD, m_PWD); //}}AFX_DATA_MAP

END_MESSAGE_MAP()

//////////////////////////////////////////////////////////////////// // CLoginDlg message handlers void CLoginDlg::OnBUTTONLogin() {

// TODO: Add your control notification handler code here UpdateData(true); CLoginDlgUserDoc doc;

if (doc.ValidUserNamePwd(m_Username,m_PWD)) {

9

}

CDialog::OnOK();

} else { }

MessageBox(\用户名或密码错误,请重新输入\提示\

void CLoginDlg::OnBUTTONCancle() { }

2)做一个修改密码窗口CModifyPWDDlg类

代码如下:// ModifyPWDDlg.cpp : implementation file //

#include \#include \#include \#include \#ifdef _DEBUG

#define new DEBUG_NEW #undef THIS_FILE

static char THIS_FILE[] = __FILE__; #endif

///////////////////////////////////////////////////////////////////// // CModifyPWDDlg dialog

CModifyPWDDlg::CModifyPWDDlg(CWnd* pParent /*=NULL*/) {

: CDialog(CModifyPWDDlg::IDD, pParent)

// TODO: Add your control notification handler code here CDialog::OnCancel();

10

}

//{{AFX_DATA_INIT(CModifyPWDDlg) m_OldPwd = _T(\m_NewPwd = _T(\m_AgainPwd = _T(\//}}AFX_DATA_INIT

void CModifyPWDDlg::DoDataExchange(CDataExchange* pDX) { }

BEGIN_MESSAGE_MAP(CModifyPWDDlg, CDialog)

//{{AFX_MSG_MAP(CModifyPWDDlg)

ON_BN_CLICKED(IDC_BUTTON_Cancel, OnBUTTONCancel) ON_BN_CLICKED(IDC_BUTTON_OK, OnButtonOk) //}}AFX_MSG_MAP

CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CModifyPWDDlg)

DDX_Text(pDX, IDC_EDIT_OldPwd, m_OldPwd); DDX_Text(pDX, IDC_EDIT_NewPwd, m_NewPwd); DDX_Text(pDX, IDC_EDIT_AgainPwd, m_AgainPwd); //}}AFX_DATA_MAP

END_MESSAGE_MAP()

//////////////////////////////////////////////////////////////////// // CModifyPWDDlg message handlers

void CModifyPWDDlg::OnBUTTONCancel() {

// TODO: Add your control notification handler code here CDialog::OnCancel();

11

}

void CModifyPWDDlg::OnButtonOk() { }

3)做一个添加学生信息窗口类CaddStudentDlg类

代码如下:// AddStudentDlg.cpp : implementation file //

#include \#include \#include \#include \

// TODO: Add your control notification handler code here UpdateData(true);

if (m_NewPwd!=m_AgainPwd) { } //

CLoginDlgUserDoc doc;

if (doc.ModfiyPwd(m_NewPwd)) { } else { }

MessageBox(\密码修改失败,请联系管理员\提示\MessageBox(\密码修改成功\提示\CDialog::OnOK();

MessageBox(\新密码与确认密码不一致\错误\return;

12

#include \#ifdef _DEBUG

#define new DEBUG_NEW #undef THIS_FILE

static char THIS_FILE[] = __FILE__; #endif

//////////////////////////////////////////////////////////////////// // CAddStudentDlg dialog

CAddStudentDlg::CAddStudentDlg(CWnd* pParent /*=NULL*/) { }

void CAddStudentDlg::DoDataExchange(CDataExchange* pDX)

//{{AFX_DATA_INIT(CAddStudentDlg) m_No = _T(\m_Name = _T(\m_Sex = _T(\m_Age = 0;

m_Native = _T(\m_Tel = _T(\m_QQ = _T(\

m_HomeAddress = _T(\m_Email = _T(\//}}AFX_DATA_INIT

: CDialog(CAddStudentDlg::IDD, pParent)

13

{ }

BEGIN_MESSAGE_MAP(CAddStudentDlg, CDialog)

//{{AFX_MSG_MAP(CAddStudentDlg)

ON_BN_CLICKED(IDC_BUTTON_Cancle, OnBUTTONCancle) ON_BN_CLICKED(IDC_BUTTON_OK, OnButtonOk) //}}AFX_MSG_MAP

CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CAddStudentDlg) DDX_Text(pDX, IDC_EDIT_No, m_No); DDX_Text(pDX, IDC_EDIT_Name, m_Name); DDX_Text(pDX, IDC_EDIT_Sex, m_Sex); DDX_Text(pDX, IDC_EDIT_Age, m_Age); DDX_Text(pDX, IDC_EDIT_Native, m_Native); DDX_Text(pDX, IDC_EDIT_Tel, m_Tel); DDX_Text(pDX, IDC_EDIT_qq, m_QQ);

DDX_Text(pDX, IDC_EDIT_HomeAddress, m_HomeAddress); DDX_Text(pDX, IDC_EDIT_Email, m_Email); //}}AFX_DATA_MAP

END_MESSAGE_MAP()

///////////////////////////////////////////////////////////////////// // CAddStudentDlg message handlers

void CAddStudentDlg::OnBUTTONCancle() {

// TODO: Add your control notification handler code here

14

}

CDialog::OnCancel();

void CAddStudentDlg::OnButtonOk() { }

4)做一个修改学生信息窗口类CEditStudentDlg类

代码:// EditStudentDlg.cpp : implementation file //

// TODO: Add your control notification handler code here UpdateData(TRUE); CStudent tmpStu;

tmpStu.SetStuName(m_Name); tmpStu.SetStuNo(m_No); tmpStu.SetSex(m_Sex); tmpStu.SetAge(m_Age);

tmpStu.SetHomeAddress(m_HomeAddress); tmpStu.SetNative(m_Native); tmpStu.SetTelephone(m_Tel); tmpStu.SetQQ(m_QQ); tmpStu.SetEmail(m_Email); CStudentDoc stuDoc; if (stuDoc.Add(tmpStu)) { }

MessageBox(\成功添加学生信息!\CDialog::OnOK();

15

#include \#include \#include \

#include \#include \#ifdef _DEBUG

#define new DEBUG_NEW #undef THIS_FILE

static char THIS_FILE[] = __FILE__; #endif

///////////////////////////////////////////////////////////////////// // CEditStudentDlg dialog

CEditStudentDlg::CEditStudentDlg(CWnd* pParent /*=NULL*/) {

//{{AFX_DATA_INIT(CEditStudentDlg) m_Email = _T(\m_HomeAddress = _T(\m_Native = _T(\m_QQ = _T(\m_Tel = _T(\m_Name = _T(\m_No = 0; m_Age = 0; //}}AFX_DATA_INIT

: CDialog(CEditStudentDlg::IDD, pParent)

16

}

void CEditStudentDlg::DoDataExchange(CDataExchange* pDX) { }

BEGIN_MESSAGE_MAP(CEditStudentDlg, CDialog)

//{{AFX_MSG_MAP(CEditStudentDlg)

ON_COMMAND(ID_MANAGE_EDIT, OnManageEdit)

ON_BN_CLICKED(IDC_BUTTON_Cancle, OnBUTTONCancle) ON_CBN_SELCHANGE(IDC_COMBO_No, OnSelchangeCOMBONo) ON_BN_CLICKED(IDC_BUTTON_EDIT, OnButtonEdit) //}}AFX_MSG_MAP

CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CEditStudentDlg) DDX_Control(pDX, IDC_COMBO_No, m_strNo); DDX_Text(pDX, IDC_EDIT_Edit_Email, m_Email);

DDX_Text(pDX, IDC_EDIT_Edit_HomeAddress, m_HomeAddress); DDX_Text(pDX, IDC_EDIT_Edit_Native, m_Native); DDX_Text(pDX, IDC_EDIT_Edit_QQ, m_QQ); DDX_Text(pDX, IDC_EDIT_Edit_Tel, m_Tel); DDX_Text(pDX, IDC_EDIT_Name_Edit, m_Name); DDX_Text(pDX, IDC_EDIT_No_Edit, m_No); DDX_Text(pDX, IDC_EDIT_Edit_Age, m_Age); //}}AFX_DATA_MAP

END_MESSAGE_MAP()

17

//////////////////////////////////////////////////////////////////// // CEditStudentDlg message handlers

void CEditStudentDlg::OnManageEdit() { }

void CEditStudentDlg::OnBUTTONCancle() { }

void CEditStudentDlg::OnSelchangeCOMBONo() {

// TODO: Add your control notification handler code here int vSize=(int)m_v.size(); UpdateData(true); for(int i=0;i

m_Name=m_v[i]->GetStuName();

if (m_No==m_v[i]->GetStuNo()) { }

break;

// TODO: Add your control notification handler code here CDialog::OnCancel();

// TODO: Add your command handler code here CEditStudentDlg dlgEdit; dlgEdit.DoModal();

18

}

m_Sex=m_v[i]->GetSex(); m_Native=m_v[i]->GetNative(); m_Age=m_v[i]->GetAge();

m_HomeAddress=m_v[i]->GetHomeAddress(); m_Tel=m_v[i]->GetTelephone(); m_QQ=m_v[i]->GetQQ(); m_Email=m_v[i]->GetEmail(); UpdateData(false);

BOOL CEditStudentDlg::OnInitDialog() { }

return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE CDialog::OnInitDialog();

// TODO: Add extra initialization here CStudentDoc doc;

m_v=doc.GetStudentList(); int vSize=(int)m_v.size(); for(int i=0;i

UpdateData(false);

m_No==m_v[i]->GetStuNo();

19

void CEditStudentDlg::OnButtonEdit() { }

5)做一个删除学生信息窗口CdelStudentDlg类

代码:// DelStudentDlg.cpp : implementation file //

// TODO: Add your control notification handler code here UpdateData(TRUE); CStudent tmpStu;

tmpStu.SetStuName(m_Name); tmpStu.SetStuNo(m_No); tmpStu.SetSex(m_Sex); tmpStu.SetAge(m_Age);

tmpStu.SetHomeAddress(m_HomeAddress); tmpStu.SetNative(m_Native); tmpStu.SetTelephone(m_Tel); tmpStu.SetQQ(m_QQ); tmpStu.SetEmail(m_Email); CStudentDoc stuDoc; if (stuDoc.Edit(tmpStu)) { } else {

MessageBox(\修改学生信息失败!\MessageBox(\成功修改学生信息!\CDialog::OnOK();

}

20

#include \#include \#include \#include \#include \#ifdef _DEBUG

#define new DEBUG_NEW #undef THIS_FILE

static char THIS_FILE[] = __FILE__; #endif

//////////////////////////////////////////////////////////////////// // CDelStudentDlg dialog

CDelStudentDlg::CDelStudentDlg(CWnd* pParent /*=NULL*/) {

//{{AFX_DATA_INIT(CDelStudentDlg) m_Name = _T(\m_Sex = _T(\m_Native = _T(\m_Tel = _T(\m_QQ = _T(\m_Email = _T(\m_HomeAddress = _T(\m_Age = 0; //}}AFX_DATA_INIT

: CDialog(CDelStudentDlg::IDD, pParent)

21

}

void CDelStudentDlg::DoDataExchange(CDataExchange* pDX) { }

BEGIN_MESSAGE_MAP(CDelStudentDlg, CDialog)

//{{AFX_MSG_MAP(CDelStudentDlg) ON_COMMAND(ID_MANAGE_DEL, OnManageDel)

ON_BN_CLICKED(IDC_BUTTON_Cancle, OnBUTTONCancle)

ON_CBN_SELCHANGE(IDC_COMBO_DEL_No, OnSelchangeCOMBODELNo) ON_BN_CLICKED(IDC_BUTTON_DEL, OnButtonDel) //}}AFX_MSG_MAP

CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CDelStudentDlg)

DDX_Control(pDX, IDC_COMBO_DEL_No, m_No); DDX_Text(pDX, IDC_EDIT_DEL_Name, m_Name); DDX_Text(pDX, IDC_EDIT_DEL_Sex, m_Sex); DDX_Text(pDX, IDC_EDIT_DEL_Native, m_Native); DDX_Text(pDX, IDC_EDIT_DEL_Tel, m_Tel); DDX_Text(pDX, IDC_EDIT_DEL_QQ, m_QQ); DDX_Text(pDX, IDC_EDIT_DEL_Email, m_Email);

DDX_Text(pDX, IDC_EDIT_DEL_HomeAddress, m_HomeAddress); DDX_Text(pDX, IDC_EDIT_DEL_Age, m_Age); //}}AFX_DATA_MAP

END_MESSAGE_MAP()

22

///////////////////////////////////////////////////////////////////// // CDelStudentDlg message handlers

void CDelStudentDlg::OnManageDel() { }

void CDelStudentDlg::OnBUTTONCancle() { }

void CDelStudentDlg::OnSelchangeCOMBODELNo() {

// TODO: Add your control notification handler code here int vSize=(int)m_v.size(); UpdateData(true); CString m_strNo;

m_No.GetWindowText(m_strNo); for(int i=0;i

if (m_strNo==m_v[i]->GetStuNo()) { }

break;

// TODO: Add your control notification handler code here CDialog::OnCancel();

// TODO: Add your command handler code here CDelStudentDlg dlgDel; dlgDel.DoModal();

23

}

}

m_Name=m_v[i]->GetStuName(); m_Sex=m_v[i]->GetSex(); m_Native=m_v[i]->GetNative(); m_Age=m_v[i]->GetAge();

m_HomeAddress=m_v[i]->GetHomeAddress(); m_Tel=m_v[i]->GetTelephone(); m_QQ=m_v[i]->GetQQ(); m_Email=m_v[i]->GetEmail(); UpdateData(false);

BOOL CDelStudentDlg::OnInitDialog() {

return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE CDialog::OnInitDialog();

// TODO: Add extra initialization here CStudentDoc doc;

m_v=doc.GetStudentList(); int vSize=(int)m_v.size(); for(int i=0;i

UpdateData(false);

m_No.AddString(m_v[i]->GetStuNo());

24

}

void CDelStudentDlg::OnButtonDel() {

// TODO: Add your control notification handler code here UpdateData(TRUE); CStudent tmpStu; CString m_strNo;

m_No.GetWindowText(m_strNo); tmpStu.SetStuName(m_Name); tmpStu.SetStuNo(m_strNo); tmpStu.SetSex(m_Sex); tmpStu.SetAge(m_Age);

tmpStu.SetHomeAddress(m_HomeAddress); tmpStu.SetNative(m_Native); tmpStu.SetTelephone(m_Tel); tmpStu.SetQQ(m_QQ); tmpStu.SetEmail(m_Email); CStudentDoc stuDoc; if (stuDoc.Del(tmpStu)) { } else { }

MessageBox(\删除学生信息失败!\MessageBox(\成功删除学生信息!\CDialog::OnOK();

25

}

6)做一个查询学生信息窗口类CQueryStudentDlg类:

代码:// QueryStudentDlg.cpp : implementation file //

#include \#include \#include \#include \#ifdef _DEBUG

#define new DEBUG_NEW #undef THIS_FILE

static char THIS_FILE[] = __FILE__; #endif

///////////////////////////////////////////////////////////////////// // CQueryStudentDlg dialog

CQueryStudentDlg::CQueryStudentDlg(CWnd* pParent /*=NULL*/) { }

//{{AFX_DATA_INIT(CQueryStudentDlg) m_QueryText = _T(\//}}AFX_DATA_INIT

: CDialog(CQueryStudentDlg::IDD, pParent)

26

void CQueryStudentDlg::DoDataExchange(CDataExchange* pDX) { }

BEGIN_MESSAGE_MAP(CQueryStudentDlg, CDialog)

//{{AFX_MSG_MAP(CQueryStudentDlg)

ON_COMMAND(ID_MANAGE_QUERY, OnManageQuery) ON_BN_CLICKED(IDC_BUTTON_Query, OnBUTTONQuery) //}}AFX_MSG_MAP

CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CQueryStudentDlg)

DDX_Control(pDX, IDC_LIST_Query, m_listQuery); DDX_Control(pDX, IDC_COMBO_QueryType, m_QueryType); DDX_Text(pDX, IDC_EDIT_QueryText, m_QueryText); //}}AFX_DATA_MAP

END_MESSAGE_MAP()

///////////////////////////////////////////////////////////////////// // CQueryStudentDlg message handlers

void CQueryStudentDlg::OnManageQuery() { }

BOOL CQueryStudentDlg::OnInitDialog()

// TODO: Add your command handler code here CQueryStudentDlg dlgQuery; dlgQuery.DoModal();

27

{

CDialog::OnInitDialog();

// TODO: Add extra initialization here m_listQuery.InsertColumn(0,\学号\m_listQuery.InsertColumn(1,\姓名\m_listQuery.InsertColumn(2,\性别\m_listQuery.InsertColumn(3,\年龄\m_listQuery.InsertColumn(4,\籍贯\m_listQuery.InsertColumn(5,\联系电话\m_listQuery.InsertColumn(6,\家庭地址\m_listQuery.InsertColumn(7,\m_listQuery.InsertColumn(8,\电子邮箱\

m_listQuery.SetColumnWidth(0,80); m_listQuery.SetColumnWidth(1,80); m_listQuery.SetColumnWidth(2,60); m_listQuery.SetColumnWidth(3,60); m_listQuery.SetColumnWidth(4,100); m_listQuery.SetColumnWidth(5,100); m_listQuery.SetColumnWidth(6,100); m_listQuery.SetColumnWidth(7,100); m_listQuery.SetColumnWidth(8,100);

m_listQuery.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINE

S);

CStudentDoc doc;

m_v=doc.GetStudentList();

return TRUE; // return TRUE unless you set the focus to a control

28

}

// EXCEPTION: OCX Property Pages should return FALSE

void CQueryStudentDlg::OnBUTTONQuery() {

// TODO: Add your control notification handler code here CString strQueryType; UpdateData(true);

m_QueryType.GetWindowText(strQueryType);

int vSize=(int) m_v.size(); int i=0;

if (m_listQuery.GetItemCount()!=0) { }

int itemCount=0;

if (strQueryType==\学号\{

for (i=0;i

if (m_v[i]->GetStuNo()==m_QueryText) {

CString strAge;

strAge.Format(\

m_listQuery.InsertItem(itemCount,m_v[i]->GetStuNo());

m_listQuery.DeleteAllItems();

m_listQuery.SetItemText(itemCount,1,m_v[i]->GetStuName());

m_listQuery.SetItemText(itemCount,2,m_v[i]->GetSex());

29

m_listQuery.SetItemText(itemCount,3,strAge);

m_listQuery.SetItemText(itemCount,4,m_v[i]->GetNative());

m_listQuery.SetItemText(itemCount,5,m_v[i]->GetHomeAddress());

m_listQuery.SetItemText(itemCount,6,m_v[i]->GetTelephone());

m_listQuery.SetItemText(itemCount,7,m_v[i]->GetQQ());

m_listQuery.SetItemText(itemCount,8,m_v[i]->GetEmail()); }

else if (strQueryType==\姓名\{

}

}

itemCount++;

//自己添加

}

else if (strQueryType==\性别\{ }

else if (strQueryType==\年龄\{ }

else if (strQueryType==\籍贯\{

//自己添加 //自己添加 //自己添加

30

}

}

4.设计结果及体会

通过本次课程设计,使我对c++面向对象程序设计和MFC有了更深层次的认识和理解,懂得了灵活用于所学的知识解决实际问题。在计算机飞速发展的今天,懂得一门计算机语言是非常有必要的。

C++的课程设计培养了我们独立分析问题、解决问题、繁阅资料及自学能力。通过此次课程设计,让我明白了巩固专业知识的重要性。

5.参考文献

教材:

谭浩强编著. C++面向对象程序设计.北京:清华大学出版社,2006年1月出版

参考书:

[1]孙鑫,余安萍.VC++深入详解[M].北京:电子工业出版社,2006年出版 [2] 郑莉、傅仕星编,《C++面向对象程序设计》,清华大学出版社,2003年9月出版

[3] 李师贤等译,《C++精髓》,机械工业出版社,2002年8月出版 [4] Davis Chapman,《学用Visual c++ 6.0》,清华大学出版社,2001年7月出版

[5] 郑莉、傅仕星编,C++语言面向对象程序设计习题与实验指导,清华大

学出版社,2003年9月出版。

31

}

}

4.设计结果及体会

通过本次课程设计,使我对c++面向对象程序设计和MFC有了更深层次的认识和理解,懂得了灵活用于所学的知识解决实际问题。在计算机飞速发展的今天,懂得一门计算机语言是非常有必要的。

C++的课程设计培养了我们独立分析问题、解决问题、繁阅资料及自学能力。通过此次课程设计,让我明白了巩固专业知识的重要性。

5.参考文献

教材:

谭浩强编著. C++面向对象程序设计.北京:清华大学出版社,2006年1月出版

参考书:

[1]孙鑫,余安萍.VC++深入详解[M].北京:电子工业出版社,2006年出版 [2] 郑莉、傅仕星编,《C++面向对象程序设计》,清华大学出版社,2003年9月出版

[3] 李师贤等译,《C++精髓》,机械工业出版社,2002年8月出版 [4] Davis Chapman,《学用Visual c++ 6.0》,清华大学出版社,2001年7月出版

[5] 郑莉、傅仕星编,C++语言面向对象程序设计习题与实验指导,清华大

学出版社,2003年9月出版。

31

本文来源:https://www.bwwdw.com/article/przg.html

Top