c语言与数据结构实验指导完整版

合集下载

数据结构c语言版实验教案

数据结构c语言版实验教案

数据结构C语言版实验教案一、实验目的1. 掌握数据结构基本概念和原理。

2. 培养使用C语言进行数据结构编程的能力。

3. 加深对数据结构在实际问题中的应用的理解。

二、实验内容1. 线性表的实现与操作。

2. 栈和队列的实现与操作。

3. 链表的实现与操作。

4. 树与二叉树的实现与操作。

5. 图的实现与操作。

三、实验环境1. 计算机硬件:Pentium(或更高)处理器。

2. 操作系统:Windows 7/8/10 或Linux。

3. 编程语言:C语言。

4. 开发工具:Code::Blocks 或Visual Studio。

四、实验要求1. 每个实验至少编写一个C程序实现数据结构的基本操作。

2. 每个实验要求有详尽的代码注释,以便于理解。

五、实验评价1. 代码质量:代码规范、易读、无明显错误。

2. 实现功能:正确实现数据结构的基本操作。

3. 实验报告:内容详实,能反映实验过程和收获。

六、实验一:线性表的实现与操作1. 实验目标:理解线性表的概念,掌握线性表的顺序存储结构及其基本操作。

2. 实验内容:实现一个简单的线性表结构体。

编写函数实现线性表的插入、删除、查找等基本操作。

设计测试用例验证线性表操作的正确性。

七、实验二:栈和队列的实现与操作1. 实验目标:理解栈和队列的概念,掌握它们的顺序存储结构及其基本操作。

2. 实验内容:实现一个简单的栈结构体。

编写函数实现栈的压入、弹出等基本操作。

实现一个简单的队列结构体。

编写函数实现队列的入队、出队等基本操作。

设计测试用例验证栈和队列操作的正确性。

八、实验三:链表的实现与操作1. 实验目标:理解链表的概念,掌握单链表和双向链表的存储结构及其基本操作。

2. 实验内容:实现一个简单的单链表结构体。

编写函数实现单链表的插入、删除、查找等基本操作。

实现一个简单的双向链表结构体。

编写函数实现双向链表的插入、删除、查找等基本操作。

设计测试用例验证链表操作的正确性。

九、实验四:树与二叉树的实现与操作1. 实验目标:理解树和二叉树的概念,掌握二叉树的存储结构及其基本操作。

(完整版)数据结构(C语言版)实验报告

(完整版)数据结构(C语言版)实验报告

数据结构(C语言版) 实验报告学院计算机科学与技术专业计算机大类强化学号xxx班级xxx姓名xxx指导教师xxx实验1实验题目:单链表的插入和删除实验目的:了解和掌握线性表的逻辑结构和链式存储结构,掌握单链表的基本算法及相关的时间性能分析。

实验要求:建立一个数据域定义为字符串的单链表,在链表中不允许有重复的字符串;根据输入的字符串,先找到相应的结点,后删除之。

实验主要步骤:1、分析、理解给出的示例程序。

