《数据结构与C++》实验指导书.docx

上传人:b****2 文档编号:1780910 上传时间:2022-10-24 格式:DOCX 页数:21 大小:503.88KB
下载 相关 举报
《数据结构与C++》实验指导书.docx_第1页
第1页 / 共21页
《数据结构与C++》实验指导书.docx_第2页
第2页 / 共21页
《数据结构与C++》实验指导书.docx_第3页
第3页 / 共21页
《数据结构与C++》实验指导书.docx_第4页
第4页 / 共21页
《数据结构与C++》实验指导书.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

《数据结构与C++》实验指导书.docx

《《数据结构与C++》实验指导书.docx》由会员分享,可在线阅读,更多相关《《数据结构与C++》实验指导书.docx(21页珍藏版)》请在冰豆网上搜索。

《数据结构与C++》实验指导书.docx

《数据结构与C++》实验指导书

实验一、学籍管理系统设计

实验目的:

1、掌握VC++或DEVC++集成开发环境;

2、熟悉面向对象编程方法;

实验内容:

设计界面友好、操作简便的学生学籍管理系统软件。

综合运用顺序表、单链表、栈、队列、字符串、多维数组等多种线性数据结构架构系统,分析并选择合理的操作算法,掌握面向对象的编程技术。

实验设备:

N台计算机

实验所需软件:

VisualC++6、0或DEVC++,WindowsProfessional操作系统

实验步骤:

1.问题描述

学籍管理问题中的数据元素具有如下形式:

学生的自然情况包括学号、姓名、性别、出生日期、政治面貌与家庭住址等数据项。

2.功能要求

对学籍登记表要求完成如下功能:

⑴插入:

将某学生的基本信息插入到登记表中;

⑵删除:

将满足条件的基本信息删除;

⑶修改:

对基本信息的数据项进行修改;

⑷查询:

查找满足条件的学生;

⑸输出:

将登记表中的全部(或满足条件)基本信息输出。

3.实现要点

对学籍登记表采用顺序或链式存储结构,在建立表时,由登记表的书写形式转化顺序表或链式表存储结构,还要把学生的书面形式转化为具体的类。

4.类定义

以顺序表为例,建立SeqList顺序表,其类定义如下:

template

classSeqList

{

public:

SeqList(){length=0;}//无参构造函数

SeqList(Ta[],intn);//有参构造函数

~SeqList(){}//析构函数为空

intLength(){returnlength;}//求顺序表的长度

TGet(inti);//取顺序表的第i个元素

voidInsert(inti,Tx);//在顺序表中第i个位置插入值为x的元素

TDelete(inti);//删除顺序表的第i个元素

voidPrintList();//遍历顺序表,按序号依次输出各元素

voidPrintStudent(Tx);//有参输出函数

private:

Tdata[MaxSize];//存放数据元素的数组

intlength;//顺序表的长度

};

在SeqList类中,提供了如下成员函数

(1)函数声明SeqList(Ta[],intn);

完成的功能构造长度为n,元素为数组a[]中元素的顺序表

(2)函数声明intLength(){returnlength;}

完成的功能求顺序表长度

(3)函数声明TGet(inti)

完成的功能依次查找,读取表中第i个元素

(4)函数声明voidInsert(inti,Tx);

完成的功能在顺序表中第i个位置插入值为x的元素

(5)函数声明TDelete(inti);

完成的功能查找并删除顺序表的第i个元素

(6)函数声明voidPrintList()

完成的功能遍历顺序表,按序号依次输出各元素

(7)函数声明voidPrintStudent(Tx)

完成的功能输出元素x

开始程序执行,显示以下功能选择界面:

或者:

按要求输入选择,并按提示输入,以下以插入与查询为例。

首先插入学生张三的信息:

同样输入李四的信息,并查询,结果如下:

可选方案:

PersonData示例运行界面如下图所示。

该示例就是一个基于对话框的MFC应用程序。

运行时先提示程序用户选择个人信息数据文件,比如PersonData工程目录下的test、txt。

打开数据文件后就进入如图所示界面。

在这个界面里左侧的列表框可以添加、删除与选择个人信息的条目。

当选择定某个人名时,在右侧的“个人信息”栏中显示个人信息的具体内容。

如果要修改某个条目的个人信息,则可以直接编辑对话框右侧的具体内容,然后单击“更新”

按钮即可。

PersonData演示了如何用CFile类对文件进行随机读写。

在程序代码中可以瞧到CFile类的各种成员函数的使用范例。

实验步骤(参考):

一.创建一个对话框;

二.添加相应控件,

『注意』:

1)组合框,先要点向下箭头,然后拖大列表区域面积;再在属性中“data”中可输入“男”+“ctrl+enter”+“女”;样式就选择“下移dropdown”。

