栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

实现一个简单的试卷管理、考试管理和成绩管理的考试系统

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

实现一个简单的试卷管理、考试管理和成绩管理的考试系统

已全部实现和优化: (1)允许通过菜单选择要操作的功能(字符) 选项,具体任务如下: 可以录入试卷基本信息:录入选择题的题干、选项和答案,可以录入多题,并允许 查看和删除等操作; --------》试卷管理(已实现) (2)考试的时候,考生先录入学号和姓名,并开始作答案,答题结束后,显示考生的成绩和各题的答案,允许多位考生作答---》用for循环看后台考生; -----》考试管理;(已完成) (3)考试结束后,可以进行相关考试成绩的统计分析,比如打印所有考生的成绩单,平均分、 最高或最低 -----》成绩的管理; 老师版面和学生版面(已实现) , 扩展功能: (4)一个试卷中,实现多种题型,比如再增加判断题和多选题等;----》考试加试卷管理(已实现) (5)为每个考试指定考试开始和结束时间,考生只能在这个时间内进行作答,同时答过程中,如果考试时间结束,也会强制结束考试

//试卷管理操作:
#include 
#include 
#include 
#include
#include
#include 
#include 

//#include "试卷管理之学生管理函数.c"------>先写在一个函数里在问老师

//结构
struct Xuesheng {
	char school_number[15];//学号
	char name[15];
	char Sex[3];
	int age;
	char pass_class[15];// 班级
	char chinese_nation[15];//民族
	char pass_schoolage[30];//入学年份
	int sum=0;//总分(该科目成绩)
	struct Xuesheng *next;
};

struct Panduangti {
	int pd_flag=1;//1表示要输出
	int number3;        //序号
	char stem3[100];     //题干
	char answer3[2];    //答案-->T或F
	int score3;        //分值
};
//单选题
struct ChoiceQuestion {
	int number;        //序号
	char stem[100];     //题干
	char optionA[30];   //选项A
	char optionB[30];   //选项B
	char optionC[30];   //选项C
	char optionD[30];   //选项D
	char answer[2];    //答案
	int score;        //分值
	int shangchu_flag1=1;//1表示不删除。
};

struct Douxuanti {
	int shangchu2_flag2=1; //1表示不删除
	int number2;        //序号
	char stem2[100];     //题干
	char optionA2[30];   //选项A
	char optionB2[30];   //选项B
	char optionC2[30];   //选项C
	char optionD2[30];   //选项D
	char answer2[10];    //答案
	int score2;        //分值
};

struct Exam {
	char name[80]="暂无内容";  //考试名称
	int beginTime1=0,beginTime2=0;  //开考时间
	int endTime1=0,endTime2=0;  //结束时间
	int sum1;//单选题的数量
	int sum2;//多选题的数量
	int sum3;//判断题的数量
	int sum4=1;//学生数量;
	struct ChoiceQuestion cq[100];  //单选题,如果还有其它题型,可以再加变量
	struct Douxuanti dx[100];//多选题
	struct Panduangti pd[100];//判段题
	int zhon_sum=0;//统计我设置的设置的总分
	long long second=0;//统计有多少秒
};


//全局变量
struct Exam exam;//-->试卷的全局变量
struct Xuesheng *student_head;//访问学生信息的头指针
struct Xuesheng xs;//用于操作学生的全局变量
long long zhanghao=19832841458;//老师账号
long long mima=12345678;//老师密码
clock_t start,end;//统计时间的变量 


//函数
void jingru(int x);//----->最开头的功能
void gongnen(int x);//--->功能2
void shijuan();//----> 试卷基本信息
void dangxuanti();//---->单选题
void douxuanti();//---->多选题
void panduangti();//---->判断题
struct Xuesheng *xuesheng();//----->学生信息
struct Xuesheng *lookandremove(struct Xuesheng *head) ; //-------->查看和修改信息
//void Biankuan();//------------>将学生所有信息纳入一个边框中,自动执行
//----->设计首页面的边框比设置学生的容易,因为学生要开多个二维数组
void sijuanguanli();//试卷管理
void kaoshiguanli(struct Xuesheng *head);//考试管理
void chengjiguanli(struct Xuesheng *head);//成绩管理
long long textsecond(int begin1,int begin2,int end1,int end2);//统计设置的时间段有多少秒
void sequence(char a[]);


//主函数
int main() {
	for(int i=0; i<=54; i++)
		printf("*");
	printf("欢迎进入考试系统");
	for(int i=0; i<=48; i++)
		printf("*");
	printf("n");
	//页面的设计
	int x;
	while(1) {
		printf("==================================n");
		printf("||       (1)试卷和信息管理      ||n");
		printf("||       (2)考试管理            ||n");
		printf("||       (3)成绩分析和统计      ||n");
		printf("||       (4)退出考试系统        ||n");
		printf("==================================n");
		printf("     请选择你的操作:");
		scanf("%d",&x);
		if(x==4) {
			printf("---退出系统---");
			printf("n");
			printf("n");
			printf("--未来可期,不负新时代--n");
			break;
		} else if(x<=0||x>4) {
			printf("n");
			printf("没有该操作,请重新选择n");
			continue;
		}
		jingru(x);
		printf("n");
		for(int i=0; i<=50; i++)
			printf("*");
		printf("欢迎进入考试系统");
		for(int i=0; i<=52; i++)
			printf("*");
		printf("n");
		x=1;
	}
	if(x==4) {

	}
	return 0;
}
void jingru(int x) {
	switch(x) {
		case 1:
			sijuanguanli();
			break;
		case 2:
			kaoshiguanli(student_head);
			break;
		case 3:
			chengjiguanli(student_head);
			break;
	}
}


//试卷管理页面
void sijuanguanli() {
	system("cls");
	printf("n");
	for(int i=0; i<=47; i++)
		printf("*");
	printf("欢迎进入试卷和信息管理页面");
	for(int i=0; i<=45; i++)
		printf("*");
	printf("n");
	//页面的设计
	int x;
	while(1) {
		printf("--------------------------------------n");
		printf("|        (1)录入试卷基本信息          |n");
		printf("|        (2)录入学生信息              |n");
		printf("|        (3)查看与修改信息            |n");
		printf("|        (4)退出试卷管理操作          |n");
		printf("--------------------------------------n");
		printf("       请选择你的操作:");
		scanf("%d",&x);
		if(x==4)
			break;
		else if(x<=0||x>4) {
			printf("n");
			printf("没有该操作,请重新选择n");
			continue;
		}
		gongnen(x);
		system("cls");
		printf("n");
		for(int i=0; i<=47; i++)
			printf("*");
		printf("欢迎进入试卷和信息管理页面");
		for(int i=0; i<=45; i++)
			printf("*");
		printf("n");
	}
}



