|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 认真学习的pea 于 2020-7-15 10:33 编辑
- /* 图书管理系统:
- a.程序密码功能
- b.用户名密码登录功能
- (用户信息结构体:序号,用户名,密码)
- c.登录后可进行图书的管理(修改下列图书信息)
- (图书信息结构体:序号,书名,作者名,页数,定价,剩余数量...)
- d.尝试添加多个用户、多本图书... */
- #include<stdio.h>
- #include<string.h>
- #include<stdlib.h>
- struct book {int num1;//序列号
- int num2;//剩余数量
- int book_page;//页数
- float price;//定价
- char book_name[20];//书名
- char writer[20];};//作者名
- struct user {char name[20];//用户名
- char pwd[20];};//用户密码
-
- struct book information[20]={{1,10,256,99.99,"AAA","111"},
- {2,12,266,16.65,"BBB","222"},
- {3,20,169,19.99,"CCC","333"}};
- struct user check[20]={{"pea1","123456"},
- {"pea2","1234567"},
- {"pea3","12345678"}};//定义全局变量
- int check_name_pwd(char a[20],char b[20])//检查用户名和密码是否匹配
- {
-
- int i;
- int countx1=0;
- int countx2=0;
- for(i=0;i<3;i++)
- {
- if(strcmp(a,check[i].name)==0&&strcmp(b,check[i].pwd)==0)//检查用户名和密码是否匹配必须对应满足
- {
- countx1++;
- countx2++;
- }
- }
-
- return countx1+countx2;
- }
- int main(int argc,const char **argv)
- {
- // a.程序密码判断
- if(argc != 2) //判断参数数量
- {
- printf("参数数量不正确,请重新运行!\n");
- return -1; //结束程序
- }
- if(strcmp("654321", argv[1])) //判断密码
- {
- printf("密码不正确,请重新运行!\n");
- return -2; //结束程序
- }
- int f,y;
- int j=1;//控制密码输出次数变量
- int k;//功能管理指令
- int g;//子功能修改数据控制指令
- int z;//图书管理功能选择指令
- float q;
- char new_writer[20];//输入的新作者
- char new_book_name[20];//新书名
- char name1[20];//新用户名
- char pwd1[20];//对应的新密码
- char user_[20];//输入的用户名
- char pwd_[20];//输入的密码
- while(1) //用户登录功能
- {
- printf("请输入用户名\n");
- scanf("%s",user_);while(getchar()!='\n');
- /* printf("%s\n",user_); */
- printf("请输入密码\n");
- scanf("%s",pwd_);while(getchar()!='\n');
- /* printf("%s\n",pwd_); */
- if(check_name_pwd(user_,pwd_)!=2)//调用函数判断用户名和密码是否匹配
- {
- printf("用户名或密码错误!请重新输入\n");
- printf("第%d次错误\n",j);
- printf("3次后退出\n");
- if(j==3)//3次错误后退出程序
- {
- printf("第3次错误再见!\n");
- return 0;
- }
- j++;
-
- }
- else
- {
- printf("欢迎进入图书管理系统\n");
- break;
- }
- }
- while(1)
- {
- printf("请输入指令\n");
- printf("0查看所有用户\n1修改用户名\n2修改密码\n3添加用户\n4图书信息管理\n");
- scanf("%d",&k);while(getchar()!='\n');
- if(k==0)//查看所有用户
- {
- for(f=0;f<3;f++)
- {
- printf("%d:%s\n",f+1,check[f].name);
- }
- continue;
- }
- if(k==1)//修改指定用户名
- {
- printf("请输入指令修改对应的用户名\n");
- for(f=0;f<3;f++)
- {
- printf("%d:%s\n",f,check[k].name);
- }
- scanf("%d",&g);while(getchar()!='\n');
- printf("请输入用户名\n");
- bzero(name1,sizeof(name1));
- scanf("%s",name1);while(getchar()!='\n');
- strncpy(check[g].name,name1,sizeof(name1));
- continue;
- }
- if(k==2)//修改指定用户的密码
- {
- printf("请输入指令修改对应的用户名的密码\n");
- for(f=0;f<3;f++)
- {
- printf("%d:%s\n",f,check[f].name);
- }
- scanf("%d",&g);while(getchar()!='\n');
- printf("请输入新密码\n");
- bzero(pwd1,sizeof(pwd1));
- scanf("%s",pwd1);while(getchar()!='\n');
- strncpy(check[g].pwd,pwd1,sizeof(pwd1));
- continue;
- }
- if(k==3)
- {
- printf("敬请期待\n");
- }
- if(k==4)//图书管理
- {
- while(1)
- {
- printf("请输入指令\n");
- printf("0书的信息\n1序号\n2书名\n3作者名\n4页数\n5定价\n6剩余数量\n7添加图书\n8退出\n");
- scanf("%d",&z);while(getchar()!='\n');
- if(z==0)//书的信息
- {
- printf("序号\t书名\t作者名\t页数\t定价\t剩余数量\n");
- for(f=0;f<3;f++)
- {
- printf("%d\t%s\t%s\t%d\t%f\t%d\n",information[f].num1,
- information[f].book_name,information[f].writer,
- information[f].book_page,information[f].price,
- information[f].num2);
- }
- }
- if(z==1) //序号
- {
- printf("序号\t书名\t作者名\t页数\t定价\t剩余数量\n");
- for(f=0;f<3;f++)
- {
- printf("%d\t%s\t%s\t%d\t%f\t%d\n",information[f].num1,
- information[f].book_name,information[f].writer,
- information[f].book_page,information[f].price,
- information[f].num2);
- }
- printf("输入对应的序号修改\n");
- scanf("%d",&g);while(getchar()!='\n');//被替换的序号
- printf("输入你要用来替换的序号\n");
- scanf("%d",&y);while(getchar()!='\n');//替换的序号
- information[g-1].num1=y;
- continue;
- }
- if(z==2)//书名
- {
- printf("序号\t书名\t作者名\t页数\t定价\t剩余数量\n");
- for(f=0;f<3;f++)
- {
- printf("%d\t%s\t%s\t%d\t%f\t%d\n",information[f].num1,
- information[f].book_name,information[f].writer,
- information[f].book_page,information[f].price,
- information[f].num2);
- }
-
- printf("输入对应的序号修改书名\n");
- scanf("%d",&g);while(getchar()!='\n');//被替换的书名的序号
- printf("输入你要用来替换的书名\n");
- bzero(information[f].writer,20);
- scanf("%s",new_book_name);while(getchar()!='\n');//替换的书名
- strncpy(information[g-1].writer,new_book_name,20);
- continue;
- }
- if(z==3)//作者名
- {
- printf("序号\t书名\t作者名\t页数\t定价\t剩余数量\n");
- for(f=0;f<3;f++)
- {
- printf("%d\t%s\t%s\t%d\t%f\t%d\n",information[f].num1,
- information[f].book_name,information[f].writer,
- information[f].book_page,information[f].price,
- information[f].num2);
-
- }
- printf("输入对应的序号修改作者名\n");
- scanf("%d",&g);while(getchar()!='\n');//被替换的作者名的序号
- printf("输入你要用来替换的作者名\n");
- bzero(information[f].writer,20);
- scanf("%s",new_writer);while(getchar()!='\n');//替换的作者名
- strncpy(information[g-1].writer,new_writer,20);
- continue;
- }
- if(z==4)//页数
- {
- printf("序号\t书名\t作者名\t页数\t定价\t剩余数量\n");
- for(f=0;f<3;f++)
- {
- printf("%d\t%s\t%s\t%d\t%f\t%d\n",information[f].num1,
- information[f].book_name,information[f].writer,
- information[f].book_page,information[f].price,
- information[f].num2);
- }
- printf("输入对应的序号修改页数\n");
- scanf("%d",&g);while(getchar()!='\n');//被替换的页数的序号
- printf("输入你要用来替换的页数\n");
- scanf("%d",&y);while(getchar()!='\n');//替换的页数
- information[g-1].book_page=y;
- continue;
-
-
- }
- if(z==5)//定价
- {
- printf("序号\t书名\t作者名\t页数\t定价\t剩余数量\n");
- for(f=0;f<3;f++)
- {
- printf("%d\t%s\t%s\t%d\t%f\t%d\n",information[f].num1,
- information[f].book_name,information[f].writer,
- information[f].book_page,information[f].price,
- information[f].num2);
- }
- printf("输入对应的序号修改价格\n");
- scanf("%d",&g);while(getchar()!='\n');//被替换的价格的序号
- printf("输入你要用来替换的价格\n");
- scanf("%f",&q);while(getchar()!='\n');//替换的价格
- information[g-1].book_page=q;
- continue;
-
- }
- if(z==6)//剩余数量
- {
- printf("序号\t书名\t作者名\t页数\t定价\t剩余数量\n");
- for(f=0;f<3;f++)
- {
- printf("%d\t%s\t%s\t%d\t%f\t%d\n",information[f].num1,
- information[f].book_name,information[f].writer,
- information[f].book_page,information[f].price,
- information[f].num2);
- }
- printf("输入对应的序号修改剩余数量\n");
- scanf("%d",&g);while(getchar()!='\n');//被替换的剩余数量的序号
- printf("输入你要用来剩余数量\n");
- scanf("%d",&y);while(getchar()!='\n');//替换的剩余数量
- information[g-1].num2=y;
- continue;
-
- }
- if(z==7)//添加图书
- {
- printf("敬请期待\n");
- continue;
- }
- if(z==8)//退出图书管理
- {
- printf("\n");
- break;
- }
- }
- continue;
- }
-
-
- }
-
- return 0;
-
-
-
- }
复制代码 |
|