📄 main.cpp
字号:
////////////////////////////////////////////////////////////////////
#include <iostream.h>
#include <stdio.h>
#include <string.h>
#include "windows.h"
#include "student.h"
#include "score.h"
#include "course.h"
#include "teacher.h"
#include "color.h"
////////////////////////////////////////////////////////////////////
color c;
int choice;//用户登陆选择
int swap=1;
struct user
{
char name[100];//用户名
char code[100];//密码
};
void main()
{
void denglu();
void user_manage();
while(1)
{
denglu();
if(choice==1||choice==2) break;
}
system("cls");
void menu();//主菜单
int x;//switch选择开关
while(1)
{
menu();
cin>>x;
switch(x)
{
case 1:
{
student_fun f1;
f1.maintenance();
break;
}
case 2:
{
student_fun f2;
f2.search();
break;
}
case 3:
{
student_fun f3;
f3.browse();
break;
}
case 4:
{
course_fun f4;
f4.maintenance();
break;
}
case 5:
{
score_fun f5;
f5.maintenance();
break;
}
case 6:
{
score_fun f6;
f6.manage();
break;
}
case 7:
{
teacher_fun f7;
f7.maintenance();
break;
}
case 8:
{
user_manage();
break;
}
case 0:
cout<<"----------------------------------------------------"<<endl;
cout<<"欢迎再次光临学生信息管理系统"<<endl;
cout<<"****************************************************"<<endl;
exit(0);
default:
cout<<"****************************************************"<<endl;
cout<<"输入有误,请重新输入!"<<endl;
cout<<"****************************************************"<<endl;
}if(x==0) break;
}
}
//主菜单
void menu()
{
system("cls");
c.setcolor(2);
cout<<" *****人员信息管理系统***** "<<endl;
cout<<"===================================================="<<endl;
cout<<"1. 学生基本信息维护 2. 学生基本信息查询"<<endl;
cout<<"3. 学生基本信息浏览 4. 课程信息维护"<<endl;
cout<<"5. 学生成绩维护 6. 学生成绩管理"<<endl;
cout<<"7. 教师基本信息维护 8: 用户管理"<<endl;
cout<<"0: 退出系统"<<endl;
cout<<"===================================================="<<endl;
cout<<"请输入选择(0 - 8): ";
}
//登陆界面
void denglu()
{
user user1,user2;
char name[20],code[20],str[2];
int ch;
while(1)
{
c.setcolor(14);
cout<<"1:管理员登陆 2:普通用户登陆"<<endl;
cout<<"3:注册 0:退出系统"<<endl;
cout<<"请选择登陆模式(1-2):";
cin>>ch;
cin.getline(str,2);
if(ch==1)
{
FILE *fp1;
/* if((fp1=fopen("user1.dat","ab+"))==NULL)//打开文件
{
cout<<"can't open file user1.dat";
exit(0);
}
if(swap==1)
{
strcpy(user1.name,"guanliyuan");
strcpy(user1.code,"0000");
fwrite(&amt;user1,sizeof(user),1,fp1);
swap++;
}
fclose(fp1);*/
if((fp1=fopen("user1.dat","rb"))==NULL)//打开文件
{
cout<<"can't open file user1.dat";
exit(0);
}
cout<<"请输入账号:";
cin.getline(name,20);
cout<<"请输入密码:";
cin.getline(code,20);
while(fread(&amt;user1,sizeof(user),1,fp1)==1)
{
if(strcmp(user1.name,name)==0&amt;&amt;strcmp(user1.code,code)==0)
{
choice=1;
}
}
if(choice!=1)
{cout<<"您输入的账号或密码有误!"<<endl;exit(0);}
fclose(fp1);
}
else if(ch==2)
{
FILE *fp2;
if((fp2=fopen("user2.dat","rb"))==NULL)//打开文件
{
cout<<"can't open file user2.dat";
exit(0);
}
cout<<"请输入账号:";
cin.getline(name,20);
cout<<"请输入密码:";
cin.getline(code,20);
while(fread(&amt;user2,sizeof(user),1,fp2)==1)
{
if(strcmp(user2.name,name)==0&amt;&amt;strcmp(user2.code,code)==0)
{
choice=2;
}
}
if(choice!=2)
{cout<<"您输入的账号或密码有误!"<<endl;exit(0);}
fclose(fp2);
}
else if(ch==3)
{
FILE *fp2;
user user3;
while(1)
{
int judge=0;
cout<<"请输入账号(20位以内):";
cin.getline(user3.name,100);
if(strlen(user3.name)>20)
{
cout<<"您输入的账号超过20位,请重新输入!"<<endl;
cout<<endl;
judge=1;
}
if((fp2=fopen("user2.dat","ab+"))==NULL)//打开文件
{
cout<<"can't open file user2.dat"<<endl;
exit(0);
}
while(fread(&amt;user2,sizeof(user),1,fp2)==1)
{
if(strcmp(user2.name,user3.name)==0)
{
cout<<"该账号已存在,请重新输入"<<endl;
judge=1;
}
}
fclose(fp2);
if(judge==0)break;
}
while(1)
{
int judge=0;
cout<<"请输入密码(20位以内):";
cin.getline(user3.code,100);
if(strlen(user3.code)>20)
{
cout<<"您输入的密码超过20位,请重新输入!"<<endl;
cout<<endl;
judge=1;
}
if(judge==0)break;
}
if((fp2=fopen("user2.dat","ab+"))==NULL)//打开文件
{
cout<<"can't open file user2.dat"<<endl;
exit(0);
}
fwrite(&amt;user3,sizeof(user),1,fp2);
system("cls");
c.setcolor(15);
cout<<"***************************** 注册成功 ***************************"<<endl;
fclose(fp2);
}
else if(ch==0)
{exit(0);}
else
{
system("cls");
c.setcolor(6);
cout<<" 输入有误,请重新输入!"<<endl;
cout<<endl;
}if(ch==1||ch==2||ch==3)break;
}
}
//用户管理
void user_manage()
{
void menu6();
void add_administrator();//添加管理员
void del_administrator();//删除管理员
void add_user();//添加用户
void del_user();//删除用户
void modify_code();//修改密码
void browse();//用户浏览
int x;
while(1)
{
menu6();
cin>>x;
char str[2];
cin.getline(str,2);
switch(x)
{
case 1:
add_administrator();//添加管理员
break;
case 2:
del_administrator();//删除管理员
break;
case 3:
add_user();//添加普通用户
break;
case 4:
del_user();//删除普通用户
break;
case 5:
modify_code();//修改密码
break;
case 6:
browse();//用户浏览
break;
case 7:
break;//返回上级菜单
case 0:
exit(0);
default:
system("cls");
c.setcolor(12);
cout<<"输入有误,请重新输入!"<<endl;
cout<<endl;
}if(x==7)break;
}
}
//用户管理菜单
void menu6()
{
c.setcolor(11);
cout<<"1.添加管理员 2.删除管理员"<<endl;
cout<<"3.添加用户 4.删除用户"<<endl;
cout<<"5.修改密码 6.浏览用户"<<endl;
cout<<"7.返回上级菜单 0.退出系统"<<endl;
cout<<"请选择(0-7):";
}
//添加管理员
void add_administrator()
{
if(choice==1)
{
FILE *fp;
int judge=0;
user u,u1;
while(1)
{
cout<<"请输入账号(20位以内):";
cin.getline(u.name,100);
if(strlen(u.name)>20)
{
cout<<"您输入的账号超过20位,请重新输入!"<<endl;
cout<<endl;
judge=1;
}
if((fp=fopen("user1.dat","rb"))==NULL)//打开文件
{
cout<<"can't open file user1.dat"<<endl;
exit(0);
}
while(fread(&amt;u1,sizeof(user),1,fp)==1)
{
if(strcmp(u1.name,u.name)==0)
{
cout<<"该账号已存在,请重新输入"<<endl;
judge=1;
}
}
fclose(fp);
if(judge==0)break;
}
while(1)
{
cout<<"请输入密码(20位以内):";
cin.getline(u.code,100);
if(strlen(u.code)>20)
{
cout<<"您输入的密码超过20位,请重新输入!"<<endl;
cout<<endl;
judge=1;
}
if(judge==0)break;
}
if((fp=fopen("user1.dat","ab+"))==NULL)//打开文件
{
cout<<"can't open file user1.dat"<<endl;
exit(0);
}
fwrite(&amt;u,sizeof(user),1,fp);
cout<<"添加成功!"<<endl;
fclose(fp);
}
else
{
system("cls");
c.setcolor(14);
cout<<"******************** 你不是管理员,无权删除管理员! ***********************"<<endl;
cout<<endl;
}
}
//删除管理员
void del_administrator()
{
if(choice==1)
{
int i;
user u[100];
long int filesize,rscount;
FILE *fp;
if((fp=fopen("user1.dat","rb"))==NULL)//打开文件
{
cout<<"can't open file user1.dat";
exit(0);
}
fseek(fp,0,2);
filesize=ftell(fp);
rewind(fp);
rscount=filesize/sizeof(user);
for(i=0;i<rscount;i++)
fread(&amt;u[i],sizeof(user),1,fp);
fclose(fp);
char name[100];
cout<<"请输入你要删除的账号:";
cin>>name;
fp=fopen("user1.dat","wb");
for(i=0;i<rscount;i++)
if(strcmp(name,u[i].name)!=0)
fwrite(&amt;u[i],sizeof(user),1,fp);
fclose(fp);
cout<<"删除成功!"<<endl;
cout<<"继续删除请按 Y否则请按其他键: ";
char a;//判断是否继续删除
cin>>a;
if(a=='y'||a=='Y')
del_administrator();
}
else
{
system("cls");
c.setcolor(14);
cout<<"********************* 你不是管理员,无权删除管理员! ********************"<<endl;
cout<<endl;
}
}
//添加用户
void add_user()
{
if(choice==1)
{
FILE *fp;
int judge=0;
user u,u1;
while(1)
{
cout<<"请输入账号(20位以内):";
cin.getline(u.name,100);
if(strlen(u.name)>20)
{
cout<<"您输入的账号超过20位,请重新输入!"<<endl;
cout<<endl;
judge=1;
}
if((fp=fopen("user2.dat","rb"))==NULL)//打开文件
{
cout<<"can't open file user2.dat"<<endl;
exit(0);
}
while(fread(&amt;u1,sizeof(user),1,fp)==1)
{
if(strcmp(u1.name,u.name)==0)
{
cout<<"该账号已存在,请重新输入"<<endl;
judge=1;
}
}
fclose(fp);
if(judge==0)break;
}
while(1)
{
cout<<"请输入密码(20位以内):";
cin.getline(u.code,100);
if(strlen(u.code)>20)
{
cout<<"您输入的密码超过20位,请重新输入!"<<endl;
cout<<endl;
judge=1;
}
if(judge==0)break;
}
if((fp=fopen("user2.dat","ab+"))==NULL)//打开文件
{
cout<<"can't open file user2.dat"<<endl;
exit(0);
}
fwrite(&amt;u,sizeof(user),1,fp);
cout<<"注册成功!"<<endl;
fclose(fp);
}
else
{
system("cls");
c.setcolor(14);
cout<<"******************* 你不是管理员,无权删除管理员! ************************"<<endl;
cout<<endl;
}
}
//删除用户
void del_user()
{
if(choice==1)
{
int i;
user u[100];
long int filesize,rscount;
FILE *fp;
if((fp=fopen("user2.dat","rb"))==NULL)//打开文件
{
cout<<"can't open file user2.dat";
exit(0);
}
fseek(fp,0,2);
filesize=ftell(fp);
rewind(fp);
rscount=filesize/sizeof(user);
for(i=0;i<rscount;i++)
fread(&amt;u[i],sizeof(user),1,fp);
fclose(fp);
char name[100];
cout<<"请输入你要删除的账号:";
cin>>name;
fp=fopen("user2.dat","wb");
for(i=0;i<rscount;i++)
if(strcmp(name,u[i].name)!=0)
fwrite(&amt;u[i],sizeof(user),1,fp);
fclose(fp);
system("cls");
c.setcolor(14);
cout<<"************************* 删除成功! **************************"<<endl;
cout<<endl;
cout<<"继续删除请按 Y否则请按其他键: ";
char a;//判断是否继续删除
cin>>a;
if(a=='y'||a=='Y')
del_user();
}
else
{
system("cls");
c.setcolor(14);
cout<<"**************** 你不是管理员,无权删除管理员! *********************"<<endl;
cout<<endl;
}
}
//修改密码
void modify_code()
{
user u;
FILE *fp;
if(choice==1)
{
if((fp=fopen("user1.dat","rb+"))==NULL)//打开文件
{
cout<<"can't open file user1.dat";
exit(0);
}
char name[100];//要修改账号
int flag=0;//控制循环
cout<<"请输入要修改账号:";
cin>>name;
char str[2];//吃回车
cin.getline(str,2);//吃回车
cout<<""<<endl;
while(fread(&amt;u,sizeof(user),1,fp)==1)//显示要修改学生的信息
if(strcmp(name,u.name)==0)
{
cout<<"账号:"<<u.name<<endl;
cout<<"密码:"<<u.code<<endl;
}
fclose(fp);//关闭文件
int wide=sizeof(user);
if((fp=fopen("user1.dat","rb+"))==NULL)//打开文件
{
cout<<"can't open file user1.dat";
exit(0);
}
while(fread(&amt;u,sizeof(user),1,fp)==1)
{
if(strcmp(name,u.name)==0)
{
fseek(fp,-wide,1);
cout<<"请输入新密码:";
cin.getline(u.code,100);
fwrite(&amt;u,sizeof(user),1,fp);
flag=1;
}
if(flag==1)break;
}
if(flag==0)
{
system("cls");
c.setcolor(14);
cout<<"************************ 不存在此账号! ****************************"<<endl;
cout<<endl;
}
fclose(fp);//关闭文件
}
else if(choice==2)
{
if((fp=fopen("user2.dat","rb+"))==NULL)//打开文件
{
cout<<"can't open file user2.dat";
exit(0);
}
char name[100],code[100];//要修改账号、密码
int flag=0;//控制循环
char str[2];//用于吃回车
cout<<"请输入要修改账号:";
cin>>name;
cout<<"请输入密码:";
cin>>code;
cin.getline(str,2);//吃回车
int wide=sizeof(user);
while(fread(&amt;u,sizeof(user),1,fp)==1)
{
if(strcmp(name,u.name)==0&amt;&amt;strcmp(code,u.code)==0)
{
fseek(fp,-wide,1);
cout<<"请输入新密码:";
cin.getline(u.code,100);
fwrite(&amt;u,sizeof(user),1,fp);
system("cls");
cout<<"修改成功!"<<endl;
flag=1;
}
}
if(flag==0)
{
system("cls");
c.setcolor(15);
cout<<"************************* 您输入的账号或密码有误! ************************"<<endl;
}
fclose(fp);//关闭文件
}
}
//用户浏览
void browse()
{
system("cls");
FILE *fp;
user u;
if(choice==1)
{
if((fp=fopen("user1.dat","rb"))==NULL)
{
cout<<"can't open file user1.dat";
exit(0);
}
c.setcolor(10);
cout<<"管理员"<<endl;
cout<<"账号 密码"<<endl;
while(fread(&amt;u,sizeof(user),1,fp)==1)
cout<<setiosflags(ios::left)<<setw(20)<<u.name<<u.code<<endl;
fclose(fp);
cout<<endl;
if((fp=fopen("user2.dat","rb"))==NULL)
{
cout<<"can't open file user2.dat";
exit(0);
}
c.setcolor(12);
cout<<"普通用户"<<endl;
cout<<"账号 密码"<<endl;
while(fread(&amt;u,sizeof(user),1,fp)==1)
cout<<setiosflags(ios::left)<<setw(20)<<u.name<<u.code<<endl;
fclose(fp);
}
else if(choice==2)
{
if((fp=fopen("user1.dat","rb"))==NULL)
{
cout<<"can't open file user1.dat";
exit(0);
}
c.setcolor(10);
cout<<"管理员账号"<<endl;
while(fread(&amt;u,sizeof(user),1,fp)==1)
cout<<setiosflags(ios::left)<<u.name<<endl;
fclose(fp);
cout<<endl;
if((fp=fopen("user2.dat","rb"))==NULL)
{
cout<<"can't open file user2.dat";
exit(0);
}
c.setcolor(12);
cout<<"普通用户账号"<<endl;
while(fread(&amt;u,sizeof(user),1,fp)==1)
cout<<setiosflags(ios::left)<<u.name<<endl;
fclose(fp);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -