C++实现学生宿舍管理系统_第1页
C++实现学生宿舍管理系统_第2页
C++实现学生宿舍管理系统_第3页
C++实现学生宿舍管理系统_第4页
C++实现学生宿舍管理系统_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

第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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论