//操作功能集合体 ---->操作的调用
void gongnen(int x) {
	switch(x) {
		case 1:
			shijuan();
			break;
		case 2:
			student_head=xuesheng();
			//void Biankuan(student_head);
			break;
		case 3:
			student_head=lookandremove(student_head);//要接收含学生信息的头指针
			break;
	}
}

//试卷基本信息
void shijuan() {
	system("cls");
	printf("n");
	for(int i=0; i<=45; i++)
		printf("*");
	printf("已进入录入试卷基本信息操作");
	for(int i=0; i<=42; i++)
		printf("*");
	printf("n");//页面的设计

	int x=1;
	printf("请设计考试的名称:");
	scanf("%s",exam.name);
	printf("设计成功:%sn",exam.name);
	printf("n");
loop:
	printf("请设计考试的开始时间:");//一定用英文
	scanf("%d:%d",&exam.beginTime1,&exam.beginTime2) ;
	if(exam.beginTime1<0||exam.beginTime1>23) { //小时
		printf("设置错误,请重新设置n");
		goto loop;
	}
	if(exam.beginTime2<0||exam.beginTime2>=60) {
		printf("设置错误,请重新设置n");
		goto loop;
	}
	printf("设计成功:%02d:%02dn",exam.beginTime1,exam.beginTime2);
	printf("n");
	printf("请设计考试的结束时间:");
	scanf("%d:%d",&exam.endTime1,&exam.endTime2);
	if(exam.endTime1<0||exam.endTime1>23) {
		printf("设置错误,请重新设置n");
		goto loop;
	}
	if(exam.endTime2<0||exam.endTime2>=60) {
		printf("设置错误,请重新设置n");
		goto loop;
	}
	printf("设计成功:%02d:%02dn",exam.endTime1,exam.endTime2);

	//统计秒数
	exam.second=textsecond( exam.beginTime1,exam.beginTime2,exam.endTime1,exam.endTime2);


	for(int j=0; j<=2; j++)
		printf("n");
	while(x) {
		printf("         (1)进行设计单选题n");
		printf("         (2)进行设计多选题n");
		printf("         (3)进行设计判段题n");
		printf("         (4)退出录入试卷基本信息操作n");
		printf("         请进行你的操作:");
		scanf("%d",&x);
		if(x==4)
			break ;
		else if(x<=0||x>4) {
			while(x<=0||x>4) {
				printf("没有该操作,请重新选择n");
				printf("请重新进行选择你的操作:");
				scanf("%d",&x);
				if(x>0&&x<=4)
					break;
			}
		}
		switch(x) {
			case 1:
				dangxuanti();
				break;
			case 2:
				douxuanti();
				break;
			case 3:
				panduangti();
				break;
		}
		printf("n");
		for(int i=0; i<=50; i++)
			printf("*");
		printf("已进入录入试卷基本信息操作");
		for(int i=0; i<=42; i++)
			printf("*");
		printf("n");//页面的设计
		x=1;
	}
}


//单选题
void dangxuanti() {
	system("cls");
	printf("n");
	for(int i=0; i<=50; i++)
		printf("*");
	printf("进行设计单选题");
	for(int i=0; i<=54; i++)
		printf("*");
	printf("n");//页面的设计

	int i,y;
	printf("请确认设置几道单选题:");
	scanf("%d",&exam.sum1);
	printf("n");
	getchar();
	for(i=1; i<=exam.sum1; i++) {
		exam.cq[i].number=i;//序号
		printf("请设置%d题的分值:",i);
		scanf("%d",&exam.cq[i].score);
		exam.zhon_sum+=exam.cq[i].score;
		getchar();
		printf("请输入第%d道题的题目:",i);
		scanf("%s",exam.cq[i].stem);
		printf("n");
		printf("请设置选项A的内容:");
		scanf("%s",exam.cq[i].optionA);
		printf("设置成功:%sn",exam.cq[i].optionA);
		printf("n");
		printf("请设置选项B的内容:");
		scanf("%s",exam.cq[i].optionB);
		printf("设置成功:%sn",exam.cq[i].optionB);
		printf("n");
		printf("请设置选项C的内容:");
		scanf("%s",exam.cq[i].optionC);
		printf("设置成功:%sn",exam.cq[i].optionC);
		printf("n");
		printf("请设置选项D的内容:");
		scanf("%s",exam.cq[i].optionD);
		printf("设置成功:%sn",exam.cq[i].optionD);
		printf("n");
dan_loop:		
		printf("请设计该题的答案为:");
		scanf("%s",exam.cq[i].answer);
		//判断答案设置是否正确 
		if(y=strlen(exam.cq[i].answer)>=2){
			printf("答案设置错误,这是单选题,请重新设置n");
			goto dan_loop;
		}
		if(exam.cq[i].answer[0]!='A'&&exam.cq[i].answer[0]!='B'&&exam.cq[i].answer[0]!='C'&&exam.cq[i].answer[0]!='D'){
			printf("答案设置错误,请重新设置n");
			goto dan_loop;
		}

		printf("设置成功:%sn",exam.cq[i].answer);
		printf("n");
		if(i!=exam.sum1)
			for(int j=0; j<20; j++)
				printf("~");
		printf("n");
	}
	printf("n");
	printf("全部设置完成");
}


//多选题
void douxuanti() {
	system("cls");
	printf("n");
	for(int i=0; i<=50; i++)
		printf("*");
	printf("进行设计多选题");
	for(int i=0; i<=54; i++)
		printf("*");
	printf("n");//页面的设计

	int i;
	printf("请设置多选题的数量:");
	scanf("%d",&exam.sum2);
	printf("n");
	getchar();
	for(i=1; i<=exam.sum2; i++) {
		exam.dx[i].number2=i;//序号
		printf("请设置第%d题的分值:",i);
		scanf("%d",&exam.dx[i].score2);
		exam.zhon_sum+=exam.dx[i].score2;
		getchar();
		printf("请输入第%d道题的题目:",i);
		scanf("%s",exam.dx[i].stem2);
		printf("n");
		printf("请设置选项A的内容:");
		scanf("%s",exam.dx[i].optionA2);
		printf("设置成功:%sn",exam.dx[i].optionA2);
		printf("n");
		printf("请设置选项B的内容:");
		scanf("%s",exam.dx[i].optionB2);
		printf("设置成功:%sn",exam.dx[i].optionB2);
		printf("n");
		printf("请设置选项C的内容:");
		scanf("%s",exam.dx[i].optionC2);
		printf("设置成功:%sn",exam.dx[i].optionC2);
		printf("n");
		printf("请设置选项D的内容:");
		scanf("%s",exam.dx[i].optionD2);
		printf("设置成功:%sn",exam.dx[i].optionD2);
		printf("n");
		printf("请设计该题的答案为:");
		scanf("%s",exam.dx[i].answer2);
		//要判断答案是否设置正确
		int y=strlen(exam.dx[i].answer2);
		int chandu;
		for(int j=0;j'D') {
				printf("第%d题的答案设置错误:",i);
				printf("%sn",exam.dx[i].answer2);
				printf("请重新设置第%d的答案为:",i);
				scanf("%s",exam.dx[i].answer2);
				y=strlen(exam.dx[i].answer2);
				j=0;
			} else
				j++;
		}
		sequence(exam.dx[i].answer2);
		printf("已设置成功答案为:%sn",exam.dx[i].answer2);
		printf("n");
		if(i!=exam.sum2)
			for(int j=0; j<20; j++)
				printf("~");
		printf("n");
	}
	printf("n");
	printf("全部设置完成");
}

