学生信息系统链表排序学生系统数据结构C程序_第1页
学生信息系统链表排序学生系统数据结构C程序_第2页
学生信息系统链表排序学生系统数据结构C程序_第3页
学生信息系统链表排序学生系统数据结构C程序_第4页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

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

4、绩:指导教师审核(签名):2011年 5 月 16 日(一)部分算法流程图1删除学生信息pre=std;flag=1;p=std-next;输入查找姓名choicelenp=NULL?YNp!=NULLstrcmp(.chioce)=0 ?NY没有学生信息pre-next=p-next;free(p);flag=0;pre=p;p=p-next;flag=1NY没有该学生!2学生信息模式查找flag=1;p-std-next;输入姓名匹配字母seeklen;seeklen=strlen(seek);P!=NULLi=j=0;namelen=strlen(p-data.na

5、me);inamelen&j=seekj?NYi=i-j+1;i+;j=0;j+;j=seeklen ?NY输出匹配姓名学号 ;flag=0;p=p-next;flag=1?NY输入的字符没有学生姓名匹配3 选择排序Pipre=std;pi-next!=NULLpi=std-next;pmin=pi;pj!=NULLpj=pi-next;pminpre=pi;strcmp(,)0 ?NYpmin=pj;pjpre=pminpre;pmin-next=NULL?NYpmin!=pi?NYpipre-next=pmin;pjp

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

7、用模块化程序设计思路,对每个函数细化,调试,使得整个程序正确运行,达到预期结果。(五)程序清单/ / 学 生 系 统 .c p p : 定 义 控 制 台 应 用 程 序 的 入 口 点 。/ /# i n c l u d e # i n c l u d e # i n c l u d e # d ef i n el e n 20# d ef i n eN U L L 0st r u c t st u d e n tc h a rn am e l e n ;c h a rn u m b er l e n ; ;st r u c t st d n o d est u d e n td a t a

8、;st d n o d e* n e xt ; ;v o i d c r e a t est d ( st d n o d e * st d ) / / 创 建 学 生 系 统i n t i = 0 ;c h arch ;d o s t d - n ex t = ( st d n o d e * ) m al l o c( si ze o f ( st d n o d e ) ) ;s t d = st d - n e x t ;p r i n t f ( t 输 入 学 生 的 学 号 和 姓 名 :nt ) ;s c an f ( % s ,& st d - d at a. n u m b

9、 er ) ;p r i n t f ( t ) ;s c an f ( % s ,& st d - d at a. n a m e) ;g e t ch ar ( ) ;p r i n t f ( t 继 续 创 建 学 生 信 息 吗 ?Y. 继 续N. 退 出nt ) ;s c an f ( % c ,& c h ) ; w h i l e ( c h = = Y ) ; st d - n e x t = N U L L ;v o i d i n p u t st d ( st d n o d e * st d )st d n o d e * p ;p = st d - n e x t

10、;i f ( p = = N U L L )p r i n t f ( t 没 有 学 生 信 息 !n ) ;p r i n t f ( t 现 有 学 生 信 息 如 下 表 :n ) ;i f ( p ! = N U L L ) p r i n t f ( t n ) ;w h i l e ( p ! = N U L L )p r i n t f ( t % 1 0 s% 1 1 s n , p - d at a. n u m b er , p - d a t a. n am e) ;p = p - n e x t ;i f ( p ! = N U L L ) p r i n t f (

11、 t n ) ;i f ( st d - n e xt ! = N U L L ) p r i n t f ( t n ) ;p r i n t f ( n ) ;v o i d so r t st d (st d n o d e * st d ) / / 学 生 系 统 排 序c h a r ch ;st d n o d e * p i , * p j , * p i p r e ,* p j p r e , * p t e m , * p m i n , * p m i n p r e;p r i n t f ( t 选 择 排 序 方 式 :A.姓名B.学号nt ) ; / /按升序排列

12、用 选择排序法g et c h ar () ;sca n f ( % c , & ch ) ;i f ( st d - n e x t = = N U L L ) p r i n t f ( t 没 有 学 生 信 息 !n ) ; ex i t ( 0 ) ;i f ( ch = = A )p i p r e= st d ;f o r ( p i = st d - n ex t ;p i - n e x t ! = N U L L ; p i = p i - n e x t )p m i n = p i ;f o r ( p j = p i - n ex t , p m i n p r e

13、= p i ; p j != N U L L ; p m i n p r e= p m i n p r e - n ex t , p j = p j - nex t )i f (st r cm p ( p m i n - d at a. n am e , p j - d a t a. n am e) 0 )p m i n = p j ;p j p r e = p m i n p r e ;i f ( p m i n - n e xt = = N U L L )p i p r e- n ex t = p m i n ;p m i n - n ex t = p i - n ex t ;p j p