2、调试程序,并设计输入数据(如:bat,cat,eat,fat,hat,jat,lat,mat,#),测试程序的如下功能:不允许重复字符串的插入;根据输入的字符串,找到相应的结点并删除。

3、修改程序:(1)增加插入结点的功能。

(2)将建立链表的方法改为头插入法。

程序代码:#include"stdio.h"#include"string.h"#include"stdlib.h"#include"ctype.h"typedef struct node //定义结点{char data[10]; //结点的数据域为字符串struct node *next; //结点的指针域}ListNode;typedef ListNode * LinkList; // 自定义LinkList单链表类型LinkList CreatListR1(); //函数,用尾插入法建立带头结点的单链表LinkList CreatList(void); //函数,用头插入法建立带头结点的单链表ListNode *LocateNode(); //函数,按值查找结点void DeleteList(); //函数,删除指定值的结点void printlist(); //函数,打印链表中的所有值void DeleteAll(); //函数,删除所有结点,释放内存ListNode * AddNode(); //修改程序:增加节点。

数据结构c语言版实验教案

数据结构c语言版实验教案

数据结构C语言版实验教案一、实验目的1. 理解数据结构的基本概念和原理。

2. 掌握C语言在数据结构中的应用和实现。

3. 培养动手实践能力和团队协作精神。

二、实验内容1. 线性表的实现与操作:顺序存储结构、链式存储结构。

2. 栈和队列的实现与操作。

3. 线性排序算法实现与分析。

4. 树与二叉树的实现与操作。

5. 图的实现与操作。

三、实验环境1. 编程语言:C语言。

2. 开发工具:Visual Studio、Code::Blocks等。

3. 操作系统:Windows、Linux或Mac OS。

四、实验步骤1. 实验准备:了解实验内容,阅读相关教材和资料,明确实验目标和任务。

2. 设计实验方案:根据实验内容,设计相应的数据结构和算法。

3. 编写实验代码:按照实验方案,用C语言编写代码。

4. 调试和测试:运行代码,检查功能是否符合预期,发现问题并及时修改。

五、实验评价1. 代码质量:代码结构清晰,注释详细,可读性强。

2. 功能实现:实验要求的功能全部实现,且运行稳定。

3. 算法效率:分析并优化算法,提高程序运行效率。

4. 实验报告:内容完整,包括实验目的、内容、步骤、总结等。

5. 团队协作:积极参与讨论,与团队成员共同解决问题。

六、实验一:线性表的实现与操作1. 实验目的:掌握顺序存储结构线性表的实现。

掌握链式存储结构线性表的实现。

熟悉线性表的基本操作,如插入、删除、查找等。

2. 实验内容:实现一个顺序存储结构线性表。

实现一个链式存储结构线性表。

实现线性表的插入、删除、查找等操作。

3. 实验步骤:设计顺序存储结构线性表的数据类型和操作函数。

实现链式存储结构线性表的数据类型和操作函数。

编写测试代码,验证线性表操作的正确性。

4. 实验评价:线性表结构设计合理,代码清晰。

能够正确实现线性表的基本操作。

测试代码全面,能够验证操作的正确性。

七、实验二:栈和队列的实现与操作1. 实验目的:理解栈和队列的基本概念。

掌握栈和队列的顺序存储结构实现。

数据结构C语言版实验报告完整版

数据结构C语言版实验报告完整版

数据结构C语言版实验报告HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】数据结构(C语言版) 实验报告专业:计算机科学与技术、软件工程学号:_______________________班级:_________软件二班______________姓名:________朱海霞______________指导教师:___刘遵仁________________青岛大学信息工程学院2013年10月实验1实验题目:顺序存储结构线性表的插入和删除实验目的:了解和掌握线性表的逻辑结构和顺序存储结构,掌握线性表的基本算法及相关的时间性能分析。

实验要求:建立一个数据域定义为整数类型的线性表,在表中允许有重复的数据;根据输入的数据,先找到相应的存储单元,后删除之。

实验主要步骤:1、分析、理解给出的示例程序。

2、调试程序,并设计输入一组数据(3,-5,6,8,2,-5,4,7,-9),测试程序的如下功能:根据输入的数据,找到相应的存储单元并删除,显示表中所有的数据。

程序代码:#include<>#include<>#define OK 1#define ERROR 0#define OVERFLOW -2#define LIST_INIT_SIZE 100#define LISTINCREMENT 10typedef struct{int* elem;int length;int listsize;}Sqlist;int InitList_Sq(Sqlist &L){=(int*)malloc(LIST_INIT_SIZE*sizeof(int));if(! return -1;=0;=LIST_INIT_SIZE;return OK;}int ListInsert_Sq(Sqlist&L,int i,int e){if(i<1||i>+1) return ERROR;if=={int *newbase;newbase=(int*)realloc,+LISTINCREMENT)*sizeof(int));if(!newbase) return -1;=newbase;+=LISTINCREMENT;}int *p,*q;q=&[i-1]);for(p=&[]);p>=q;--p)*(p+1)=*p;*q=e;++;return OK;}int ListDelete_Sq(Sqlist &L,int i,int e){int *p,*q;if(i<1||i>return ERROR;p=&[i-1]);e=*p;q=+;for(++p;p<=q;++p)*(p-1)=*p;;return OK;}int main(){Sqlist L;InitList_Sq(L);ertex=a; irstedge=NULL; irstedge;G->adjlist[i].firstedge=s; irstedge;G->adjlist[j].firstedge=s; //将新结点*S插入顶点Vj的边表头部}}//=========定义标志向量,为全局变量=======typedef enum{FALSE,TRUE} Boolean;Boolean visited[MaxVertexNum];//========DFS:深度优先遍历的递归算法======void DFSM(ALGraph *G,int i){ //以Vi为出发点对邻接链表表示的图G进行DFS搜索给出你的编码//==========BFS:广度优先遍历=========void BFS(ALGraph *G,int k){ //以Vk为源点对用邻接链表表示的图G进行广度优先搜索给出你的编码//==========主函数===========void main(){int i;ALGraph *G;G=(ALGraph *)malloc(sizeof(ALGraph));CreatALGraph(G);printf("Print Graph DFS: ");DFS(G);printf("\n");printf("Print Graph BFS: "); BFS(G,3);printf("\n");}实验结果:1.邻接矩阵作为存储结构2.邻接链表作为存储结构心得体会:实验6实验题目:二分查找算法的实现实验目的:掌握二分查找法的工作原理及应用过程,利用其工作原理完成实验题目中的内容。

数 据 结 构(C语言版) 实 验 指 导包含参考讲述

数 据 结 构(C语言版) 实 验 指 导包含参考讲述

数据结构(C语言版)实验指导预备实验C语言的函数、数组、指针和结构体知识一、实验目的1、复习C语言中函数、数组、指针、结构体与共用体等的概念。

2、熟悉利用C语言进行程序设计的一般方法。

二、实验内容1、调试程序:输出100以内所有的素数(用函数实现)。

#include<stdio.h>int isprime(int n){ /*判断一个数是否为素数*/int m;for(m=2;m*m<=n;m++)if(n%m==0) return 0;return 1;}int main(){ /*输出100以内所有素数*/int i; printf("\n");for(i=2;i<100;i++)if(isprime(i)==1) printf("%4d",i);return 0;}运行结果:2、调试程序:对一维数组中的元素进行逆序排列。

#include<stdio.h>#define N 10int main(){int a[N]={0,1,2,3,4,5,6,7,8,9},i,temp;printf("\nthe original Array is:\n ");for(i=0;i<N;i++)printf("%4d",a[i]);for(i=0;i<N/2;i++){ /*交换数组元素使之逆序*/temp=a[i];a[i]=a[N-i-1];a[N-i-1]=temp;}printf("\nthe changed Array is:\n");for(i=0;i<N;i++)printf("%4d",a[i]);return 0;}运行结果:3、调试程序:在二维数组中,若某一位置上的元素在该行中最大,而在该列中最小,则该元素即为该二维数组的一个鞍点。

数据结构实验指导书(C版)

数据结构实验指导书(C版)

数据结构实验指导书(C语言版)2017年9月目录1、顺序表的实现 (1)2、链栈的实现 (3)3、前序遍历二叉树 (5)4、图的深度优先遍历算法 (7)5、散列查找 (9)1、顺序表的实现1. 实验目的⑴掌握线性表的顺序存储结构;⑵验证顺序表及其基本操作的实现;⑶理解算法与程序的关系,能够将顺序表算法转换为对应的程序。

2. 实验内容⑴建立含有若干个元素的顺序表;⑵对已建立的顺序表实现插入、删除、查找等基本操作。

3. 实现提示定义顺序表的数据类型——顺序表结构体SeqList,在SeqList基础上实现题目要求的插入、删除、查找等基本操作,为便于查看操作结果,设计一个输出函数依次输出顺序表的元素。

简单起见,本实验假定线性表的数据元素为int型,要求学生:(1)将实验程序调试通过后,用模板类改写;(2)加入求线性表的长度等基本操作;(3)重新给定测试数据,验证抛出异常机制。

4. 实验程序在编程环境下新建一个工程“顺序表验证实验”,并新建相应文件,文件包括顺序表结构体SeqList的定义,范例程序如下:#define MaxSize 100 /*假设顺序表最多存放100个元素*/typedef int DataType; /*定义线性表的数据类型,假设为int型*/typedef struct{DataType data[MaxSize]; /*存放数据元素的数组*/int length; /*线性表的长度*/} SeqList;文件包括建立顺序表、遍历顺序表、按值查找、插入操作、删除操作成员函数的定义,范例程序如下:int CreatList(SeqList *L, DataType a[ ], int n){if (n > MaxSize) {printf("顺序表的空间不够,无法建立顺序表\n"); return 0;} for (int i = 0; i < n; i++)L->data[i] = a[i];L->length = n;return 1;}void PrintList(SeqList *L){for (int i = 0; i < L->length; i++)printf("%d ", L->data[i]); /*输出线性表的元素值,假设为int型*/ }int Locate(SeqList *L, DataType x){for (int i = 0; i < L->length; i++)if (L->data[i] == x) return i+1; /*返回序号*/return 0; /*退出循环,说明查找失败*/ }int Insert(SeqList *L, int i, DataType x){if (L->length >= MaxSize) {printf("上溢错误,插入失败\n"); return 0;} if (i < 1 || i > L->length + 1) {printf("位置错误,插入失败\n"); return 0;} for (int j = L->length; j >= i; j--) /*j表示元素序号*/L->data[j] = L->data[j - 1];L->data[i - 1] = x;L->length++;return 1;}int Delete(SeqList *L, int i, DataType *ptr){if (L->length == 0) {printf("下溢错误,删除失败\n"); return 0;} if (i < 1 || i > L->length) {printf("位置错误,删除失败\n"); return 0;} *ptr = L->data[i - 1]; /*取出位置i的元素*/for (int j = i; j < L->length; j++) /* j表示元素所在数组下标*/L->data[j - 1] = L->data[j];L->length--;return 1;}在定义了顺序表的存储结构SeqList并实现了基本操作后,程序中就可以使用SeqList 类型来定义变量,可以调用实现基本操作的函数来完成相应的功能。

数据结构c语言版实验教案

数据结构C语言版实验教案一、实验目的1. 理解数据结构的基本概念和原理。

2. 掌握C语言的基本语法和编程技巧。

3. 培养实际操作能力和问题解决能力。

二、实验内容1. 线性表的实现与操作。

2. 栈和队列的实现与操作。

3. 链表的实现与操作。

4. 树和图的实现与操作。

5. 排序和查找算法的实现与优化。

三、实验环境1. 操作系统:Windows或Linux。

2. 编程语言:C语言。

3. 编译器:GCC或Clang。

4. 开发工具:Visual Studio或Code::Blocks。

四、实验步骤1. 了解实验要求,阅读相关教材和资料。

2. 分析实验问题,设计实验方案。

3. 编写实验代码,进行调试和测试。

4. 分析实验结果,总结实验经验和教训。

5. 完成实验报告,提交实验代码和报告。

五、实验评价1. 代码规范性和可读性。

2. 实验问题的解决能力和创新性。

4. 实验操作的熟练程度和团队合作能力。

六、线性表的实现与操作1. 实验目的:学习线性表的基本概念。

掌握线性表的顺序存储结构和存储结构。

学会实现线性表的基本操作,如插入、删除、查找和打印。

2. 实验内容:实现一个简单的线性表。

实现线性表的插入和删除操作。

实现线性表的查找和打印操作。

3. 实验环境:同上。

4. 实验步骤:设计一个线性表的数据结构。

编写实现线性表操作的函数。

编写测试线性表操作的程序。

调试并运行程序,验证操作的正确性。

5. 实验评价:同上。

七、栈和队列的实现与操作1. 实验目的:理解栈和队列的基本概念和特点。

掌握栈和队列的顺序存储结构和存储结构。

学会实现栈和队列的基本操作,如入栈、出栈、入队、出队等。

2. 实验内容:实现一个简单的栈。

实现一个简单的队列。

实现栈和队列的综合应用,如数制转换等。

3. 实验环境:同上。

4. 实验步骤:设计栈和队列的数据结构。

编写实现栈和队列操作的函数。

编写测试栈和队列操作的程序。

调试并运行程序,验证操作的正确性。

5. 实验评价:同上。

数据结构C版实验指导

《数据结构与算法》实验指导书一、实验课程教学目的和要求《数据结构与算法》是一门实践性很强的课程,光靠读书和做习题是不能提高实践能力的。

《数据结构与算法》的实验与程序设计语言课程中的实验不同,后者更多的强调语言方面的功能实现,而前者更接近实际,需要同学们自己分析问题,设计模型和算法,再上机调试完成。

《数据结构与算法》的实验的目的主要有两个:1)深化理解书本上的理论知识,将书本的知识变“活”(为已掌握,为已活用);2)理论和实践相结合,学会将相关的数据结构和算法应用于解决实际问题,培养数据结构的应用能力和软件工程所需要的实践能力。

