C程序设计实验报告自考本科_第1页
C程序设计实验报告自考本科_第2页
C程序设计实验报告自考本科_第3页
C程序设计实验报告自考本科_第4页
C程序设计实验报告自考本科_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论