14、r e- n ex t = p i ;p i - n ex t = N U L L ;el sei f (p m i n != p i )p i p r e - n e x t = p m i n ;p j p r e - n e x t = p i ;p t em = p m i n - n e x t ;p m i n - n e xt = p i - n ex t ;p i - n e xt = p t e m ;p i = p i p r e- n ex t ;p i p r e = p i p r e- n e xt ;i f ( ch = = B )p i p r e= st d

15、;f o r ( p i = st d - n ex t ;p i - n e x t ! = N U L L ; p i = p i - n e x t )p m i n = p i ;f o r ( p j = p i - n ex t , p m i n p r e = p i ; p j != N U L L ; p m i n p r e= p m i n p r e - n ex t , p j = p j - nex t )i f (st r cm p ( p m i n - d at a. n u m b e r , p j - d at a. n u m b e r ) 0

16、)p m i n = p j ;p j p r e = p m i n p r e ;i f ( p m i n - n e xt = = N U L L )p i p r e- n ex t = p m i n ;p m i n - n ex t = p i - n ex t ;p j p r e- n ex t = p i ;p i - n ex t = N U L L ;el sei f (p m i n != p i )p i p r e - n e x t = p m i n ;p j p r e - n e x t = p i ;p t em = p m i n - n e x t

17、 ;p m i n - n e xt = p i - n ex t ;p i - n e xt = p t e m ;p i = p i p r e - n ex t ;p i p r e = p i p r e - n ex t ;v o i d d e l et e st d ( st d n o d e * st d ) / / 删 除 学 生 信 息st d n o d e * p , * p r e = st d ;i n t f l a g = 1 ;c h a r ch , ch o i c e l en ;p = st d - n e x t ;p r i n t f ( t

18、选 择 删 除 方 式 : A : 姓 名B : 学 号nt ) ;g et c h ar () ;sca n f ( % c , & ch ) ;i f ( ch = = A )p r i n t f ( t 输 入 删 除 学 生 的 姓 名 :nt ) ;s c an f ( % s ,c h o i c e) ;i f ( p = = N U L L ) p r i n t f ( t 没 有 学 生 信 息 !n ) ;w h i l e ( p ! = N U L L )i f (st r cm p ( p - d at a. n am e , ch o i c e ) = = 0

19、 )p r e- n e xt = p - n e x t ;f r ee ( p ) ;f l ag = 0 ;p r i n t f ( t 删 除 成 功 !n ) ;b r eak ;p r e= p ;p = p - n e xt ;i f ( f l ag ) p r i n t f ( t 没 有 该 学 生 !n ) ;e l se i f ( ch = = B )p r i n t f (t 输 入 删 除 学 生 的 学 号 :nt ) ;s c an f ( % s ,c h o i c e) ;i f ( p = = N U L L ) p r i n t f ( t

20、没 有 学 生 信 息 !n ) ;w h i l e ( p ! = N U L L )i f (st r cm p ( p - d at a. n u m b e r , ch o i ce ) = = 0 )p r e- n e xt = p - n e x t ;f r ee ( p ) ;f l ag = 0 ;p r i n t f ( t 删 除 成 功 !n ) ;b r eak ;p r e= p ;p = p - n e xt ;i f ( f l ag ) p r i n t f ( t 没 有 该 学 生 , 请 重 新 输 入 !n ) ;v o i d i n c

21、r ea se st d (s t d n o d e * st d )/ / 增 加 学 生 信 息st d n o d e * p , * p 1 ;p = st d - n e x t ;p 1 = ( st d n o d e * ) m al l o c ( si z e o f ( st d n o d e ) ) ;p r i n t f ( t 输 入 增 加 学 生 的 学 号 和 姓 名 :nt ) ;sca n f ( % s , & p 1 - d a t a. n u m b e r ) ;p r i n t f ( t ) ;sca n f ( % s , & p

22、1 - d a t a. n am e ) ;st d - n e x t = p 1 ;p 1 - n e x t = p ;p r i n t f ( t 信 息 添 加 成 功 !n ) ;v o i d seek st d ( st d n o d e * st d ) / / 查 找 学 生 信 息st d n o d e * p ;c h a r ch o l en , c h ;i n t f l a g = 1 ;p = st d - n e x t ;i f ( p = = N U L L )p r i n t f ( t 没 有 学 生 信 息 !n ) ;p r i n

23、t f ( t 选 择 查 找 方 式 : A. 名 字B. 学 号nt ) ;g et c h ar () ;sc an f ( % c , & c h ) ;i f ( ch = = A )p r i n t f ( t 请 输 入 姓 名 :nt ) ;sca n f ( % s , c h o ) ;w h i l e( p != N U L L )i f ( st r cm p (p - d a t a. n am e, ch o ) = = 0)p r i n t f ( t 学 生 的 信 息 如 下 :n ) ;p r i n t f ( t姓名:% s学号 :% sn , p

24、 - d a t a. n a m e ,p - d at a. n u m b er ) ;f l ag = 0 ;p = p - n e x t ;i f ( f l ag ) p r i n t f ( t 没 有 该 学 生 , 请 重 新 查 找 !n ) ;el se i f ( ch = = B )p r i n t f ( t 请 输 入 学 号 :nt ) ;scan f ( % s , ch o ) ;w h i l e( p ! = N U L L )i f ( st r cm p ( p - d at a. n u m b e r ,c h o ) = = 0 )p r

