- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《数据结构与算法分析》
实验报告书
学 期: 2014 - 2015 学年第 2 学期
班 级: 信息管理与信息系统2班
学 号: 1310030217
姓 名: 田洪斌
实验类别: (★)基础型 ( )设计型
实验时间:
成 绩:
信息管理系
实验内容
根据教材所给类C语言算法,结合C语言特点,实现程序完成对于以整型数据为数据元素的线性单链表的定义、初始化、数据的显示等操作。
实验目的
1、掌握线性表的链式结构的静态及操作特点;
2、掌握线性表的链式结构的存储结构和常见操作在C语言环境中的实现方法;
需求分析
用线性表的链式结构表示来完成输入、编辑、调试、运行的全过程。并规定:
手动输入学生信息
按照整形输出
程序可以输入、调试、运行、显示
测试数据:学生学号、学生姓名、学生成绩
系统设计
1.数据结构设计
查找中分别有按学号查与按姓名查找
程序结构设计
(1)程序中主要函数功能:
void struct student *creat()////////////////////学生信息档案的建立函数
void print(struct student *head)//////////////输出学生信息函数
void meun()/////////////////////////////////////////菜单函数
void main()///////////////////////////////////////////主函数
函数调用关系
见图4-1
图4-1 函数关系图
调试分析
算法和函数中出现了一些系统无法识别的变量,照成程序出现了错
误。原因是没有注意算法与源程序的区别。算法是简单的对源程序进行描述
的,是给人阅读的,所以有些变量没有定义我们就能看懂。而程序中的变量一定要先定义才能够被引用,才能被计算机识别。
在调试过程中遇到问题是利用C++程序进行调试的,找出错误并改正。
学会如何定义线性表的链式结构,如何调用函数。
学会线性表的链式结构的存储结构和常见操作在C语言环境中的实现方法。
测试结果
1.运行时输入正确密码进入主界面,系统根据输入的数字选项来调用相应的函数。主要实现“功能选择”的界面,在这个界面里有显示系统的五大功能,根据每个功能前面的序号进行选择。以下为该界面:
图4-2 主界面
2.当选择1录入完成输入时,运行结果如下图:
图4-3 学生信息的输入
3.当录入完成输入显示学生信息时,运行结果如下图:
图4-4学生信息的显示
经验和体会
本次试验利用C语言编程,完成了链表的建立、链表的输出、函数之间的调用,提升了我的C语言编程能力,同时也加深了我对数据结构中关于线性表结构有关基础概念、基本算法的理解,同时,通过程序的调试及观察分析程序运行的情况,也进一步增加了我调试程序的经验,并使我认识到了线性表的结构。
程序源代码
#includestdio.h
#includemalloc.h
#includestring.h
#define LEN sizeof(struct student)
struct student
{
char name[30];
long num;
float score;
struct student*next;
};
int n=0; //链表的个数
//////////////////
struct student *creat()
{ void meun();
struct student *head;
struct student *p1,*p2;
n=0;
printf(请录入学生信息\n);
printf(提醒:\n先录入学号\n再录入姓名\n最后录入成绩\n);
p1=p2=(struct student*)malloc(LEN);
scanf(%ld,%s,%f,p1-num,p1-name,p1-score);
head=NULL;
while(p1-num!=0)
{
n=n+1;
if(n==1) head=p1;
else p2-next=p1;
p2=p1;
p1=(struct student*)malloc(LEN);
printf(提醒:\n先录入学号\n再录入姓名\n最后录入成绩\n);
scanf(%ld,%s,%f,p1-num,p1-name,p1-score);
文档评论(0)