//判断题
void panduangti() {
	system("cls");
	printf("n");
	for(int i=0; i<=50; i++)
		printf("*");
	printf("进行设计判断题");
	for(int i=0; i<=54; i++)
		printf("*");
	printf("n");//页面的设计

	int i,x;
	printf("请设置判断题的数量:");
	scanf("%d",&exam.sum3);
	printf("n");
	getchar();
	for(i=1; i<=exam.sum3; i++) {
		exam.pd[i].number3=i;
		printf("请设置判断题的分值:");
		scanf("%d",&exam.pd[i].score3);
		exam.zhon_sum+=exam.pd[i].score3;
		getchar();
		printf("请设置第%d的题目:",i);
		scanf("%s",exam.pd[i].stem3);
		printf("设置成功:%sn",exam.pd[i].stem3);
		printf("n");
		printf("请确认第%d题的答案n",i);
		printf("(1)正确n(2)错误n");
		printf("设置为:");
		scanf("%d",&x) ;
		//进行答案的格式判断
		if(x!=1&&x!=2) {
			while(x!=1&&x!=2) {
				printf("没有该设置,请重新设置答案:");
				scanf("%d",&x);
				if(x==1||x==2)
					break;
			}
		}
		if(x==1) {
			exam.pd[i].answer3[0]='T';
			printf("已设置为:%s(正确)n",exam.pd[i].answer3);
		} else if (x==2) {
			exam.pd[i].answer3[0]='F';
			printf("已设置为:%s(错误)n",exam.pd[i].answer3);
		}
		//}
		printf("n");
		if(i!=exam.sum3)
			for(int j=0; j<20; j++)
				printf("~");
		printf("n");
	}
	printf("全部设置完成");
}



//学生管理
struct Xuesheng *xuesheng() {
	system("cls");
	printf("n");
	for(int i=0; i<=45; i++)
		printf("*");
	printf("已进入录入学生信息管理页面");
	for(int i=0; i<=42; i++)
		printf("*");
	printf("n");
	//页面的设计

	struct Xuesheng *head,*tran;
	head=tran=NULL;
	printf("请确认要录入的学生个数:");
	scanf("%d",&exam.sum4);
	printf("n");
	getchar();
	for(int i=1; i<=exam.sum4; i++) { //学号,姓名,性别,年龄,成绩 ,班级,民族,入学年份
		struct Xuesheng *p=(struct Xuesheng *)malloc(sizeof(struct Xuesheng ));
		p->next=NULL;
		printf("录入第%d个学生的信息n",i);
		printf("请输入第%d个学生的姓名:",i);//1
		scanf("%s",xs.name);
		printf("录入成功:%sn",xs.name);
		printf("n");
		printf("请输入该学生的性别:");//2
		scanf("%s",xs.Sex);
		printf("录入成功:%sn",xs.Sex);
		printf("n");
		printf("请输入该学生的年龄:");//3
		scanf("%d",&xs.age) ;
		printf("录入成功:%dn",xs.age);
		printf("n");
		getchar();
		printf("请输入该学生的学号:");//4
		scanf("%s",xs.school_number);
		printf("录入成功:%sn",xs.school_number);
		printf("n");
		printf("请输入该学生的民族:");//5
		scanf("%s",xs.chinese_nation);
		printf("录入成功:%sn",xs.chinese_nation);
		printf("n");
		printf("请输入该学生的班级:");//6
		scanf("%s",xs.pass_class) ;
		printf("录入成功:%sn",xs.pass_class);
		printf("n");
		printf("请输入该学生的入学年份:");//7
		scanf("%s",xs.pass_schoolage);
		printf("录入成功:%sn",xs.pass_schoolage);
		printf("n");
		p->age=xs.age;
		p->sum=0;
		getchar();
		strcpy(p->chinese_nation,xs.chinese_nation);
	    strcpy(p->name,xs.name);
		strcpy(p->pass_class,xs.pass_class);
		strcpy(p->pass_schoolage,xs.pass_schoolage);
		strcpy(p->Sex,xs.Sex);
		strcpy(p->school_number,xs.school_number);
		if(head==NULL) {
			head=p;
			tran=p;
		} else {
			tran->next=p;
			tran=p;
		}
		printf("n");
		if(i!=exam.sum4)
			for(int j=0; j<20; j++)
				printf("~");
		printf("n");
	}
	printf("已全部将学生信息录入成功,正在退出n");
	return head;
}