《数据结构与算法》的实验类型1)验证性实验—主要是验证教材中已有的数据结构和算法。

2)设计性实验—针对具体问题,应用某一个知识点,自己设计数据结构和算法,培养对数据结构的简单运用能力。

3)综合性实验—针对具体问题,应用某几个知识点,自己设计数据结构和算法,培养对数据结构的综合运用能力。

《数据结构与算法》的实验安排《数据结构与算法》实验的一般步骤1)需求分析:要对简单的问题描述进行详细的分析,充分理解问题,明确问题要求做什么,有什么数据,边界条件……。

2)概要设计:针对问题描述中涉及到数据定义抽象数据类型,设计数据结构和算法模型。

本部分不必考虑实现的细节。

3)详细设计:设计具体的存储结构(用C++或C语言)。

此外,还要设计对象或函数间的调用关系及输入输出。

4)上机调试(运行代码,修正语法及逻辑错误)5)结果与总结《数据结构与算法》的实验要求:1)完成实验预习;2)完成并上交实验报告;3)完成电子设计文档预习/实验报告的格式要求:1)实验名称2)实验目的3)实验内容及要求4)概要设计:ADT5)详细设计:C++类或C函数6)调试分析:7)结果与总结实验一: 顺序表的操作一、实验目的:1)掌握线性表的顺序存储结构与算法实现;3)掌握顺序表的逻辑插入方法。

