版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第C++实现学生宿舍管理系统本文实例为大家分享了C++实现学生宿舍管理系统的具体代码,供大家参考,具体内容如下
非常简易,完成个作业够用,仅供初学者参考,不喜勿喷。
#includestdio.h
#includestdlib.h
#includestring.h
#includemalloc.h
/*先用结构体定义学生信息*/
structstud
int
num;
//学号
char
name[10];
//姓名
char
sex[8];
//性别
int
age;
//年龄
char
major[18];
//专业
int
grade;
//年级
int
classes;
//班级
int
building;
//楼号
int
floor;
//楼层
int
dormitary;
//宿舍号
structstud*next;/*next是指向本结构体的类型的指针类型*/
structstud*h;
/*定义结构体的指针变量*/
intN=sizeof(structstud);//获取结构体总长度,用于分配内存空间
/*输入模块:建立链表*/
voidinput_message()
{
structstud*p1,*p2;
inti,k;
system("cls");
printf("**********您当前正在进行的操作是,输入学生信息**********\n\n");
printf("请输入本次注册的生总数:");scanf("%d",
h=NULL;
printf("\n您共有%d个学生信息需要录入\n",k);
if(k0)
{
h=p2=p1=(structstud*)malloc(N);
/*为head,p2,p1申请存储空间*/
for(i=1;ii++)
{
printf("\n请输入第%d名学生的信息:\n\n",i);
p1=(structstud*)malloc(N);
printf("学号:");
scanf("%d",p1-num);
printf("姓名:");
scanf("%s",p1-name);
printf("性别(男或女):");
scanf("%s",p1-sex);
printf("年龄:");
scanf("%d",p1-age);
printf("专业:");
scanf("%s",p1-major);
printf("年级:");
scanf("%d",p1-grade);
printf("班级:");
scanf("%d",p1-classes);
printf("楼号:");
scanf("%d",p1-building);
printf("楼层:");
scanf("%d",p1-floor);
printf("宿舍号:");
scanf("%d",p1-dormitary);
p2-next=p1;
/*将新结点连到表尾*/
p2=p1;
/*p2指向新的表尾*/
}
p2-next=NULL;
h=h-next;
}
getchar();//吸收掉上一行录入时键入的回车符号,否则卡不住
printf("\n%*s%s\n",10,"","输入完成,按任意键进入主菜单!!!!");
getchar();
/*输出模块:显示链表*/
voidoutput_message()
charv;
structstud*p=h;
system("cls");
printf("**********您当前正在进行的操作是,显示学生信息**********\n\n");
if(p==NULL)
{
printf("%*s%s\n",10,"","当前没有找到任何学生信息,请您先输入信息,再执行本操作!\n");
getchar();//吸收掉上一行录入时键入的回车符号,否则卡不住
printf("%*s%s\n",10,"","按任意键返回主菜单!!!!");
getchar();
return;
}
printf("
学号
姓名
性别
年龄
专业
年级
班级
楼号
楼层
宿舍号\n\n");
while(p!=NULL)
{
printf("%6d%10s%6s%6d%10s%6d%6d%6d%6d%8d\n",p-num,p-name,p-sex,p-age,p-major,p-grade,p-classes,p-building,p-floor,p-dormitary);
p=p-next;
}
getchar();//吸收掉上一行录入时键入的回车符号,否则卡不住
printf("\n%*s%s\n",10,"","输出完成,按任意键返回主菜单!!!!");
getchar();
/*插入新学生信息:插入链表*/
voidinsert_message()
structstud*p0,*p1;
p1=(structstud*)malloc(N);
system("cls");
printf("**********您当前正在进行的操作是,插入学生信息**********\n\n");
printf("\n请输入要插入学生的信息:\n\n");
p1=(structstud*)malloc(N);
printf("学号:");
scanf("%d",p1-num);
printf("姓名:");
scanf("%s",p1-name);
printf("性别(男或女):");
scanf("%s",p1-sex);
printf("年龄:");
scanf("%d",p1-age);
printf("专业:");
scanf("%s",p1-major);
printf("年级:");
scanf("%d",p1-grade);
printf("班级:");
scanf("%d",p1-classes);
printf("楼号:");
scanf("%d",p1-building);
printf("楼层:");
scanf("%d",p1-floor);
printf("宿舍号:");
scanf("%d",p1-dormitary);
p1-next=NULL;
if(h==NULL)//如果链表为空,插入的节点设为表头
{
h=p1;
getchar();//吸收掉上一行录入时键入的回车符号,否则卡不住
printf("\n%*s%s\n",10,"","插入成功!按任意键返回主菜单!!!!");
getchar();
return;
}
p0=h;
while((p0-next)!=NULL(p0-next-num)(p1-num))
{
p0=p0-next;
}
if(p0-next==NULL)
{
p0-next=p1;//如果到尾部了加到尾部
getchar();//吸收掉上一行录入时键入的回车符号,否则卡不住
printf("\n%*s%s\n",10,"","插入成功!按任意键返回主菜单!!!!");
getchar();
}
elseif((p0-next-num)==(p1-num))
{
free(p1);
//如果已经存在这个学号,那就不能再插入了,释放
getchar();//吸收掉上一行录入时键入的回车符号,否则卡不住
printf("\n%*s%s\n",10,"","插入失败,本学号信息已经存在!按任意键返回主菜单!!!!");
getchar();
}
else
{
//插入
p1-next=p0-next;
p0-next=p1;
getchar();//吸收掉上一行录入时键入的回车符号,否则卡不住
printf("\n%*s%s\n",10,"","插入成功!按任意键返回主菜单!!!!");
getchar();
}
/*删除学生信息*/
voiddel_message()
intnum;
booldelOk=false;
structstud*p0,*p1;
system("cls");
printf("**********您当前正在进行的操作是,删除学生信息**********\n\n");
if(h==NULL)
{
printf("%*s%s\n",10,"","当前没有找到任何学生信息,请您先输入信息,再执行本操作!\n");
getchar();//吸收掉上一行录入时键入的回车符号,否则卡不住
printf("%*s%s\n",10,"","按任意键返回主菜单!!!!");
getchar();
return;
}
printf("请输入要删除学生的学号:");
scanf("%d",num);
p0=h;
if(p0-num==num)
{
h=p0-next;
free(p0);
/*若首结点是所要删除的数据,则释放首结点*/
delOk=true;
}
else
{
p1=p0-next;
while(p1!=NULL)
{
if(p1-num==num)
{
p0-next=p1-next;
free(p1);
delOk=true;
break;//跳出循环
}
p0=p1;
p1=p1-next;
}
}
getchar();//吸收掉上一行录入时键入的回车符号,否则卡不住
if(delOk)
printf("%*s%s\n",10,"","删除成功!按任意键返回主菜单!!!!");
else
printf("%*s%s\n",10,"","没有找到匹配学号,删除失败!按任意键返回主菜单!!!!");
getchar();
//主函数
intmain(void){
intchoice;
do{
system("cls");
printf("\n\n\n");
printf("%*s%s",10,"","**********学生宿舍管理系统**********\n\n");
printf("%*s%s",25,"","1.输入学生信息\n\n");
printf("%*s%s",25,"","2.输出学生信息\n\n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 施工材料仓储管理方案
- 抽水蓄能电站项目社会稳定风险评估报告
- 中医院基于大数据的决策支持方案
- 施工现场安全培训方案
- 施工场地交通管理方案
- 建筑声学设计与施工方案
- 施工图技术交底责任分配方案
- 竖井作业安全职责清单讲解
- AI应用与发展趋势
- 混凝土抗冻性能提升方案
- 9.1(西北地区)自然特征与农业 课件 2025-2026学年人教版地理八年级下册
- 血站安全教育培训课件
- 厂房拆除施工验收标准
- 农商行考试题及答案
- 2026年农行笔试真题试卷及答案
- 中国临床肿瘤学会csco+淋巴瘤诊疗指南2025
- DB11∕T 1191.1-2025 实验室危险化学品安全管理要求 第1部分:工业企业
- DB32∕T 5124.2-2025 临床护理技术规范 第2部分:成人危重症患者无创腹内压监测
- 建筑工程质量与安全管理论文
- 2025年教育信息化设备采购与配置项目可行性研究报告
- 2026年黑龙江农业工程职业学院单招综合素质考试题库带答案详解
评论
0/150
提交评论