学生宿舍管理查询系统

wangdong1012913 2009-07-15 10:22:53
设计一个简单的学生宿舍管理查询程序,要求根据菜单处理相应功能。
(1)建立数据文件 ,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)
(2)查询菜单: (可以用二分查找实现以下操作)
A. 按姓名查询
B. 按学号查询
C. 按房号查询等
(3)可以打印任一查询结果
(4)每个学生的信息包括:序号、学号、性别、房号、楼号等;
(5)基本功能为:建立文件、增加学生宿舍记录、删除/修改、查询学生宿舍记录。


帮我改改,谢谢拉!
要能够运行

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h> //输出输入函数头文件
#define N 15


//自定义函数声明部分//
void showheader(); //声明显示表头部分
int mainmenu(); //声明主菜单函数
int mainmenu_charu(); //声明插入功能子菜单函数
int mainmenu_chazhao(); //声明查找功能子菜单函数
int quanxian(); //声明用户权限管理函数
void savepass(); //密码显示为“*”的函数
struct student shuru(); //声明学生信息录入函数
void display(struct student); //声明显示函数
void charu(struct student stu[N],int); //声明插入函数
void sort(struct student stu[N],int); //声明排序函数
void chazhao_number(struct student stu[N],int i); //声明按照学号查找函数
void chazhao_name(struct student stu[N],int i); //声明按照姓名查找函数
void chazhao_roomnum(struct student stu[N],int i); //声明按照房号查找函数


//定义结构体//
struct student
{
/* 构造结构成员 */
char name[15]; //姓名
int xuhao; //序号
int number; //学号
char sex; //性别
int roomnum; //房号
int housenum; //楼号
char *getSex()
{
if(sex=='g')
return "女";
else
return "男";
}
}stu;



/****************************主函数开始**************************/
void main()
{
struct student stu[N];
int count=1,m=0,j;
char ch,ch1;
int choice1,choice2,choice3; //菜单选项及子菜单选项
int user;
do //此循环体控制用户信息输入错误后是否重输
{

user=quanxian(); //调用用户权限函数
system("cls"); // 调用DOS下的清屏命令"cls"
if(user==1) //此条件结构判断用户权限输入是否正确
{
do //此循环体控制返回主菜单
{ ch1='n'; //如果用户将主菜单选择错误,可用此变量控制是否重输
choice1=mainmenu();
system("cls");
switch(choice1) //此条件结构控制选择菜单功能后的操作
{
case 1: //输入学生信息
{
do //此循环体控制是否继续输入
{
printf("****************************** 学生信息录入 **********************************\n");
printf("请输入第%d个学生的信息\n");
stu[count]=shuru(); //调用输入函数
printf("是否继续(y/n)");
fflush(stdin); // 刷新标准输入缓冲区,把输入缓冲区里的东西丢弃
ch=getchar();
count++;
system("cls");
}
while(ch=='y');
system("pause");
break;
}



case 2://插入功能
{
while(choice2!=2) //此循环体控制是否退出子菜单
{
system("cls");
choice2=mainmenu_charu(); //调用子菜单函数
system("cls");
if(choice2==1) //此条件结构控制子菜单选项
{
do //此循环体判断是否继续插入
{
printf("****************************** 学生信息插入 **********************************\n");
charu(stu,count); //调用插入函数
count++;
printf("是否继续插入?(y/n)");
fflush(stdin);
ch=getchar();
system("cls");
}
while(ch=='y');
}
if (choice2==2) //此条件结构控制子菜单选项
{
printf("\n\n插入学生信息后如下:\n");
sort(stu,count); //调用排序函数
showheader(); //调用显示表头部分
for(j=0;j<count;j++)
{
display(stu[j]); //调用显示函数
}
system("pause");
}
}
break;
}

case 3: //查找功能
{
while(choice3!=3) //控制是否继续查找
{
system("cls");
choice3=mainmenu_chazhao(); //调用查找子菜单函数
system("cls");
if(choice3==1) //控制按照学号查找
{
chazhao_number(stu,count); //调用按照学号查找的函数
system("cls");
}

if(choice3==2) //控制按照姓名查找
{
chazhao_name(stu,count); //调用按照姓名查找的函数
system("cls");
}
if(choice3==3) //控制按照房间查找
{
chazhao_roomnum(stu,count); //调用按照房间查找的函数
system("cls");
}
system("pause");
}
break;
}



case 4: //退出
{
printf("确认退出?(y/n)"); //让用户确认是否退出
fflush(stdin);
ch=getchar();
break;
}
default:
{
printf("\a\a警告:您输入错误,是否重输!(y/n)");
fflush(stdin);
ch1=getchar();
system("cls");
break;
}
} //end switch
}while(ch=='n'|| ch1=='y'); //控制是否要退出系统
} //end if
if(user==0)
{
printf("\a\a警告:您的用户名或密码输入有误!是否重输?(y/n)");
}
fflush(stdin);
ch=getchar();
system("cls");
}while(ch=='y');
}
/*************************主函数结束*************************/








/*自定义输入函数*/
struct student shuru()
{
printf("序号:");
scanf("xuhao");
printf("学号:");
scanf("number");
printf("姓名:");
scanf("name");
printf("性别:");
fflush(stdin);
scanf("sex");
printf("房号:");
scanf("roomnum");
printf("楼号:");
scanf("housenum");
return stu;
}


