You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bjglxt/班级档案管理系统.cpp

274 lines
6.3 KiB

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define file "d:\\student.txt"
#define N 3
struct student{//定义结构体
char number[20];
char name[20];
char sex;
int age;
char beizhu[100];
};
/*hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh*/
void menu()//菜单函数
{
printf("\n++++++++++++++++++++++++++++++++++++++++++++++\n");
printf("+ 欢迎 +\n");
printf("+ 班级档案管理系统 +\n");
printf("+ 1.学生基本信息输入 +\n");//Entry
printf("+ 2.学生基本信息显示 +\n");//Display
printf("+ 3.学生基本信息保存 +\n");//Save
printf("+ 4.学生基本信息删除 +\n");//Delete
printf("+ 5.学生基本信息修改 +\n");//Modify
printf("+ 6.学生基本信息查询 +\n");//Search
printf("+ 7.退出学生信息系统 +\n");//ExitFuction
printf("\n++++++++++++++++++++++++++++++++++++++++++++++\n");
}
/*hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh*/
void Entry(struct student arr[],int n)//luru
{
int i;
for(i=0;i<n;i++)
{
printf("输入学生基本信息 学号 姓名 性别 年龄 备注\n");
scanf("%s %s %c %d %s",&arr[i].number,&arr[i].name,&arr[i].sex,&arr[i].age,&arr[i].beizhu);
}
}
/*hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh*/
void Display(struct student arr[],int n)//xianshi
{
int i;
printf("学生基本信息 学号 姓名 性别 年龄 备注\n");
for(i=0;i<n;i++)
{
printf("%15s%15s%15c%15d%15s",arr[i].number,arr[i].name,arr[i].sex,arr[i].age,arr[i].beizhu);
}
}
/*hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh*/
void save(struct student arr[],int n)//baocun
{
FILE *fp;
fp=fopen("d:\\student.txt","w+");
if(fp==NULL)
{
printf("无该文件\n");
exit(0);
}
fwrite(arr,sizeof(struct student)*n,n,fp);
fclose(fp);
}
/*hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh*/
void Delete(struct student*arr,int n)//shanchu
{
int i,c;
char number[20];
printf("删除信息\n");
printf("请输入学号\n");
scanf("%s",&number);
for(i=0;i<n;i++)
{
if(!strcmp(number,arr[i].number))
{
strcpy(arr[i].name," ");
strcpy(arr[i].number," ");
strcpy(arr[i].beizhu," ");
arr[i].sex=' ';
arr[i].age=0;
save(arr,n);
c=1;
}
}
if(!c==1)
{
printf("查无此人\n");
}
}
/*hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh*/
void Modify(struct student*arr,int n)//xiugai
{
char number[20];
char password[10]={0};
int i;
printf("请输入密码:\n");
for(i = 0;i < 3;i++)
{
scanf("%s",password);
if(strcmp(password,"123456") == 0)
{
break;
}
else
{
printf("密码错误,请输入密码:\n");
}
}
if(i == 3)
{printf("退出系统\n");}
else
int number;
printf("成功进入修改系统\n");//enter xiugai
printf("修改学生信息:\n");
printf("请输入学号:\n");
scanf("%d",&number);
for(i=0;i<n;i++)
{ int c;
if(!strcmp(number,arr[i].number))
{
printf("学生基本信息 学号 姓名 性别 年龄 备注\n");
printf("%12s%12s%12c%12d%12s",arr[i].number,arr[i].name,arr[i].sex,arr[i].age,arr[i].beizhu);
printf("请输入修改的信息");
scanf("%s%s%c%d%s",&arr[i].number,&arr[i].name,&arr[i].sex,&arr[i].age,&arr[i].beizhu);
save(arr,n);
c=1;
}
if(!c==1)
{
printf("查无此人");
}
}
}
/*hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh*/
void Search(struct student*arr,int n)//chaxun
{
int i,select,c;
printf("*********通过学号查询*********\n");
printf("*********通过姓名查询*********\n");
printf("*********通过性别查询*********\n");
printf("*********通过年龄查询*********\n");
printf("**********退出查询**********\n");
scanf("%d",&select);
switch(select)
{
case 1://学号hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
{
char num[20];
printf("请输入学号:\n");
scanf("%s",&num);
for(i=0;i<n;i++)
{
if(!strcmp(num,arr[i].number))
{
printf("%12s%12s%12c%12d%12s\n",arr[i].number,arr[i].name,arr[i].sex,arr[i].age,arr[i].beizhu);
c=1;
}
}
if(!c)
{
printf("查无此人\n");
}
} break;
case 2: //名字hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
{
char num[20];
printf("请输入姓名:\n");
scanf("%s",&num);
for(i=0;i<n;i++)
{
if(!strcmp(num,arr[i].name))
{
printf("%12s%12s%12c%12d%12s\n",arr[i].number,arr[i].name,arr[i].sex,arr[i].age,arr[i].beizhu);
c=1;
}
}
if(!c)
{
printf("查无此人\n");
}
} break;
case 3://性别hhhhhhhhhhhhhhhhhhhhhhhhh
{
char ch;
printf("请输入性别:\n");
scanf("%c",&ch);
for(i=0;i<n;i++)
{
if(ch==arr[i].sex)
{
printf("%12s%12s%12c%12d%12s\n",arr[i].number,arr[i].name,arr[i].sex,arr[i].age,arr[i].beizhu);
c=1;
}
}
if(!c)
{
printf("查无此人\n");
}
} break;
case 4://年龄hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
{
char age;
printf("请输入年龄:\n");
scanf("%d",&age);
for(i=0;i<n;i++)
{
if(age==arr[i].age)
{
printf("%12s%12s%12c%12d%12s\n",arr[i].number,arr[i].name,arr[i].sex,arr[i].age,arr[i].beizhu);
c=1;
}
}
if(!c)
{
printf("查无此人\n");
}
} break;
default:
break;
}
}
/*hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh*/
int main()//zhuhanshu
{
struct student arr[N];
char password[10]={0};
int i,select;
printf("请输入密码:\n");
for(i = 0;i < 3;i++)
{
scanf("%s",password);
if(strcmp(password,"123456") == 0)
{
break;
}
else
{
printf("密码错误,请输入密码:\n");
}
}
if(i == 3)
{printf("退出系统\n");}
else
int select;
printf("登录成功\n");//开始
menu();
printf("请输入你的选择");
scanf("%d",&select); //xuanze
while(select>0&&select<7)
{
switch(select)
{
case 1:Entry(arr,N);
menu();
break;
case 2:Display(arr,N);
menu();
break;
case 3: save(arr,N);
menu();
break;
case 4:Delete(arr,N);
menu();
break;
case 5:Modify(arr,N);
menu();
break;
case 6:Search(arr,N);
menu();
break;
case 7: exit(0); //如菜单返回值为7则程序结束
}
}
return 0;
}