学生信息系统 链表 排序 学生系统 数据结构C程序

上传人:012****78 文档编号:141585772 上传时间:2020-08-10 格式:DOCX 页数:27 大小:162.18KB
返回 下载 相关 举报
学生信息系统 链表 排序 学生系统 数据结构C程序_第1页
第1页 / 共27页
学生信息系统 链表 排序 学生系统 数据结构C程序_第2页
第2页 / 共27页
学生信息系统 链表 排序 学生系统 数据结构C程序_第3页
第3页 / 共27页
学生信息系统 链表 排序 学生系统 数据结构C程序_第4页
第4页 / 共27页
学生信息系统 链表 排序 学生系统 数据结构C程序_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《学生信息系统 链表 排序 学生系统 数据结构C程序》由会员分享,可在线阅读,更多相关《学生信息系统 链表 排序 学生系统 数据结构C程序(27页珍藏版)》请在金锄头文库上搜索。

1、内蒙古工业大学信息工程学院实 验 报 告课程名称: 数据结构(C语言版) 实验名称: 线性表的创建与访问算法设计 实验类型: 验证性 综合性 设计性实验室名 班级: 学号: 姓名: 组别: 同组人: 成绩: 实验日期: 2011年5月16日 内蒙古工业大学信息工程学院预习报告成绩: 指导教师审核(签名): 2011年 5月16日预习报告(一)实验目的数据结构于算法实验是计算机类本科学生计算机软件知识重要的实验环节,它将使学生从实践上学会用高级语言程序设计、实现复杂的数据结构,为大型软件设计奠定基础。本实验以某种线性表的创建与访问算法设计作为实验内容,举一反三,全面、深刻掌握线性结构的实现方法,

2、培养解决问题的能力。(二)实验内容 1、编写生成线性表的函数,线性表的元素从键盘输入;2、编写在线性表中插入元素的函数;3、编写在线性表中删除元素的函数;4、编写输出线性表的函数;5、编写主函数,调用以上各函数,以便能观察出原线性表以及作了插入或删除后线性表的屏幕输出。(三)实验要求1、掌握线性结构的机器内表示;2、掌握线性结构之上的算法设计与实现;3、列表对比分析两种数据结构的相应操作的时间复杂度、空间复杂度,阐明产生差异的原因。(四)问题描述 有一班学生上体育课排队,构成了一个单链表,链表的结点存储了学生的学号、姓名。(五)基本要求(1)从键盘输入学生的信息,建立学生链表。(2)从键盘输入

3、学生的信息,实现学生查询操作。(3)从键盘输入学生的学号值,将学号为x的学生与其右边的学生进行交换。(注:不允许将链表中数据域的值进行交换)(六)实验设计思路 实验实现9个功能,先在主函数main()设计声明每个函数,然后依次对每个函数细化,逐步调试,直到达到该函数的预期功能,即采用自顶向下,逐步细化的设计思路。该实验全部采用单链表,设计一个学生信息系统,通过该系统一次可以完成:1.创建学生系统2.学生系统排序 3.删除学生信息4.增加学生信息 5.查找学生信息6.清除学生信息7.修改学生信息 8.模式查找信息 9.退出学生系统等功能。 实验报告成绩: 指导教师审核(签名): 2011年 5月

4、16日(一) 部分算法流程图pre=std; flag=1; p=std-next;输入查找姓名 choicelenp=NULL?Y N p!=NULL strcmp(p-data.name.chioce)=0 ? N Y没有 pre-next=p-next;学生 free(p);信息 flag=0; pre=p; p=p-next; flag=1 N Y 没有该学生! 1删除学生信息 flag=1;p-std-next;输入姓名匹配字母 seeklen; seeklen=strlen(seek); P!=NULL i=j=0; namelen=strlen(p-data.name); ina

5、melen&jdata.namej=seekj ? N Y i=i-j+1; i+; j=0; j+; j=seeklen ? N Y 输出 匹配姓名 学号; flag=0; p=p-next; flag=1 ? N Y 输入的字符没有学生姓名匹配2学生信息模式查找3选择排序 Pipre=std; pi-next!=NULL pi=std-next; pmin=pi; pj!=NULL pj=pi-next; pminpre=pi; strcmp(pmin-data.name,pj-data.name)0 ? N Y pmin=pj; pjpre=pminpre; pmin-next=NULL

6、 ? N Y pmin!=pi ?N Y pipre-next=pmin; pmin-next=pi-next; pjpre-next=pi; pipre-next=pmin; pi-next=NULL;pjpre-next=pi;ptem=pmin-next;pmin-next=pi-next;pi-next=ptem; pi=pipre-next; pipre=pipre-next; (二)函数算法 函数算法具体见程序代码。(三)调试程序出现的问题及解决的方法编程中出现很多的编译错误,我主要采用对每个函数调试,设断点,不会的问同学,链表的选择排序,在网上搜索,运用自己的程序中,让我更好的掌

7、握了选择排序法。(四)实验心得体会 通过这次试验,让我更好的掌握了链表的使用,用链表解决实际问题,用模块化程序设计思路,对每个函数细化,调试,使得整个程序正确运行,达到预期结果。(五)程序清单/ 学生系统.cpp : 定义控制台应用程序的入口点。/#include#include#include#define len 20#define NULL 0struct studentchar namelen;char numberlen;struct stdnodestudent data;stdnode *next;void createstd(stdnode *std)/创建学生系统 int i

8、=0;char ch; do std-next=(stdnode *)malloc(sizeof(stdnode);std=std-next;printf(t输入学生的学号和姓名:nt);scanf(%s,&std-data.number);printf(t);scanf(%s,&std-data.name);getchar();printf(t继续创建学生信息吗? Y.继续 N.退出nt);scanf(%c,&ch);while(ch=Y);std-next=NULL;void inputstd(stdnode *std)stdnode *p;p=std-next;if(p=NULL)printf(t没有学生信息!n);printf(t现有学生信息如下表:n);if(p!=NULL) printf(tn);while(p!=NULL)printf(t%10s %11sn,p-data.number ,p-data.name); p=p-next; if

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号