C课程设计

发布 2022-09-30 18:59:28 阅读 5043

成绩评定表。

课程设计任务书。

一、课程设计目的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 命...