学生宿舍管理系统_第1页
学生宿舍管理系统_第2页
学生宿舍管理系统_第3页
学生宿舍管理系统_第4页
学生宿舍管理系统_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1、实验二:学生信息管理(单链表)【实验目的】1. 设计一个学生信息管理系统2. 掌握用C语言泄义单链表结构,并实现其创建、插入、删除等基本操作。【实验内容】本次实验通过单链表的基本操作,实现一个简单的学生信息管理系统,包括:学生信息 链表的建立、添加学生信息、査询学生信息、删除学生信息、输岀所有学生信息。【实验要求】本实验是对学生的信息管理作一个简单的模拟,用菜单选择操作方式完成下列功能:1 学生信息链表的建立2插入学生信息3. 查询学生信息4删除学生信息5输出所有学生信息0退出管理系统【知识要点】本实验涉及单链表的各种操作,包括单琏表的建立.结点的查找、插入、删除等基本运 算。链表中插入结点的

2、指针变化,删除P所指结点的指针变化。【实现提示】本题实质是建立学生信息线性表.每条信息由学号、姓名、性别与成绩组成,即链表中 每个结点由5个域组成,分别为:学号、姓名、成绩、存放下一个结点地址的next域。要 求完成的五项功能可写成五个函数(0项功能由菜单程序实现),登记学生成绩对应建立学 生单链表的功能,2、3、4这三个功能分别对应单链表的插入、查询与删除三大基本操作。【代码】#include #include# includetypedef stmctchar num8y* 学号*/char name9y* 姓名 */char gender尸性别*/int score;/*成绩*/)Dat

3、aT*pe;typedef stmet nodeDataTypc data:struct node *next;JListNode;typedef ListNode *LinkList;LinkList head:/*函数说明3*7int menu_select();LinkList createList(void);void printList(LinkList head);int insertNode(LinkList head.ListNode *pjnt i);ListNode *findList(LinkList head);void dclNode(LinkList head);v

4、oid main()ListNode *p;int i;while(l)switch(nienu_select()case 1:printf(u* * * * * * * * * *$*n”) printf(M学生信息链表的建立n”);printf(u* * * * * * * * *5“) head = createList();break:case 2:printf(,r添加学生信息n”);printf(Hn学号(8) 姓名(8)性别 成绩n”);p=(ListNode *)malloc(sizeof(ListNode);scanf(,%s%s%s%d,p-data.num,p-data.

5、name,p-data.gender) &p-data.score); pHntf(请输入要插入的位置:n”);fflush(stdin);scanf(H%dH,&i);if(insertNode(head,pj)=-l)pring没有合适的插入点! nH); elseprintf(”结点已经插入F); break;case 3:printf(u* * * * * * * * * printf(查询学生信息n”);printf(H* * * * * * * * * *、)p=findList(head);if(p!=NULL)printf(Mn学号(8) 姓名(8)性别 成绩】门;printn

6、M);printf(,%s,%s,%s,%dn,p-data.nuni,.p-data.gendcEp-data.score);printf(HnH);)elsepring没査到要査询的学生信息! ”); break;case 4:printf(v* * *$* *$*n”) printf(删除学生信息n”);printf(u* * * * * * * * * delNode(head);break:case 5:prin叱输出所有学生信息n”);printList(head); break:case 0:printfC再见! nH); getcharO;return:

7、int menu_select()int sn:printf(Hn学生信息管理系统iT);printf(H=:print1 学生信息链表的建立n”)printf(n2 插print3 査printf(H4删printf(H5输printf(n0 退入学生信息n”) 询学生信息n”) 除学生信息n”) 出所有学生信息n”) 出管理系统n”)printf(H=nM); printf(H请选择 0-5:nH);for(;)scanf(”dl&sn); if (sn5)printf(Mnt 输入错误,重选 0-5nM);elsebreak;return sn:LinkList createList(v

8、oid)ListNode *p,*rear;char flag = y;head = (ListNode *)malloczcof(ListNodc);rear= head;while(flag=y II flagY*)p=(ListNode *)malloc(sizeof(ListNode);printf(Mn学号(8) 姓名(8)性别 成绩n); scanf(H%s%s%s%d,p-data.nuni,.p-data.gendeE&pda(a. score); rear-next = p;rear = p;printf(”继续输入吗? (y/n);flag = get

9、char();rear-next = NULL;return head;void printList(LinkList head)while(p!=NULL)printf(H%s,%s,%s,%dn,.p-data.gende r. pdata. score);printfC1 p=p-next;int insertNode(LinkList hcad.ListNode *pjnt i)ListNode *pl;intj=l;pl=head;if(pl-next=NULL)/*空表:插入作为第一个结点*/if(i=0)pl-next=p;p-next

10、=NULL:elsereturn -1;while(jnext;j+;if(pl=NULL)/*没有合适的插入点*/return -1;p-next=pl-next; pl-next=p; return 0;ListNode *findList(LinkList head)ListNode *p;char num8;char name9: int xz;printf(H=nH); printf(-K按学号査询n”); printf(2.按姓名査询n”);printf(H=nH); printfC 请选择:”);p=head-next;scanf(”cT&xz);if (xz=l)prints请输入要査找学生的学号:”); scanf(M%sH,num);while(p & strcmp(p-data.num,num)!=0) p=p-next;elseif (xz=2)primf(请输入要查找学生的姓名:”); scanf(M%s,name);while (p & strcmp(,name)!=0) p=p-next:return p;)void dclNode(LinkList head)ListNode *p,*q;

温馨提示

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

评论

0/150

提交评论