⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 學生信息管理系統,學生信息管理系統
💻 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 + -