//查看和改变信息
struct Xuesheng *lookandremove(struct Xuesheng *head) {
	system("cls");
	printf("n");
	for(int i=0; i<=45; i++)
		printf("*");
	printf("已进入查看信息页面");
	for(int i=0; i<=50; i++)
		printf("*");
	printf("n");
	//页面的设计
	struct Xuesheng *head2=head;
	struct Xuesheng *tran=head;
	struct Xuesheng *tran1=head;
	struct Xuesheng *p=head;
	int x;
	int head_flag=0;
	while(1) {
		printf("-----------------------------------n");
		printf("|       (1)查看试卷的信息         |n");
		printf("|       (2)查看学生信息           |n");
		printf("|       (3)修改试卷信息           |n");
		printf("|       (4)修改学生信息           |n");
		printf("|       (5)退出查看信息页面       |n");
		printf("-----------------------------------n");
		printf("      请选择你的操作:");
		scanf("%d",&x);
		if(x==5) {
			if(head_flag==0) {
				return p;
			} else {
				head_flag=0;
				return head;
			}
		}
		if(x!=1&&x!=2&&x!=3&&x!=4) {
			while(x!=1||x!=2||x!=3||x!=4) {
				printf("没有该操作n");
				printf("请重新选择你的操作:");
				scanf("%d",&x);
				if(x==1||x==2||x==3||x==4)
					break;
			}
		}

		//查看试卷信息
		if(x==1) {//查看试卷信息
			system("cls");
			printf("n");
			for(int j=0; j<40; j++)
				printf("~~~");
			printf("n");
			printf("正在查看试卷内容,以下为试卷内容n");
			printf("n");
			printf("n");

			//试卷页面设计
			for(int i=0; i<=50; i++)
				printf(" ");
			printf("%s",exam.name);
			for(int i=0; i<=50; i++)
				printf(" ");
			printf("n");
			for(int i=0; i<=40; i++)
				printf(" ");
			printf("考试时间:%02d:%02d~~%02d:%02d",exam.beginTime1,exam.beginTime2,exam.endTime1,exam.endTime2);
			for(int i=0; i<=50; i++)
				printf(" ");
			printf("n");
			printf("n");


			//下面为各类题目
			printf("一、单选题n");//---->再将格式优化一下
			printf("n");
			int biaozhixuhao=0;
			for(int i=1; i<=exam.sum1; i++) {
				if(exam.cq[i].shangchu_flag1!=0) {
					biaozhixuhao++;
					printf("         %d.%s(%d分)n",biaozhixuhao,exam.cq[i].stem,exam.dx[i].score2);
					printf("         A.%s    B.%s    C.%s    D.%sn",exam.cq[i].optionA,exam.cq[i].optionB,exam.cq[i].optionC,exam.cq[i].optionD);
					printf("        正确答案:%sn",exam.cq[i].answer);
					printf("n");
				}
			}
			biaozhixuhao=0;
			printf("二、多选题n");
			printf("n");
			int x2=0;
			for(int i=1; i<=exam.sum2; i++) {
				if(exam.dx[i].shangchu2_flag2!=0) {
					x2++;
					printf("        %d.%s(%d分)n",x2,exam.dx[i].stem2,exam.dx[i].score2);
					printf("        A.%s    B.%s    C.%s    D.%sn",exam.dx[i].optionA2,exam.dx[i].optionB2,exam.dx[i].optionC2,exam.dx[i].optionD2);
					printf("       正确答案:%sn",exam.dx[i].answer2);
					printf("n");
				}
			}
			x2=0;
			if(exam.sum3==0) {
				printf("结束n");
			} else {
				printf("三、判断题n");
				printf("n");
				for(int i=1; i<=exam.sum3; i++) {
					if(exam.pd[i].pd_flag==1) {
						printf("         %d.%s(%d分)n",i,exam.pd[i].stem3,exam.pd[i].score3);
						printf("         T              Fn");
						printf("        正确答案:%sn",exam.pd[i].answer3);
						printf("n");
					}
				}
			}
			printf("n");
			for(int i=0; i<=50; i++)
				printf("*");
			printf("已进入查看信息页面");
			for(int i=0; i<=50; i++)
				printf("*");
			printf("n");

		}

		//看学生信息
		else if(x==2) {//查看学生信息 ---->要接收含学生信息的头指针
			//页面设计
			system("cls");
			printf("n");
			for(int j=0; j<40; j++)
				printf("~~~");
			printf("n");
			printf("正在查看学生信息,以下为学生信息n");
			printf("n");
			printf("n");

			for(int i=1; i<=exam.sum4; i++) {
				if(head==NULL)
					break;
				printf("n");
				printf("        第%d个学生的信息如下:n",i);
				for(int j=0; j<=40; j++)
					printf("*");
				printf("n");
				printf("          姓名:%s             n",head->name);//10+13+4=27--->13
				printf("          年龄:%d             n",head->age);
				printf("          性别:%s             n",head->Sex);
				printf("          班级:%s             n",head->pass_class);
				printf("          学号:%s             n",head->school_number);
				printf("          民族:%s             n",head->chinese_nation);
				printf("          入学年份:%s         n",head->pass_schoolage);
				printf("          总分:%s                n",head->sum);
				for(int j=0; j<=40; j++)
					printf("*");
				printf("n");
				head=head->next;
			}
			if(head_flag==0) {
				head=p;
			} else {
				head=head2;
			}
			printf("n");
			for(int i=0; i<=50; i++)
				printf("*");
			printf("已进入查看信息页面");
			for(int i=0; i<=50; i++)
				printf("*");
			printf("n");
		}

		//修改试卷信息
		else if(x==3) {
			system("cls");
			printf("n");
			for(int j=0; j<40; j++)
				printf("~~~");
			printf("n");
			printf("正在修改试卷信息,以下为试卷信息n");
			printf("n");
			printf("n");
			//页面设计
			int k;
			while(1) {
				printf("n");
				printf("(1)修改考试名称n");
				printf("(2)修改考试时间n");
				printf("(3)修改单选题n");
				printf("(4)修改多选题n");
				printf("(5)修改判断题n");
				printf("(6)退出修改试卷n");
				printf("请选择你的操作:");
				scanf("%d",&k);
				if(k==6)
					break;
				if(k!=1&&k!=2&&k!=3&&k!=4&&k!=5) {
					while(k!=1&&k!=2&&k!=3&&k!=4&&k!=5) {
						printf("没有该操作,请重新操作:");
						scanf("%d",&k);
						if(k==1||k==2||k==3||k==4||k==5)
							break;
					}
				}
				if(k==1) {
					system("cls");
					printf("n");
					printf("目前考试名称为:%sn",exam.name);
					printf("将考试名称改为:");
					scanf("%s",exam.name);
					printf("已将考试名称改为:%s",exam.name);
				}
				if(k==2) {
					system("cls");
					printf("n");
					printf("目前考试时间为:%d:%d~~%d:%dn",exam.beginTime1,exam.beginTime2,exam.endTime1,exam.endTime2);
					printf("将考试开始时间改为:") ;
					scanf("%d:%d",&exam.beginTime1,&exam.beginTime2);
					printf("将考试结束时间修改为:");
					scanf("%d:%d",&exam.endTime1,exam.endTime2);
					printf("已将考试时间修改为:%02d:%02d~~%02d:%02d",exam.beginTime1,exam.beginTime2,exam.endTime1,exam.endTime2);
					printf("n");
				    exam.second=textsecond( exam.beginTime1,exam.beginTime2,exam.endTime1,exam.endTime2);
				}
				if(k==3) {
					system("cls");
					printf("n");
					printf("目前的单选题如下:n");
					for(int i=1; i<=exam.sum1; i++) {
						printf("         %d.%s(%d)n",i,exam.cq[i].stem,exam.dx[i].score2);
						printf("         A.%s    B.%s    C.%s    D.%sn",exam.cq[i].optionA,exam.cq[i].optionB,exam.cq[i].optionC,exam.cq[i].optionD);
						printf("        正确答案:%sn",exam.cq[i].answer);
						printf("n");
					}
					int a,q;
					while(1) {
						printf("n");
						printf("(1)修改内容n");
						printf("(2)删除内容n");
						printf("(3)退出修改<<单选题>>n");
						printf("请选择你的操作:");
						scanf("%d",&a);
						if(a==3)
							break;
						if(a!=1&&a!=2) {
							while(a!=1&&a!=2) {
								printf("没有该操作,请重新操作:");
								scanf("%d",&a);
								if(a==1||a==2)
									break;
							}
						}
						int xuhao_flag1=0;
						if(a==1) {
							//int xuhao_flag1=0;
							printf("请输入要修改的题目的序号:");
							scanf("%d",&q);
							for(int i=1; i<=exam.sum1; i++) {
								if(i==q) {
									xuhao_flag1=1;
									printf("已找到第%d题",i);
									printf("当前题目为:%sn",exam.cq[q].stem);
									printf("请输入要改变的题目:") ;
									scanf("%s",&exam.cq[q].stem);
									printf("修改成功:%sn",exam.cq[q].stem);
									printf("当前的选项A为:%sn",exam.cq[q].optionA);
									scanf("修改为:%s",exam.cq[q].optionA);
									printf("修改成功:%sn",exam.cq[q].optionA);

									printf("当前的选项B为:%sn",exam.cq[q].optionB);
									scanf("修改为:%s",exam.cq[q].optionB);
									printf("修改成功:%sn",exam.cq[q].optionB);

									printf("当前的选项C为:%sn",exam.cq[q].optionC);
									scanf("修改为:%s",exam.cq[q].optionC);
									printf("修改成功:%sn",exam.cq[q].optionC);

									printf("当前的选项D为:%sn",exam.cq[q].optionD);
									scanf("修改为:%s",exam.cq[q].optionD);
									printf("修改成功:%sn",exam.cq[q].optionD);
									break;
								}
							}
							if(xuhao_flag1==0) {
								printf("没有该序号");
							}
							xuhao_flag1=0;
						} else if(a==2) {
							printf("进入删除单选题n");
							printf("请输入要删除题目的序号:");
							scanf("%d",&q);
							for(int i=1; i<=exam.sum1; i++) {
								if(i==q) {
									xuhao_flag1=1;
									printf("已找到第%d题",i);
									printf("当前题目为:%sn",exam.cq[q].stem);
									exam.cq[i].shangchu_flag1=0;
									printf("已将第%d题删除n",q);
									xuhao_flag1=1;
									break;
								}
							}
							if(xuhao_flag1==0) {
								printf("没有该序号");
							}
							xuhao_flag1=0;

						}
					}
				}
				//修改多选题
				if(k==4) {
					system("cls");
					int dxt;
					while(1) {
						printf("n");
						printf("(1)修改内容n");
						printf("(2)删除内容n");
						printf("(3)退出修改<<多选题>>n");
						printf("请选择你的操作:");
						scanf("%d",&dxt);
						if(dxt==3)
							break;
						if(dxt!=1&&dxt!=2) {//为什么不能是||这个符号
							while(dxt!=1&&dxt!=2) {
								printf("没有该操作,请重新操作:");
								scanf("%d",&dxt);
								if(dxt==1||dxt==2)
									break;
							}
						}
						int x1;
						int xuhao_flag2=0;
						if(dxt==1) {
							xuhao_flag2=0;
							printf("请输入要修改的题目的序号:");
							scanf("%d",&x1);
							for(int i=1; i<=exam.sum2; i++) {
								if(i==x1) {
									xuhao_flag2=1;
									printf("已找到第%d题",i);
									printf("当前题目为:%sn",exam.dx[i].stem2);
									printf("请输入要改变的题目:") ;
									scanf("%s",&exam.dx[i].stem2);
									printf("修改成功:%sn",exam.dx[i].stem2);
									printf("当前的选项A为:%sn",exam.dx[i].optionA2);
									scanf("修改为:%s",exam.dx[i].optionA2);
									printf("修改成功:%sn",exam.dx[i].optionA2);

									printf("当前的选项B为:%sn",exam.dx[i].optionB2);
									scanf("修改为:%s",exam.dx[i].optionB2);
									printf("修改成功:%sn",exam.dx[i].optionB2);

									printf("当前的选项C为:%sn",exam.dx[i].optionC2);
									scanf("修改为:%s",exam.dx[i].optionC2);
									printf("修改成功:%sn",exam.dx[i].optionC2);

									printf("当前的选项D为:%sn",exam.dx[i].optionD2);
									scanf("修改为:%s",exam.dx[i].optionD2);
									printf("修改成功:%sn",exam.dx[i].optionD2);
									break;
								}
							}
							if(xuhao_flag2==0) {
								printf("没有该序号");
							}
							xuhao_flag2=0;
						} else if(x1==2) {
							xuhao_flag2=0;
							printf("进入删除多选题n");
							printf("请输入要删除题目的序号:");
							scanf("%d",&dxt);
							for(int i=1; i<=exam.sum2; i++) {
								if(i==dxt) {
									xuhao_flag2=1;
									printf("已找到第%d题",i);
									printf("当前题目为:%sn",exam.dx[i].stem2);
									exam.dx[i].shangchu2_flag2=0;
									printf("已将第%d题删除n",dxt);
									xuhao_flag2=1;
									break;
								}
							}
							if(xuhao_flag2==0) {
								printf("没有该序号");
							}
							xuhao_flag2=0;
						}
					}
				}
				//修改判断题
				if(k==5) {
					system("cls");
					int a1;
					while(1) {
						printf("n");
						printf("(1)修改内容n");
						printf("(2)删除内容n");
						printf("(3)退出修改<<多选题>>n");
						printf("请选择你的操作:");
						scanf("%d",&a1);
						if(a1==3)
							break;
						if(a1!=1&&a1!=2) {
							while(a1!=1&&a1!=2) {
								printf("没有该操作,请重新操作:");
								scanf("%d",&a1);
								if(a1==1||a1==2)
									break;
							}
						}
						//(1)修改内容
						int a2,panduan_flag=0;
						if(a1==1) {
							printf("n");
							printf("请输入要修改的题目序号:");
							scanf("%d",&a2);
							for(int i=1; i<=exam.sum3; i++) {
								if(a2==i) {
									printf("已找到序号为%d的题目n",a2);
									printf("目前题目为:%sn",exam.pd[i].stem3);
									printf("修改为:");
									scanf("%s",exam.pd[i].stem3);
									printf("修改成功:%s",exam.pd[i].stem3);
									printf("目前的分值为:%d",exam.pd[i].score3);
									printf("将分值修改为:");
									scanf("%d",&exam.pd[i].score3);
									printf("修改成功:%d",exam.pd[i].score3);
									printf("目前的答案为:%C",exam.pd[i].answer3);
									printf("将答案修改为:");
									scanf("%c",&exam.pd[i].answer3);
									printf("修改成功:%c",exam.pd[i].answer3);
									panduan_flag=1;
									break;
								}
							}
							if(panduan_flag==0) {
								printf("没有找到该序号的题目n");
							}
							panduan_flag=0;
						}
						//(2)删除内容
						if(a1==2) {
							panduan_flag=0;
							printf("请输入要修改的题目序号:");
							scanf("%d",&a2);
							for(int i=1; i<=exam.sum3; i++) {
								if(a2==i) {
									printf("已将序号为%d的题目删除n",a2);
									exam.pd[i].pd_flag=0;
									panduan_flag=1;
									break;
								}
							}
							if(panduan_flag==0) {
								printf("没有找到该序号的题目n");
							}
							panduan_flag=0;
						}
					}
				}
				//if结束
			}
		}
		//修改学生资料,
		else if(x==4) {
			system("cls");
			printf("n");
			for(int j=0; j<40; j++)
				printf("~~~");
			printf("n");
			printf("正在修改学生资料,以下为学生资料n");
			printf("n");
			printf("n");
			//页面设计

			int m,xuesheng_flag=0;
			int xs_sum;
			char xuehao[13];
			while(1) {
				printf("(1)删除学生n");
				//printf("(2)增加学生n");
				//	printf("(3)修改学生信息n");
				printf("(2)退出<<修改学生资料>>");
				printf("请选择你的操作:");
				scanf("%d",&m);
				if(m==2)
					break;
				if(m!=1) {//为什么不能是||这个符号
					while(m!=1) {
						printf("没有该操作,请重新操作:");
						scanf("%d",&m);
						if(m==1)
							break;
					}
				}
				if(m==1) {
					printf("n");
					printf("请输入要删除的学生的学号:");
					scanf("%s",xuehao) ;
					while(tran) {
						if(strcmp(xuehao,tran->school_number)==0) {
							printf("已找到学号为%s的学生n",tran->school_number);
							if(head2==tran) {
								head2=head->next;
							}
							if(tran!=NULL&&tran->next==NULL) {
								tran1->next=NULL;
							} else {
								tran1->next=tran->next;
							}
							printf("已将学号为%s的学生删除n",tran->school_number);
							xuesheng_flag=1;
							exam.sum4=exam.sum4-1;
							head_flag=1;
							break;
						}
						tran1=tran;
						tran=tran->next;
					}
					if(xuesheng_flag=0) {
						printf("没有找到学号为%s的学生n",xuehao);
					}
					xuesheng_flag=0;
					head=head2;
					//	return head;
				}
			}

		}
	}
}






