# define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>
# include <stdlib.h>
# include <conio.h>
# include <string.h>
# include <windows.h>
struct StuMsg //学生信息
{
char id[4]; //学生学号
char name[10]; //学生名字
int age; //学生年龄
char sex[8]; //性别
char birthday[20]; //生日
char tel[15]; //电话
char address[70]; //地址
char email[20]; //邮件
}st[20];
int i=0;
int j;
void shuru(void);
int DengLu(char username[20], char password[20]);
void YanZ(void);
void XianShi(void);
void ChaName(void);
void ChaNo(void);
void Dle(void);
void XiuGai(void);
void CaiDan(void);
void main()
{
int i;
YanZ();
CaiDan();
}
void CaiDan(void)
{
int i;
for (;;)
{
system("cls");
printf("\n");
printf("\n");
printf("\n");
printf("============================学生信息管理系统===================================\n");
printf("|| ||\n");
printf("|| ||\n");
printf("|| ||\n");
printf("|| ||\n");
printf("|| 一: 输入学生信息 ||\n");
printf("|| 二: 显示学生信息 ||\n");
printf("|| 三: 查找学生姓名信息 ||\n");
printf("|| 四: 查找学生学号信息 ||\n");
printf("|| 五: 删除学生信息 ||\n");
printf("|| 六: 修改学生信息 ||\n");
printf("|| 七: 退出程序 ||\n");
printf("|| ||\n");
printf("|| ||\n");
printf("===============================================================================\n");
fflush(stdin);
printf("\n");
printf("\n");
printf("\t\t 请输入功能选项:");
scanf("%d", &i);
switch (i)
{
case 1:
shuru();
break;
case 2:
XianShi();
break;
case 3:
ChaName();
break;
case 4:
ChaNo();
break;
case 5:
Dle();
break;
case 6:
XiuGai();
break;
case 7:
exit(0);
}
}
}
void shuru(void) //学生信息输入函数
{
char a;
system("cls");
printf("请输入学生信息:\n");
do{
printf("请输入第%d个学生学号:", i + 1);
scanf("%s", &st[i].id);
printf("请输入第%d个学生姓名:", i + 1);
scanf("%s", &st[i].name);
printf("请输入第%d个学生年龄:", i + 1);
scanf("%d", &st[i].age);
printf("请输入第%d个学生性别:", i + 1);
scanf("%s", &st[i].sex);
printf("请输入第%d个学生生日:", i + 1);
scanf("%s", &st[i].birthday);
printf("请输入第%d个学生电话:", i + 1);
scanf("%s", &st[i].tel);
printf("请输入第%d个学生地址:", i + 1);
scanf("%s", &st[i].address);
printf("请输入第%d个学生邮箱:", i + 1);
scanf("%s", &st[i].email);
printf("\n是否继续输入另外一个学生信息?(y/n)");
fflush(stdin);
a = getchar();
i++;
} while (a == 'y' && i <= 50);
CaiDan();
}
void XianShi(void)
{
system("cls");
for (j = 0; j < i; j++)
{
printf("第%d个学生学号是:", j + 1);
printf("%s\n", st[j].id);
printf("第%d个学生姓名是:", j + 1);
printf("%s\n", st[j].name);
fflush(stdin);
printf("第%d个学生年龄是:", j + 1);
printf("%d\n", st[j].age);
fflush(stdin);
printf("第%d个学生性别是:", j + 1);
printf("%s\n", st[j].sex);
printf("第%d个学生生日是:", j + 1);
printf("%s\n", st[j].birthday);
printf("第%d个学生电话是:", j + 1);
printf("%s\n", st[j].tel);
printf("第%d个学生地址是:", j + 1);
printf("%s\n", st[j].address);
printf("第%d个学生邮箱是:", j + 1);
printf("%s\n", st[j].email);
printf("\n\n");
}
system("pause");
CaiDan();
}
void ChaName(void)
{
char name[10];
int i;
system("cls");
printf("请输入你要查找的学生姓名:");
scanf("%s", name);
for (i = 0; i < j; i++)
{
if (strcmp(name, st[i].name) == 0)
{
printf("该学生学号是:");
printf("%s\n", st[i].id);
printf("该学生姓名是:");
printf("%s\n", st[i].name);
printf("该学生年龄是:");
printf("%s\n", st[i].age);
printf("该学生性别是:");
printf("%s\n", st[i].sex);
printf("该学生生日是:");
printf("%s\n", st[i].birthday);
printf("该学生电话是:");
printf("%s\n", st[i].tel);
printf("该学生地址是:");
printf("%s\n", st[i].address);
printf("该学生邮箱是:");
printf("%s\n", st[i].email);
}
}
system("pause");
CaiDan();
}
void ChaNo(void)
{
char i[4];
int k;
system("cls");
printf("请输入你要查找的学生学号:");
scanf("%s", i);
for (k = 0; k < j; k++)
{
if (strcmp(i, st[k].id) == 0)
{
printf("该学生学号是:");
printf("%s\n", st[k].id);
printf("该学生姓名是:");
printf("%s\n", st[k].name);
printf("该学生年龄是:");
printf("%d\n", st[k].age);
printf("该学生性别是:");
printf("%s\n", st[k].sex);
printf("该学生生日是:");
printf("%s\n", st[k].birthday);
printf("该学生电话是:");
printf("%s\n", st[k].tel);
printf("该学生地址是:");
printf("%s\n", st[k].address);
printf("该学生邮箱是:");
printf("%s\n", st[k].email);
}
}
system("pause");
CaiDan();
}
void Dle(void)
{
char id[4];
int k;
int a;
system("cls");
printf("请输入要删除学生的学号:");
scanf("%s",id);
for (k = 0; k < j; k++)
{
if (strcmp(id, st[k].id) == 0)
{
break;
}
else
{
printf("没有找到该学生");
}
}
for (a = 0; a < j; a++)
{
st[a] = st[a + 1];
}
fflush(stdin);
system("pause");
CaiDan();
}
void XiuGai(void)
{
char id[4];
int i;
system("cls");
XianShi();
printf("\n请输入需要修改学生的学号:");
scanf("%s",&id);
for (i = 0; i < j; i++)
{
if (strcmp(id, st[i].id) == 0)
{
printf("请输入学生学号:");
scanf("%s", &st[i].id);
printf("请输入学生姓名:");
scanf("%s", &st[i].name);
printf("请输入学生年龄:");
scanf("%d", &st[i].age);
fflush(stdin);
printf("请输入学生性别:");
scanf("%s", &st[i].sex);
printf("请输入学生生日:");
scanf("%s", &st[i].birthday);
printf("请输入学生电话:");
scanf("%s", &st[i].tel);
printf("请输入学生地址:");
scanf("%s", &st[i].address);
printf("请输入学生邮箱:");
scanf("%s", &st[i].email);
}
}
CaiDan();
}
int DengLu(char name[20], char pwd[20])//用户名密码验证
{
FILE *fp1; //文件指针变量
char str[20];
/*
*以只读方式打开文件
*read.txt格式为 :用户名 密码 (中间有一空格)无限循环
*/
if ((fp1 = fopen("guanl.txt", "r")) == NULL) //判断文件夹是否有read.txt文件
{
printf("cannot open file\n");
return 0;
}
/*
*判断账户是否存在
*/
while (!feof(fp1))
{
fscanf(fp1, "%s", str);
if (strcmp(str, name) == 0)
{
printf("用户名正确\n", name);
fscanf(fp1, "%s", str);
if (strcmp(str, pwd) == 0)
{
return 1;
}
else
{
fclose(fp1);
return 0;
}
}
fscanf(fp1, "%s", str);
}
fclose(fp1);
return 0;
}
void YanZ(void)//用户名密码验证,输入错3次自动退出游戏
{
char user[20]; //用户名
char pwd[20]; //密码
int i;
for (i = 2;; i--)
{
printf("\n\n\n\n");
printf(" ************************************************************************\n");
printf(" * *\n");
printf(" * 欢迎使用本系统,本系统为学生信息管理系统,登陆后可选 *\n");
printf(" * *\n");
printf(" ************************************************************************\n");
printf("\n\n");
printf(" 请输入帐号: ");
scanf("%s", &user);
printf(" 请输入密码:");
scanf("%s", &pwd);
if (DengLu(user, pwd) == 1)//判断输入的号码是否正确
{
printf("------------------------------登录成功!------------------------------");
break;
}
else//如果不正确循环判断还有多少次游戏退出
{
printf("用户名密码错误");
printf("还有%d次验证错误退出\n", i);
if (i == 0)
{
exit(0);
}
}
}
system("cls");
}