C++宿舍信息管理系统源代码.docx

上传人:b****5 文档编号:7221171 上传时间:2023-01-22 格式:DOCX 页数:15 大小:16.98KB
下载 相关 举报
C++宿舍信息管理系统源代码.docx_第1页
第1页 / 共15页
C++宿舍信息管理系统源代码.docx_第2页
第2页 / 共15页
C++宿舍信息管理系统源代码.docx_第3页
第3页 / 共15页
C++宿舍信息管理系统源代码.docx_第4页
第4页 / 共15页
C++宿舍信息管理系统源代码.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

C++宿舍信息管理系统源代码.docx

《C++宿舍信息管理系统源代码.docx》由会员分享,可在线阅读,更多相关《C++宿舍信息管理系统源代码.docx(15页珍藏版)》请在冰豆网上搜索。

C++宿舍信息管理系统源代码.docx

C++宿舍信息管理系统源代码

宿舍信息管理系统

代码如下:

#include"stdio.h"

#include"stdlib.h"

#include"string.h"

#include"conio.h"

structrecord

{

charnumb[20];//学号

charname[20];//姓名

charroom[10];//宿舍号

}student[500];

intnum=0;

FILE*fp;

intmenu();/*菜单主界面*/

intadduser();/*输入记录*/

intlist();/*显示记录*/

intsearchbyname();/*按姓名查找*/

intsearchbyroom();/*按宿舍号查找*/

intsearchbynumb();/*按学号查找*/

intadd();/*添加记录*/

intchange();/*删除学生信息*/

intdele();/*删除记录*/

intsave();/*保存记录*/

intexit();/*结束*/

menu()/*主界面*/