//考试系统
void kaoshiguanli(struct Xuesheng *head) {
	system("cls");
	struct Xuesheng *head1=head;
//	struct Xuesheng *;
	printf("n");
	for(int i=0; i<=54; i++)
		printf("*");
	printf("进入考试");
	for(int i=0; i<=56; i++)
		printf("*");
	printf("n");
	//页面的设计
	char ks_name[10];//输入的名字
	char ks_xuehao[15];//输入的学号
	int ks_flag=0;//有没有找到的标志
	char ks_answer[2];//单选题
	char ks_answer1[5];//多选题
	if(exam.sum4==0||head1==NULL) {
		printf("没有考生信息,该考试不存在n");
	}
	//多位考生答卷
	for(int i=0; i<=exam.sum4; i++) {
		if(head1==NULL)
			break;
		//开头
		for(int i=0; i<=50; i++)
			printf(" ");
		printf("科目:%s",exam.name);
		for(int i=0; i<=50; i++)
			printf(" ");
		printf("n");
		for(int i=0; i<=40; i++)
			printf(" ");
		printf("考试时间:%02d:%02d~~%02d:%02d",exam.beginTime1,exam.beginTime2,exam.endTime1,exam.endTime2);
		for(int i=0; i<=50; i++)
			printf(" ");
		printf("n");
		printf("n");

		//进行判断是否有该学号学生
		printf("如要退出则输入退出n");
		printf("请先进行登入n");
		printf("请输入你的名字:");
		scanf("%s",ks_name);
		printf("请输入你的学号:");
		scanf("%s",ks_xuehao);
		for(int j=1; j<=exam.sum4; j++) {
			if(strcmp(ks_xuehao,head->school_number)==0&&strcmp(ks_name,head->name)==0) {
				printf("登入成功n");
				printf("n");
				ks_flag=1;
				break;
			}
			head=head->next;
		}
		if(ks_flag==0) {
			printf("没有该考生信息n");
			break;
			ks_flag=0;
			i=i-1;
			break;
		}
		ks_flag=0;
		head1->sum=0;
		int k_loop=0;
		int x2=0;
		double k_y;
		
		
		//试卷内容-->做题
		printf("一、单选题n");//---->再将格式优化一下
		printf("n");
		start=0;
		start=clock();
		x2=0;
		for(int k=1; k<=exam.sum1; k++) {
			if(exam.cq[k].shangchu_flag1!=0) {
				x2++;
				printf("         %d.%s(%d分)n",x2,exam.cq[k].stem,exam.cq[k].score);
				printf("         A.%s    B.%s    C.%s    D.%sn",exam.cq[k].optionA,exam.cq[k].optionB,exam.cq[k].optionC,exam.cq[k].optionD);
				printf("请输入你的答案:");
				scanf("%s",ks_answer);
				end =clock();
				printf("耗时:%lf secondsn",(double)(end-start)/CLOCKS_PER_SEC);
				if(strcmp(ks_answer,exam.cq[k].answer)==0) {
					head1->sum+=exam.cq[k].score;
				}
				if((double)(end-start)/CLOCKS_PER_SEC>=exam.second) {
					k_loop=1;
					printf("考试时间到,考试结束n");
					break;
				}
				printf("n");
			}
			end =clock();
			if((double)(end-start)/CLOCKS_PER_SEC>=exam.second) {
				k_loop=1;
				printf("考试时间到,考试结束");
				break;
			}
		}


		if(k_loop==1) {
			printf("考试答案如下:n");
			//显示成绩和各题答案:
			printf("一、单选题n");//---->再将格式优化一下
			printf("n");
			x2=0;
			//start=clock();
			for(int k=1; k<=exam.sum1; k++) {
				if(exam.cq[k].shangchu_flag1!=0) {
					x2++;
					printf("         %d.%s(%d分)n",x2,exam.cq[k].stem,exam.cq[k].score);
					printf("         A.%s    B.%s    C.%s    D.%sn",exam.cq[k].optionA,exam.cq[k].optionB,exam.cq[k].optionC,exam.cq[k].optionD);
					printf("        正确答案:%sn",exam.cq[k].answer);
					printf("n");
				}
			}
			x2=0;
			printf("二、多选题n");
			printf("n");
			x2=0;
			for(int k=1; k<=exam.sum2; k++) {
				if(exam.dx[k].shangchu2_flag2!=0) {
					x2++;
					printf("        %d.%s(%d分)n",x2,exam.dx[k].stem2,exam.dx[k].score2);
					printf("        A.%s    B.%s    C.%s    D.%sn",exam.dx[k].optionA2,exam.dx[k].optionB2,exam.dx[k].optionC2,exam.dx[k].optionD2);
					printf("       正确答案:%sn",exam.dx[k].answer2);
					printf("n");
				}
			}
			x2=0;
			if(exam.sum3==0) {
				printf("结束n");
			} else {
				printf("三、判断题n");
				printf("n");
				for(int k=1; k<=exam.sum3; k++) {
					x2++;
					if(exam.pd[k].pd_flag==1) {
						printf("         %d.%s(%d分)n",x2,exam.pd[k].stem3,exam.pd[k].score3);
						printf("         T             Fn");
						printf("        正确答案:%sn",exam.pd[k].answer3);
						printf("n");
					}
				}
			}
			printf("考试结束,总分为%d",exam.zhon_sum);
			printf("你的成绩为:%d",head1->sum);
			printf("n");
			head1=head1->next;
			x2=0;
			k_loop=0;
			continue;
		}


		x2=0;
		printf("二、多选题n");
		printf("n");
		x2=0;
		for(int k=1; k<=exam.sum2; k++) {
			if(exam.dx[k].shangchu2_flag2!=0) {
				x2++;
				printf("        %d.%s(%d分)n",x2,exam.dx[k].stem2,exam.dx[k].score2);
				printf("        A.%s    B.%s    C.%s    D.%sn",exam.dx[k].optionA2,exam.dx[k].optionB2,exam.dx[k].optionC2,exam.dx[k].optionD2);
				printf("请输入你的答案:");
				scanf("%s",ks_answer1);
				end =clock();
				printf("耗时:%lf secondsn",(double)(end-start)/CLOCKS_PER_SEC);
				sequence(ks_answer1);
				if(strcmp(ks_answer1,exam.dx[k].answer2)==0) {
					head1->sum+=exam.dx[k].score2;
				}
				if((double)(end-start)/CLOCKS_PER_SEC>=exam.second) {
					k_loop=1;
					printf("考试时间到,考试结束n");
					break;
				}
				printf("n");
			}
			end =clock();
			if((double)(end-start)/CLOCKS_PER_SEC>=exam.second) {
				k_loop=1;
				printf("考试时间到,考试结束n");
				break;
			}
		}
		x2=0;


		if(k_loop==1) {
			printf("考试答案如下:n");
			//显示成绩和各题答案:
			printf("一、单选题n");//---->再将格式优化一下
			printf("n");
			x2=0;
			//start=clock();
			for(int k=1; k<=exam.sum1; k++) {
				if(exam.cq[k].shangchu_flag1!=0) {
					x2++;
					printf("         %d.%s(%d分)n",x2,exam.cq[k].stem,exam.cq[k].score);
					printf("         A.%s    B.%s    C.%s    D.%sn",exam.cq[k].optionA,exam.cq[k].optionB,exam.cq[k].optionC,exam.cq[k].optionD);
					printf("        正确答案:%sn",exam.cq[k].answer);
					printf("n");
				}
			}
			x2=0;
			printf("二、多选题n");
			printf("n");
			x2=0;
			for(int k=1; k<=exam.sum2; k++) {
				if(exam.dx[k].shangchu2_flag2!=0) {
					x2++;
					printf("        %d.%s(%d分)n",x2,exam.dx[k].stem2,exam.dx[k].score2);
					printf("        A.%s    B.%s    C.%s    D.%sn",exam.dx[k].optionA2,exam.dx[k].optionB2,exam.dx[k].optionC2,exam.dx[k].optionD2);
					printf("       正确答案:%sn",exam.dx[k].answer2);
					printf("n");
				}
			}
			x2=0;
			if(exam.sum3==0) {
				printf("结束n");
			} else {
				printf("三、判断题n");
				printf("n");
				for(int k=1; k<=exam.sum3; k++) {
					if(exam.pd[k].pd_flag==1) {
						x2++;
						printf("         %d.%s(%d分)n",x2,exam.pd[k].stem3,exam.pd[k].score3);
						printf("         T             Fn");
						printf("        正确答案:%sn",exam.pd[k].answer3);
						printf("n");
					}
				}
			}
			printf("考试结束,总分为%d",exam.zhon_sum);
			printf("你的成绩为:%d",head1->sum);
			printf("n");
			head1=head1->next;
			k_loop=0;
			continue;
		}

		if(exam.sum3==0) {
			printf("结束n");
		} else {
			printf("三、判断题n");
			printf("n");
			for(int k=1; k<=exam.sum3; k++) {
				if(exam.pd[k].pd_flag==1) {
					x2++;
					printf("         %d.%s(%d分)n",i,exam.pd[k].stem3,exam.pd[k].score3);
					printf("         T             Fn");
					printf("请输入你的答案:");
					scanf("%s",ks_answer);
					end =clock();
					printf("耗时:%f secondsn",(double)(end-start)/CLOCKS_PER_SEC);
					if(strcmp(ks_answer,exam.pd[k].answer3)==0) {
						head1->sum+=exam.pd[k].score3;
					}
					printf("n");
					if((double)(end-start)/CLOCKS_PER_SEC>=exam.second) {
						printf("考试时间到,考试结束n");
						break;
					}
				}
				end =clock();
				if((double)(end-start)/CLOCKS_PER_SEC>=exam.second) {
					printf("考试时间到,考试结束n");
					break;
				}
			}
		}

		printf("n");
		printf("考试答案如下:n");

		//显示成绩和各题答案:
		printf("一、单选题n");//---->再将格式优化一下
		printf("n");
		x2=0;
		//start=clock();
		for(int k=1; k<=exam.sum1; k++) {
			if(exam.cq[k].shangchu_flag1!=0) {
				x2++;
				printf("         %d.%s(%d分)n",x2,exam.cq[k].stem,exam.cq[k].score);
				printf("         A.%s    B.%s    C.%s    D.%sn",exam.cq[k].optionA,exam.cq[k].optionB,exam.cq[k].optionC,exam.cq[k].optionD);
				printf("        正确答案:%sn",exam.cq[k].answer);
				printf("n");
			}
		}
		x2=0;
		printf("二、多选题n");
		printf("n");
		x2=0;
		for(int k=1; k<=exam.sum2; k++) {
			if(exam.dx[k].shangchu2_flag2!=0) {
				x2++;
				printf("        %d.%s(%d分)n",x2,exam.dx[k].stem2,exam.dx[k].score2);
				printf("        A.%s    B.%s    C.%s    D.%sn",exam.dx[k].optionA2,exam.dx[k].optionB2,exam.dx[k].optionC2,exam.dx[k].optionD2);
				printf("       正确答案:%sn",exam.dx[k].answer2);
				printf("n");
			}
		}
		x2=0;
		if(exam.sum3==0) {
			printf("结束n");
		} else {
			printf("三、判断题n");
			printf("n");
			for(int k=1; k<=exam.sum3; k++) {
				if(exam.pd[k].pd_flag==1) {
					x2++;
					printf("         %d.%s(%d分)n",x2,exam.pd[k].stem3,exam.pd[k].score3);
					printf("         T             Fn");
					printf("        正确答案:%sn",exam.pd[k].answer3);
					printf("n");
				}
			}
		}
		printf("考试结束,总分为%d",exam.zhon_sum);
		printf("你的成绩为:%d",head1->sum);
		printf("n");
		head1=head1->next;
	}
}

