/*
设计一个无人超市会员注册系统程序,要求至少实现如下功能:
打印欢迎登录信息,提示用户选择进入以下功能:
- 新用户注册
- 用户登录
- 退出系统
新用户注册要求:
(1) 用户名必须为英文字母或英文字母+数字,其他字符判断为非法用户名,总长度不超过20个字符。
(2) 手机号码必须为11位数字,其他字符判断为非法。
(3) 密码不低于6位,总长度不超过20个字符,低于6位或者超过20位判断为非法,注册要求输入2次密码,判断2次输入是否一致。
(4) 新用户注册赠送100元。
(5) 新用户会员类型默认为普通会员,没有折扣。
(6) 新用户会员类型默认为账号正常状态。
用户登录要求:
(1)输入用户名或者手机号码均可登录。
(2)密码输入错误超过5次,将账号状态改为锁定。
(3)登录后显示用户数据,包括用户名,手机号码,余额,会员类型,账号状态。
(4)可以进入充值功能,充值10000元,自动升级为银卡会员;充值50000元自动升级为金卡会员。充值成功后提示当前的会员状态和享受的折扣。
退出系统:提示欢迎下次光临等礼貌用语。
交互界面:整体美观整洁,便于用户操作。
*/
下面附上代码 哪里不懂的或者可以改进的可以请私信我~
#include<stdio.h>
#include<ctype.h>
#include<string.h>
#define NUM 50
typedef struct Users{
float balance; //余额
int memberType; //会员类型,0表示普通会员,1表示银卡会员,2表示金卡会员
float discount[3]; //普通会员没折扣,银卡会员9折,金卡会员8折
int userState; //账号状态,0表示正常,1表示锁定
char name[22]; //用户名
char mobileNumber[12]; //手机号码
char password[21]; //密码
} User;
User user[NUM] = {
0,0,{
1,0.9,0.8},0}; //初始化
int count_user = 0; //存储注册用户的数量
void regist(); //注册模块
void login(); //登录模块
void login_judge(int); //登录检测及用户操作
int main()
{
int option;
printf("欢迎光临 X X 超市\n"); //欢迎语
while(1){
//当用户未选择退出系统时一直循环
printf("\n请输入数字选择以下功能:\n\n1. 新用户注册\n\n2. 用户登录\n\n3. 退出系统\n\n");
scanf("%d",&option);
while(option < 1||option > 3){
//检测操作数
printf("您的输入有误,请重新输入哦(1 , 2 or 3)\n");
fflush(stdin); //清除缓冲区
scanf("%d",&option);
}if(option == 1){
regist();
}else if(option == 2){
login();
}else{
//结束语
printf("\n\n感谢您的使用 ^_^ ,欢迎下次再来哦 !\n");
break;
}
}
return 0;
}
void regist(){
int len_name,len_num,i,len_pswd; //定义长度变量用于检验用户的输入
char flag_alnum = 1 ; //作为用户名是否仅为字符和数字的标志
char test[21]; //用来存储用户第一次输入的密码,方便与下次输入进行比较