顺序表实现学生信息管理_第1页
顺序表实现学生信息管理_第2页
顺序表实现学生信息管理_第3页
顺序表实现学生信息管理_第4页
顺序表实现学生信息管理_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、实验1 利用顺序表实现学生信息管理 1实验目的掌握顺序表结构的实现方式;掌握顺序表常用算法的实现;熟悉利用顺序表解决问题的一般思路;领会顺序表结构的优点与不足。2实验内容与要求以学生信息为数据元素建立顺序表。一个学生的信息包括学号、姓名、性别、班级和联系电话。程序用户可通过数字键选择信息浏览、插入信息、删除信息等功能。对程序的具体要求如下:(1)程序启动后,显示下列选项信息:1信息浏览 2插入信息 3删除信息 4-修改信息 0退出程序(2)输入数字“1”显示所有学生信息列表。(3)输入数字“2”进入插入信息功能模块。程序依次提示并由用户输入学号、姓名、性别、班级和联系电话,最终实现在线性表头部

2、插入一个学生信息。(4)输入数字“3”进入删除信息功能模块。程序提示并由用户输入学号,最终实现按照学号删除某个学生信息。(5)输入数字“4”进入修改信息功能模块。程序提示并由用户输入学号,最终实现按照学号修改某个学生信息。(6)通过输入数字“0”使得程序结束。(7)当用户执行浏览、插入、删除功能后,程序应继续提示用户通过数字键选择相应功能,直到用户输入数字“0”程序才结束。3实验编程指导 (1)可仿照本章顺序表的定义形式,建立学生信息结点数据,并进一步建立一个长度为5的顺序表。(2)参考本章中顺序表的算法描述和算法的实现,在本程序中增加顺序表的插入、删除等算法实现函数。(3)编写主函数,可通过

3、在while循环结构中嵌入switch分支结构实现操作选择功能。(4)完善插入、删除功能。实现插入信息的录入、删除记录的定位等细节。(5)完善用户操作界面,给出详细的操作提示。4实验报告要求 实验报告要求以word文件形式发到老师邮箱。内容包括:(1)报告封面包括实验名称、班级、姓名、学号以及实验完成日期。(2)各程序模块名称及功能说明。并绘制出主要功能函数的程序流程图。(3)个人小结。包括实验难点分析、进一步的工作、个人希望等。(4)完整的程序清单。各模块功能说明:主函数通过在while循环结构中嵌入switch分支结构实现操作选择功能。insert(st, n)函数,插入函数,能将数组中的

4、元素向后移动一个单位,让第一个单位存放插入要存入元素的信息;scanning(st,n)函数,浏览函数,从头到结束浏览每个单元的信息;del(st,n)函数,依据学号删除某个单元内的函数;fix(st,n)函数,依据学号修改某个单元内的信息;主要功能函数流程图:进入函数Insert(st,n)Y个数满存储满n=n-1NY最后单元赋给后一个最后单元下标n=0N为下标为0的单元赋值返回原个数+1的数值Scanning(st,n)进入函数n=0n+n单元个数输出stnYN结束进入函数del(st,n)输入要删除学生的学号mn+n=0NStn=mYn单元个数YN删除,后面单元前移函数结束Fix(st,

5、n)进入函数输入要删除学生的学号mn+n=0NStn=mYn单元个数YN取出st的地址输入要修改的类型修改相应值修改相应值修改相应值修改相应值修改相应值个人小结: 实验难点分析:这个实验相对容易,利用结构体数组,能有一个很清晰的逻辑。我觉得难点是在根据输入的学号进行删除和修改操作,尤其是要求在第一个位置插入,这些地方很容易混了,而且挺麻烦的;进一步的工作:我觉得改进的地方是应该把插入的程序写的更简单,篇幅更少,以及当表满后的相应操作。个人希望:在编的过程中有些小细节导致了速度偏慢,我希望能通过更多的练习来强化自己的能力,以得到更大的提升。源代码:#include #include struct

6、 dataint number;char name10;char sex5;char classes5; int tel;int insert(struct data st5,int n); /*申明插入函数*/void scanning(struct data st5,int n); /*申明浏览函数*/int del(struct data st5,int n); /*申明删除函数*/void fix(struct data st5,int n); /*申明修改函数*/int main()struct data st5;int chioce,flag=1;int n;n=0;while(f

7、lag)printf(请选择功能:n 1信息浏览n 2插入信息n 3删除信息n 4-修改信息n 0退出程序n); scanf(%d,&chioce); switch(chioce) case 1: scanning(st,n); break; case 2: n=insert(st,n); break; case 3: n=del(st,n); break; case 4: fix(st,n); break; case 0:flag=0; break; printf(n);printf(谢谢使用!n);return 0;void scanning(struct data st5,int n)

8、/*定义浏览函数*/int i;if(n=0) /*无元素*/printf(请选择功能键,先插入名单!n);printf(n);printf(n);elsefor(i=1;i=5)printf(内存已满!n);printf(n);elseprintf(请输入学号:n);scanf(%d,&t.number);printf(请输入姓名:n);scanf(%s,);printf(请输入性别:n);scanf(%s,t.sex);printf(请输入班级:n);scanf(%s,t.classes);printf(请输入号码:n);scanf(%d,&t.tel); for(i=n;i0

9、;i-) /*所有元素后移*/sti+1.number=stn.number;strcpy(sti+1.classes,sti.classes);strcpy(sti+1.name,);strcpy(sti+1.sex,sti.sex); sti+1.tel=sti.tel; st1.number=t.number; strcpy(st1.classes,t.classes); strcpy(,); strcpy(st1.sex,t.sex); st1.tel=t.tel;p=n+1;return p;int del(struct data st5,

10、int n) /*定义删除函数*/int m,i,q,t;printf(请输入你要删除的同学的学号:n);scanf(%d,&m);for(i=1;i=n;i+)if(sti.number=m)t=i;break;for(i=t;in;i+) /*删除结点后的所有元素后移*/sti.number=sti+1.number;sti.tel=sti+1.tel;strcpy(sti.classes,sti+1.classes);strcpy(,sti+1.name);strcpy(sti.sex,sti+1.sex);q=n-1;return q;void fix(struct d

11、ata st5,int n) /*定义修改函数*/int i,m,p,t=1;struct data s;printf(请输入你要修改的学生的学号:n); scanf(%d,&m);for(i=1;i=n;i+)if(sti.number=m) while(t) printf(你想要修改哪项数据?n 1代表学号n 2代表姓名n 3代表性别n 4代表班级n 5代表联系方式n (注意:修改完毕请输入)n);scanf(%d,&p);switch(p)case 1:printf(请输入修改后的学号!n);scanf(%d,&s.number);sti.number=s.number;break;case 2:printf(请输入修改后的姓名!n);scanf(%s,);strcpy(,);break;case 3:printf(请输入修改的性别!n);scanf(%s,s.sex);strcpy(sti.sex,s.se

温馨提示

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

评论

0/150

提交评论