数据结构课内大作业Word格式文档下载.docx

上传人:b****4 文档编号:7324028 上传时间:2023-05-08 格式:DOCX 页数:13 大小:21.11KB
下载 相关 举报
数据结构课内大作业Word格式文档下载.docx_第1页
第1页 / 共13页
数据结构课内大作业Word格式文档下载.docx_第2页
第2页 / 共13页
数据结构课内大作业Word格式文档下载.docx_第3页
第3页 / 共13页
数据结构课内大作业Word格式文档下载.docx_第4页
第4页 / 共13页
数据结构课内大作业Word格式文档下载.docx_第5页
第5页 / 共13页
数据结构课内大作业Word格式文档下载.docx_第6页
第6页 / 共13页
数据结构课内大作业Word格式文档下载.docx_第7页
第7页 / 共13页
数据结构课内大作业Word格式文档下载.docx_第8页
第8页 / 共13页
数据结构课内大作业Word格式文档下载.docx_第9页
第9页 / 共13页
数据结构课内大作业Word格式文档下载.docx_第10页
第10页 / 共13页
数据结构课内大作业Word格式文档下载.docx_第11页
第11页 / 共13页
数据结构课内大作业Word格式文档下载.docx_第12页
第12页 / 共13页
数据结构课内大作业Word格式文档下载.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据结构课内大作业Word格式文档下载.docx

《数据结构课内大作业Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据结构课内大作业Word格式文档下载.docx(13页珍藏版)》请在冰点文库上搜索。

数据结构课内大作业Word格式文档下载.docx

可以按项目编号查询取得前三或前五名的学校。

规定:

输入数据形式和范围:

20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)

输出形式:

有中文提示,各学校分数为整形

界面要求:

有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。

存储结构:

学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。

(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;

测试数据:

要求使用1、全部合法数据;

2、整体非法数据;

3、局部非法数据。

进行程序测试,以保证程序的稳定。

测试数据及测试结果请在上交的资料中写明;

(2)订票系统

通过此系统可以实现如下功能:

录入:

可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)

查询:

可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);

可以输入起飞抵达城市,查询飞机航班情况;

订票:

可以订票(订票情况可以存在一个数据文件中,结构自己设定),如果该航班已经无票,可以提供相关可选择航班;

退票:

可退票,退票后修改相关数据文件;

客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。

修改航班信息:

当航班信息改变可以修改航班数据文件

要求:

根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;

(3)学生信息管理的数据检索

通过该程序实现如下功能

●建立学生信息管理的数据文件stud.dat;

文件中至少包含15个学生的信息;

每个学生至少包括:

学号、姓名、年龄等5项内容(另2项自定),当再次运行程序时从该文件中读取数据;

●可以添加(插入、追加)学生信息;

●可以修改某个学生的某项信息。

●为该数据信息建立一个索引:

每个学生信息记录在索引中有一个索引项,其包含该学生的学号、记录的位置(即记录在文件中的序号);

索引文件采用平衡二叉(AVL)树。

程序应能根据输入的学号通过索引进行查找;

并且,你所建立的索引需要保存到文件中,以便重复使用。

根据以上功能说明,设计学生信息建立程序,学生信息索引系统,设计程序完成功能;

(4)文章编辑

通过该程序实现如下功能:

功能:

输入一页文字,程序可以统计出文字、数字、空格的个数。

静态存储一页文章,每行最多不超过80个字符,共N行;

相关要求:

●分别统计出其中英文字母数和空格数及整篇文章总字数;

●统计某一字符串在文章中出现的次数,并输出该次数;

●删除某一子串,并将后面的字符前移。

●存储结构使用线性表,分别用几个子函数实现相应的功能;

输入数据的形式和范围:

可以输入大写、小写的英文字母、任何数字及标点符号。

●分行输出用户输入的各行字符;

●分4行输出"

全部字母数"

、"

数字个数"

空格个数"

文章总字数"

输出删除某一字符串后的文章;

根据以上功能说明和输入/输出要求,设计程序完成相关的文字编辑功能和相应的输入输出功能。

(5)校园导游程序

用无向网表示你所在学校的校园建筑平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的通路,存放路径长度等信息。

要求实现以下功能:

●查询各建筑的相关信息;

●查询图中任意两个建筑间的最短路径;

●查询图中任意两个建筑间的所有路径。

