宿舍管理系统——单链表+结构体实现入住退房和查询功能(C语言版)小柒w

好了开始进入正题,这次又双叒叕是我那位朋友的题目,不过已经是最后一题了。

课题四:信息管理系统

利用链表编写下列程序(二选一)

1、宿舍管理软件

用C语言为学生宿舍管理人员编写一个宿舍管理软件。设某宿舍有:101,102,201,202四个房间,每个房间可住学生<=4人,链表存储结构:学号、姓名、房间号、后续指针,按房间号有序,实现学生的入住、退房和查询,按给定学号、姓名、房号查询。

2、学生成绩信息管理

对学生的成绩信息进行管理,学生信息包括:学号、姓名、学期、每门课程的成绩、平均成绩、名次。实现:学生信息的录入;修改;删除和查询,按学期、学号、成绩不及格等查询。

要求:

看完题目我果断选择了第一题,不但好做,而且算是练手吧,因为第二题在我大一C语言课程设计时已经做过类似的了。那么来简单分析一下这个题如何下手:

首先先画出一个大致的流程图:

接下来就是实现功能1~n,我们确定一下要用到的数据结构。按要求采用链表实现,结点是记录住宿信息的结构体:

structDORMITORY{intnum;//房间号charid[15];//学号charname[20];//姓名structDORMITORY*next;//指针域};

这里我还采用了设计数据库表时的一些思想,比如主键。用学号来标识唯一的一个结构体,避免出现一个人住多个寝室的情况。这里由于题目限制,最多只会有16名学生,所以采用大小确定的二维数组进行保存,用于核对学号是否已经存在。下面再来看看我们要实现的功能。

功能不多,主要分为入住、退房和查询三大类。入住即添加一条新的住宿信息,也就是新建链表结点;退房意味着删除一条住宿信息,即从链表里删除一个节点;至于查找嘛,这几乎是所有的管理类程序都绕不开的一个功能,在这里表现为从链表中找到符合条件的节点。它们分别对应着三种对数据的基本操作——增、删、查。还有一种是修改,题目里没要求我也就没实现,各位看官如果有兴趣可以自行实现。接下来我们进入到代码的具体实现环节,其中字符串的比较与复制用到了库函数strcmp和strcpy。

首先是主页面:采用一个死循环,不断接受输入来执行各种功能(其余展示页面同理)

1voidmenu(){//主菜单2chart;3intflag=1;4while(flag){5system("cls");//清屏6printf("+--------------------+\n");7printf("|宿舍管理系统|\n");8printf("+--------------------+\n");9printf("|【1】入住管理|\n");10printf("||\n");11printf("|【2】退房管理|\n");12printf("||\n");13printf("|【3】信息查询|\n");14printf("||\n");15printf("|【4】使用说明|\n");16printf("||\n");17printf("|【5】退出系统|\n");18printf("+--------------------+\n");19t=getch();//不回显输入20switch(t){21case'1':22checkIn();//入住管理23break;24case'2':25checkOut();//退房管理26break;27case'3':28menu_query();//信息查询29break;30case'4':31direction();//使用说明32break;33case'5':34printf("\n感谢您的使用,再见( ̄︶ ̄)↗");35destroy();//销毁链表,释放空间36flag=0;//结束程序37break;38default:39break;40}41}42}接下来我们依次实现主菜单里包含的功能:

1voidcheckIn(){//登记入住信息2chart;3while(head->num>0){//还有空余房间,继续循环4system("cls");//清屏5dormitorynode=create();//新建一个节点6if(node!=NULL){//创建成功7head->num-=1;//剩余房间数减18node->next=head->next;//每次新结点的next指向头结点的next9head->next=node;//让头结点指向新建结点10}else{//创建失败11printf("学号已存在,请重新进行添加操作!");12break;13}14printf("\n+--------------------+");15printf("\n|是否继续添加|");16printf("\n+--------------------+");17printf("\n|【1】是【2】否|");18printf("\n+--------------------+");19t=getch();20if(t=='1')21continue;22else23break;24}25if(head->num==0)//人数已满26printf("\n宿舍房间人数已满,无法继续入住!");27printf("\n即将返回主菜单……");28Sleep(1500);//暂停1.5秒后返回主菜单29}

THE END
1.宿舍管理系统csdn宿舍管理系统软件工程采用信息管理系统不仅能够保证数据准确无误,而且还可以统计各种信息,这些优点能够极大地提高学生宿舍管理的效率。 本文基于Jsp+Servlet+MySql技术的在学生宿舍管理系统在分析设计时遵循软件工程的思想,文中详细阐述了系统需求分析、系统设计、数据库设计、系统实现以及系统测试五方面。系统以Java编程语言为基础,采用了B/Shttps://blog.csdn.net/m0_54883970/article/details/125402094
2.基于C#实现宿舍管理系统C#教程这篇文章主要介绍了如何利用C#语言开发一个简易的宿舍管理系统,文中的实现步骤讲解详细,对我们学习C#有一定参考价值,感兴趣的可以了解一下+ 目录 GPT4.0+Midjourney绘画+国内大模型 会员永久免费使用!【 如果你想靠AI翻身,你先需要一个靠谱的工具!】 前言 本次项目主要是因为我们的大作业要求要求,因为网上C#的资源https://www.jb51.net/article/250752.htm