二、实验内容及要求:实现对有序的顺序表L进行保序插入的(C++或C)算法提示:主函数构建n个整数的顺序表L并调用输出函数;调用保序插入函数实现插入操作并调用输出函数输出。

数据结构实验C语言版

数据结构实验C语言版数据结构实验C语言版第一章实验目的1.熟悉C语言编程环境。

2.掌握数据结构中常用的线性结构和非线性结构。

3.学习使用C语言实现常见的数据结构操作。

4.培养解决实际问题的思维能力。

第二章实验内容1.线性表1.1 顺序表1.1.1 初始化顺序表1.1.2 在顺序表中插入元素1.1.3 删除顺序表中的元素1.1.4 查找顺序表中的元素1.1.5 显示顺序表中的元素1.2 链表1.2.1 初始化链表1.2.2 在链表中插入节点 1.2.3 删除链表中的节点 1.2.4 查找链表中的节点1.2.5 显示链表中的节点2.栈和队列2.1 栈2.1.1 初始化栈2.1.2 入栈操作2.1.3 出栈操作2.1.4 获取栈顶元素2.1.5 判断栈是否为空 2.2 队列2.2.1 初始化队列2.2.2 入队操作2.2.3 出队操作2.2.4 获取队头元素2.2.5 判断队列是否为空3.树和图3.1 二叉树3.1.1 创建二叉树3.1.2 前序遍历二叉树3.1.3 中序遍历二叉树3.1.4 后序遍历二叉树3.1.5 层序遍历二叉树3.2 图3.2.1 创建图3.2.2 深度优先搜索遍历图3.2.3 广度优先搜索遍历图3.2.4 最短路径算法3.2.5 最小树算法第三章实验步骤1.确定实验目标和需求。