{

inti;

printf("*_*pressanykeyentermenu!

*_*\n");

getch();

system("cls");/*清屏*/

printf("\t\t********************MENU*********************\n\n");

printf("\t\t0.输入记录\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\t9.Quit\n");

printf("\t\t***********************************************\n");

printf("\nEnteryouchoice(0~9):

");

scanf("%d",&i);

returni;

}

voidmain()

{

for(;;)

{

switch(menu())

{

case0:

adduser();break;/*调用输入函数*/

case1:

list();break;/*调用显示记录函数*/

case2:

searchbyname();break;/*调用按姓名查找函数*/

case3:

searchbyname();break;/*调用按宿舍号查找函数*/

case4:

searchbynumb();break;/*调用按学号查找函数*/

case5:

add();break;/*调用添加函数*/

case6:

change();break;/*调用修改学生信息函数*/

case7:

dele();break;/*调用删除函数*/

case8:

save();break;/*调用保存函数*/

case9:

exit(0);

}

}

}

adduser()/*输入记录*/

{

printf("\n\t\t****************请输入用户信息****************\n");

printf("\n\t\t输入学号:

");

scanf("%s",student[num].numb);

printf("\n\t\t输入姓名:

");

scanf("%s",student[num].name);

printf("\n\t\t输入宿舍号:

");

scanf("%s",student[num].room);

num++;

printf("\n\t\t是否继续添加?

(Y/N):

");

if(getch()=='y')

adduser();

return(0);

}

list()/*显示记录*/

{

inti;

if(num!

=0)

{

printf("\n\t\t***************以下为宿舍信息管理系统所有信息************");

for(i=0;i

{

printf("\n\t\t学号:

%s",student[i].numb);

printf("\n\t\t姓名:

%s",student[i].name);

printf("\n\t\t宿舍号:

%s",student[i].room);

printf("\t\t");

if(i+1

{

printf("\n\t\t_____________________________________________");

}

}

printf("\n\t\t************************************************");

}

else

printf("\n\t\t宿舍信息管理系统中无任何纪录");

printf("\n\t\t按任意键返回主菜单:

");

getch();

return(0);

}

searchbyname()/*按姓名查找*/

{

intmark=0;

inti;

inta=0;

printf("\n\t\t*****************按姓名查找*******************");

charname[20];

printf("\n\t\t请输入姓名:

");

scanf("%s",name);

for(i=a;i

{

if(strcmp(student[i].name,name)==0)

{

printf("\n\t\t*************以下是您查找的用户信息***********");

printf("\n\t\t学号:

%s",student[i].numb);

printf("\n\t\t姓名:

%s",student[i].name);

printf("\n\t\t宿舍号:

%s",student[i].room);

printf("\n\t\t************************************************");

mark++;

getch();

return(0);

}

}

if(mark==0)

{

printf("\n\t\t没有该学生的信息");

printf("\n\t\t按任意键返回主菜单");

getch();

return(0);

}

return(0);

}

searchbyroom()/*按学号查找*/

{

intmark=0;

inti;

inta=0;

printf("\n\t\t******************按宿舍号查找******************");

charnumb[10];

printf("\n\t\t请输入宿舍号:

");

scanf("%s",room);

for(i=0;i

{

if(strcmp(student[i].room,room)==0)

{

printf("\n\t\t**************以下是您查找的用户信息**********");

printf("\n\t\t学号:

%s",student[i].numb);

printf("\n\t\t姓名:

%s",student[i].name);

printf("\n\t\t宿舍号:

%s",student[i].room);

printf("\n\t\t************************************************");

printf("\n\t\t按任意键返回主菜单:

");

mark++;

if((i+1)

{

printf("\n\t\t是否继续查找相同宿舍号的用户信息:

(y/n)");

if(getch()=='y')

{

a=i;

continue;

}

else

return(0);

}

else

{

printf("\n\t\t按任意键返回主菜单");

getch();

return(0);

}

}

}

if(mark!

=0)

{

printf("\n\t\t没有相同宿舍号的用户纪录");

printf("\n\t\t按任意键返回主菜单");

getch();

return(0);

}

return(0);

}

searchbynumb()/*按学号查找*/

{

intmark=0;

inti;

inta=0;

printf("\n\t\t******************按学号查找******************");

charnumb[10];

printf("\n\t\t请输入学号:

");

scanf("%s",numb);

for(i=0;i

{

if(strcmp(student[i].numb,numb)==0)

{

printf("\n\t\t**************以下是您查找的学生信息**********");

printf("\n\t\t学号:

%s",student[i].numb);

printf("\n\t\t姓名:

%s",student[i].name);

printf("\n\t\t宿舍号:

%s",student[i].room);

printf("\n\t\t************************************************");

printf("\n\t\t按任意键返回主菜单:

");

mark++;

getch();

return(0);

}

}

if(mark==0)

{

printf("\n\t\t没有该学生的信息");

printf("\n\t\t按任意键返回主菜单");

getch();

return(0);

}

return(0);

}

add()/*添加记录*/

{

inti;

if((fp=fopen("student.bin","wb"))==NULL)/*判断文件是否打开*/

{

printf("\n\t\t文件打开失败");

}

for(i=0;i

{

if(fwrite(&student[i],sizeof(structrecord),1,fp)!

=1)

/*fwrite()(数据块的输出)将以数组student[i]为首地址的一个sizeof(structrecord)的大小的数据块写入fp指向的文件中*/

{

printf("\n\t\t写入文件错误!

\n");

}

printf("\n\t\t****************请输入用户信息****************\n");

printf("\n\t\t输入学号:

");

scanf("%s",student[num].numb);

printf("\n\t\t输入姓名:

");

scanf("%s",student[num].name);

printf("\n\t\t输入性别:

");

scanf("%s",student[num].sex);

num++;

printf("\n\t\t是否继续添加?

(Y/N):

");

if(getch()=='y')

adduser();

return(0);

}

fclose(fp);/*关闭fp所指向的文件*/

printf("\n\t\t宿舍信息管理系统文件已保存");

printf("\n\t\t按任意键退出程序\n\t\t");

exit(0);

return(0);

}

change()/*按学号修改*/

{inti,j;

charnumb;

scanf("%s",numb);

for(i=0;i

if(strcmp(student[i].numb,numb)==0)

{printf("\n\t\t**************以下是您查找的用户信息**********");

printf("\n\t\t学号:

%s",student[i].numb);

printf("\n\t\t姓名:

%s",student[i].name);

printf("\n\t\t宿舍号:

%s",student[i].room);

printf("\n\t\t************************************************");

printf("\n\t\t是否要修改?

(Y/N)\n");

if(getchar()=='Y'||getchar()=='y')

{{printf("\n\t\t********请输入第%d位的学生信息*****************",i);

printf("\n\t\t输入学号:

");

scanf("%s",student[num].numb);

printf("\n\t\t输入姓名:

");

scanf("%s",student[num].name);

printf("\n\t\t输入宿舍号:

");

scanf("%s",student[num].room);

printf("\n\t\t************************************************");

}

student[i]=student[i];

printf("\n\t\t修改成功");

printf("\n\t\t是否继续修改?

(y/n)");

if(getch()=='y'||getch()=='Y')

plus();

return;

}

}

else

{printf("\n\t\t对不起,文件中无任何纪录");

printf("\n\t\t按任意键返回主菜单");

getchar();

return;

}

}

voiddeletebynumb()/*按学号删除*/

{

inti,j;

intdeletemark=0;/*将删除联系人的数目初始化为0*/

charnumb[20];

printf("\n\t\t请输入要删除学生学号:

");

scanf("%s",numb);

if(num==0)/*num为0说明宿舍信息管理系统中还没有输入联系人*/

{

printf("\n\t\t对不起,文件中无任何纪录");

printf("\n\t\t按任意键返回主菜单");

getch();

return;

}

for(i=0;i

{

if(strcmp(student[i].numb,numb)==0)

{

printf("\n\t\t以下是您要删除的学生纪录:

");

printf("\n\t\t学号:

%s",student[i].numb);

printf("\n\t\t姓名:

%s",student[i].name);

printf("\n\t\t性别:

%s",student[i].room);

printf("\t\t");

printf("\n\t\t是否删除?

(y/n)");

if(getch()=='y')

{

for(j=i;j

student[j]=student[j+1];/*将要删除的学生的后一位赋值给要删除的学生*/

num--;/*宿舍信息管理系统中的学生数目减少1*/

deletemark++;/*删除的联系人增加1*/

printf("\n\t\t删除成功");

printf("\n\t\t是否继续删除?

(y/n)");

if(getch()=='y')/*输入y值,继续调用按学号函数删除*/

deletebynumb();

return;

}

else/*否则,返回值*/

return;

}

continue;/*跳出for循环,立即转向计算表达式3,对循环控制变量增量或减量*/

}

if(deletemark==0)/*若删除的学生数目为0,则说明没有删除学生信息管理系统里的学生*/

{

printf("\n\t\t没有该学生的纪录");

printf("\n\t\t是否继续删除?

(y/n)");

if(getch()=='y')/*输入y值,继续调用按学号函数删除*/

deletebynumb();

return;

}

}

voiddeletebyname()/*按姓名删除*/

{inta=0;

intfindmark=0;

inti,j;

intdeletemark=0;

charname[20];

printf("\n\t\t请输入要删除学生姓名:

");

scanf("%s",name);

for(i=a;i

{

if(strcmp(student[i].name,name)==0)

{

printf("\n\t\t以下是您要删除的学生纪录:

");

findmark++;

printf("\n\t\t________________________________");

printf("\n\t\t学号:

%s",student[i].numb);

printf("\n\t\t姓名:

%s",student[i].name);

printf("\n\t\t性别:

%s",student[i].sex);

printf("\n\t\t出生日期:

%s",student[i].birth);

printf("\n\t\t学位:

%s",student[i].degr);

printf("\n\t\t职务:

%s",student[i].duty);

printf("\n\t\t电话号码:

%s",student[i].tel);

printf("\n\t\t________________________________");

printf("\n\t\t是否删除?

(y/n)");

if(getchar()=='y')

{

for(j=i;j

student[j]=student[j+1];

num--;

deletemark++;

printf("\n\t\t删除成功");

printf("\n\t\t是否继续删除?

(y/n)");

if(getch()=='y')/*输入y值,继续调用按姓名函数删除*/

deletebyname();

return;

}

else/*否则,返回值*/

return;

}

continue;/*跳出for循环,立即转向计算表达式3,对循环控制变量增量或减量*/

}

if(deletemark==0)/*若删除的学生数目为0,则说明没有删除宿舍信息管理系统里的学生*/

{

printf("\n\t\t没有该学生的纪录");

printf("\n\t\t是否继续删除?

(y/n)");

if(getch()=='y')/*输入y值,继续调用按姓名函数删除*/

deletebyname();

return;

}

}

dele()

{

charchoic;

printf("\n\t\t1-按学号删除2-按姓名删除");

printf("\n\t\t请选择:

");

choic=getch();

switch(choic)

{

case'1':

deletebynumb();break;

case'2':

deletebyname();break;

}

return(0);

}

save()/*保存记录*/

{

intj;

FILE*fp;

fp=fopen("student.txt","w");/*以只写的方式打开文件*/

if(fp==NULL)/*判断文件是否存在*/

printf("can'topenthefile.");/*不能打开文件*/

if(num!

=0)

{

for(j=0;j

{

fwrite(student,sizeof(student),1,fp);

}

}

printf("保存成功!

");

fclose(fp);/*关闭fp所指向的文件*/

return(0);

}

如有侵权请联系告知删除,感谢你们的配合!

如有侵权请联系告知删除,感谢你们的配合!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学案例设计

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1