//成绩管理
void chengjiguanli(struct Xuesheng *head) {
	system("cls");
	struct Xuesheng *tran1=head;
	struct Xuesheng *tran2=head;
	struct Xuesheng *min=head;
	struct Xuesheng *max=head;
	double ave_sum=0;
	char ks_name[10];//输入的名字
	char ks_xuehao[15];//输入的学号
	printf("n");
	for(int i=0; i<=50; i++)
		printf("*");
	printf("进入成绩分析以统计页面");
	for(int i=0; i<=46; i++)
		printf("*");
	printf("n");
	//页面的设计
	int x;
	long long zhang,mi;
	while(1) {
		printf("n");
		printf("--------------------------------n");
		printf("|      (1)进入老师查看        |n");
		printf("|      (2)进入学生成绩查看    |n");
		printf("|      (3)退出成绩分析以统计  |n");
		printf("--------------------------------n");
		printf("请选择你的操作:");
		scanf("%d",&x);
		if(x==3)
			break;
		else if(x<=0||x>3) {
			printf("n");
			printf("没有该操作,请重新选择n");
			continue;
		}
		if(x==1) {
			system("cls");
			printf("n");
			for(int i=0; i<=50; i++)
				printf("*");
			printf("欢迎进入老师查看页面");
			for(int i=0; i<=48; i++)
				printf("*");
			printf("n");
			//页面的设计
			printf("请输入老师帐号:");
			scanf("%lld",&zhang);
			printf("请输入老师的密码:");
			scanf("%lld",&mi);
			if(zhang==zhanghao&&mi==mima) {
				printf("n");
				for(int i=0; i<=50; i++)
					printf("*");
				printf("成功进入老师查看页面");
				for(int i=0; i<=48; i++)
					printf("*");
				printf("n");
				if(head==NULL) {
					printf("没有考试成绩n");
					continue;
				}
				printf("以下为考试名称为%s的成绩分析n",exam.name);
				printf("n");
				//进行排序和平均分
				while(tran1) {
					ave_sum+=tran1->sum;
					if(max->sum<=tran1->sum) {
						max=tran1;
					}
					if(min->sum>=tran1->sum) {
						min=tran1;
					}
					tran1=tran1->next;
				}
				ave_sum=ave_sum/exam.sum4;
				//将成绩单输出
				printf("------------------------------------------------------------------------------------n");
				printf("|  姓名  |         学号        |              科目      |            成绩        |n ") ;
				printf("-------------------------------------------------------------------------------------n");
				while(tran2) {
					printf("   %s   ",tran2->name);
					printf("   %s   ",tran2->school_number);
					printf("        %s    ",exam.name);
					printf("               %d   ",tran2->sum);
					printf("n");
					tran2=tran2->next;
				}
				printf("n");
				printf("     最高分为:%d分",max->sum);
				printf("     最第分为:%d分n",min->sum);
			} else {
				printf("账号或密码错误n");
				continue;
			}
		} else if(x==2) {
			system("cls");
			printf("n");
			for(int i=0; i<=50; i++)
				printf("*");
			printf("欢迎进入学生查看页面");
			for(int i=0; i<=48; i++)
				printf("*");
			printf("n");
			//页面的设计
			//进行判断是否有该学号学生
			printf("请先进行登入n");
			printf("请输入你的名字:");
			scanf("%s",ks_name);
			printf("请输入你的学号:");
			scanf("%s",ks_xuehao);
			int ks_flag=0;
			for(int j=1; j<=exam.sum4; j++) {
				if(strcmp(ks_xuehao,head->school_number)==0&&strcmp(ks_name,head->name)==0) {
					printf("登入成功n");
					printf("n");
					ks_flag=1;
					break;
				}
				head=head->next;
			}
			if(ks_flag==0) {
				printf("没有该考生信息n");
				ks_flag=0;
				continue;
			}
			ks_flag=0;
			printf("学生名字:%sn",head->name);
			printf("C语言成绩:%dn",head->sum);
			if(head->sum<=exam.zhon_sum/2) {
				printf("学习建议:基础较差,要巩固课本的基础>_o不能实现跨天考试,只能一天内
long long textsecond(int begin1,int begin2,int end1,int end2) {
	printf("n");
	long long t_miaoshu=0,t_sum=0;
	int i,t_flag=0;
	//用循环来统有多少分钟
	while(begin1<=end1) {
		for(int j=begin2; j<=60; j++) {
			t_sum++;
			if(j==60) {
				begin1+=1;
				j=0;
			}
			if(begin1==end1&&j==end2) {
				t_flag=1;
				break;
			}
		}
		if(t_flag==1) {
			break;
		}
	}
	t_sum=(t_sum-1)*60;
	return t_sum;
}


//调整多选题的选项的降序从A~D
void sequence(char a[]){
	int y=strlen(a);
	char s_store;
	if(y!=1)
	{
		for(int i=0;i<(y-1);i++){
			for(int j=i+1;j 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/857315.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号