2.根据实验内容,编写C语言程序。

3.调试和运行程序,验证程序的正确性。

4.根据实验结果进行分析和总结。

第四章实验结果与分析1.线性表的操作结果分析。

2.栈和队列的操作结果分析。

3.树和图的操作结果分析。

附件:________源代码文件法律名词及注释:________1.版权:________指对作品享有的本质的、来自著作权法的权益。

2.许可证:________指权利人向他人授予合法使用作品的权利的法律文件。

3.商标:________指与一种商品及其生产者和经销者有关的特定名称、标识或符号。

4.注册商标:________指在商标局进行了合法登记并取得专有权的商标。

数据结构c语言版实验教案

数据结构C语言版实验教案一、实验目的1. 理解数据结构的基本概念和原理。

2. 掌握C语言编程的基本技巧。

3. 培养实际动手能力和解决实际问题的能力。

二、实验环境2. 操作系统:Windows 2000 / XP / 7 / 10。

3. 编程语言:C语言。

4. 开发工具:Code::Blocks 或Visual Studio。

三、实验内容1. 线性表的顺序存储结构实现。

2. 链式存储结构实现。

3. 栈和队列的实现。

4. 线性表的排序算法实现。

5. 查找算法实现。

四、实验要求1. 每个实验都需要编写相应的C程序代码,并进行调试和运行。

