先发布一下测试版,大家发现有bug可以提出来,最近期末了,要忙着复习。考完试,我再发完整版,写下思路、教程什么的吧。
这个程序接口定义有点多,个人感觉代码有些多,有点复杂了,不容易看懂。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct PeopleData /*接种人信息*/
{
int PhoneNum;//手机号
int PeopleID;//身份证号码
char PeopleName[100];//姓名
int ShotTime;//用户预约的接种时间
int NodeNum;//用户预约的注射点序号
char ShotNode[100];//用户预约的注射点
int ShotNum;//成功预约号
int ReservedTimes;//是否预约
int Inoculate;//是否注射
}PeopleData;
PeopleData People_Data[100]; //最多100个接种人
typedef struct DataType /*注射点数据*/
{
int NodeNum; //注射点序号
char NodeName[100]; //注射点名称
int VaccineNum;//注射点当日疫苗数量
int ReservedNum; //注射点已预约人数
}DataType;
struct TimeList //不同日期的注射点数据
{
DataType data[100];
struct TimeList* Next;
};
typedef struct Users {
char Name[100]; //用户名
int PeopleID;//身份证号码
int PhoneNum;//手机号
char Account[100]; //账户
char Passwd[100]; //密码
}Use;
Use allUser[100];//100个用户
Use User; //主要用于用户登录
int n = 1;//注册时,注册成功n++,
int N = 6;//代表当前有5个注射点
int Booking_num = 10000; //预定号码从10000开
TimeList* L;
void Administrator();//管理员的账号密码
void window1();//一级菜单
int search(char Account[]);//用于登录查询账号是否存在
void Rengister();//注册系统
int Login();//登录系统
void recover();//找回账号或者密码
void Choose1();//一级菜单的选择
/*下面几个函数传入形参t,很重要,这样才能知道你是哪个用户,才能把信息准确的放进结构体里*/
void Choose2(int t);//二级菜单的选择
void window2();//二级菜单
TimeList* CreateVaccine();//初始化
void Search_Vaccine();//查询疫苗剩余情况
void Reserved_Vaccine(int t);//预约疫苗
void Search_Reserved(int t);//查询预约
void Abolish_Reserved(int t);//取消预约
void Change_Passwd(int t);//修改密码
void window0();//管理员菜单
void Node_Manage(int t);//注射点管理
void Add_Node();//增加注射点
void Delete_Node();//删除注射点
void Change_Node();//修改注射点
void Search_Node();//查看注射点
void Search_User();//用户管理
void Inoculate_Manage();//接种管理
int main()
{
int i;
Administrator();
L = CreateVaccine();
Choose1();
return 0;
}
void Administrator()
{
strcpy(allUser[0].Account, "2050131398");
strcpy(allUser[0].Name, "Administrator");
strcpy(allUser[0].Passwd, "cgl520520");
allUser[0].PeopleID = 0;
allUser[0].PhoneNum = 0;
}
void window1()//一级菜单
{
system("CLS");
printf(" __________________________________________________________\n");
printf(" | |\n");
printf(" | 疫苗预约系统 |\n");
printf(" |________________________________________________________|\n");
printf(" | |\n");
printf(" | |\n");
printf(" | ****1.注册**** |\n");
printf(" | ****2.登陆**** |\n");
printf(" | ****3.找回**** |\n");
printf(" | ****4.退出**** |\n");
printf(" | |\n");
printf(" |________________________________________________________|\n");
printf("\n\n 请选择你需要的功能,输入代号:");
}
void Rengister()//注册系统
{
char key[100];
int t;
system("CLS");
printf("\n ========================注册页面=======================\n");
printf("\n 请输入您的姓名:");
scanf("%s", &allUser[n].Name);
getchar();
printf("\n 请输入您的身份证号:");
scanf("%d", &allUser[n].PeopleID);
getchar();
printf("\n 请输入您的手机号码:");
scanf("%d", &allUser[n].PhoneNum);
getchar();
printf("\n 请输入您的账号:");
scanf("%s", &allUser[n].Account);
getchar();
printf("\n 请输入您的密码:");
scanf("%s", &allUser[n].Passwd);
do
{
printf("\n 请再次输入您的密码:");
scanf("%s", &key);
if (strcmp(key, allUser[n].Passwd) == 0) {
n++;
t = 0;
}
else
{
t = 1;
printf("\n 两次密码不一致,请重新注册\n");
goto b;
}
} while (t == 1);
printf("\n 注册成功!\n\n\n");
b: system("pause");
system("CLS");
}
int Login()//登录系统
{
int i;
int ch = 1;
char key[100];
system("CLS");
printf("\n ========================登录页面=======================\n");
printf("\n 请输入您的账号:");
scanf("%s", &User.Account);
//以下是管理员登录的,目前还没做管理员的
if (strcmp(User.Account, allUser[0].Account) == 0) {
do
{
printf("\n 输入您的密码:");
scanf("%s", &key);
getchar();
if (strcmp(key, allUser[0].Passwd) == 0)
ch = 0;
else
{
ch = 1;
printf("\n 密码错误,重新输入!\n");
}
} while (ch == 1);
printf("\n 成功登陆!欢迎使用本系统!\n");
return 0;
}
//至此
//下面的用户登录用的
ch = search(User.Account);//判断你的用户是否注册过
if (!ch)
{
printf("\n 您输入的账号未注册!\n");
printf("\n 请重新登录或注册账号后再次使用本程序。 \n");
system("pause");
Choose1();
}
do //防止非法输入
{
printf("\n 输入您的密码:");
scanf("%s", &key);
getchar();
if (strcmp(key, User.Passwd) == 0)
ch = 0;
else
{
ch = 1;
printf("\n 密码错误,重新输入!\n");
}
} while (ch == 1);
printf("\n 成功登陆!欢迎使用本系统!\n");
for (i = 1; i < n; i++)//成功后将用户数据和注射者数据进行绑定 保持一致
if (strcmp(allUser[i].Account, User.Account) == 0) {
People_Data[i].PhoneNum = allUser[i].PhoneNum;
People_Data[i].PeopleID = allUser[i].PeopleID;
strcpy(People_Data[i].PeopleName, allUser[i].Name);
People_Data[i].Inoculate = 0;
return i;
}
}
int search(char Account[])//查询账号
{
int i;
for (i = 1; i < n; i++)
if (strcmp(allUser[i].Account, Account) == 0)
break;
if (i == n)
return 0;
else
{
User = allUser[i];
return 1;
}
}
void recover() //密码找回,这个无关紧要的代码
{
int People_ID, Phone_Num;
int num;
int ch = 1;
a: printf("\n ========================找回页面=======================\n\n");
printf("\n 请输入您的账号:");
scanf("%s", &User.Account);
getchar();
ch = search(User.Account);
if (!ch)
{
printf("\n 您输入的账号并未注册!\n");
system("pause");
system("CLS");
main();
}
printf("\n 请输入您的身份证号:");
scanf("%d", &People_ID);
getchar();
printf("\n 请输入您的手机号码:");
scanf("%d", &Phone_Num);
getchar();
if (People_ID == User.PeopleID && Phone_Num == User.PhoneNum) {
printf("\n 您的密码是: %s\n\n", User.Passwd);
system("pause");
}
else
{
printf("\n 您的身份信息有误!\n");
printf("\n 请重新输入。 \n");
system("pause");
system("CLS");
goto a;
}
}
void Choose1()//一级菜单的选择
{
int t;
int num;
while (1) {
window1();
scanf("%d", &num);
system("pause");
system("cls");
switch (num)
{
case 1: Rengister(); break;
case 2: t = Login(); Choose2(t);
case 3: recover(); break;
case 4: exit(0);
default:
break;
}
}
}
void window2()//二级菜单
{
system("CLS");
printf(" __________________________________________________________\n");
printf(" | |\n");
printf(" | 疫苗预约系统 |\n");
printf(" |________________________________________________________|\n");
printf(" | |\n");
printf(" | |\n");
printf(" | ****1.查询疫苗**** |\n");
printf(" | ****2.预约疫苗**** |\n");
printf(" | ****3.查询预约**** |\n");
printf(" | ****4.取消预约**** |\n");
printf(" | ****5.修改密码**** |\n");
printf(" | ****6.退 出**** |\n");
printf(" | |\n");
printf(" |________________________________________________________|\n");
printf("\n\n 请选择你需要的功能,输入代号:");
}
TimeList* CreateVaccine()//初始化
{
int i = 1, j;
TimeList* List = NULL;
TimeList* temp = (TimeList*)malloc(sizeof(struct TimeList));
for (i = 1; i < N; i++) {
temp->data[i].NodeNum = i;
temp->data[i].VaccineNum = rand() % 100;
temp->data[i].ReservedNum = 0;
}
strcpy(temp->data[1].NodeName, "小陈医院");
strcpy(temp->data[2].NodeName, "小光医院");
strcpy(temp->data[3].NodeName, "小淋医院");
strcpy(temp->data[4].NodeName, "小帅医院");
strcpy(temp->data[5].NodeName, "小哥医院");
temp->Next = NULL;
List = temp;
for (j = 1; j < 7; j++) {
TimeList* p = (TimeList*)malloc(sizeof(struct TimeList));
for (i = 1; i < N; i++) {
p->data[i].NodeNum = i;
p->data[i].VaccineNum = rand() % 100;
p->data[i].ReservedNum = 0;
}
strcpy(p->data[1].NodeName, "小陈医院");
strcpy(p->data[2].NodeName, "小光医院");
strcpy(p->data[3].NodeName, "小淋医院");
strcpy(p->data[4].NodeName, "小帅医院");
strcpy(p->data[5].NodeName, "小哥医院");
p->Next = NULL;
temp->Next = p;
temp = temp->Next;
}
return List;
}
void Choose2(int t)//二级菜单的选择
{
int num;
if (t == 0) {
while (1) {
window0();
scanf("%d", &num);
getchar();
system("pause");
system("cls");
switch (num)
{
case 1: Node_Manage(t); break;
case 2: Search_User(); break;
case 3: Inoculate_Manage(); break;
case 4: Choose1(); break;
default:
break;
}
}
}
else {
while (1) {
window2();
scanf("%d", &num);
getchar();
system("cls");
switch (num)
{
case 1: Search_Vaccine(); break;
case 2: Reserved_Vaccine(t); break;
case 3: Search_Reserved(t); break;
case 4: Abolish_Reserved(t); break;
case 5: Change_Passwd(t); break;
case 6: Choose1(); break;
default:
break;
}
}
}
}
void Search_Vaccine()//疫苗查询
{
int i, j;
int day;
int num;
TimeList* T = L;
printf("\n ========================疫苗查询=======================\n");
if (N == 0) {
printf("\n 当前没有注射点!");
goto a;
}
printf("\n 请选择查询日期:");
scanf("%d", &day);
getchar();
while (day < 1 || day>7) //非法输入
{
printf("\n 输入错误,请重新输入:");
scanf("%d", &day);
getchar();
}
for (i = 1; i <= day; i++) { //计算当天疫苗剩余总量
num = 0;
for (j = 1; j < N; j++) {
num += T->data[j].VaccineNum;
}
T = T->Next;
}
printf("\n 当天所有注射点疫苗剩余总数为%d\n", num);
T = L;
for (i = 1; i < day; i++) { //将指针移动到当天
T = T->Next;
}
for (j = 1; j < N; j++) { //输出当天每个注射点剩余疫苗量
printf("\n %s的疫苗数量剩余%d支\n\n", T->data[j].NodeName, T->data[j].VaccineNum);
}
a: system("pause");
}
void Reserved_Vaccine(int t)//疫苗预约
{
int i, j, flag = 1, times = 1;
int day;
char ch[100];
TimeList* T = L;
printf("\n ========================疫苗预约=======================\n");
if (N == 0) {
printf("\n 当前没有注射点!"); //判断输入的注射点是否存在
system("pause");
goto a;
}
if (People_Data[t].Inoculate == 1) {
printf("\n 您已经注射过,无需再预约!"); //目前设置的是只一针,注射过便不能预约
system("pause");
goto a;
}
if (People_Data[t].ReservedTimes == 0) { // 没有预约过才能预约
printf("\n 请选择预约日期:");
scanf("%d", &day);
getchar();
while (day < 1 || day>7) //非法输入
{
printf("\n 输入错误,请重新输入:");
scanf("%d", &day);
}
for (i = 1; i < day; i++) { //将指针移动到当天
T = T->Next;
}
printf("\n 请选择预约的医院: ");
scanf("%s", ch);
getchar();
for (j = 1; j < N; j++) {
flag++;//flag用于判断输入的医院是否存在的
if (strcmp(ch, T->data[j].NodeName) == 0) { //跳到当前医院
printf("\n 当前是%d.%s", T->data[j].NodeNum, T->data[j].NodeName);
getchar();
if (T->data[j].VaccineNum <= 0) { //判断疫苗库存
printf("\n %s当前疫苗数量不足\n", T->data[j].NodeName);
printf("\n 请重新预约!\n");
getchar();
break;
}
else if (T->data[j].ReservedNum >= T->data[j].VaccineNum) //判断预约人数
{
printf("\n %s当前预约人数已满\n", T->data[j].NodeName);
printf("\n 请重新预约!\n");
getchar();
break;
}
else {
printf("\n 预约成功!请按时到注射点接种疫苗\n"); //成功后分配预约号
printf("\n 您的预约号是%d", Booking_num);
T->data[j].VaccineNum--; //某天某点的疫苗数量减一
T->data[j].ReservedNum++;//某天某点的预约数量加一
People_Data[t].ShotNum = Booking_num;//分配预约号
Booking_num++;
People_Data[t].ShotTime = day;//预约的注射时间
People_Data[t].ReservedTimes = 1;//表示已经预约过
People_Data[t].NodeNum = T->data[j].NodeNum;
strcpy(People_Data[t].ShotNode, T->data[j].NodeName);//预约的注射点
getchar();
break;
}
break;
}
else if (strcmp(ch, T->data[j].NodeName) != 0 && flag == N) { //flag用于判断输入的医院是否存在的
printf("\n 当前注射点不存\n");
printf("\n 请重新预约!\n");
getchar();
}
}
}
else { // 有预约过不能预约
printf("\n 已经有预约,不能重复预约!\n\n\n");
a: system("pause");
}
}
void Search_Reserved(int t)//预约查询
{
TimeList* T = L;
int i;
printf("\n ========================预约查询=======================\n");
//利用t找到你是谁,读取你的相关信息
for (i = 1; i < People_Data[t].ShotTime; i++) { //将指针移动到当天
T = T->Next;
}
if (People_Data[t].Inoculate == 1) { //如果你注射过就没有预约信息了
printf("\n 您已经注射过!\n");
}
else {
if (People_Data[t].ReservedTimes == 1 && T->data[People_Data[t].NodeNum].VaccineNum == 0) { //防止管理员修改了注射点数据为0,错误显示
printf("\n 抱歉! 当前库存不足,当前预约无效,请重新预约!\n\n\n");
People_Data[t].ReservedTimes == 0;
goto a;
}
if (People_Data[t].ReservedTimes == 1 && strcmp(T->data[People_Data[t].NodeNum].NodeName, People_Data[t].ShotNode) != 0) { //防止管理员删除了注射点,错误显示
printf("\n 抱歉! 当前注射点不存在,当前预约无效,请重新预约!\n\n\n");
People_Data[t].ReservedTimes == 0;
goto a;
}
else if (People_Data[t].ReservedTimes == 1) { //如果有预约输出相关信息
printf("\n 您的预约的注射点是:%s\n", People_Data[t].ShotNode);
printf("\n 您的预约的注射时间是:星期%d\n", People_Data[t].ShotTime);
printf("\n 您的预约的预约号是:%d\n", People_Data[t].ShotNum);
}
else {
printf("\n 您当前没有预约\n\n\n");//没有预约
}
}
a: system("pause");
}
void Abolish_Reserved(int t)//取消预约
{
char ch;
int i, j;
TimeList* T = L;
printf("\n ========================取消预约=======================\n");
if (People_Data[t].ReservedTimes == 1) {
printf("\n 确认是否取消Y/N:");
scanf("%c", &ch);
getchar();
if (ch == 'Y' || ch == 'y') {
for (i = 1; i < People_Data[t].ShotTime; i++) { //跳到当前预约的时间
T = T->Next;
}
getchar();
for (j = 1; j < N; j++) {
if (strcmp(T->data[j].NodeName, People_Data[t].ShotNode) == 0) { //跳到当前预约的地点
T->data[j].VaccineNum++;//某天某点的疫苗数量加一
T->data[j].ReservedNum--;//某天某点的预约数量减一
People_Data[t].ReservedTimes = 0;
printf("\n 取消成功!");
system("pause");
break;
}
}
}
}
else {
printf("\n 您当前没有预约\n\n\n");
system("pause");
}
}
void Change_Passwd(int t)//修改密码
{
int i;
char key[100];
printf("\n ========================修改密码=======================\n");
for (i = 1; i <= n; i++)
if ((People_Data[t].PeopleID == allUser[i].PeopleID) && (People_Data[t].PhoneNum == allUser[i].PhoneNum)) //确保 allUser于People_Data数据一致
break;
printf("\n 请输入当前密码:");
scanf("%s", &key);
getchar();
if (strcmp(key, allUser[i].Passwd) == 0) { //首先原密码要正确 ,再是修改的密码两次输入一致
printf("\n 请输入修改后密码:");
scanf("%s", &User.Passwd);
printf("\n 请再次输入您的密码:");
scanf("%s", &key);
getchar();
if (strcmp(key, User.Passwd) == 0) {
strcpy(allUser[i].Passwd, User.Passwd); //一致则修改成功
printf("\n 修改成功! ");
system("pause");
}
else
{
printf("\n 两次密码不一致,请重新修改\n");//不一致则重新修改
system("pause");
system("cls");
}
}
else {
printf("\n 当前密码错误,不能修改!\n");//原密码错误不能修改
system("pause");
}
}
void window0()//管理员菜单
{
system("CLS");
printf(" __________________________________________________________\n");
printf(" | |\n");
printf(" | 疫苗预约管理员系统 |\n");
printf(" |________________________________________________________|\n");
printf(" | |\n");
printf(" | |\n");
printf(" | ****1.站点管理**** |\n");
printf(" | ****2.用户管理**** |\n");
printf(" | ****3.接种管理**** |\n");
printf(" | ****4.退 出**** |\n");
printf(" | |\n");
printf(" |________________________________________________________|\n");
printf("\n\n 请选择你需要的功能,输入代号:");
}
void Node_Manage(int t)//注射点管理
{
int num;
while (1) {
system("CLS");
printf(" __________________________________________________________\n");
printf(" | |\n");
printf(" | 疫苗预约管理员系统 |\n");
printf(" |________________________________________________________|\n");
printf(" | |\n");
printf(" | |\n");
printf(" | ****1.增加注射点**** |\n");
printf(" | ****2.删除注射点**** |\n");
printf(" | ****3.修改注射点**** |\n");
printf(" | ****4.查看注射点**** |\n");
printf(" | ****5.退 出**** |\n");
printf(" | |\n");
printf(" |________________________________________________________|\n");
printf("\n\n 请选择你需要的功能,输入代号:");
scanf("%d", &num);
getchar();
system("cls");
switch (num)
{
case 1: Add_Node(); break;
case 2: Delete_Node(); break;
case 3: Change_Node(); break;
case 4: Search_Node(); break;
case 5: Choose2(t); break;
default:
break;
}
}
}
void Add_Node() //增加注射点
{
TimeList* T = L;
char name[100];
int num;
int i = 1;
printf("\n ========================增加注射点======================\n");
printf("\n 请输入注射点名称:");
scanf("%s", &name);
getchar();
while (T != NULL) { //给不同时间的新注射点赋值初始化
strcpy(T->data[N].NodeName, name);
printf("\n 请输入周%d注射点疫苗数量:", i);
scanf("%d", &num);
getchar();
T->data[N].VaccineNum = num;
T->data[N].NodeNum = N;
T->data[N].ReservedNum = 0;
i++;
T = T->Next;
}
N++; //注射点总数加1
printf("\n 增加成功!\n\n\n");
system("pause");
}
void Delete_Node()
{
TimeList* T = L;
int num;
int i, j;
printf("\n ========================删除注射点======================\n");
printf("\n 请输入需要删除的注射点序号:");
scanf("%d", &num);
if (N == 0) { //注射点没了
printf("\n 当前没有注射点!");
goto a;
}
while (num < 1 || num>N) //非法输入
{
printf("\n 输入错误,请重新输入:");
scanf("%d", &num);
getchar();
}
for (j = 1; j <= 7; j++) {
for (i = num; i < N; i++) {
T->data[i] = T->data[i + 1]; //将后一个数据覆盖前一个数据
}
T = T->Next;
}
T = L;
for (j = 1; j <= 7; j++) {
for (i = 1; i < N; i++) { //重新排注射点序号
T->data[i].NodeNum = i;
}
T = T->Next;
}
N--;
printf("\n 删除成功!\n\n\n");
a: system("pause");
}
void Change_Node()
{
int day;
int num;
char ch[100];
int i, j, flag = 1;
TimeList* T = L;
printf("\n ========================修改注射点======================\n");
if (N == 0) {
printf("\n 当前没有注射点!");
goto a;
}
printf("\n 请输入需要修改的日期:");
scanf("%d", &day);
getchar();
while (day < 1 || day>7) //非法输入
{
printf("\n 输入错误,请重新输入:");
scanf("%d", &day);
}
for (i = 1; i < day; i++) { //将指针移动到当天
T = T->Next;
}
printf("\n 请选择需要修改的医院: ");
scanf("%s", &ch);
getchar();
for (j = 1; j < N; j++) {
flag++;
if (strcmp(T->data[j].NodeName, ch) == 0) { //跳到当前的地点
printf("\n 请输入当前疫苗数量:");
scanf("%d", &num);
getchar();
T->data[j].VaccineNum = num;
system("pause");
break;
}
else if (strcmp(ch, T->data[j].NodeName) != 0 && flag == N) { //flag用于判断输入的医院是否存在的
printf("\n 当前注射点不存在\n");
printf("\n 请重新修改!\n");
getchar();
}
}
a: system("pause");
}
void Search_Node()
{
int i, j;
int day;
int num;
TimeList* T = L;
printf("\n ========================查看注射点======================\n");
if (N == 0) {
printf("\n 当前没有注射点!");
goto a;
}
printf("\n 请选择查询日期:");
scanf("%d", &day);
getchar();
while (day < 1 || day>7) //非法输入
{
printf("\n 输入错误,请重新输入:");
scanf("%d", &day);
getchar();
}
for (i = 1; i <= day; i++) { //计算当天疫苗剩余总量
num = 0;
for (j = 1; j < N; j++) {
num += T->data[j].VaccineNum;
}
T = T->Next;
}
printf("\n 当天所有注射点疫苗剩余总数为%d\n", num);
T = L;
for (i = 1; i < day; i++) { //将指针移动到当天
T = T->Next;
}
for (j = 1; j < N; j++) { //输出当天每个注射点剩余疫苗量
printf("\n %s的疫苗数量剩余%d支\n\n", T->data[j].NodeName, T->data[j].VaccineNum);
}
a: system("pause");
}
void Search_User() //用户管查询
{
int num;
printf("\n ========================用户查询========================\n");
printf("\n 请输入用户编号:");
scanf("%d", &num);
getchar();
while (num<1 || num>n - 1) { //非法输入
printf("\n 输入错误,请重新输入:");
scanf("%d", &num);
getchar();
}
if (People_Data[num].PeopleID == 0 || People_Data[num].PhoneNum == 0) { //防止用户没登录没有数据输出异常
printf("\n 该用户尚未登录,暂无数据!");
}
else { //有登录用户的注射相关信息
printf("\n 姓名:%s", People_Data[num].PeopleName);
printf("\n 身份证号:%d", People_Data[num].PeopleID);
printf("\n 电话号码:%d", People_Data[num].PhoneNum);
if (People_Data[num].Inoculate == -1) { //判断是否爽约
printf("\n 该用户已经爽约\n");
People_Data[num].ReservedTimes = 0;
goto a;
}
else if (People_Data[num].Inoculate == 0) { //没爽约并且有预约
if (People_Data[num].ReservedTimes == 1) {
printf("\n 预约的注射地点:%s", People_Data[num].ShotNode);
printf("\n 预约的注射时间:%d", People_Data[num].ShotTime);
printf("\n 预约的注射单号:%d", People_Data[num].ShotNum);
}
else { //没有预约
printf("\n 该用户当前暂无预约\n");
}
}
else {
printf("\n 该用户已经注射!\n");
}
}
printf("\n\n\n");
a: system("pause");
}
void Inoculate_Manage() //接种管理
{
char ch[10];
int num;
printf("\n ========================接种管理========================\n");
printf("\n 请输入用户编号:");
scanf("%d", &num);
getchar();
while (num<1 || num>n - 1) { //非法输入
printf("\n 输入错误,请重新输入:");
scanf("%d", &num);
getchar();
}
if (People_Data[num].PeopleID == 0 || People_Data[num].PhoneNum == 0) { //防止用户没登录没有数据输出异常
printf("\n 该用户尚未登录,暂无数据!");
}
else {
printf("\n 姓名:%s", People_Data[num].PeopleName);
if (People_Data[num].ReservedTimes == 1) { //有预约输出用户的注射相关信息
printf("\n 预约的注射地点:%s", People_Data[num].ShotNode);
printf("\n 预约的注射时间:%d", People_Data[num].ShotTime);
printf("\n 预约的注射单号:%d", People_Data[num].ShotNum);
printf("\n\n 该用户是否注射Y/N: ");//由管理员判断用户是否注射
scanf("%s", &ch);
getchar();
if (strcmp(ch, "Y") == 0 || strcmp(ch, "y") == 0) {
People_Data[num].Inoculate = 1;
}
else {
People_Data[num].Inoculate = -1;
}
printf("\n 操作成功!\n\n\n");
}
else { //没有预约
printf("\n 该用户当前暂无预约\n");
}
}
system("pause");
}