成绩评定表。
课程设计任务书。
一、课程设计目的1
二、课程设计内容和要求1
三、题目一设计过程2
四、题目二设计过程24
五、设计总结36
六、参考文献36
本学期我们对《数据结构》这门课程进行了学习。这门课程是一门实践性非常强的课程,为了让大家更好地理解与运用所学知识,提高动手能力,我们进行了此次课程设计实习。这次课程设计不但要求学生掌握《数据结构》中的各方面知识,还要求学生具备一定的c语言基础和编程能力。
1)题目一的目的:
1.掌握栈的特点及其描述方法。
2.掌握链式存储结构实现一个栈。
3.掌握链栈的各种基本操作。
4.掌握栈的典型应用的算法。
2)题目二的目的:
1.掌握线性表的特点。
2.掌握线性表的顺序存储结构和链式存储结构的基本运算。
3.掌握线性表的基本操作。
1)题目一的内容和要求:
1).设计一个选择式菜单。
栈子系统。1 ……入栈。
2 ……出栈。
3 ……显示。
4 ……数制转换。
0 ……返回。
请选择菜单号(0…4):
2).设计一个整型数据元素的链栈。
3).编写入栈、出栈和显示栈中全部元素的程序。
4).编写一个把十进制数转换成八进制数的应用程序。
2)题目二的内容和要求:
通讯录实质上是一个线性表,由于通讯录长度不确定,且插入或删除操作比较频繁,因此,采用单链式存储结构。要求实现如下功能:
1).设计一个选择式菜单。
通讯录管理系统。
1 ……通讯录单链表的建立。
2 ……通讯者的插入。
3 ……通讯者的删除。
4 ……通讯者的查询。
0 ……退出。
请选择菜单号(0…4):
2).编程实现通讯录单链表的建立、通讯者的插入、通讯者的删除、通讯者的查询、通讯录的输出。
1、题目分析
本题要求合理地设计一个栈的结构及入栈、出栈、删除、查找等基本操作,并运用此结构实现数制转换。
2、算法描述。
首先定义一个结点结构体,指针域包括两个指针,分别指向前驱结点和后继结点,数据域为一个datatype类型的变量,其中datatype类型为宏定义;在定义一个栈结构体,结构体内包括两个指针,分别为栈顶指针和栈低指针,还有一个int型记录栈的长度。
欢迎界面后,进入主菜单,主菜单用switch设计,其中调用函数num,该函数可返回有效的菜单号,可屏蔽并提示错误信息及重新输入,菜单下调用了其他功能函数,菜单内除退出和初始化函数外所有的功能函数均存放在下。
下面仅详细阐述一下各功能模块的工作原理。
入栈为栈的首次赋值,利用do{}while();可按需求循环输入多组信息,并及时退出返回到主菜单,在实现循环多组输入时调用了函数push,push为机械入栈一个新元素,将参数nn,入栈到栈tt内,栈的长度加一。
出栈函数pop中,首先判断栈是否为空,为空时,不可出栈;非空时,输出栈顶元素及栈的长度,并删除栈顶节点,栈的长度减一。信息输出完毕后按任意键返回主菜单。
显示函数show中,即利用do...while循环多次调用出栈函数,每次输出时要按任意键继续一次,以保障画面整洁。信息输出完毕后按任意键返回主菜单。
数制转换函数chang中,大体结构包括一个大的do...while允许多次使用信息转换,do中首先输入数及其进制和预期进制,然后判断是否为十进制,经费是禁止的数字转换为十进制,再将其循环除以预期进制,将其余数存在新建号的栈中,直到余数为零,停止循环,然后依次出栈,将栈顶元素依次显示出来,即转换结束。可选n或y,继续下一次转换,或者返回主菜单。
3、源**。
#ifndef st_h
#define st_h
#include<>
#include<>
#include<>
#include<>
typedef int datatype;
typedef struct node
struct node *pro;
datatype data;
struct node *next;
nn;//双向链栈的结点。
typedef struct
nn *top;
nn *base;
int size;
st;//栈。
主函数。框架界面函数和初始化退出函数。
void initiate(st *tt);/栈的初始化及双向链的初始化。
void jm();界面。
int num();菜单序号选择。
void exit();退出。
具体功能函数。
void input(st *tt);/入栈。
void push(st *tt,datatype nn);/机械入栈。
int pop(st *tt);/机械出栈。
void show(st tt);/显示。
void change(st tt);/数制转换。
#endif
#include""
void jm()/界面函数。
int ch;
st tt;
initiate(&tt);
printf("\t\t欢迎您使用 《栈子系统》 !n ")
printf("\t\t\t\t设计者:马舒阳(1203070102)");
getch();do
system("cls");
printf ("n\t\t\t\t栈子系统");
printf ("tn");
printf ("t1 ……入栈n");
printf ("t2 ……出栈n");
C 课程设计
自动走迷宫小游戏。根据课堂讲授内容,做相应的自主练习,消化课堂所讲解的内容 通过调试典型例题或习题积累调试c 程序的经验 通过完成辅导教材中的编程题,逐渐培养学生的编程能力 用计算机解决实际问题的能力。同时在设计的过程中发现自己的不足之处,对以前所学过的知识理解的更加深刻,掌握得更加牢固。迷宫生成。...
c 课程设计
哈尔滨 课程设计报告。课程 c 学号 姓名 班级 教师 1.管理系统的功能说明。课程信息管理 能够增加数据,删除数据,显示数据,修改数据,按姓名和首字母查询数据和一些基本的程序功能。2.存储数据的描述。coursenumber 课程号coursename 课程名subject 所属专业xingzhi...
C课程设计
面向对象程序设计课程设计。一 设计要求。1 课程设计以3 4人为一组,每人一个模块 2 课程设计时间为1周 在处理系统的时候,要从分析系统的需求入手,根据系统需求进行详细分析,明确系统功能,然后设计系统整体架构以及划分系统模块,按照模块分配小组中每个组员的具体任务,完成设计。二 系统设计规范。1 命...