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

291 lines
7.9 KiB

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define file "d:\\student.txt" //默认保存在d盘
#include<conio.h>
struct student{//定义结构体
char number[20];
char name[20];
char sex[20];
char age[20];
char beizhu[100];
};
/*hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh*/
void menu()//菜单函数
{
system("color fc");
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.退出班级档案管理系统 +");//ExitFuction
printf("\n ++++++++++++++++++++++++++++++++++++++++++++++++\n");
}
/*hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhshhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh*/
void Entry(struct student arr[],int n)//录入学生信息函数
{
int i;
for(i=0;i<n;i++)
{
printf("输入学生基本信息 学号 姓名 性别 年龄 备注\n");
scanf("%s %s %s %s %s",&arr[i].number,&arr[i].name,&arr[i].sex,&arr[i].age,&arr[i].beizhu);
}
}
/*hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh*/
int mima()//定义密码函数
{
char pwd[]="123456";
char Ipt[20];
printf("请输入密码: \n");
scanf("%s",Ipt);
if(strcmp(pwd,Ipt)!=0)
{
printf("密码错误\n");
return 0;
}
else
return 1;
}
/*hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh*/
void Display(struct student arr[],int n)//定义显示函数
{
int i;
printf("学号 姓名 性别 年龄 备注\n");
for(i=0;i<n;i++)
{
printf("%-12s%-10s%-8s%-8s%-12s\n",arr[i].number,arr[i].name,arr[i].sex,arr[i].age,arr[i].beizhu);
}
}
/*hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh*/
void save(struct student arr[],int n)//定义保存函数
{
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)//定义删除函数
{
int i,c,j;
c=0;
char number[20];
printf("删除信息\n");
printf("请输入学号\n");
scanf("%s",&number);
for(i=0;i<n;i++)
{
if(!strcmp(number,arr[i].number))
{
for(j=i;j<n;j++)
arr[j]=arr[j+1]; //直接把后面的覆盖前面的
strcpy(arr[n-1].name," ");
strcpy(arr[n-1].number," ");
strcpy(arr[n-1].beizhu," ");
strcpy(arr[n-1].sex," ");
strcpy(arr[n-1].age," ");
save(arr,n);
c=1;
printf("已删除\n");
}
}
if(!c==1)
{
printf("查无此人\n");
}
}
/*hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh*/
void Modify(struct student*arr,int n)//定义修改函数
{
int i,c,choose;
c=0;
int daiti;
char number[20];
daiti=mima();
if(daiti)
{
printf("成功进入修改系统\n");
printf("修改学生信息:\n");
printf("请输入学号:\n");
scanf("%s",&number);
for(i=0;i<n;i++)
{
if(!strcmp(number,arr[i].number))
{
printf("学号 姓名 性别 年龄 备注\n");
printf("%-12s%-10s%-8s%-8s%-12s\n",&arr[i].number,&arr[i].name,&arr[i].sex,&arr[i].age,&arr[i].beizhu);
printf("1:修改学号\n");
printf("2:修改姓名\n");
printf("3:修改性别\n");
printf("4:修改年龄\n");
printf("5:退出修改\n");
printf("请输入您的选择: \n");
scanf("%d",&choose);
if(choose==1){
printf("请输入新的学号:\n");
scanf("%s",&arr[i].number);}
else if(choose==2){
printf("请输入新的姓名:\n");
scanf("%s",&arr[i].name);}
else if(choose==3){
printf("请输入新的性别:\n");
scanf("%s",&arr[i].sex);}
else if(choose==4){
printf("请输入新的年龄:\n");
scanf("%s",&arr[i].age);}
else if(choose==5)
break;
else printf("我们无法提供你想要的功能O(∩_∩)O谢谢");
}
save(arr,n);
c=1;
}
}
}
/*hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh*/
void Search(struct student*arr,int n)//定义查询函数
{
int i,select,c;
c=0;
printf("*********1:通过学号查询*********\n");
printf("*********2:通过姓名查询*********\n");
printf("*********3:通过性别查询*********\n");
printf("*********4:通过年龄查询*********\n");
printf("*********5:退出查询**********\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("学号 姓名 性别 年龄 备注\n");
printf("%-12s%-10s%-8s%-8s%-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("学号 姓名 性别 年龄 备注\n");
printf("%-12s%-10s%-8s%-8s%-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[10];
printf("请输入性别:\n");
scanf("%s",&ch);
for(i=0;i<n;i++)
{
if(!strcmp(ch,arr[i].sex))
{
printf("学号 姓名 性别 年龄 备注\n");
printf("%-12s%-10s%-8s%-8s%-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[20];
printf("请输入年龄:\n");
scanf("%s",&age);
for(i=0;i<n;i++)
{
if(!strcmp(age,arr[i].age))
{
printf("学号 姓名 性别 年龄 备注\n");
printf("%-12s%-10s%-8s%-8s%-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()//定义主函数
{
int N,daiti,i,select;
struct student arr[100];
char password[10];
daiti=mima();
if(daiti)
{
menu();
printf("请输入你的选择");
scanf("%d",&select);
if(!(select>0&&select<7))
{
printf("我们无法提供你想要的功能O(∩_∩)O谢谢");
}
else
{
while(select>0&&select<7)
{
switch(select)
{
case 1:
printf("请输入录入的学生数量\n");
scanf("%d",&N);
Entry(arr,N); system("pause");system("cls");menu();break;
case 2:Display(arr,N); system("pause");system("cls");menu();break;
case 3: save(arr,N); system("pause");system("cls");menu();break;
case 4:Delete(arr,N); system("pause");system("cls");menu();break;
case 5:Modify(arr,N); system("pause");system("cls");menu();break;
case 6:Search(arr,N); system("pause");system("cls");menu();break;
case 7: exit(0); //如菜单返回值为7则程序结束
}
printf("请输入你的选择");
scanf("%d",&select);
system("cls");
}
}
return 0;
}
}