欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    链表实现学生信息管理.docx

    • 资源ID:8025794       资源大小:119.64KB        全文页数:13页
    • 资源格式: DOCX        下载积分:12金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    链表实现学生信息管理.docx

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

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

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

    4、选择功能。scanning(head)函数:通过头指针的输入,以每个指针的下个指针域是否为空位循环标志,按链表中的每一个单位输出数据。insert(head)函数:按输入的数据存储在一个NODE类型的指针里,若原来链表里没有元素,则将此作为第一个元素;若原来的链表里有元素,则将该指针的next存储head-next的地址,又将head-next存储该指针的地址,返回head的首地址。del(head)函数:以输入学号为判断标准,在NODE型指针的next不为空的大循环中,建立两个相邻的NODE型的指针,若后一个指针指向的元素的学号与输入的相等,则将前一个指针的next赋为后指针的next,释放

    5、后指针所指地址的内容。fix(head)函数:以输入学号为判断标准,在NODE型指针的next不为空的大循环中,若存在某个元素的学号与输入的相等,则相应的将要修改的内容用新内容覆盖。主要功能函数流程图:insert(head)scanning(head): del(head):Fix(head):个人小结:实验难点分析:这个实验用的链表,若是前几天编可能会有疑惑,但做了课后的作业后,对链表也熟悉了,链表在第一个地方插入比顺序表简单。难点与顺序表类似,也是在修改,删除的功能上。进一步的工作:在编译的过程中,出现了 error C1075说左侧的大括号“”在匹配前遇到结束和 error C2601

    6、 说本地函数非法,始终找不到错误 ,后来稀里糊涂地把函数位置换了换就又没错了,很不解,我觉得有必要再了解相关的错误原因。个人希望: 希望能通过这个实验对单链表有更深地了解,能很熟练的运用它,同时我觉得对栈和队列还不是很熟悉,书上也不是很详细,我觉得自己有空应多看看类似的应用,以强化自己的能力。源代码:#include #include #include struct node int number; char name10; char sex5; int classes; int tel; struct node *next;typedef struct node NODE;void scan

    7、ning(NODE *head); /*申明浏览函数*/NODE *insert(NODE *head); /*申明插入函数*/void del(NODE *head); /*申明删除函数*/void fix(NODE *head); /*申明修改函数*/int main() int choice; int flag=1; NODE *head; head=(NODE *)malloc(sizeof(NODE); head-next=NULL; while(flag) printf(请选择功能:n 1信息浏览n 2插入信息n 3删除信息n 4-修改信息n 0退出程序n); scanf(%d,&

    8、choice); switch(choice) case 1: scanning(head);break; case 2: head=insert(head);break; case 3: del(head);break; case 4: fix(head);break; case 0: flag=0; break; printf(n); printf(谢谢使用!n); return 0;void scanning(NODE *head) /*定义浏览函数*/ NODE *t; t=head; t=t-next; if(t=NULL) printf(n); printf(无记录!请先输入学生信

    9、息:n); printf(n); while(t!=NULL) printf(学号:%dn,t-number); printf(姓名:%sn,t-name); printf(性别:%sn,t-sex); printf(班级:%dn,t-classes); printf(联系方式:%dn,t-tel); printf(n); t=t-next; NODE *insert(NODE *head) /*定义插入函数*/ NODE *t,*p; int a,b,c; char e10,f5; t=(NODE *)malloc(sizeof(NODE); p=head; if(p-next=NULL)

    10、/*原本无元素*/ printf(请输入学号:n); scanf(%d,&a); printf(请输入姓名:n); scanf(%s,e); printf(请输入性别:n); scanf(%s,f); printf(请输入班级:n); scanf(%d,&b); printf(请输入号码:n); scanf(%d,&c); t-number=a; strcpy(t-name,e); strcpy(t-sex,f); t-classes=b; t-tel=c; p-next=t; t-next=NULL; else /*原本有元素*/ printf(请输入学号:n); scanf(%d,&a);

    11、 printf(请输入姓名:n); scanf(%s,e); printf(请输入性别:n); scanf(%s,f); printf(请输入班级:n); scanf(%d,&b); printf(请输入号码:n); scanf(%d,&c); t-number=a; strcpy(t-name,e); strcpy(t-sex,f); t-classes=b; t-tel=c; t-next=p-next; p-next=t; return head;void del(NODE *head) /*定义删除函数*/ int m; NODE *s,*t; s=head; t=head-next;

    12、 printf(请输入你要删除的同学的学号:n); scanf(%d,&m); while(t!=NULL) if(t-number)!=m) s=s-next; t=t-next; else s-next=t-next; free(t); break; void fix(NODE *head) /*定义修改函数*/ NODE *p,*t; int m,q,z=1; p=head; t=(NODE *)malloc(sizeof(NODE); printf(请输入你要修改的学生的学号:n); scanf(%d,&m); p=p-next; while(p!=NULL) if(p-number)

    13、=m) while(z) printf(你想要修改哪项数据?n 1代表学号n 2代表姓名n 3代表性别n 4代表班级n 5代表联系方式n (注意:修改完毕请输入)n); scanf(%d,&q); switch(q) case 1: printf(请输入修改后的学号!n); scanf(%d,&t-number); p-number=t-number; break; case 2: printf(请输入修改后的姓名!n); scanf(%s,t-name); strcpy(p-name,t-name); break; case 3: printf(请输入修改的性别!n); scanf(%s,t-sex); strcpy(p-sex,t-sex); break; case 4: printf(请输入修改的班级!n); scanf(%d,t-classes); p-classes=t-classes; break; case 5: printf(请输入修改后的联系方式!n); scanf(%d,&t-tel); p-tel=t-tel; break; case 0: z=0; break; p=p-next;


    注意事项

    本文(链表实现学生信息管理.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开