📄 mis.cpp
字号:
#include "stdio.h"
#include "windows.h"
#include "string.h"
#include "stdlib.h"
#include "conio.h"
#define MAX 100
struct student
{
int id;
char name[20];
char sex[20];
char cla[20];
};
void showmenu(student stu[],int num);
int insert(student stu[],int num); //添加学员信息
int del(student stu[],int num); //删除学员信息
void update(student stu[],int num); //修改学员信息
void query(student stu[],int num); //查询学员信息
void show(student stu[],int num); //显示学员信息
int readfile(student stu[],int num); //读取学员信息
void main()
{
student stu[MAX];
int num=0;
int i;
char user[6]={"admin"};
char code[7]={"abc123"};
char acc[81];
char pass[81];
num=readfile(stu,num);
while(1)
{
system("color 0b");
printf("请输入用户名:");
scanf("%s",acc);
printf("请输入密码:");
for(i=0;;i++)
{
pass[i]=getch();
if(pass[i]==13)
{
break;
}
printf("*");
}
pass[i]='\0';
if(strcmp(user,acc)==0 && strcmp(code,pass)==0)
{
showmenu(stu,num);
break;
}
if(strcmp(user,acc)==0 && strcmp(code,pass)!=0)
{
printf("\n密码错误!\n");
}
if(strcmp(user,acc)!=0 && strcmp(code,pass)==0)
{
printf("用户不存在!\n");
}
if(strcmp(user,acc)!=0 && strcmp(code,pass)!=0)
{
printf("信息错误,系统中止!\n");
}
}
}
//函数名:showmenu
//功能: 显示主菜单
//作者: 谢杰
//形参: student stu[],int num
//返回值:void
void showmenu(student stu[],int num)
{
int select; //用户一级菜单选择
int choice; //用户二级菜单选择
while(1)
{
system("color 0b");
system("cls");
printf("\n");
printf("\t\t\t******************************\n");
printf("\t\t\t*欢迎使用学员信息管理系统V1.0*\n");
printf("\t\t\t* 1---管理学员信息 *\n");
printf("\t\t\t* 2---退 出 系 统 *\n");
printf("\t\t\t******************************\n");
printf("请输入你的选择(1-2):");
scanf("%d",&select);
if(select==2)
{
system("cls");
break;
}
switch(select)
{
case 1:
while(1)
{
system("color 0b");
system("cls");
printf("\n");
printf("\t\t\t************************\n");
printf("\t\t\t* 学员信息管理系统 *\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* 6---退 出 系 统 *\n");
printf("\t\t\t*************************\n");
printf("请输入你的选择(1-6):");
scanf("%d",&choice);
if(choice==6)
{
break;
}
switch(choice)
{
case 1: printf("\t\t\t用户要进行添加学员信息的操作\n");
num=insert(stu,num);
break;
case 2: printf("\t\t\t用户要进行删除学员信息的操作\n");
num=del(stu,num);
break;
case 3: printf("\t\t\t用户要进行修改学员信息的操作\n");
update(stu,num);
break;
case 4: printf("\t\t\t用户要进行查询学员信息的操作\n");
query(stu,num);
break;
case 5: printf("\t\t\t用户要进行显示学员信息的操作\n");
show(stu,num);
break;
default:printf("输入错误,请重新输入!\n");
break;
}
system("pause");
}
printf("谢谢使用,欢迎再来!\n");
}
}
printf("谢谢使用,欢迎再来!\n");
}
//函数名:insert
//功能: 添加学员信息
//作者: 谢杰
//形参: student stu[],int num
//返回值:int
int insert(student stu[],int num)
{
int flag=0; //不重复
int i,id;
FILE *fp;
if((fp=fopen("stu.txt","a+"))==NULL)
{
printf("创建文件失败,请按任意键退出!\n");
getch();
exit(1);
}
printf("请输入学员信息:\n");
if(num>=MAX)
{
printf("\t\t\t学员已满,无法再添加!\n");
return num;
}
while(1)
{
flag=0;
printf("请输入学员编号:");
scanf("%d",&id);
for(i=0;i<num;i++)
{
if(id==stu[i].id)
{
printf("编号重复,请重新输入!");
flag=1;
break;
}
}
if(flag==0)
{
break;
}
}
stu[num].id=id;
printf("请输入学员姓名:");
scanf("%s",stu[num].name);
while(1)
{
printf("请输入学员性别:");
scanf("%s",stu[num].sex);
if(strcmp(stu[num].sex,"男")==0 || strcmp(stu[num].sex,"女")==0)
{
break;
}
else
{
printf("输入错误,请重新输入!\n");
}
}
printf("请输入学员班级:");
scanf("%s",stu[num].cla);
fprintf(fp,"%d\t%s\t%s\t%s\n",stu[num].id,stu[num].name,stu[num].sex,stu[num].cla);
printf("\t\t\t\t学员信息录入成功!\n");
fclose(fp);
return num+1;
}
//函数名:del
//功能: 删除学员信息
//作者: 谢杰
//形参: student stu[],int num
//返回值:int
int del(student stu[],int num)
{
int i;
int j;
int id;
char ok;
FILE *fp;
if((fp=fopen("stu.txt","w+"))==NULL)
{
printf("不能操作文件,请按任意键退出!\n");
getch();
exit(1);
}
printf("请输入要删除的学员编号:");
scanf("%d",&id);
for(i=0;i<num;i++)
{
if(id==stu[i].id)
{
printf("此人已找到,信息如下:\n");
printf("\t\t\t\t编号\t姓名\t性别\t班级\n");
printf("\t\t\t\t%d\t%s\t%s\t%s\n",stu[i].id,stu[i].name,stu[i].sex,stu[i].cla);
printf("是否确认删除:'Y'-确定,'N'-取消");
scanf(" %c",&ok);
if(ok=='N'||ok=='n')
{
printf("用户取消,删除中止!");
}
else if(ok=='Y'||ok=='y')
{
for(j=0;j<num;j++)
{
stu[j]=stu[j+1];
}
printf("删除成功!\n");
num--;
for(j=0;j<num;j++)
{
fprintf(fp,"%d\t%s\t%s\t%s\n",stu[j].id,stu[j].name,stu[j].sex,stu[j].cla);
}
fclose(fp);
return num;
}
else
{
printf("输入有误,删除中止!\n");
}
}
else
{
printf("查无此人!\n");
}
}
fclose(fp);
return num;
}
//函数名:update
//功能: 修改学员信息
//作者: 谢杰
//形参: student stu[],int num
//返回值:void
void update(student stu[],int num)
{
int result=-1;
int i;
int id;
printf("请输入学员编号:");
scanf("%d",&id);
for(i=0;i<num;i++)
{
if(id==stu[i].id)
{
result=0;
break;
}
}
if(result==-1)
{
printf("查无此人,无法修改!");
}
else
{
printf("此人已找到,信息如下:\n");
printf("\t\t\t\t编号\t姓名\t性别\t班级\n");
printf("\t\t\t\t%d\t%s\t%s\t%s\n",stu[i].id,stu[i].name,stu[i].sex,stu[i].cla);
printf("请输入修改后的姓名:");
scanf("%s",stu[i].name);
printf("请输入修改后的性别:");
scanf("%s",stu[i].sex);
printf("请输入修改后的班级:");
scanf("%s",stu[i].cla);
FILE *fp;
if((fp=fopen("stu.txt","w+"))==NULL)
{
printf("不能操作文件,请按任意键退出!\n");
getch();
exit(1);
}
for(i=0;i<num;i++)
{
fprintf(fp,"%d\t%s\t%s\t%s\n",stu[i].id,stu[i].name,stu[i].sex,stu[i].cla);
}
fclose(fp);
printf("修改成功");
}
}
//函数名:query
//功能: 查询学员信息
//作者: 谢杰
//形参: student stu[],int num
//返回值:void
void query(student stu[],int num)
{
int result=-1;
int id;
int i;
printf("请输入要查询的学员编号:");
scanf("%d",&id);
for(i=0;i<num;i++)
{
if(id==stu[i].id)
{
result=0;
break;
}
}
if(result==-1)
{
printf("无学员信息!\n");
}
else
{
printf("此人已找到,信息如下:\n");
printf("\t\t\t\t编号\t姓名\t性别\t班级\n");
printf("\t\t\t\t%d\t%s\t%s\t%s\n",stu[i].id,stu[i].name,stu[i].sex,stu[i].cla);
}
}
//函数名:show
//功能: 显示学员信息
//作者: 谢杰
//形参: student stu[],int num
//返回值:void
void show(student stu[],int num)
{
int i;
if(num==0)
{
printf("无学员信息!\n");
return;
}
printf("\t\t\t\t编号\t姓名\t性别\t班级\n");
for(i=0;i<num;i++)
{
printf("\t\t\t\t%d\t%s\t%s\t%s\n",stu[i].id,stu[i].name,stu[i].sex,stu[i].cla);
}
}
//函数名:readfile
//功能: 读取学员信息
//作者: 谢杰
//形参: student stu[],int num
//返回值:int
int readfile(student stu[],int num)
{
FILE *fp;
if((fp=fopen("stu.txt","w+"))==NULL)
{
printf("不能操作文件,请按任意键退出!");
getch();
exit(1);
}
fclose(fp);
if((fp=fopen("stu.txt","r+"))==NULL)
{
printf("不能操作文件,请按任意键退出!");
getch();
exit(1);
}
while(!feof(fp))
{
fscanf(fp,"%d\t%s\t%s\t%s\n",&stu[num].id,stu[num].name,stu[num].sex,stu[num].cla);
if(stu[num].id<0)
{
continue;
}
num++;
}
fclose(fp);
return num;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -