77范文网 - 专业文章范例文档资料分享平台

《数据结构实验》指导书(实验1)2010

来源:网络收集 时间:2020-02-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

实验一 顺序表的基本操作

一、 实验目的

1.掌握使用VC++6.0调试程序的基本方法; 2.掌握线性表的顺序存储结构的类型定义;

3.掌握顺序表的基本操作的实现,如:插入、删除、遍历、查找、排序、修改、合并等; 4.掌握顺序表的应用。

二、 实验环境

1.台式计算机每人一台; 2.软件:Visual C++6.0

三、 注意事项

在U盘上创建一个以“学号姓名”命名的文件夹(如:20090001张三),专门用于存储数据结构实验的程序及实验报告、处理的输入数据。

四、 实验内容

示例程序:简易学生信息管理系统(SqList.cpp)

本简易学生信息管理系统要求以顺序表作为学生信息的载体,并实现学生信息的查询、添加、删除、统计、排序、修改、保存等基本功能。本示例程序已经实现了简易学生信息管理中的查询、添加和保存等功能,要求学生对该系统进行完善,继续添加相关函数以提高其实用性。

1. 文件结构设计

a) 原始数据:保存在文件input1.txt中。 b) 输出数据:保存在文件output1.txt中。

2. 数据结构设计

//顺序表存储结构定义

#define MaxSize 50 //线性表的最大容量,假设为50 typedef struct Stu{ long int num;//学号 char name[20];//姓名 char sex;//性别 int age;//年龄

int score;//分数

}Elemtype;//定义数据元素为学生信息 typedef struct SqList { Elemtype *data;

int length; // 线性表长度 }SqList; // 顺序表数据类型为SqList 3. 程序结构

a) 函数说明

int Menu();//系统主菜单 int QMenu();//查询菜单

void PrintElem(Elemtype a);//打印输出数据元素a的各数据项 void Init_SqList(SqList &L);//构造一个空的顺序表L void SaveList(SqList L,FILE *out);//保存顺序表L的数据 void Creat_SqList(SqList &L,FILE *in); //建表

void Traver_SqList(SqList L); //查询(遍历顺序表L) SqList Insert_SqList (SqList &L); //添加 b) 函数实现

//基本操作的实现

int Menu()//系统主菜单 { int n; printf(\ printf(\学生信息管理系统******************\\n\\n\ printf(\导入数据\\n\ printf(\查询(全部信息、男生信息、女生信息)\\n\ printf(\添加学生信息\\n\ printf(\删除学生信息\\n\ printf(\统计人数(男生、女生、不及格、优秀等)\\n\ printf(\排序(升序、降序)\\n\ printf(\修改(修改姓名、性别、年龄、分数等属性值)\\n\ printf(\存盘\\n\ printf(\退出\\n\\n\ printf(\欢迎访问**********************\\n\ printf(\ scanf(\ return(n); }

int QMenu()//查询菜单 { int n; printf(\欢迎进入查询系统************\\t\\n\ printf(\全部信息\ printf(\男生信息\

2

《数据结构实验》指导书

printf(\女生信息\ printf(\退出\\t\ printf(\ scanf(\ return(n); }

void PrintElem(Elemtype a)

{//打印输出数据元素a的各数据项,即输出单个学生信息 printf(\ a.num,a.name,a.sex,a.age,a.score); }

void Init_SqList(SqList &L) {//构造一个空的顺序表L L.data=(Elemtype *)malloc(MaxSize*sizeof(Elemtype)); if(!L.data) exit(1); L.length=0; }

void Creat_SqList(SqList &L,FILE *in)

{//建表,从文件指针in所指文件读取数据,以尾插法建立顺序表L int i; fscanf(in,\读取数据元素个数,即表长n //printf(\表长n=%d\\n\ for(i=0;i

L.data[i].name,&L.data[i].sex,&L.data[i].age,&L.data[i].score);

}

void Traver_SqList(SqList L)

{//遍历顺序表L(输出L中的数据序列)

//查询(1.全部信息 2.男生信息 3.女生信息 4.退出 ) int i,choice=QMenu(); switch(choice) { printf(\学号 姓名 性别 年龄 分数)\\n\ case 1://全部信息 for(i=0;i

L.data[i].name,L.data[i].sex,L.data[i].age,L.data[i].score);*/

printf(\

3

case 2://男生信息 for(i=0;i

SqList Insert_SqList (SqList &L)

{// 在顺序表L的第 i 个位置上插入(添加)一个新元素 Elemtype x; int i; printf(\请输入插入的位置(1..%d)i=\ scanf(\

if ((i<1) || ( i>L.length+1)) //检查插入位置的正确性 { printf (\插入位置i不合理!\ } //不合理,中止程序运行 if (L.length >= MaxSize) // 顺序表是否已满 { printf (\“顺序表已满,不能再插入!”\ exit(1); } // 表满,不能插入 printf(\请输入添加的元素(学号 姓名 性别 年龄 成绩)\\n x=\ scanf(\

for (int m=L.length-1; m>=i-1; --m) L.data [m+1]=L.data[m];// 数据后移

//L.data [m+1] = L.data[m]; // 数据后移 L.data[i-1]=x;//新元素插入 // L.data [i-1] = x; //新元素插入 L.length++; //表长+1 return L; //插入成功,返回 }

void SaveList(SqList L,FILE *out)

{//将顺序表L的数据存入文件output1.txt int i; fprintf(out,\保存表长 for(i=0;i

4

《数据结构实验》指导书

fprintf(out,\

L.data[i].num,L.data[i].name,L.data[i].sex,L.data[i].age,L.data[i].score);

}

c) 主函数 void main()

{//通过文件input1.txt输入数据,结果输出到文件output1.txt //打开输入输出文件 FILE *in,*out;

if((in=fopen(\ { printf(\ exit(0); }

if((out=fopen(\ { printf(\ exit(0); } int choice; SqList L;

Init_SqList(L);//系统文件初始化,构造空表L while(1) { choice=Menu(); switch(choice) {

case 1: Creat_SqList(L,in); //导入数据,根据文件input.txt读入的数据建立顺序表L

break;

case 2: Traver_SqList(L);//查询,输出顺序表

break;

case 3: Insert_SqList(L);// 在顺序表L中插入一个新元素

break;

5

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库《数据结构实验》指导书(实验1)2010在线全文阅读。

《数据结构实验》指导书(实验1)2010.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/779457.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: