宠物管理系统
    放假时的作业,加了个登陆的,不同用户有不同权限,可惜,本来想把密码的输入弄成*号的,可是上网查了下,都是用getch()做的,可是在DEV中没这函数,所以也就没办法了,呵呵,用户名有二个,admin和nurse,密码和用户名一样,以下的程序在DEV-C++下编译通过,若要在VC下编译,请把主函数开关的int main改为main

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct pet
{
int id; //宠物编号
char type[20]; //宠物类型
char name[20]; //宠物名字
int age; //宠物年龄
char hname[20]; //主人名字
}p[50];

int count=0; //统计宠物个数,全局变量
int flag1; // flag1表示增加修改删除权限,1表示有权限,0表示没有

void login() //验证身份函数
{
char user[20];
char pwd[20];
int temp; //判断用户名和密码是否正确
system("cls");
printf("\n\n\n\n\n\t\t\t\t 登 陆\n");
printf("--------------------------------------------------------------------------------\n");
printf("\t\t\t 用户名:");
gets(user);
printf("\n\n\t\t\t 密 码:");
gets(pwd);
if(strcmp(user,"admin")==0 && strcmp(pwd,"admin")==0)
{
flag1=1;
temp=1;
}
if(strcmp(user,"nurse")==0 && strcmp(pwd,"nurse")==0)
{
flag1=0;
temp=2;
}
switch(temp)
{
case 1:
{
printf("\n\n\t\t管理员,登陆成功,您拥有全部权限,");
system("pause");
break;
}
case 2:
{
printf("\n\n\t\t护士,登陆成功,您拥有查询和统计的权限,");
system("pause");
break;
}
default:
{
printf("\n\n\t\t用户名或密码错误,");
system("pause");
login();
}
}
}

void error() //权限不够时的提示
{
system("cls"); //系统清屏
printf("\n\n\n\t\t\t对不起,您的权限不够,");
}

void sort() //排序函数
{
int i,j;
struct pet temp;
for(i=0;i<count;i++)
{
for(j=0;j<count-i-1;j++)
{
if(p[j].id > p[j+1].id)
{
temp = p[j];
p[j] = p[j+1];
p[j+1] = temp;
}
}
}
}

void display() //查看函数
{
int i;
printf("\n--------------------------------------------------------------------------------\n");
printf(" 宠物编号\t宠物类型\t宠物姓名\t宠物年龄\t主人姓名\n");
for(i = 0;i<count;i++)
{
printf(" %-d\t\t %-s\t\t %-s\t\t %-d\t\t %-s\n",p[i].id,p[i].type,p[i].name,p[i].age,p[i].hname);
}
printf("\n");
}

void add() //增加函数
{
char ch;
int i,t;
system("cls"); //系统清屏
if(flag1)
{
printf("\n\t\t\t\t 添加宠物\n");
printf("\n--------------------------------------------------------------------------------\n");
for(i = count;i<50;i++)
{
printf("请输入第%d位宠物的信息:\n",i+1);
printf("宠物编号:");
fflush(stdin);
scanf("%d",&p[i].id);
printf("宠物类型:");
fflush(stdin);
gets(p[i].type);
printf("宠物姓名:");
fflush(stdin);
gets(p[i].name);
printf("宠物年龄:");
fflush(stdin);
scanf("%d",&p[i].age);
printf("主人姓名:");
fflush(stdin);
gets(p[i].hname);
printf("\n\n");
count++; //宠物总数加1
printf("是否继续输入宠物信息(y/n)?");
fflush(stdin);
ch = getchar();
if(ch == 'n' || ch=='N')
break;
}
printf("宠物录入入完成,");
system("pause");
}
else
{
error();
system("pause");
}
}

void change() //修改函数
{
int n,i,flag=0; //flag标志位,1表示有此宠物,0表示没有
char ch;
system("cls"); //系统清屏
if(flag1)
{
printf("\n\t\t\t\t 修改记录\n");
printf("\n--------------------------------------------------------------------------------\n");
printf("请输入你要修改的宠物编号:");
fflush(stdin);
scanf("%d",&n);
for(i=0;i<count;i++)
{
if(p[i].id == n)
{
flag=1;
break;
}
else
{
flag=0;
}
}
if(flag)
{
printf("已找到这条记录!显示如下:\n");
printf(" 宠物编号\t宠物类型\t宠物姓名\t宠物年龄\t主人姓名\n");
printf(" %-d\t\t %-s\t\t %-s\t\t %-d\t\t %-s\n",p[i].id,p[i].type,p[i].name,p[i].age,p[i].hname);
printf("\n\t\t你真的要修改吗?<y or n>");
fflush(stdin);
ch=getchar();
while(ch=='y' || ch=='Y')
{
ch=' ';
printf("宠物编号:");
fflush(stdin);
scanf("%d",&p[i].id);
printf("宠物类型:");
fflush(stdin);
gets(p[i].type);
printf("宠物姓名:");
fflush(stdin);
gets(p[i].name);
printf("宠物年龄:");
fflush(stdin);
scanf("%d",&p[i].age);
printf("主人姓名:");
fflush(stdin);
gets(p[i].hname);
printf("修改完成,请返回主菜单用查询功能查看结果\n");

}
}
else
{
printf("没找着宠物记录,");
}
system("pause");
}
else
{
error();
system("pause");
}
}

