数据结构课程设计,题目

发布 2022-10-06 03:56:28 阅读 7880

课程设计说明书。

设计题目: 数据结构课程设计。

专业: 计算机班级: 10-6

设计人: 杨同杰 (1001050633

山东科技大学。

2023年 12月 28 日。

一、约瑟夫环。

一)、需求分析。

1本程序中,先输入人数n,再输入输入n个正整数,作为这n个人的密码,接下来初始密码m。

1. 本程序只适用于一个案例。

2. 测试数据。

m=20 n=7 n个人的密码依次 = 3,1,7,2,4,8,4。 出列为:6 1 4 7 2 3 5

二)、概要设计。

1、函数功能在main函数中实现。

void main()

int b,n,m,i,j,k;

linklist head=(linklist)malloc(sizeof(lnode));

lnode *p,*q;

printf("请输入总人数:")

scanf("%d",&n);

q=head;

for(j=1;j<=n;j++)

printf("请输入初值:")

scanf("%d",&b);

if(b<=0)

printf("错误!");

elsep=q->next ;

q->next =p->next ;

printf("%d",p->data .num );

k=p->data .val ;

free(p);

doi=1;

while(i!=k)

q=q->next ;

i++;p=q->next ;

q->next =p->next ;

printf("%d",p->data .num );

k=p->data .val ;

free(p);

}while(q->next !=q);

printf("%d",q->data .num );

free(q);

free(head);

2、程序包括两部分。

1)结点类型。

2)main函数实现约瑟夫环。

三)详细设计。

1、结点类型。

typedef struct data

int num;

int val;

typedata; /定义变量,typdata为变量。

typedef struct lnode

typedata data;

struct lnode * next;

lnode, *linklist; /定义变量,listnode为变量。

linklist head;

2、程序源**。

#include <>

#include <>

typedef struct data

int num;

int val;

typedata; /定义变量,typdata为变量。

typedef struct lnode

typedata data;

struct lnode * next;

lnode, *linklist; /定义变量,listnode为变量。

linklist head;

void main()

int b,n,m,i,j,k;

linklist head=(linklist)malloc(sizeof(lnode));

lnode *p,*q;

printf("请输入总人数:")

scanf("%d",&n);

q=head;

for(j=1;j<=n;j++)

printf("请输入初值:")

scanf("%d",&b);

if(b<=0)

printf("错误!");

elsep=q->next ;

q->next =p->next ;

printf("%d",p->data .num );

k=p->data .val ;

free(p);

doi=1;

while(i!=k)

q=q->next ;

i++;p=q->next ;

q->next =p->next ;

printf("%d",p->data .num );

k=p->data .val ;

free(p);

}while(q->next !=q);

printf("%d",q->data .num );

free(q);

free(head);

四)、调试分析。

1、本程序比较简单,只有一个main函数,功能在main函数中实现,程序还有待优化。

2、调试过程中,由于指针使用不当多次出现错误,对指针的设计还需要熟练掌握。

五)、用户手册。

1、进入程序后按提示输入程序初始数据回车后即可得到结果,输出结果表示依次出列人的序号。输出结果后回车,程序结束。

2、输入过程中若输入有误,程序直接结束。

六)、测试结果。

输入值不符合条件时:

二、停车场管理。

一)、需求分析。

问题描述:设计一个停车场管理系统,模拟停车场的运作。:

基本要求:1.要求以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理;

2.要求处理的数据元素包括如下数据项:汽车“到达”或“离去”信息、汽车牌照及“到达”或“离去”的时刻;

3.若是车辆到达,就输出汽车在停车场内或便道上的停车位置;若是车离去,就输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。

4. 完成该停车场的一些信息统计功能(如每天到达/离开的车次,停车总时数、每天的停车费用等)。

二)概要设计。

1、设计思想。

此停车场管理系统是在一个狭长的通道上的,而且只有一个大门可以供车辆进出,并且要实现停车场内某辆车要离开时,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些辆再依原来的次序进场的功能,就可以设计两个堆栈,其中一个堆栈用来模拟停车场,另一个堆栈用来模拟临时停车场,该临时停车场用来存放当有车辆离开时,原来停车场内为其让路的车辆。至于当停车场已满时,需要停放车辆的通道可以用一个链队列来实现。当停车场内开走一辆车时,通道上便有一辆车进入停车场,此时只需要改变通道上车辆结点的连接方式就可以了,使通道上第一辆车进入停车场这个堆栈,并且使通道上原来的第二辆车成为通道上的第一辆车,此时只需将模拟通道的链队列的头结点连到原来的第二辆车上就可以了。

2、实现方法。

对于此停车场管理系统的实现,就是用两个堆栈来分别模拟停车场以及停车场内车辆为其它车辆让路时退出停车的临时停放地点。至于通道上车辆的停放则用一个链队列来实现,此时,通道上车辆的离开或者进入停车场只需改变此链队列上的结点而已。对于要对停车场内的车辆根据其停放时间收取相应的停车费用,可以记录下车辆进入以及离开停车场的时间,再用时间差乘以相应的单价并且打印出最后的费用就可以实现了。

3、主要模块。

此停车场管理系统,主要分为以下若干模块:

首先定义用来模拟停车场的堆栈以及用来模拟通道的链队列为全局变量,然后编写主函数,在此主函数中实现对其它各个模块的调用。在主函数中首先调用option()函数,出现欢迎用户使用的主界面,然后提示用户进入此停车场管理系统后,再出现一个供用户选择的界面,在用户的选择过程中,程序又分别调用车辆的到达、车辆的离开、停车场内停放车辆的信息以及退出程序这四个函数模块。其中,在车辆的离开那个模块函数中又调用了打印离开车辆信息的函数,在停车场内停放车辆信息的那个模块函数中,又分别调用了显示停车场上车辆信息的函数以及显示便道上车辆信息的函数。

最后,从调鼐的这四个函数中回到主函数结束整个程序的运行。

数据结构课程设计题目

题目1实现两个链表的合并。要求 编一程序将a表和b表归并成一个新的递增有序的单链表c 值相同的元素均保留在c表中 并要求利用原表的空间存放c。测试数据 1 a表 30,41,15,12,56,80 b表 23,56,78,23,12,33,79,90,55 2 a表 30,41,15,12,56,8...

数据结构课程设计题目

题目1 图的遍历。功能 实现图的深度优先,广度优先遍历算法,并输出原图结构及遍历结果。分步实施 1 初步完成总体设计,搭好框架 2 完成最低要求 两种必须都要实现,写出画图的思路 3 进一步要求 画出图的结构,有兴趣的同学可以进一步改进图的效果。要求 1 界面友好,函数功能要划分好。2 总体设计应画...

数据结构课程设计题目

数据结构课程设计 题目与要求。一 实验学时 两周。二 要求 1 题目从以下题目中选择,完成程序设计及设计文档。2 程序的要求 实现的功能要求尽量完善。完善基本功能的基础上,再扩充其它功能。3 课程设计说明书的格式要求 a4纸打印,格式设置统。一 规范 美观。三 题目。1.运动会分数统计 限1 人完成...