2. 每个实验都需要提交实验报告,包括实验目的、实验环境、实验内容、实验步骤、实验结果和实验心得等。

3. 每个实验都需要在实验报告中附上相应的程序代码和运行结果截图。

五、实验评价1. 实验报告的完整性:包括实验目的、实验环境、实验内容、实验步骤、实验结果和实验心得等。

2. 程序代码的规范性:包括代码的结构、注释、变量命名等。

3. 程序运行的正确性:包括程序的执行结果、运行效率等。

4. 实验报告的书面表达和逻辑性:包括实验报告的书写格式、语言表达、逻辑性等。

六、实验一:线性表的顺序存储结构实现1. 实验目的:学习线性表的概念。

掌握线性表的顺序存储结构。

学会使用C语言实现线性表的基本操作。

2. 实验内容:编写C程序实现线性表的创建、插入、删除、遍历等基本操作。

3. 实验步骤:定义线性表的数据结构和基本操作函数。

编写主函数,进行线性表的操作演示。

调试并运行程序。

4. 实验报告要求:提交实验代码和运行结果截图。

七、实验二:链式存储结构实现1. 实验目的:学习链式存储结构的概念。

掌握链表的创建和基本操作。

学会使用C语言实现单链表和双向链表。

2. 实验内容:编写C程序实现单链表和双向链表的创建、插入、删除、遍历等基本操作。

3. 实验步骤:定义链表的数据结构和基本操作函数。

编写主函数,进行链表的操作演示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Harbin Institute of TechnologyC语言与数据结构实验指导书刘梅索莹田文龙哈工大电子与信息工程学院电子工程系实验1 实验平台一、实验目的1.掌握Microsoft Visual C++ 集成环境的使用方法。

2.掌握C程序在Microsoft Visual C++ 开发环境中的编辑、编译、链接和运行全过程二、实验内容1)启动Microsoft Visual C++ 开发环境双击桌面应用程序图标或云兄“开始”菜单程序组中的Microsoft Visual C++ 应用程序,启动VC++,如图所示图 VC++初始界面2)建立C源程序文件方法1:单机工具栏的“新建文本文件”按钮,打开文本文件编辑界面如下图所示图文本文件编辑界面方法2:执行“文件”->“新建”命令,在“文件”选项卡下选择C++ Source File 文件类型,然后输入C源程序文件名和保存文职,如图所示,然后单击“确定”按钮,打开源程序文件编辑界面,如图所示。

注意:输入C源程序文件名时必须带上扩展“.c”,否则默认创建的是扩展名为“.cpp”的C++文件。

3)编辑源文件方法1:在如图所示的文本文件编辑界面中输入源程序代码,如图所示。

方法2:在如图所示的C源程序文件编辑界面中编辑源程序代码,如图所示。

