天津理工c语言上机实验报告7,天津理工大学 c语言上机报告.doc

计算机与通信工程学院

PAGE

PAGE 12

计算机与通信工程学院

天津理工大学

计算机与通信工程学院

实验报告

(试做)

2009 至 2010 学年 第 一 学期

课程名称

高级程序设计语言 I

学号

学生姓名

年级

专业

教学班号

实验地点

实验时间

20 年 月 日 第 节 至 第 节

主讲教师

孙世温

辅导教师

实验(八)

实验名称

结构体和联合

软件环境

Win XP、Visual C++ 6.0

硬件环境

PC

实验目的

掌握结构体类型的定义和使用;

掌握结构体类型变量的概念和使用;

掌握链表的概念,初步学会对链表进行操作;

掌握共用体的概念和使用;

进一步熟悉Visual C++6.0开发环境下调试程序的基本步骤。

实验内容(应包括实验题目、实验要求、实验任务等)

利用顺序表实现“先进后出”的堆栈

结构体定义:

// 结构体 Stack

struct Stack{

int * List; // 用来存储元素的顺序表

int curNumber; // 用来存储当前元素的总个数

};

函数原型:

void iniStack(Stack * A); // 初始化堆栈

void clearStack(Stack * A); //清空堆栈

void push(Stack * A, ELEMENT obj);//将元素obj压入堆栈的栈顶

void pop(Stack * A);//将当前栈顶的元素弹出栈。要求:栈不为空

ELEMENT get_top(Stack * A); //返回当前栈顶的元素值。要求:栈不为空

int is_empty(Stack * A); //判断当前堆栈是否为空,空返回1,非空返回0

void display(Stack * A); //自顶向下显示堆栈中的元素

已知学生基本信息由学号(长整型)、姓名(字符数组)、性别(字符型)、年龄(整型)组成。定义如下结构类型:

结构体定义:

// 定义结构体:存储学生基本信息

struct STUDENT_NODE {

long int id;

char name[MAX_LEN];

char sex;

int age;

// 指针指向下一个结点,用以形成链表

STUDENT_NODE *next;

};

//定义结构体:存储单向链表

struct STUDENT_LINK{

STUDENT_NODE *top;

};

函数原型:

void iniStudentLink(STUDENT_LINK * L); // 初始化学生链表

void clearStudentLink(STUDENT_LINK * L); //清空学生链表

int isExist(STUDENT_LINK * L, long int id); // 判断该学号的学生信息是否存在

int Add(STUDENT_LINK * L,long int id,char name[],char sex, int age); //添加一个新同学的信息

int Modify(STUDENT_LINK * L, long int id,char name[],char sex, int age); // 根据学号,修改该同学的信息

int Delete(STUDENT_LINK * L, long int id); // 根据学号,从链表中删除该同学的信息

int Search(STUDENT_LINK * L,long int id); // 根据学号,输出显示该同学信息

void ShowALL(STUDENT_LINK * L); // 从头到尾,输出当前所有的同学信息

实验过程与实验结果(可包括实验实施的步骤、算法描述、流程、结论等)

顺序表实现堆栈

运行结果

学生信息链表

附录(可包括源程序清单或其它说明)

顺序堆栈

源代码:

#include

#include

#include

#define MAX_LEN 100

// 堆栈元素类型

// 这里采用 typedef 别名机制,便于修改为别的类型, 如: typedef double ELEMENT;

typedef int ELEMENT;

// 结构体 Stack

struct Stack{

ELEMENT * List; // 用来存储元素的顺序表

int curNumber; // 用来存储当前元素的总个数

};

void iniStack(st

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值