25、 i n t f ( t 学 生 的 信 息 如 下 :n ) ;p r i n t f ( t学号:% s姓名 :% sn , p - d a t a. n u m b er , p - d at a. n a m e ) ;f l ag = 0 ;p = p - n ex t ;i f ( f l ag ) p r i n t f ( t 没 有 该 学 生 , 请 重 新 查 找 !n ) ;v o i d c l e a r st d ( st d n o d e * st d ) / / 清 空 全 部 信 息st d n o d e * p ;p = st d - n e x t

26、;w h i l e ( p ! = N U L L )s t d - n ex t = p - n ex t ;p = p - n e x t ;p r i n t f ( t 全 部 信 息 清 空 !n ) ;v o i d c h an g est d ( st d n o d e * st d ) / / 修 改 学 生 信 息c h a r ch ,s eek l e n ;st d n o d e * p ;i n t f l a g = 1 ;p = st d - n e x t ;i f ( p = = N U L L )p r i n t f ( t 没 有 学 生 信 息

27、 !n ) ;p r i n t f ( t 选 择 修 改 方 式 : A. 名 字g et c h ar () ;sca n f ( % c , & ch ) ;i f ( ch = = A )B.学号nt ) ;p r i n t f ( t 输 入 要 修 改 学 生 的 姓 名 :nt ) ;s c an f ( % s ,see k ) ;w h i l e ( p ! = N U L L )i f ( st r c m p ( p - d at a. n a m e, see k ) = = 0 )p r i n t f ( t 输 入 修 改 后 学 生 的 姓 名 :nt )

28、 ;sc a n f ( % s , & p - d at a. n a m e ) ;f l ag = 0 ; b r e a k;p = p - n ex t ;i f ( f l ag = = 0) p r i n t f ( t 学 生 信 息 修 改 成 功 !n ) ;el se i f ( ch = = B )p r i n t f ( t 输 入 要 修 改 学 生 的 学 号 :nt ) ;s c an f ( % s ,see k ) ;w h i l e ( p ! = N U L L )i f ( st r cm p ( p - d at a. n am e, see

29、k ) = = 0 )p r i n t f ( t 输 入 修 改 后 学 生 的 学 号 :nt ) ;scan f ( % s , & p - d a t a. n u m b e r ) ;f l ag= 0 ; b r eak ;p = p - n ex t ;i f ( f l ag = = 0) p r i n t f ( t 学 生 信 息 修 改 成 功 !n ) ;v o i d i n d e x (st d n o d e * st d ) / / 模 式 查 找 信 息st d n o d e * p ;ch ar s e ek l e n , ch ;i n t n

30、 am e l en ,s ee k l en ,i , j ,f l a g = 1 ;p = st d - n e x t ;p r i n t f ( t 选 择 匹 配 查 找 的 方 式 : A. 名 字g et ch ar ( ) ;sc a n f ( % c , & ch ) ;i f ( c h = = A )p r i n t f ( t 输 入 姓 名 匹 配 字 母 :nt ) ;s ca n f ( % s , see k );s ee k l e n = st r l e n ( se e k ) ;w h i l e( p ! = N U L L )i = j =

31、 0 ;n am e l e n = st r l e n ( p - d at a. n a m e) ;w h i l e ( i n am el e n & & j d a t a. n am e i = = see k j ) e l seB. 学 号nt ) ;i + + ;j + + ; i = i - j + 1 ;j = 0 ;i f ( j = se ek l en )p r i n t f ( t 学 生 的 信 息 如 下 :n ) ;p r i n t f ( t姓名:% s学号 :% sn , p - d a t a. n a m e ,p - d at a. n u

32、 m b er ) ;f l ag = 0 ;p = p - n e x t ;i f ( f l ag ) p r i n t f ( t 没 有 该 学 生 , 请 重 新 查 找 !n ) ;i f ( c h = = B )p r i n t f ( t 输 入 学 号 匹 配 的 数 字 :nt ) ;s ca n f ( % s , see k );s eek l e n = st r l e n ( se e k ) ;w h i l e( p ! = N U L L )i = j = 0 ;n am e l e n = st r l e n ( p - d at a. n u

33、m b er ) ;w h i l e ( i n am el e n & & j d at a. n u m b er i = = se e k j ) i + + ; j + + ; e l sei = i - j + 1 ;j = 0 ;i f ( j = se ek l en )p r i n t f ( t 学 生 的 信 息 如 下 :n ) ;p r i n t f ( t学号:% s姓名 :% sn , p - d a t a. n u m b er , p - d at a. n a m e ) ;f l ag = 0 ;p = p - n e x t ;i f ( f l ag ) p r i n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论