图新建文件图 C源程序文件编辑界面图文本文件编辑界面编辑源文件图 C源程序编辑界面编辑源文件4)保存源文件源文件编辑结束后,执行“文件”->“保存”命令保存文件,文本文件编辑界面中编辑的源文件保存时必须在文件名后加上扩展名“.c”,否则保存的是扩展名为txt的文本文件,不能编译运行。

5)组件文件执行“组建”->“组建”命令或直接按F7功能键或单机工具栏Build按钮,可以对源文件进行编译、链接而不运行改程序。

当然也可以先执行“组建”->“编译”(快捷键Ctrl+F7)命令编译文件,再执行“组建”->“组建”(快捷键F7)命令链接文件。

由于VC++有工作区的要求,所以组建时,系统提示需要建立工作区,如图所示。

单机“是”按钮,系统会自动建立工作区,组建后的结果如图所示。

图提示建立工作区图组建源程序结果注意:图下方的“组建”信息窗口中的内容说明了组建的结果,必须保证错误(error(s))数为0才能运行程序。

6)运行文件执行“组建”->“执行”命令或直接按Ctrl+F5键或单机工具栏BuildExecute按钮,可以运行程序,结果显示在用户输出窗口中,如图所示。

图用户输出窗口注意:如果要编辑下一个C源程序,由于新建的文件不会自动加入工作区,因此需要先关闭当前工作区。

方法是执行“文件”->“关闭工作空间”命令,或者关闭后重新启动VC++,再按照上述方法建立、编辑新的C源文件,让VC++自动建立工作区。

7)运行“加法”程序在VC++环境中建立并编辑实现加法运算的源程序,然后组建该文件,结果如图所示。

运行该文件,并按要求输入数据,得到运行结果。

图 VC++环境下组建“加法”程序后的界面实验2 顺序结构程序设计一、实验目的1.掌握上机运行C程序的全过程。

2.掌握各种格式说明符的使用方法。

3.掌握格式输入输出函数scanf()和printf()的用法。

4.熟悉字符输入输出函数getchar()和putchar()的用法。

二、实验内容1.格式说明符的使用。

创建并编辑输入输出各个类型数据的程序,分析各个格式说明符的作用。

2.编写“输入输出字符”程序,功能如下:使用getchar()函数接收一个字符,用printf()函数显示;使用scanf()函数接收一个字符,用putchar()函数显示。

3.编写“求三角形面积”程序,功能如下:输入三角形三边长,求三角形的面积。

已知三角形的三边长a、b、c,则该三角形的面积公式为:09okm其中,()/2=++。

s a b c4.编写“圆柱体”程序,功能如下:设圆柱体的半径r=,圆柱高h=,求出该圆柱体的表面积和体积。

要求:用scanf()函数输入数据,输出时要求有文字说明,取小数点后两位数字。

三、实验指导1.格式说明符的使用(参考教材)2. “输入输出字符”程序1)编程分析(1)需要定义字符型变量存放输入的数据;(2)用scanf()函数输入字符时,要注意不要接收缓冲区中已有的字符。

2)参考程序#include ""main(){char a,b,c;printf(" a character:\n");a=getchar();c=getchar();printf("The character is:%c\n\n",a);printf(" a character:\n");scanf("%c",&b);printf("The character is:");putchar(b);putchar('\n');}3. “求三角形面积”程序1)编程分析(1)该问题的解决过程如下:(2)需要定义实型(float或double)变量存放相应的数据;(3)计算面积需要用到开平方函数sqrt(),该函数原型包含在头文件中,因此需要在程序开始将头文件包含进来;(4)根据实际情况确定各个变量在输出时的宽度和小数位数。

2)参考程序#include “”#include “”main(){float a,b,c,s,area;printf(“Input a,b,c:\n”);scanf(“%f ,%f,%f”,&a,&b,&c);s=(a+b+c)/2;area=sqrt(s*s(s-a)*(s-b)*(s-c));printf(“a=%,b=%,c=%\n”,a,b,c);printf(“area=%\n”,area);}3. “圆柱体”程序1)编程分析(1)该问题的解决过程如下:(2)需要定义实型(float或double)变量存放相应的数据;(3)计算过程中需要用到常数π,为使用方便,在程序开始用宏定义命令define 将常数(即π)用PI表示;(4)输出数据时根据要求确定各个变量的宽度和小数位数(本例采用)。