根据以上功能说明,设计校园建筑平面图的建立、查询,任意两个建筑间的最短路径查询等功能,并设计程序完成功能。

三、报告格式

1.问题描述:

包括目标、任务、条件和约束的描述。

2.设计:

⑴数据结构设计和核心算法设计描述;

⑵各个程序模块必须要有相应的注释;

⑶主要程序模块的输入、处理(算法框架描述)和输出描述;

⑷主要程序之间的调用与被调用关系等。

3.测试:

测试范例,测试结果,测试结果的分析与讨论,测试过程中遇到的主要问题及所采用的解决措施.

4.使用说明和报告小结:

⑴使用说明主要描述如何使用你的程序以及使用时的主要事项;

⑵在小结中说明程序的改进思想、经验和体会,并回答教师布置的讨论题。

5.各个函数功能说,运行示例的结果。

6.将以上各项文字材料及程序清单等装订成册,形成一个完整的实验报告。

附录:

关于文件操作

C语言的文件操作主要有三个步骤:

Ø

打开文件

打开文件使用函数fopen(“文件名”,”方式”);

其中,”文件名”可以是字符串变量表示,它告诉系统要打开的文件的文件名,一般应为文件全名;

“方式”为打开该文件欲进行什么操作,如“读”/r,或者“写”/w等。

该函数执行后返回所打开文件缓冲区指针。

所以,一般需要:

先定义一个文件类型的指针,如:

FILE*fp;

然后,fp=fopen(“D:

\mydata.dat”,”w”);

若打开不成功,则指针值为NULL。

文件读写

读/写文件主要有如下几组函数:

●fprintf(fp,”格式描述串”,<

输出列表>

),写数据到文件

●fscanf(fp,”格式描述串”,<

变量列表>

),从文件读数据

●fwrite(”数据缓冲区地址”,”记录字节数”,”记录数”,fp),写记录数据到文件(二进制)

●fread(”数据缓冲区地址”,”记录字节数”,”记录数”,fp),从二进制文件中读数据

●fputc()和fgetc(),读/写数据为字符类型。

当把文件中的数据读到内存后,可以对其中的数据进行所需要的操作(如通过赋值语句等对先观数据进行修改等)。

这阶段看作是对文件数据进行实质性操作的阶段。

关闭文件

关闭文件用函数:

close(fp);

其中,fp为你所要关闭的文件指针,当一个程序中对多个文件进行操作时,特别注意不要关闭不希望关闭的文件。

此外,数据存储到文件中时,数据的存储格式也有不同,即通常所说的“文本文件”和“二进制文件”。

文件读写示例:

例一.将0-14这15个整数存入文件file.dat

#include<

stdio.h>

#definemax15

/*以文本方式存储15个整数*/

voidsave_dat()

