C语言学生宿舍管理系统Word文件下载.docx
《C语言学生宿舍管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言学生宿舍管理系统Word文件下载.docx(21页珍藏版)》请在冰豆网上搜索。
//按系别查找
voiddeSeek(structStudent*,int);
//删除学生信息voiddel(structStudent*,int);
//修改学生信息
voidmodify(structStudent*,int);
//增加学生信息
voidadd(structStudent*,int);
//全局变量来记录存储学生的人数intnum=0;
//主函数
intmain()
charch[10];
printf("
\t欢迎进入宿舍管理系统\n"
);
请输入你想存储的学生人数:
"
);
scanf("
%d"
&
num);
system("
cls"
//申请动态存储空间
stu=(structStudent*)malloc((sizeof(structStudent))*num);
while
(1){
system("
printf("
\n"
\t欢迎进入宿舍管理系统
\t
*********************************************************
\t1.printf("
\t2.
\t3.
\t4.
\t5.
\t6.
\t7.
\t8.
\t9.
\t10.
\t0.
**\n"
录入学生信息"
)按学号查询\n"
按宿舍号查询"
按姓名查询\n"
按系别或专业查询"
)添加信息\n"
修改信息"
保存信息\n"
读取信息"
删除信息\n"
退出系统\n"
\n"
\t请选择你想实现的功能:
"
scanf("
%s"
ch);
//用函数指针指向各函数
if(strcmp(ch,"
1"
)==0)
p=insert;
(*p)(stu,num);
}
elseif(strcmp(ch,"
2"
p=noSeek;
elseif(strcmp(ch,"
3"
p=dSeek;
4"
p=naSeek;
5"
p=deSeek;
6"
p=add;
7"
p=modify;
8"
p=write;
9"
p=read;
(*p)(stu,num);
10"
p=del;
0"
exit(0);
//write(stu,num);
//read(stu,num);
return0;
//输入学生相关信息
voidinsert(structStudent*stu,intnum)
inti=0;
charch;
do{if(i<
num)
输入第%(个学生的宿舍号:
i+1);
stu[i].dorNo);
\n姓名:
stu[i].stuName);
\n学号:
stu[i].stuNo);
\n性别:
stu[i].stuSex);
\n系别:
stu[i].dept);
\n专业:
stu[i].major);
\nxx:
stu[i].tel);
i++;
else
\n\t人数已满无法继续输入"
\n是退出该功能输入?
(Y/N):
ch=getchar();
ch=getchar();
}while(ch!
='
y'
&
ch!
Y'
write(stu,num);
voidnoSeek(structStudent*stu,intnum)
inti;
intm;
chara;
\n确认您已录入学生信息?
<
y/n>
:
a=getchar();
if(a!
n'
a!
N'
)
\n请输入你想要查找的学生学号:
m);
for(i=0;
i<
num;
i++)
if(m==stu[i].stuNo)
\n宿舍号:
%d\n姓名:
%s\n学号:
%d\n性别:
%s\n系别:
%s\n专业:
%s\nxx号码:
%d\n"
stu[i].dorNo,stu[i].stuName,stu[i].stuNo,stu[i].stuSex,stu[i].dept,stu[i].major,stu[i].tel);
\n\t没有你要查找的学生信息。
\n请按任意键返回"
getchar();
//按宿舍查找
voiddSeek(structStudent*stu,intnum)
intdor;
charch,a;
\n请输入你想要查找的学生宿舍号:
dor);
if(dor==stu[i].dorNo)
%s\n系
别:
\t没找到你要的学生信息。
。
。
\n\n"
//按姓名查询
voidnaSeek(structStudent*stu,intnum)
charname[20];
\n请输入你想要查找的学生姓名:
name);
if(strcmp(name,stu[i].stuName)==0)
\n\n\t没找到你要的学生信息。
//按系别或专业查询
voiddeSeek(structStudent*stu,intnum)
charde[20];
\n\t请输入你想要查找的系别或专业:
de);
if(strcmp(de,stu[i].dept)==0)
\n\n\t没找到你要的学生信息。
将数据写入文件*/voidwrite(structStudent*stu,intnum){
//控制循环
FILE*fp;
//定义文件指针
if(stu[num-1].stuNo!
=0)
if((fp=fopen("
E:
\\student.txt"
"
wt"
))==NULL)//如果文件没有打开,提示错误并退出
\n\t文件没有打开!
程序结束!
//等待用户观察
//结束整个程序
i<
i++)//将数据依次写入文件
fprintf(fp,"
%s\n
系别:
\n\t已将学生信息保存在了D盘根目录下的student.txt文件中。
\n\t没有学生信息。
fclose(fp);
读取文件数据*/
voidread(structStudent*stu,intnum)
FILE*fp;
rt"
))==NULL)
数据读取失败!
i++)
//从文件中读出数据
fscanf(fp,"
stu[i].dorNo,&
stu[i].stuName,&
stu[i].stuNo,&
stu[i].stuSex,&
stu[i].dept,&
stu[i].major,&
//修改信息
voidmodify(structStudent*stu,intnum)
请输入你想修改学生的学号:
\n宿舍号:
%d\n姓名:
%s\n学号:
%d\n性别:
\n您确认修改该学生信息吗?
<
if(ch!
\n输入该学生的宿舍号:
\n姓名:
\n学号:
\n性别:
\n系别:
\n专业:
\nxx:
\n\t修改成功!
!
output(stu,num);
\n\t无法修改信息!
//break;
continue;
//删除相关学生信息
voiddel(structStudent*stu,intnum)
intno;
intj;
\n请输入您想删除的学生学号:
no);
if(no==stu[i].stuNo)
\n您确认删除该学生信息?
)//实现删除学生信息
for(j=i;
j<
=num-1;
j++)
(stu+j)=*(stu+j+1);
num--;
\n\t
\n\t
无法删除!
!
//添加学生信息
voidadd(structStudent*stu,intnum)
\n\t请输入你想添加的学生人数:
if((stu[num-1].stuNo)!
stu=(structStudent*)realloc(stu,num+no);
for(i=num;
num+no;
*(stu+num+no)=*(stu+num);
\n输入第%d(学生的宿舍号:
num=num+no;
\n宿舍号:
%d\n姓名:
%s\n学号:
%d\n性别:
%s\n系别:
%s\n
专业:
%s\nxx号
码:
//write(stu,num);
\n\t无法添加学生信息。
//打印学生信息
voidoutput(structStudent*stu,intnum)
更新学生信息如下:
\t\n\n
\t\n宿舍号:
\n没有学生信息."
//程序结束