2)参考程序#include “”#define PImain(){float r,h;double s,v;printf(“Input the value of r and h:\n”);scanf(“%f ,%f”,&r,&h);s=2*PI*r*r+2*PI*r*h;v=PI*r*r*h;printf(“The value of s is:%\n”,s);printf(“The value of v is:%\n”,v); }实验3 选择结构程序设计一、实验目的1.学会使用逻辑表达式表示条件的方法。

2.掌握switch语句的用法。

二、实验内容语句的应用编写计算器程序。

要求从键盘任意输入两个数值,然后输入一个四则运算符,自动完成运算后输出结果。

三、实验指导语句的应用1)编程分析(1)四则运算共有加(+)、减(-)、乘(*)、除(/)4种运算,要做出判断需使用switch语句。

(2)当输入符号为四则运算之外的符号时,不进行任何运算,但应给出相应的提示信息。

当使用提示信息时,switch语句应含有default子句。

2)参考程序#include “”void main(){float x,y;char p;scanf(“%f,%f”,&x,&y);p=getchar();switch(p){case ’+’:printf(“%f+%f=%f\n”,x,y,x+y);break;case ‘-’:printf(“%f-%f=%f\n”,x,y,x-y);break;case ‘*’:printf(“%f*%f=%f\n”,x,y,x*y);break;case ‘/’:printf(“%f/%f=%f\n”,x,y,x/y);break;default:printf(“Input is error!\n”);}}3)程序调试调试程序时,+、-、*、/及非四则运算符的情况都应予以调试。

实验4 循环结构程序设计一、实验目的1.通过本实验,加深对循环控制结构有关概念的理解。

2.掌握二重循环结构程序的设计方法。

二、实验内容1.阶乘累加问题。

编写程序,求1!+2!+3!+…+n!的值。

2.取彩球问题。

有12个彩球:3个白色,5个红色,4个黄色,从中任意取n 个球12≤≤(2n ),求出所有不同的取法。

三、实验指导1.阶乘累加问题1)编程分析(1)本实验内容为求解阶乘问题。

(2)求n!用一个循环即可实现。

(3)求1!+2!+3!+…+n!的值,需要在求阶乘程序之外增加一个外重循环。

2)参考程序#include “”void main(){long int s=1,t;int i,j,n;printf(“n=”);scanf(“%d ”,&n);for(i=2;i<=n;i++){for(t=1,j=1;j<=i;j++)t*=j;s+=t;}printf(“s=%ld\n ”,s);}3)程序调试(1)输入一个不大的正整数,分析程序执行结果。

(2)输入一个零或者负数,分析程序执行结果。

(3)输入一个很大的正整数,分析程序执行结果。

(4)当程序结果不符合要求时,修改程序,直到对任何输入数据都能输出正确的执行结果,或者给出一个明确的提示信息。

例如,当输入数据非法时,给出一个错误的提示信息。

2.取彩球问题1)编程分析本题用到“穷举”算法。

穷举的基本思想是对问题的所有可能性一一测试,直到找到解或将全部可能状态都测试过为止。

“穷举”的核心是依次测试循环体。

循环控制有两种办法:计数法和标志法。

计数法要先确定循环次数,然后逐次测试,完成测试次数后循环结束;标志法是达到某一目标后循环结束。

2)参考程序#incude “”void main(){int n,white,red,yellow,count=0;printf(“Input ”);scanf(“%d ”,&n);printf(“white red yellow\n ”);for(white=1;white<=3;white++)for(red=1;red<=5;red++){yellow=n-white-red;if(yellow>=1&&yellow<=4){printf(“%5d%5d%5d\n ”,white,red,yellow);count++;}}printf(“Total:%d\n ”,count);}3)程序调试(1)输入不小于2并且不大于12的整数值,查看并分析程序结果。

相关文档
最新文档