{FILE*fp;

inti;

if((fp=fopen("

d:

\\file.dat"

"

w"

))==NULL)

{printf("

cannotopenfile\n"

);

/*打开D盘根目录下的文件file.dat,注意:

因为\是C的转义字符,所以需要再加一个\。

*/

return;

}

for(i=0;

i<

max;

i++)

fprintf(fp,"

%d"

i);

printf("

Datahavebeensavedtoafile\n"

fclose(fp);

}

main()

{

save_dat();

当用记事本打开数据文件file.dat,可以看到0-14这15个数以字符(文本)格式存储在文件中,并且,这15个数据是紧挨着存储的。

当再用fscanf(“%d”,&

i)从该文件中读取这些数据时、将不能正确读取、故需要注意数据存储格式。

可以修改fprintf()为:

for(i=0;

%6d"

这样,每个整数占6位宽度,存储时各数据之间就留有空格,再用fscanf(“%d”,&

i)读取时,每个空格将成为数据的分界符;

但是,如果将fscanf(“%d”,&

i)修改为

fscanf(“%d,”,&

i)/*多一个逗号*/

那么,在读取数据时,将按格式描述串中约定的逗号作各个数据之间的分隔符,此时,需要将存储文件是的fprintf()对应地修改为:

%d,"

用该语句存储数据的结果(从记事本打开看),可以看到每个数据之间也存储了逗号(最后一个数据之后也有逗号)。

当然,这15个整数也可以以二进制格式存储到文件中,如下程序即是:

/*用二进制方式存储0-14*/

wb"

fwrite(&

i,sizeof(int),1,fp);

Datahavebeensavedtoafile\n"

运行该程序并用记事本打开文件file.dat,所看到的数据就不再是ASCII码格式,而是以整数的内码(二进制补码)存储的了。

因此,也只能采用对应的语句(fread)读取数据。

例二.存储记录(结构体)数据

以下程序是定义了学生信息结构体,然后输入4个学生信息、存入文件d:

\stud1.dat

#definesize4

/*建立学生信息-结构体-数据文件*/

structstud_type

{charname[10];

intnum,age;

charaddr[15];

}stud[size];

\\stud1.dat"

size;

if(fwrite(&

stud[i],sizeof(structstud_type),1,fp)!

=1)

filewriteerror!

\n"

printf("

{inti;

PleaseentertheStudentInformation:

scanf("

%s%d%d%s"

stud[i].name,&

stud[i].num,&

stud[i].age,stud[i].addr);

用记事本打开数据文件stud1.dat,看到学生信息中的姓名、地址这两个字符串数据是按SACII码存储的,但学号和年龄(数值)却是按内码存储的。

对应的读取该数据文件中数据的程序如下:

/*从记录数据文件中读取学生信息数据*/

FILE*fp;

fp=fopen("

rb"

if(fp==NULL){printf("

fileopenerror!

return;

{fread(&

stud[i],sizeof(structstud_type),1,fp);

%-10s%4d%4d%-15s\n"

stud[i].name,stud[i].num,stud[i].age,stud[i].addr);

可以验证,存入的数据被正确地读取、显示。

当然,也可以将结构体(记录)采用文本格式存储到文件中,看入下程序:

/*建立学生信息-结构体-数据文件,用文本格式存储*/

\\stud3.dat"

fprintf(fp,"

%-10s%5d%3d%-15s"

fclose(fp);

scanf("

用记事本打开文件stud3.dat,可以看到,记录(结构体)中的数值数据也以SACII码存储的(注意比较数据文件stud1.dat和stud3.dat在记事本中的显示区别)。

更多的知识和示例,可以参考C程序设计教程。

其他相关知识

1)用户程序的文件读写,实际上是在文件缓冲区中进行,系统自动为文件的读写设置一个文件指针,每从文件中读、写一个数据单位(如文本文件则以字节为单位、如果是记录文件则以结构体大小为单位),指针自动移动一个数据单位。

所以,C还提供了函数rewind()、fseek()和ftell(),主要用来定位指针。

当用户程序对文件进行写操作时,数据并非立即写入磁盘文件,而是暂存于缓冲区中,当缓冲区满或执行关闭文件操作时,系统才将缓冲区中的数据写入文件。

这就说明程序在文件操作结束使用关闭文件语句关闭的重要性。

2)对于非流式文件(如文本文件、缓冲文件系统),如果要修改文件中某些数据(并写入文件),通常采用复制的方法(复制完成后再将原文件删除并将复制的文件改名),因为,这类文件是顺序文件。

3)部分目录操作函数参考

cddir(char*path)dir.h

改变当前目录(缺省目录)到path指定的路径。

Path参数为路径名的字符串(所以用指针类型)。

findfirst(char*filename,structffblk*fblk,intattrib)

在头文件dir.hdos.h

其中:

filename为文件全名(带路径)、可以使用通配符查找一类文件;

structffblk为C定义的文件控制块的结构体,用户实参名为fblk,在打开文件时由系统自动建立该结构体并返回其位置(指针),用户可以访问其成员fblk.ff_name(所查到的文件名)等;

attrib是告诉系统要查的文件的属性(如归档、只读、系统、目录等),C提供的参数常量有:

FA_RDONLY只读

FA_HIDDEN隐藏

FA_SYSTEM系统

FA_LABEL磁盘卷标

FA_DIREC目录

FA_ARCH归档

当查找成功返回0,否则返回-1等。

该函数在指定的路径下查找指定的文件,如果找到第一个则返回0,ffblk.ff_name返回文件名。

findnext(structffblk*fblk)dir.h

该函数与findfirst()配合使用,当要查找一类文件的下一个文件时使用这个函数继续查找。

mkdir(char*pathname)dir.h

创建pathname指定的(子)目录。

rmdir(char*pathname)dir.h

删除pathname指定的目录。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2