/*自定义显示函数*/
void display(struct student stu)
{

printf("序号:");
printf("学号:");
printf("姓名:");
printf("性别:");
fflush(stdin);
printf("房号:");
printf("楼号:");
}
/*自定义排序函数*/
void sort(struct student stu[N],int i)
{

int j,k;
struct student temp;
for(j=0;j<i;j++)
{
for(k=0;k<i-j-1;k++)
{
if((stu[k].number)>(stu[k+1].number))
{
temp=stu[k];
stu[k]=stu[k+1];
stu[k+1]=temp;
}
}
}

}
/*自定义插入函数*/
void charu(struct student stu[N],int k)
{
int i,l;
struct student in ;

in=shuru(); //调用输入函数
for(i=0;i<k;i++)
{
if(in.number>stu[i].number)
break;
}
for(l=k;l>i;l--)
{
stu[l]=stu[l-1];
}
stu[i]=in;
}





/*自定义主菜单函数*/
int mainmenu()
{
int choice;
printf("\t\t\t************************************\n\n\t\t\t您好,欢迎进入学生宿舍管理查询系统!\n\n\t\t\t************************************\n\n");
printf("***************主菜单***************\n\n");
printf("\t\t\t\t1 学生信息录入\n\n");
printf("\t\t\t\t2 学生信息显示\n\n");
printf("\t\t\t\t3 插入学生信息\n\n");
printf("\t\t\t\t4 查找学生信息\n\n");
printf("\t\t\t\t5 退出\n");
printf("\n\n\t\t\t请选择功能选项:");
scanf("choice");
return choice;
}

/*自定义插入功能子菜单函数*/
int mainmenu_charu()
{
"\t*******************这里显示的是插入功能子菜单*******************\n\n";
printf("\t\t\t\t1、插入学生信息\n\n");
printf("\t\t\t\t2、显示插入后的学生信息\n\n");
printf("\t\t\t\t3、退出子菜单,返回上一级菜单\n\n");
printf("\n\n请选择功能选项:");
int choice2;
scanf("choice2");
return choice2;
}



/*自定义按照学号查找函数*/
void chazhao_number(struct student stu[N],int i)
{
int select,j;
char ch;
printf("\t*******************您选择的是按照学号查找:*******************\n\n");
do
{
printf("\n\n请输入学号:");
scanf("select");
for(j=0;j<i;j++)
{
if(select==stu[j].number)
{

break;
}

}
if(j<i)
{
showheader();
display(stu[j]);
}
else
{
printf("您查找的信息不存在\n");
}
printf("您是否继续查找?(y/n)");
fflush(stdin);
ch=getchar();
system("cls");
}
while(ch=='y');
}
/*自定义按照姓名查找函数*/
void chazhao_name(struct student stu[N],int i)
{
int j;
char name[15];

char ch;
printf("\t*******************您选择的是按照姓名查找:*******************\n\n");
do
{
printf("\n\n请输入姓名:");
scanf("name");
for(j=0;j<i;j++)
{
if(strcmp(name,stu[j].name)==0)
{
break;
}
}
if(j<i)
{
showheader();
display(stu[j]);
}
else
{
printf("您查找的信息不存在\n");
}

printf("是否继续查找?(y/n)");
fflush(stdin);
ch=getchar();
system("cls");
}
while(ch=='y');
}
//按照房间号查找
void chazhao_roomnum(struct student stu[N],int i)
{
int j,room;
char ch;
printf("\t*******************您选择的是按照房号查找:*******************\n\n");
do
{
printf("\n\n请输入房号:");
scanf("roomnum");
for(j=0;j<i;j++)
{
if(room==stu[j].roomnum)
{
break;
}
}
if(j<i)
{
showheader();
display(stu[j]);
}
else
{
printf("您查找的信息不存在\n");
}

printf("是否继续查找?(y/n)");
fflush(stdin);
ch=getchar();
system("cls");
}
while(ch=='y');
}



/*自定义查找功能子菜单函数*/
int mainmenu_chazhao()
{
printf("\t*******************这里显示的是查找功能子菜单*******************\n\n");
printf("\t\t\t\t1、按照学号查找\n\n");
printf("\t\t\t\t2、按照姓名查找\n\n");
printf("\t\t\t\t3、按照房号查找\n\n");
printf("\t\t\t\t4、退出子菜单,返回上一级菜单\n\n");
printf("\n\n请选择功能选项:");
int choice3;
scanf("choice3");
return choice3;
}

/*自定义用户权限函数*/
char chrPass[15];
int quanxian()
{
char user[15];
printf("\t\t\t***********************************\n\n\t\t\t您好,欢迎访问学生宿舍管理查询系统! \n\n\t\t\t***********************************\n\n");
printf("\n\t\t\t提示 用户名:09308001 密码:09308001\n");
printf("\n\t\t\t用户名:");
scanf("user");
printf("\n\t\t\t密 码:");
scanf("chrPass");

savepass();
if((strcmp(chrPass,"09308001")==0)&&(strcmp(user,"09308001")==0))
return 1;
else
return 0;
}
/*密码显示为"*"的函数*/
void savepass()
{
char chr;
int count;
count = 0;
while((chr=getch())!=15)
{
chrPass[count] = chr;
printf("*");
count++;
}
chrPass[count+1] = '\0';
}
/*自定义表头函数*/
void showheader()
{ printf("\n\n\t******************************************************************\n");
printf("\t序号\t学号\t姓名\t性别\t房号\t楼号\n");
printf("\t*******************************************************************\n");
}






...全文
363 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

69,372

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