2)所有编辑框列表框与控件的ID

IDC_PERSONLIST;IDC_NAME;IDC_BIRTH;IDC_SEX;IDC_TITLE;IDC_OFFICE;IDC_OFFICEPHONE;IDC_HOME;

IDC_HOMEPHONE;IDC_MOBILPHONE;IDC_EMAIL;

IDC_ADD;IDC_DEL;IDC_UPDATE;IDC_CANCEL;

3)点击任何控件,按F1键,可出现帮助文档;

三.为控件绑定变量

PersonData的主对话框类CPersonDataDlg设置了下列几个控件变量,用于显示与修改用

户个人信息,代码如下:

(用点击右键类向导邦定变量,代码会自动生成)

public:

CListBoxm_PersonList;//左侧“选择人名”列表框

【注意:

变量类型为“control”,其余几个都为“value”,变量定义就是可限定max范围】

CStringm_szBirth;//“出生日期”输入框

CStringm_szEMail;//“E-mail”输入框

CStringm_szHome;//“家庭地址”输入框

CStringm_szHomePhone;//“家庭电话”输入框

CStringm_szMobilePhone;//“手机”输入框

CStringm_szName;//“姓名”输入框

CStringm_szOffice;//“办公室”输入框

CStringm_szOfficePhone;//“办公电话”输入框

CStringm_szSex;//“性别”下拉列表框

四.在CPersonDataDlg、h头文件中添加结构体PersonInfo

typedefstructPERSONINFO

{

charszName[51];//姓名

charszBirth[31];//出生日期

intnSex;//性别,0为男,1为女

charszTitle[51];//职务

charszOffice[201];//办公室

charszOfficePhone[31];//办公电话

charszHome[201];//家庭住址

charszHomePhone[31];//家庭电话

charszMobilePhone[31];//手机

charszEMail[101];//E-mail地址

}PersonInfo;

五.在CPersonDataDlg、h头文件中添加与文件操作相关的成员变量与成员函数

Public:

C;

voidLoadPersonInfo(constPersonInfo&pi);

voidUpdatePersonIndex);

六.在CPersonDataDlg、h头文件中添加控件响应函数(双击控件可自动生成空函数)

afx_msgvoidOnAdd();

afx_msgvoidOnDel();

afx_msgvoidOnSelchangePersonlist();『双击列表框,生成列表项更新函数』

afx_msgvoidOnCancel();

afx_msgvoidOnUpdate();

七.在CPersonDataDlg、cpp文件中分别添加文件相关成员函数

//=============================================================

//函数名:

LoadPersonInfo

//功能描述:

根据PersonInfo结构更新界面的控件变量

//输入参数:

pi(输入的PersonInfo个人信息结构)

//返回值:

//附加说明:

//==============================================================

voidCPersonDataDlg:

:

LoadPersonInfo(constPersonInfo&pi)

{

//更新界面

m_szName=pi、szName;

if(pi、nSex==0)

m_szSex="男";

else

m_szSex="女";

m_szBirth=pi、szBirth;

m_szTitle=pi、szTitle;

m_szOffice=pi、szOffice;

m_szOfficePhone=pi、szOfficePhone;

m_szHome=pi、szHome;

m_szHomePhone=pi、szHomePhone;

m_szMobilePhone=pi、szMobilePhone;

m_szEMail=pi、szEMail;

UpdateData(FALSE);

}

//=============================================================

//函数名:

Update功能描述:

向文件中更新个人信息

//输入参数:

PersonIndex(要更新的个人信息的条目序号)

//返回值:

//附加说明:

//==============================================================

voidCPersonDataDlg:

:

UpdatePersonIndex)

{

//定位要修改的个人信息在文件中的位置

m_((LONG)PersonIndex*sizeof(PersonInfo),C);

//更新个人信息数据

UpdateData();

PersonInfopi;

strcpy(pi、szName,m_szName);

if(m_szSex=="男")

pi、nSex=0;

else

pi、nSex=1;

strcpy(pi、szBirth,m_szBirth);

strcpy(pi、szTitle,m_szTitle);

strcpy(pi、szOffice,m_szOffice);

strcpy(pi、szOfficePhone,m_szOfficePhone);

strcpy(pi、szHome,m_szHome);

strcpy(pi、szHomePhone,m_szHomePhone);

strcpy(pi、szMobilePhone,m_szMobilePhone);

strcpy(pi、szEMail,m_szEMail);

m_(&pi,sizeof(PersonInfo));

m_();

}

 

八.在CPersonDataDlg、cpp文件中分别添加各控件响应成员函数

//=============================================================

//函数名:

OnAdd

//功能描述:

处理单击“添加

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1