C语言的管理系统代码

简介: C语言学生宿舍管理系统代码

include

include

include

include

include

include

include

define len sizeof(struct dorminfo)

define Max 100

int a[Max]={0};
int length;
void showmenu();
void processmenu();
void create();
void display();
void disbed();
void modify();
void del();
void save();
void read();
typedef struct
{
int dormno;
int bedno;
int isstay;
}bedinfo;
struct dorminfo
bedinfo bed;
int stuno;
char name[20];
char stucla[20];
int year;
int month;
struct dorminfo next;
};
struct dorminfo
head=NULL,p1,p2,*p3;

void showmenu()
printf("\n\n\n\t\t 欢迎进入学生宿舍管理系统\n");
printf("\t\t*\n");
printf("\t\t1.输入床位信息\n");
printf("\t\t2.根据学号,显示学生住宿信息\n");
printf("\t\t3.根据宿舍号,显示住宿信息\n");
printf("\t\t4.根据宿舍号、床位号,修改住宿信息\n");
printf("\t\t5.根据宿舍号、床位号,删除住宿信息\n");
printf("\t\t6.保存学生宿舍信息\n");
printf("\t\t7.从文件读入学生信息\n");
printf("\t\t8.退出 \n");
printf("\t\t**\n") ;
}
void processmenu()
int caidan;
printf("请输入您的选项<1~8>:");
scanf("%d",&caidan);
if(caidan>8||caidan<0) printf("对不起,您输入的选项有误,请重新输入!"); switch(caidan) case 1:create();break; case 2:display();break; case 3:disbed();break; case 4:modify();break; case 5:del();break; case 6:save();break; case 7:read();break; case 8:exit(0); void create() int j; char ch; length=0; p1=(struct dorminfo *)malloc(len); if(head==NULL) head=p1; printf("开始输入床位信息....\n"); Sleep(500); do p2=(struct dorminfo *)malloc(len); printf("请输入宿舍号:"); scanf("%d",&p2->bed.dormno);
printf("请输入床号:");
scanf("%d",&p2->bed.bedno);
printf("是否有人居住(1/0):");
scanf("%d",&p2->bed.isstay);
printf("请输入学生学号:");
scanf("%d",&p2->stuno);
a[length]=p2->stuno;
if(length>1)
for(j=1;jbed.bedno);}
printf("请输入学生姓名:");
scanf("%s",p2->name);
printf("请输入学生班级:");
scanf("%s",p2->stucla);
printf("请输入学生入住时间(年 月)<如2015 5>:");
scanf("%d%d",&p2->year,&p2->month);
if(p2->year<1000||p2->year>9999||p2->month>12||p2->month<1) printf("对不起,输入错误,请重新输入!\n"); scanf("%d%d\n",&p2->year,&p2->month);
length++;
p1->next=p2;
p2->next=NULL;
p1=p1->next;
printf("第%d个住宿信息创建成功!\n",length);
Sleep(300);
fflush(stdin);
printf("是否继续添加住宿信息?");
ch=getchar();
} while(ch=='y'||ch=='Y');
void display()
int flag=0,No;
p3=head->next;
printf("请输入学号:");
scanf("%d",&No);
while(p3!=NULL)
if(p3->stuno==No)
printf("\n住宿信息如下:");
printf("\n宿舍号:%d",p3->bed.dormno);
printf("\n床位号:%d",p3->bed.bedno);
printf("\n是否有人入住:%d",p3->bed.isstay);
printf("\n学生学号:%d",p3->stuno);
printf("\n学生姓名:%s",p3->name);
printf("\n学生班级:%s",p3->stucla);
printf("\n入住时间为:%d年%d月\n",p3->year,p3->month);
flag=1;
p3=p3->next;
if(!flag)
printf("没有找到该学生住宿信息!\n");
void disbed()
int flag=0,DormNo;
scanf("%d",&DormNo);
if(p3->bed.dormno==DormNo)
void modify()
struct dorminfo p;
int DormNo,BedNo,flag;
int Dormno,Bedno,Isstay,Stuno,Year,Month;
char Name[20],Stucla[20];
if(head==NULL){
printf("住宿信息为空,不能修改,按任意键返回...\n");
getch();
system("cls");
return ;
p1=p3=head;
printf("请输入宿舍号、床位号:");
scanf("%d %d",&DormNo,&BedNo);
if(p3->bed.dormno==DormNo&&p3->bed.bedno==BedNo)
printf("已找到要修改的宿舍号、床位号!\n");
p=p3;
Sleep(1000);
if(flag)
printf("请输入修改后的宿舍号:");
scanf("%d",&Dormno);
printf("请输入修改后的床号:");
scanf("%d",&Bedno);
scanf("%d",&Isstay);
printf("请输入修改后的学生学号:");
scanf("%d",&Stuno);
while(p1!=NULL)
if(p1->stuno==Stuno){
printf("请输入修改后的学生姓名:");
scanf("%s",Name);
printf("请输入修改后的学生班级:");
scanf("%s",Stucla);
printf("请输入修改后的学生入住时间(年月)<如2015 5>:");
scanf("%d%d",&Year,&Month);
if(Year<1000||Year>9999||Month>12||Month<1) printf("对不起,输入错误,请重新输入!\n"); p->bed.dormno=Dormno;
p->bed.bedno=Bedno;
p->bed.isstay=Isstay;
p->stuno=Stuno;
strcpy(p->name,Name);
strcpy(p->stucla,Stucla);
p->year=Year;
p->month=Month;
printf("修改成功,信息如下:\n");
printf("-宿舍号--床号--有无人入住--学号--姓名--班级--入住时间(年月)");
printf("\n");
printf("%6d%5d%8d%9d%7s%8s%9d%2d\n",p->bed.dormno,p->bed.bedno,p->bed.isstay,p->stuno,p->name,p->stucla,p->year,p->month);
else
printf("没有找到该宿舍号与床号信息,按任意键返回...\n");
void del()
int DormNo,BedNo;
p1=head,p2=head->next;
while(p2!=NULL)
if(p2->bed.dormno==DormNo&&p2->bed.bedno==BedNo)
p1->next=p2->next;
free(p2);
length--;
printf("删除成功!\n");
p2=p2->next;
if(p1==NULL)
printf("找不到要删除的宿舍号、床位号!\n");
void save()
FILE
fp1;
printf("\n,没有找到该宿舍号与床号信息,按任意键返回....");
if((fp1=fopen("学生宿舍管理系统.txt","w"))==NULL)
printf("\n信息无法保存,按任意键返回....");
p1=head->next;
printf("正在保存文件...\n");
Sleep(800);
fputs(" 宿舍号 床号 有无人入住 学号 姓名 班级 入住时间(年月) :\n",fp1);
fprintf(fp1,"%6d%5d%8d%7d%6s%4s%7d%2d\n",p1->bed.dormno,p1->bed.bedno,p1->bed.isstay,p1->stuno,p1->name,p1->stucla,p1->year,p1->month);
fclose(fp1);
printf("文件保存成功!\n");
printf("按任意键返回...\n");
void read()
FILE *fp2;
if((fp2=fopen("学生宿舍管理系统.txt","r"))==NULL)
printf("文件无法打开!\n");
exit(0);
printf("正在读入文件...\n");
ch=fgetc(fp2);
while(!feof(fp2))
putchar(ch);
fclose(fp2);
printf("文件读入成功!\n");
void main()
while(1)
showmenu();
processmenu();
system("pause");

相关文章
|
29天前
|
存储 安全 数据管理
C语言之考勤模拟系统平台(千行代码)
C语言之考勤模拟系统平台(千行代码)
51 4
|
1月前
|
程序员 C语言 开发者
pymalloc 和系统的 malloc 有什么区别
pymalloc 和系统的 malloc 有什么区别
|
14天前
|
IDE 编译器 开发工具
【C语言】全面系统讲解 `#pragma` 指令:从基本用法到高级应用
在本文中,我们系统地讲解了常见的 `#pragma` 指令,包括其基本用法、编译器支持情况、示例代码以及与传统方法的对比。`#pragma` 指令是一个强大的工具,可以帮助开发者精细控制编译器的行为,优化代码性能,避免错误,并确保跨平台兼容性。然而,使用这些指令时需要特别注意编译器的支持情况,因为并非所有的 `#pragma` 指令都能在所有编译器中得到支持。
92 41
【C语言】全面系统讲解 `#pragma` 指令:从基本用法到高级应用
|
9天前
|
存储 编译器 C语言
【C语言】C语言的变量和声明系统性讲解
在C语言中,声明和定义是两个关键概念,分别用于告知编译器变量或函数的存在(声明)和实际创建及分配内存(定义)。声明可以多次出现,而定义只能有一次。声明通常位于头文件中,定义则在源文件中。通过合理组织头文件和源文件,可以提高代码的模块化和可维护性。示例包括全局变量、局部变量、函数、结构体、联合体、数组、字符串、枚举和指针的声明与定义。
39 12
|
20天前
|
存储 算法 程序员
C 语言递归算法:以简洁代码驾驭复杂逻辑
C语言递归算法简介:通过简洁的代码实现复杂的逻辑处理,递归函数自我调用解决分层问题,高效而优雅。适用于树形结构遍历、数学计算等领域。
|
26天前
|
存储 安全 物联网
C语言物联网开发之设备安全与代码可靠性隐患
物联网设备的C语言代码安全与可靠性至关重要。一是防范代码安全漏洞,包括缓冲区溢出和代码注入风险,通过使用安全函数和严格输入验证来预防。二是提高代码跨平台兼容性,利用`stdint.h`定义统一的数据类型,并通过硬件接口抽象与适配减少平台间的差异,确保程序稳定运行。
|
20天前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
39 1
|
21天前
|
人工智能 安全 算法
基于C语言的嵌入式系统开发,涵盖嵌入式系统概述、C语言的优势、开发流程、关键技术、应用实例及面临的挑战与未来趋势。
本文深入探讨了基于C语言的嵌入式系统开发,涵盖嵌入式系统概述、C语言的优势、开发流程、关键技术、应用实例及面临的挑战与未来趋势。C语言因其高效、可移植、灵活及成熟度高等特点,在嵌入式系统开发中占据重要地位。文章还介绍了从系统需求分析到部署维护的完整开发流程,以及中断处理、内存管理等关键技术,并展望了嵌入式系统在物联网和人工智能领域的未来发展。
44 1
|
21天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
49 1
|
1月前
|
程序员 C语言 开发者
pymalloc 和系统的 malloc 有什么区别?
pymalloc 和系统的 malloc 有什么区别?
下一篇
DataWorks