永发信息网

数据结构 高手~~come in~~

答案:2  悬赏:50  手机版
解决时间 2021-07-19 13:06
  • 提问者网友:太高姿态
  • 2021-07-19 02:29

谁会做哇~~~做几道算几道吖~~

===============================================================

树型结构在计算机中的应用非常广泛,在软件设计中,随时都用到树型结构,并且采用树型结构对于数据的分类、操作等非常方便。

列举一个你所常见的树型结构,并应用该结构设计一个简单的数据维护系统,要求:

1、阐明你的应用系统,以及其总体设计思路;

2、就应用的树型数据结构进行C语言结构性描述;

3、将树型数据结构中的数据存放在一个文本文件中,并给出其具体结构编码方式,用以区分某个结点所在的位置;

4、完成树型结构从文件中的读取操作;

5、完成树型结构在屏幕的显示,要求直观明了

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

字符串操作又分为单个字符串操作或多个字符串操作,单个 字符串操作将每个字符视为链表元素,进而构成整个字符串;多个字符串操作,将字符串视为链表中的元素,从而链表即为字符串集合。

设计者可以根据个人不同的需求,编写其中的一个操作。

1、应用链表设计。

2、建立字符串结构链表元素结构以及整个链表结构;

3、定义多种不同的操作,然后用程序实现。

------------------------------------------------------------------------------------------

对于C语言 ,通常应用的是字符输出,而字符输出最常用的函数则是printf ,对于该函数一个最主要的功能就是在当前的输出设备上当前光标处输出所要输出的内容,同时移动当前输出设备上光标的位置。
应用printf函数进行输出,只能被动地输出内容,这就是我们常用的输出方法,在设计程序时,事先对于输出的字符进行输出位置的梳理,而后按照行列输出字符。这就是我们在设计输出多个*状图形时所遇到的,得用相当的程序代码对输出字符位置进行排序。
事实上,我们还有其他的方法,比如,采用先定义显示一个图形,而后再显示其他的图形。
定义函数 XianShiTuXing(int x ,int y ,int n) ,该函数的主要功能是在输出设备上的(x,y)坐标处显示基于n个*的星状图形。
假定星状图形为
*
**
***
****
坐标(x,y),x为垂直方向(行),y为水平方向(列)

则程序代码为:

XianShiTuXing(int x ,int y ,int n)
{
int i,j;
for (i=1;i<=n;i++)
{
MoveCursor(x+i-1,y);
for (j=1;j<=i;j++)
printf("*");
printf("\n");
}
}

当然函数MoveCursor(x+i-1,y)是移动光标。

如果我们采用了以上函数,则在水平方向上显示k个相同图形,我们可采用:

int i,j;
for (i=0;i<k;i++)
XianShiTuXing(x ,y + i* n , n);


其中 函数 MoveCursor(x+i-1,y) 可参见conio.h 中的函数gotoxy(x,y)。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

建立一个学生课程成绩的成绩分析系统:
1、要求数据从文件中读取,并可将编辑数据进行保存;
2、学生课程成绩其数据结构为:学号、姓名、班级、数学分析、高等代数。
3、检索数据:姓名检索、学号检索,提供单个数据记录显示及多个匹配记录显示;
4、提供数据输入、编辑修改界面;
5、提供一个系统主界面;
6、提供排序界面。

要求采用单向链表方式实现。

链表结构:

typedef struct node
{
char stuID[20];
char stuName[20];
char stuClass[20];
float MathAny;
float MathAlge;
struct node *next;
} StuNode;


typedef struct
{
StuNode *head;
StuNode *tail;
int stunum;
}StuList;

3假定我们改变要求:

*
***
*****
*******
*********
*******
*****
***
*

我们可以设定在水平方向上输出多个,具体数量用参数m表示,对于m=2 构成以下图案。

* *
*** ***
***** *****
******* *******
********* *********
******* *******
***** *****
*** ***
* *

同样,我们再设定在垂直方向上,可以放置多个星状图形,参数定义为k,如k=2,则形状为:

*
***
*****
*******
*********
*******
*****
***
*

如m=2 ,k=2 ,形状为:

* *
*** ***
***** *****
******* *******
********* *********
******* *******
***** *****
*** ***
* *

* *
*** ***
***** *****
******* *******
********* *********
******* *******
***** *****
*** ***
* *

同时,如果我们所要显示的不是*,而是任何一个字符,其参数为DispChar ;

char DispChar='*';

对于该参数我们可以参用输入的方式。

以下是我们本次的作业,根据上述分析,设计程序,要求四个输入参数:DispChar,n ,m ,k;

假如有时间,还可以进行详细设计,设计出更多、更精细的程序,譬如,将4个参数放在一个配置文件中,将输出直接送到文件中等等。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

一个程序的实现,关键看设计,程序的设计体现个人的软件水平,而语言的实现,相对于程序设计,应该是一个比较简单的问题。

对于星状图形的显示,从程序设计的角度上来看,可以进行深层次的分析,从而做出更深层次的程序设计。

以下是对字符形状图形的分析:

假定我们采用的不是*,而是任何一个其他字符,或者是我们输入的任何一个字符都应是允许的。
如果我们事先给定一个矩形字符图形,而不是由我们事先在程序中定义的菱形或其他图形,应该采用什么样的方法?
假定对于给定字符图形,我们可以对该图形施加一些变换,如旋转90、180、270、360度后得到的图形,系统如何设计。
对于给定图形我们定义为 SG , 旋转90、180、270、360后得到的图形为:XG1,XG2,XG3,XG4 , 我们应用以下公式 SG + XG2 + XG4 得到的图形是什么?其中SG + XG2 + XG4 表示将给定图形SG 的右边附加图形XG2再在右边附加图形XG4。
同样对于下述公式又将得到什么样的图形:
SG + XG2 + XG4

XG2 + XG4 + SG

如果我们在定义平移、水平翻转、垂直翻转等图形变换,又将得到什么样的图形,应该采用什么样的程序设计方法。

以上分析,可设计程序,也可给出设计分析,本题的主要目的是提供一个关于字符图形的程序设计方法的讨论课题。不要求设计出完整程序,有兴趣的同学,可以进行讨论,可以提交关于该程序的设计方法的文字性描述。

最佳答案
  • 五星知识达人网友:長槍戰八方
  • 2021-07-19 03:20
哇,好强哦,我虽然不知道是什么很么,但是来看看
全部回答
  • 1楼网友:西岸风
  • 2021-07-19 03:46
太多了,无法回答
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