void del() //删除函数
{
system("cls"); //系统清屏
if(flag1)
{
printf("\n\t\t\t\t 删除记录\n");
printf("\n--------------------------------------------------------------------------------\n");
int i,j,no,flag=0; //flag标志位,0表示没有此宠物,1表示有此宠物
printf("请输入要删除宠物的编号:");
fflush(stdin);
scanf("%d",&no);
for(i=0;i<count;i++){
if(p[i].id == no){
flag = 1;
break;
}
}
if(flag)
{
for(j=i;j<count-1;j++)
{
p[j] = p[j+1];
}
count--; //宠物总数减1
printf("删除完成,请返回主菜单用查看功能查看结果.\n");
}
else
{
printf("没有该宠物的信息\n");
}
system("pause");
}
else
{
error();
system("pause");
}
}

void query() //查询函数
{
int x,i,flag;
char n[20];
system("cls"); //系统清屏
sort(); //调用排序函数,先排序好结构数组
printf("\n\t\t\t\t 查询宠物\n");
printf("\n--------------------------------------------------------------------------------\n");
printf("\t\t\t1>浏览全部\n");
printf("\t\t\t2>按姓名查询\n");
printf("\t\t\t");
scanf("%d",&x);
if (x==1)
display();
else
{
printf("\n--------------------------------------------------------------------------------\n");
printf("请输入宠物姓名:");
fflush(stdin);
gets(n);
for(i=0;i<count;i++)
{
if (strcmp(n,p[i].name)==0) //比较输入的班级名是否是某个学生的班级
{
flag=1;
break;
}
else
flag=0;
}
if(flag)
{
printf(" 宠物编号\t宠物类型\t宠物姓名\t宠物年龄\t主人姓名\n");
printf(" %-d\t\t %-s\t\t %-s\t\t %-d\t\t %-s\n",p[i].id,p[i].type,p[i].name,p[i].age,p[i].hname);
}
else
printf("没有找到此宠物!!!\n");

}
system("pause");
}

void statistics() //统计函数
{
int i,flag;
char name[20];
sort(); //调用排序函数,先排序好结构数组
system("cls"); //系统清屏
printf("\n\t\t\t\t 统计宠物\n");
printf("\n--------------------------------------------------------------------------------\n");
printf("请输入宠物类型:\n");
fflush(stdin);
gets(name);
for(i=0;i<count;i++)
{
if(strcmp(p[i].type,name)==0)
{
flag=1;
break;
}
else
{
flag=0;
}
}
if(flag)
{
printf("\n--------------------------------------------------------------------------------\n");
printf(" 宠物编号\t宠物类型\t宠物姓名\t宠物年龄\t主人姓名\n");
for(i = 0;i<count;i++)
{
if (strcmp(p[i].type,name) != 0) //学员班级与输入的班级不同时则跳过
continue;
printf(" %-d\t\t %-s\t\t %-s\t\t %-d\t\t %-s\n",p[i].id,p[i].type,p[i].name,p[i].age,p[i].hname);
}
printf("\n");
}
else
printf("没有此种宠物类别!!!\n");
system("pause");
}

int main()
{
int select;
login(); //验证身份函数
do
{
system("cls"); //系统清屏
printf("\n\t\t\t 宠物管理系统\n");
printf("--------------------------------------------------------------------------------\n");
printf("\t\t\t 请选择相应的功能\n\n");
printf("\t\t\t 1>增加宠物记录\n");
printf("\t\t\t 2>修改宠物记录\n");
printf("\t\t\t 3>删除宠物记录\n");
printf("\t\t\t 4>查询宠物记录\n");
printf("\t\t\t 5>统计宠物记录\n");
printf("\t\t\t 0>退出系统\n");
printf("\t\t\t ");
scanf("%d",&select);
switch (select)
{
case 1: add(); break; //增加函数
case 2: change(); break; //修改函数
case 3: del(); break; //删除函数
case 4: query(); break; //查询函数
case 5: statistics(); break; //统计函数
case 0: exit(0); //退出系统
}
}while(1);
}


返回开头      返回上一页

版权所有©牛腩
2007-03-09 ver2.0
QQ:164423073   UC:1170098384
niunan.snid@gmail.com