




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、河 南 省 高 等 教 育 自 学 考 试计算机及其应用专业(本科段)C+程序设计实验考核报告姓名 李梦迪 准考证号 所属地市 河南省郑州市 实验地点 机房 实验日期 2014年2月14日 实验总成绩 95 指导教师签名 楚乐 实验单位(实验室)意见: 主考院校审核意见: 2014 年 2 月 14 日河南郑州大学2014年目 录一、实验报告要求-1二、C+程序初步-2三、建立自己的栈-5四、日期显示-8实验报告要求1、实验报告应包括以下内容:(1)、程序清单(2)、实验结果(3)分析与讨论2、实验报告应写明实验名称、班号、实验者姓名、学号、将实验报告整理装订好,按指导教师规定的时间上交。基本
2、实验方法本实验环节要求学生能够顺利完成C+课程的实验操作实验所用器件、设备的简单介绍所有实验使用Windows、Linnux操作系统实验一 C+程序设计初步一、实验学时: 2学时二、实验目的:·通过本实验让学生掌握基本的编辑、编译和运行程序的方法及C+的基本知识。·理解封装和数据隐藏的软件工程概念。·能够建立C+的抽象数据类型·理解怎样建立、使用和撤销类型的对象。·能够控制对类的数据成员和成员函数的访问。·动态分配内存。三、实验设备:本实验在Windows或linux操作系统下 ,运行VC+6.0语言。四、C+程序初步1、C+程序和语
3、句(1)预处理命令。如#include命令和#define命令。(2)声明部分。如对数据类型和函数的声明,以及对变量的定义。(3)函数。包括函数首部和函数体,在函数体中包含着若干声明语句和执行语句。2、C+的输入与输出C+的输入输出是用“流”(stream)的方式实现的。C+通过流进行的输入输出操作如下图所示。程序插入输出流<<显示器cout提取输入流>>键盘内存区(指定的变量)cin3、程序清单typedef struct CStashTag int size; / Size of each space int quantity; / Number of storag
4、e spaces int next; / Next empty space CStash; #include “CLib.h“ / 包含库的接口#include <fstream>#include <iostream>#include <string>#include <cassert>using namespace std; int main() CStash intStash, stringStash; int i; char* cp; ifstream in; string line; const int bufsize = 80; ini
5、tialize(&intStash, sizeof(int); /初始化 for(i = 0; i < 100; i+) add(&intStash, &i); for(i = 0; i < count(&intStash); i+) cout << "fetch(&intStash, " << i << ") = “ << *(int*)fetch(&intStash, i)<< endl; initialize(&stringStas
6、h, sizeof(char)*bufsize); in.open("CLibTest.cpp"); assert(in); while(getline(in, line) add(&stringStash, line.c_str(); i = 0; while(cp = (char*) fetch (&stringStash,i+)!=0) cout << "fetch(&stringStash, " << i << ") = " << cp <<
7、endl; cleanup(&intStash); /清除 cleanup(&stringStash); /显式清除 动态分配数组:int size;cin>>size;int *array=new intsize;(二)、实验中出现的问题及解决方法1、熟悉程序中用到的一些基本要素(常量、变量、运算符、表达式等),他们是构成程序的基本成分。2、编写简单程序所必须掌握的一些内容。实验二 建立自己的栈一、实验学时: 2学时二、实验目的:·通过本实验让学生自己建立一个连续存储的栈,使学生能够掌握类、类对象、类的构造函数和析构函数的使用。·理解数据抽象与
8、抽象数据类型(ADT)的表示方法。三、实验设备:本实验在Windows或linux操作系统下 ,运行VC+6.0语言。四、建立自己的栈1、程序清单#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<string.h>#define STACK_INIT_SIZE 10#define STACKINCREMENT 10#define OK 0;#define ERROR -1;struct Stack char *base; char *top;
9、int count; int stacksize; /stack表示的是当前已经分配的存储空间,以元素为单位;struct Stack head;/取栈顶元素char* GetTop() struct Stack *S; char *e=(char*)malloc(sizeof(char); S=&head; if(S->base=S->top) printf("栈空/n"); exit(
10、0); *e=*(S->top-1); /top指向的是栈顶的下一个位置 return e;/插入元素e为新的栈顶元素int Push(char *e) struct Stack *S; S=&head; if(S->top-S->base)=S->stacksize) /如果栈满的话则追加空间 head.base=(char *)realloc(head.base,(head.sta
11、cksize+STACKINCREMENT)*sizeof(char); if(!head.base) exit(0); head.top=head.base+head.stacksize; head.stacksize=head.stacksize+STACKINCREMENT; *S->top+=*e; return OK;/当栈顶不为空时,删除栈顶元素char Pop() struct Stack *S; S=&head;&
12、#160;if(S->top=S->base) exit(0); return (*-S->top);void print() struct Stack *S; S=&head; char *p; p=(char *)malloc(sizeof(char); if(S->base=S->top) printf("空栈/n"); exit(0); while(S->base!
13、=S->top) *p=Pop(); printf("p->%c/n",*p); p=(char *)malloc(sizeof(char); p+; int main() char buf30,*z; int i,count; head.base=(char *)malloc(STACK_INIT_SIZE * sizeof(char); if(!head.base) exit(0);
14、60;head.top=head.base; head.stacksize=STACK_INIT_SIZE; head.count=0;/构造栈 for(i=0;i<15;i+) scanf("%c",&bufi); getchar(); Push(&bufi); head.count+; printf("构造栈成功:/n"); print();/读栈顶元素 co
15、unt=head.count; while(count) +head.top; count-; z=GetTop(); printf("取出的栈顶元素是:%c/n",*z); print(); count=head.count; while(count) +head.top; count-; /删除栈顶元素 printf("成功删除栈顶元素:%c/n&
16、quot;,Pop(); head.count-; print(); free(head.base); return 0;2、实验中出现的问题及解决的方法(1)数据结构相关理论知识。(2)堆栈的原理及应用。实验三 日期显示一、实验学时: 2学时二、实验目的:·通过本实验让学生进一步熟悉C+的面向对象特征,掌握基本的面向对象程序设计方法。·能够动态的建立和撤销对象。·能够指定CONST对象和CONST成员函数。·理解静态数据成员和静态成员函数。·一个类可以做为其它类的成员。三、实验设备:本实验在Window
17、s或linux操作系统下 ,运行VC+6.0语言。四、显示日期(一)、实验目的面向对象程序设计的特点,类与对象的应用。CONST对象和CONST成员函数,静态数据成员和静态成员函数的应用方法。(二)、程序清单#include <iostream.h> #include <time.h> #include "dos.h" #include <windows.h> struct time int t_h; int t_m; int t_s; t; void main() cout<<"请调整当前时间/小时:"
18、cin>>t.t_h; cout<<"请调整当前时间/分钟:" cin>>t.t_m; cout<<"请调整当前时间/秒钟:" cin>>t.t_s; while(1) cout<<"当前时间为:" cout<<t.t_h<<":"<<t.t_m<<":"<<t.t_s<<endl; if(t.t_s=59&&t.t_m!=59) t.t_m+; t.t_s=0; else if(t.t_s=59&&t.t_m=59&&t.t_h!=23) t.t_m=0; t.t_s=0; t.t_h+; else if(t.t_s=59&&t.t_m=59&&t.t_h=23) t.t_s=0; t.t_m=0; t.t_h=0; else t.t_s+; Sleep(1000); system("cls
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 25178-605:2025 EN Geometrical product specifications (GPS) - Surface texture: Areal - Part 605: Design and characteristics of non-contact (point autofocus probe) instrum
- 2025年铝合金精密模锻件合作协议书
- 2025年度商铺租用承诺书规范版4篇
- 行业趋势与发展目标分析计划
- 师生互动促进学习效果的研究计划
- 新年职场新风格与工匠精神计划
- 如何利用社群效应推动品牌计划
- 班主任的心理情感辅导计划
- 企业财务战略的执行方法计划
- 仓库持续改进的必要性与方法计划
- 5000只淮山羊和波尔山羊杂交良种养殖场建设项目可行性研究报告
- GB/T 5534-2008动植物油脂皂化值的测定
- GB/T 12771-2019流体输送用不锈钢焊接钢管
- 测量管理体系内审检查表
- 工程验收及移交管理方案
- 心脏手术麻醉的一般流程课件
- 图片编辑概述课件
- 2023年岳阳职业技术学院单招职业技能考试笔试题库及答案解析
- 信号与系统复习题及答案
- 北师大版八年级数学上册《认识无理数(第2课时)》参考课件2
- 中级建构筑物消防员理论综合模拟题01原题
评论
0/150
提交评论