




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
11/12BU机制12级2013年春技术工作实践 实践指导书盐城工学院优集学院计算机编程实训I BU机制12级2013年秋焦丽丽, 2013.12一、 实训目的和任务本技术工作实践重点加强学生的C+编程基础和使学生理解数据结构的原理。在本实践环节中,要求学生掌握C/C+语言的基本语法,掌握数据结构中的基础知识。在本实践环节进行结束之后,学生对于C/C+、数据结构的掌握将会有一个很大的提高。本技术工作实践采用Visual Studio .NET 2005环境,如果使用VC6环境,编程方法与本指导书介绍的方法基本相同,不再另行说明。二、 实践内容和要求本技术工作实践采用Visual Studio .NET 2005环境,提供三个题目供学生选择:1.链表演示系统2.栈演示系统3.队列演示系统要求学生在两周内,按照实践指导书的要求,完成课题设计,形成物化成果。每个同学具体数据见“计算机编程实训任务.xls”。三、要求与进度安排具体时间安排如下表:任务时间布置任务学生选题12月30日课题分析12月31日搜索资料1月1日-1月2日编写代码1月3日-1月7日测试程序1月8日测试修改1月9日填写实践报告书1月10日成绩评定1月11日四、链表演示程序1. 题目说明编写一个链表类,要求能实现单链表的基本操作。在MFC应用程序中利用编写的链表类来演示链表的工作原理。要求:l 能够实现入链表功能l 能够实现删除链表任一结点的功能l 每个结点的数据包含的数据信息见“计算机编程实训任务.xls”,上例中包括(学号,姓名,课程名,成绩);l 插入的数据能在正确的位置上;2. 新建项目1. 新建一个项目“2. 如图,模板选“MFC应用程序”3. 选择合适的位置和名称,单击确定图1 选择模板3. 应用程序类型如图2:基于对话框,使用静态库中的MFC; 图2 应用程序类型4. 选择“下一步”,用户界面功能如图3:最小化框,对话框标题为LinkedList图3 用户界面功能5. 单击“完成”,会产生如下文件:图4 文件列表6. 如果使用VC6,则不需要这一步。在项目“LinkedList”上点单击右键,选属性,在“配置”一栏内选“所有配置”,把“检测64位移植性问题”改为“否”,如图5,单击确定。图5 检测64位可移植性问题3. 编写CLinkedList类上述工作完成后,在源文件里新建一个文件“CLinkedList.cpp”,在头文件里新建一个文件“CLinkedList.h”。CLinkedList.h包含链表类的定义,而CLinkedList.cpp里包含链表类的实现。下面提供一个CLinkedList.h内容例子:#include using namespace std;/定义单链表类class CLinkedList public:struct student?;struct node ? ;private: /数据成员 ? public: /成员函数CLinkedList( ); /构造函数,建立空链表CLinkedList( ); ?/插入一个结点? /删除元素? /逆转线性单链表?/获取链表的长度 node* GetHeadAddress( CLinkedList:node* retHead = NULL ); ;在声明类CLinkedList h之后,我们需要在CLinkedList.cpp里实现单链表的所有功能。例如:CLinkedList:CLinkedList( ):head(NULL),Length(0)return; CLinkedList: CLinkedList ( void ) node* p = NULL; while( head ) p = head; head = p-next; delete p; p = NULL; return;?其余部分请同学们利用所学的数据结构知识,将功能补充完整。4. 设计用户界面如图6:图6 用户界面其中1使用List Control,并将其View属性设置为“report”;26是几个Edit Control,除6之外Edit Control的Read Only属性需要设置为“false”。添加控件变量:表格 1插入控件变量编号数据类型名称类别1oListListControl2longDsnoValue3CStringDnameValue4CStringDsubjectValue5intDgradeValue6CStringDmessageValue请根据自己需要,灵活定义。5. 编写代码首先,为链表类LinkedListDlg.h添加一些成员变量和成员函数:CLinkedList LinkedList; void SetDlgDataFromList(); LinkedList是单链表类,SetDlgDataFromList的功能是根据链表类里的数据来设置对话框中各个控件的数据。注意,如果要在LinkedListDlg类里声明CLinkedList的实例,必须要包含头文件“CLinkedList.h”。在“LinkedListDlg.cpp”里找到LinkedListDlg的OnInitDialog函数,在里面加入一些初始化代码:oListList.SetExtendedStyle( LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT ); oListList.InsertColumn( 1, 学号, LVCFMT_LEFT, 90,-1 ); oListList.InsertColumn( 2, 姓名, LVCFMT_LEFT, 65,-1 ); oListList.InsertColumn( 3, 课程, LVCFMT_LEFT, 65, -1 ); oListList.InsertColumn( 4, 成绩, LVCFMT_LEFT, 65, -1 );SetDlgDataFromList(); Dmessage = 请在“数据”栏内输入一个整数。; UpdateData( FALSE );前两行代码将List Control控件初始化2列。4个参数的含意分别是:列号,标题,对齐方式,宽度,SubItem号。对List Control控件的操作见下面的代码示例,“?”号处自己补充void CLinkedListDlg:SetDlgDataFromList() int vListLength = LinkedList.GetLength(); LVITEM item;CString strTmp; item.mask = LVIF_TEXT; item.iItem = 0; item.iImage = 0; oListList.DeleteAllItems(); / 清空List Control内容if ( vListLength 0 ) int i = 0; CLinkedList:node *p = LinkedList.GetHeadAddress(); for ( i = 0; i next ) item.iItem = oListList.GetItemCount();item.iSubItem = 0;strTmp.Format( %ld, p-data.sno );item.pszText = ( LPTSTR )( LPCSTR )strTmp;oListList.InsertItem( &item ); / 插入一条记录 ? UpdateData( FALSE );然后为按钮加入事件处理函数,“?”号处自己补充void CLinkedListDlg:OnBnClickedButton1()/添加数据/ TODO: 在此添加控件通知处理程序代码 UpdateData();CLinkedList:student aa;aa.sno=Dsno;strcpy(,Dname);strcpy(aa.subject,Dsubject);aa.grade=Dgrade;if(?) ?; SetDlgItemText(IDC_EDIT5,加入数据成功!); else SetDlgItemText(IDC_EDIT5,加入数据失败!);void CLinkedListDlg:OnBnClickedButton2()/删除数据/ TODO: 在此添加控件通知处理程序代码 POSITION pos = NULL; int iItem = 0; pos = oListList.GetFirstSelectedItemPosition(); if ( NULL = pos ) MessageBox( 您没有选择任何数据。n请先选择一个记录,再进行删除。, 警告 , MB_OK | MB_ICONINFORMATION ); return; else if ( MessageBo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 运营管理部员工管理制度
- 临时用电使用管理制度
- xx集团票据管理制度
- 事项办理台帐管理制度
- 乡镇路面养护管理制度
- 基于AI的员工流动预测与优化策略
- xx社区印章管理制度
- vip开发与管理制度
- 伊利集团存货管理制度
- 乡镇工会小屋管理制度
- 2025年四川省宜宾市中考数学真题含答案
- 2025年天津市河西区中考二模英语试题
- 2025年全国统一高考英语试卷(全国二卷)含答案
- 2025年上海市版个人房屋租赁合同
- 数据的生命周期管理流程试题及答案
- 2025江苏苏州工业园区苏相合作区国企业招聘5人易考易错模拟试题(共500题)试卷后附参考答案
- T/CECS 10359-2024生物安全实验室生命支持系统
- T/CSBME 058-2022持续葡萄糖监测系统
- 吊车吊篮施工方案大全
- 2025年中考英语考前冲刺卷(北京卷)(解析版)
- 2025年物业安全管理专家考试试题及答案
评论
0/150
提交评论