#include<bits/stdc++.h>
using namespace std ;
struct node{
char username[20];
char password[20];
int flag;
int level;
}a;
struct student{
int hao;
char name[30];
char xueyuan[30];
char leibie[30];
double ji1;
double ji2;
double zhuan1;
double zhuan2;
double sum;
double fusum;
double kousum;
double allsum;
}stu;
void checkx(){
int i=(stu.hao%100000-stu.hao%1000)/1000;
if(i==1){
strcpy(stu.xueyuan,"通信学院");
}
if(i==2){
strcpy(stu.xueyuan,"计算机学院");
}
if(i==3){
strcpy(stu.xueyuan,"光电学院");
}
if(i==4){
strcpy(stu.xueyuan,"自动化学院");
}
if(i==5){
strcpy(stu.xueyuan,"经管学院");
}
if(i==6){
strcpy(stu.xueyuan,"研究生院");
}
if(i==7){
strcpy(stu.xueyuan,"外语学院");
}
if(i==8){
strcpy(stu.xueyuan,"安法学院");
}
if(i==9){
strcpy(stu.xueyuan,"体育学院");
}
if(i==10){
strcpy(stu.xueyuan,"传媒学院");
}
if(i==11){
strcpy(stu.xueyuan,"先进制造学院");
}
if(i==12){
strcpy(stu.xueyuan,"马克思主义学院");
}
printf("%s\n",stu.xueyuan);
}
int check(double i,int k){
if(k==2){
if(i>=0&&i<=100) return 1;
else return 0;
} else if(k==3){
if(i>=0&&i<=150) return 1;
else return 0;
}
}
void add(){
stu = {0};
FILE *fp=fopen("C:\\Users\\Administrator\\Desktop\\data12.txt","a");
printf("请按照下列提示完成信息录入:\n");
while(true){
printf("请输入考号:\n");
cin>>stu.hao;
int i=(stu.hao%100000-stu.hao%1000)/1000;
int j=(stu.hao/100000);
cout<<i<<" "<<j<<endl;
if(i>=1&&i<=12&&j==2021&&stu.hao<=202200000){
break;
}
else {
printf("错误,请重新输入\n");
}
}
printf("--%d\n\n",stu.hao);
printf("请输入姓名:\n");
getchar();
gets(stu.name);
printf("--%s\n\n",stu.name);
while(true){
printf("请输入报考类别:\n");
string aa;
cin>>aa;
if(aa=="学硕"){
strcpy(stu.leibie,"学硕");break;
}
else if(aa=="专硕"){
strcpy(stu.leibie,"专硕");break;
}
else if(aa=="非全日制"){
strcpy(stu.leibie,"非全日制");break;
}
else{
printf("输入错误,请重新输入:\n");
}
}
printf("--%s\n\n",stu.leibie);
checkx();
while(true){
printf("基础课1成绩:\n");
cin>>stu.ji1;
if(check(stu.ji1,2)!=1) {
printf("输入错误,请重新输入:\n");
continue;
}
else break;
}
while(true){
printf("基础课2成绩:\n");
cin>>stu.ji2;
if(check(stu.ji2,2)!=1) {
printf("输入错误,请重新输入:\n");
continue;
}
else break;
}
while(true){
printf("专业课1成绩::\n");
cin>>stu.zhuan1;
if(check(stu.zhuan1,3)!=1) {
printf("输入错误,请重新输入:\n");
continue;
}
else break;
}
while(true){
printf("专业课2成绩::\n");
cin>>stu.zhuan2;
if(check(stu.zhuan2,3)!=1) {
printf("输入错误,请重新输入:\n");
continue;
}
else break;
}
stu.sum=stu.ji1+stu.ji2+stu.zhuan1+stu.zhuan2;
printf("复试成绩:\n");
cin>>stu.fusum;
printf("--%lf\n\n",stu.fusum);
printf("口语成绩:\n");
cin>>stu.kousum;
printf("--%lf\n\n",stu.kousum);
stu.allsum=stu.sum*0.6+stu.fusum*0.3+stu.kousum*0.1;
fprintf(fp,"%-20d%-20s%-20s%-20s%-20f%-20f%-20f%-20f%-20f%-20f%-20f%-20f\n",stu.hao,&stu.name,&stu.xueyuan,&stu.leibie,stu.ji1,stu.ji2,stu.zhuan1,stu.zhuan2,stu.sum,stu.fusum,stu.kousum,stu.allsum);
fclose(fp);
}
void chaxun(){
printf("请输入要查找的考号\n");
int hao=0;
cin>>hao;
FILE *fp=fopen("C:\\Users\\Administrator\\Desktop\\data12.txt","r");
int flag=0;
while(fscanf(fp,"%d %s %s %s %lf %lf %lf %lf %lf %lf %lf %lf",&stu.hao,&stu.name,&stu.xueyuan,&stu.leibie,&stu.ji1,&stu.ji2,&stu.zhuan1,&stu.zhuan2,&stu.sum,&stu.fusum,&stu.kousum,&stu.allsum)!=EOF){
if(stu.hao==hao){
printf("%d %s %s %s %lf %lf %lf %lf %lf %lf %lf %lf\n",stu.hao,stu.name,stu.xueyuan,stu.leibie,stu.ji1,stu.ji2,stu.zhuan1,stu.zhuan2,stu.sum,stu.fusum,stu.kousum,stu.allsum);
flag=1;
}
}
if(flag==0) printf("查找失败\n");
fclose(fp);
}
void shanchu(){
FILE *fp=fopen("C:\\Users\\Administrator\\Desktop\\data12.txt","r");
int hao=0;
printf("请输入要删除的学号\n");
cin>>hao;
vector<student> ls;
while(fscanf(fp,"%d %s %s %s %lf %lf %lf %lf %lf %lf %lf %lf",&stu.hao,&stu.name,&stu.xueyuan,&stu.leibie,&stu.ji1,&stu.ji2,&stu.zhuan1,&stu.zhuan2,&stu.sum,&stu.fusum,&stu.kousum,&stu.allsum)!=EOF){
if(stu.hao!=hao){
ls.push_back(stu);
}
}
fclose(fp);
FILE *fpp=fopen("C:\\Users\\Administrator\\Desktop\\data12.txt","w+");
for(int i=0;i<ls.size();i++){
fprintf(fp,"%-20d%-20s%-20s%-20s%-20f%-20f%-20f%-20f%-20f%-20f%-20f%-20f\n",ls[i].hao,ls[i].name,ls[i].xueyuan,ls[i].leibie,ls[i].ji1,ls[i].ji2,ls[i].zhuan1,ls[i].zhuan2,ls[i].sum,ls[i].fusum,ls[i].kousum,ls[i].allsum);
}
fclose(fpp);
}
void xiugai(){
}
void admin(){
string choose_judge="y";
while(choose_judge=="y"){
printf("欢迎您使用本系统,请输入要进行的操作(数字),1--增加,2--删除,3--修改,4--查询\n") ;
string choose_sum;
cin>>choose_sum;
if(choose_sum=="1"){
int Writeflag=1;
while(Writeflag==1) {
add();
printf("是否继续录入1/0");
scanf("%d", &Writeflag);
}
}
else if(choose_sum=="2"){
shanchu();
}
else if(choose_sum=="3"){
xiugai();
}
else if(choose_sum=="4"){
chaxun();
}
else{
printf("输入错误!请重新输入!\n ");
continue;
}
printf("是否继续使用该系统(y/n):");
cin>>choose_judge;
}
}
void xicao(){
string choose_judge="y";
while(choose_judge=="y"){
printf("欢迎您使用本系统,请输入要进行的操作(数字),1--增加,2--查询\n") ;
string choose_sum;
cin>>choose_sum;
if(choose_sum=="1"){
int Writeflag=1;
while(Writeflag==1) {
add();
printf("是否继续录入1/0");
scanf("%d", &Writeflag);
}
}
else if(choose_sum=="2"){
chaxun();
}
else{
printf("输入错误!请重新输入!\n ");
continue;
}
printf("是否继续使用该系统(y/n):");
cin>>choose_judge;
}
}
void student(){
string choose_judge="y";
printf("欢迎您使用本系统,请输入要进行的操作(数字),1--查询\n") ;
while(choose_judge=="y"){
string choose_sum;
cin>>choose_sum;
if(choose_sum=="1"){
int Writeflag=1;
while(Writeflag==1) {
add();
printf("是否继续录入1/0");
scanf("%d", &Writeflag);
}
}
else{
printf("输入错误!请重新输入!\n ");
continue;
}
printf("是否继续使用该系统(y/n):");
cin>>choose_judge;
}
}
void menu()
{
printf("--------------------2021 某校研究生招生成绩管理系统--------------\n");
printf("= =\n");
printf("= ***功能介绍*** =\n");
printf("= =\n");
printf("= 1.系统管理员登录 =\n");
printf("= 2.系统操作员登录 =\n");
printf("= 3.学生用户登录 =\n");
printf("= 5.请求帮助 =\n");
printf("= 6.退出系统 =\n");
printf("= =\n");
printf("= =\n");
printf("============================================================\n");
return ;
}
int main() {
while(true){
menu();
printf("请输入所选择的功能数字\n");
int Choose_menu=0;
cin>>Choose_menu;
vector<node> LS;
printf("请输入账号和密码\n");
string Username;
string Password;
cin>>Username>>Password;
FILE *fp=fopen("C:\\Users\\Administrator\\Desktop\\data11.txt","r");
int flag=0,Ulevel=0;
while(fscanf(fp,"%s %s %d %d",&a.username,&a.password,&a.flag,&a.level)!=EOF){
string Lusername=a.username;
string Lpassword=a.password;
if(Username==Lusername&&Password==Lpassword){
flag=1;
if(a.flag==0&&a.level==Choose_menu){
a.flag=1;
printf("首次登录,需要修改密码,请输入您的密码:");
char LLpassword[100];
scanf("%s",&LLpassword);
strcpy(a.password,LLpassword);
printf("\n");
}
if(a.flag==1&&a.level==Choose_menu){
if(a.level==1) Ulevel=1;
else if(a.level==2) Ulevel=2;
else if(a.level==3) Ulevel=3;
}
}
LS.push_back(a);
}
fclose(fp);
FILE *fpp=fopen("C:\\Users\\Administrator\\Desktop\\data11.txt","w+");
for(int i=0;i<LS.size();i++){
fprintf(fpp,"%-20s%-20s%-20d%-20d\n",LS[i].username,LS[i].password,LS[i].flag,LS[i].level);
}
fclose(fpp);
if(Ulevel==1){
printf("你好管理员,登陆成功!\n");
admin();
break;
}
else if(Ulevel==2){
printf("你好操作员,登陆成功!\n");
xicao();
break;
}
else if(Ulevel==3){
printf("你好同学,登陆成功!\n");
student();
break;
}
if(flag==0) {
printf("账号或密码错误\n");
printf("输入y重新登录,输入n退出系统:");
string q;
cin>>q;
if(q=="y"){
continue;
}
else{
break;
}
}
}
printf("感谢您使用本系统,欢迎下次使用");
return 0;
}