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

📄 teachers.c

📁 学生选课系统
💻 C
字号:

/*////////////////////////////////////////////////////

Author:         
Tiem:           2007-10-09
Files Name:     Teachers.c
Functions:      主要是教师使用系统功能函数的实现部分

/////////////////////////////////////////////////////*/

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#include "Structs.h"
#include "Functions.h"

/*修改密码*/

void teacherAlterSecret()
{
	USER use1,use2;
	FILE *fp;
    int i;
	char name[15],password1[15];

	if ((fp=fopen("teacherUsers.dat","ab+"))==NULL)
	{
		printf("\n\t\t不能打开文件!\n");
		return;
	}
	fseek(fp,0,2);

	if (ftell(fp)>0)
	{
		rewind(fp);
		printf("\n\t\t请输入教师用户名: ");
		scanf("%s",name);
		rewind(fp);
		while (1)
		{
			fread(&use1,sizeof(USER),1,fp);
			if (feof(fp) || strcmp(use1.userName,name)==0)
				break;
			if (feof(fp) || strcmp(use1.Password,password1)==0) 
				break;
			i++;
		}
		if (!feof(fp))
		{
			printf("\n\t\t**************用户信息******************\n");
			printf("\t\t请输入用户名:\t");
			printf("\t%s",use1.userName);
			printf("\n\n\t\t请输入旧密码:\t");
			printf("\t%s",use1.Password);
			printf("\n\n\t\t请输入新密码: ");                     //获得学生的新密码
			scanf("%s",use2.Password);
		}
		else
		{
			printf("\n\t\t查无此人!\n");
			system("pause");
			//stuAlterSecret();
		}
		strcpy(use2.userName,use1.userName);
		
		fseek(fp,-(long)sizeof(USER),SEEK_CUR);                  //指向修改记录开头
		fwrite(&use2,sizeof(USER),1,fp);   //用新记录覆盖当前记录
		printf("\n\t\t修改密码成功!");
		system("pause");
		fclose(fp);
	}
	else
	{
		printf("\n\t\t无用户记录!\n");
		system("pause");
		fclose(fp);
	}


}


/*添加学生成绩*/

void  teacherAddScore()
{
	FILE *fp,*fp1;
	DEGREE degree[100];
	STUDENT stu[100]; 
	int i=0;
	char option,num[9];

	if((fp=fopen("Students.dat","rb+"))==NULL)
	{
		printf("不能打开Students.dat文件!");
		return;
	}
	if((fp1=fopen("Degrees.dat","ab+"))==NULL)
	{
		printf("\n\t不能打开Degrees.dat文件!\n");
		return;
	}

	printf("\n\t\t请输入学生的学号:");
	scanf("%s",&num);

	rewind(fp);
	while((!feof(fp))&&(strcmp(stu[i].stuNum,num)!=0))
	{
		fread(&stu,sizeof(STUDENT),1,fp);
		if(strcmp(stu[i].stuNum,num)==0)
		{	
			rewind(fp1);
			printf("\n\t\t请输入该学生的课程编号:");
			scanf("%s",degree[i].courseNum);
	
			printf("\n\t\t请输入该学生的考试成绩:");
			scanf("%d",&degree[i].examDegr);
			
			printf("\n\t\t请输入该学生的平时成绩:");
			scanf("%d",&degree[i].commonDegr);

			strcpy(degree[i].stuNum,stu[i].stuNum);
			
			fwrite(&degree[i],sizeof(DEGREE),1,fp1);
			printf("\n\t\t你已经成功录取了该学生的成绩!");
			fclose(fp);
			printf("\n\n\t\t是否继续继续录入学生成绩,继续请按Y或y,否按N或n:");
			scanf("%s",&option);
			switch(option)
			{
				case 'Y':
				case 'y':
					teacherAddScore();
					break;
				case 'N':
				case 'n':
					break;
				default:
					printf("\n\t\t无效的输入,请重新输入!");
			}
		}
		else
		{
			printf("\n\t\t此学生不存在,不能添加学生成绩!");
			system("pause");
			return;
		}
	}	
}


/*修改学生成绩*/

void teacherAlterScore()
{
    int count;
	char *num="000";
	FILE *fp;
	DEGREE degree,new_degree,*p,*new_p;
	p=&degree;
	new_p=&new_degree;

	if((fp=fopen("Degrees.dat","rb+"))==NULL)
	{
		printf("\n\t\t不能打开Degrees.dat文件!\n");
		exit(0);
	}
	fseek(fp,0,2);

	if(ftell(fp)>0)
	{
		rewind(fp);
		printf("\nt\t请输入要修改学生的学号:");
		scanf("%s",num);
		rewind(fp);
		while(1)
		{
			fread(p,sizeof(DEGREE),1,fp);
			if(feof(fp)||strcmp(p->stuNum,num)==0)
				break;
			count++;
		}
		if(!feof(fp))
		{
			printf("\t\t$$$$$$$$$$$$$$$学生成绩管理$$$$$$$$$$$$$$$\n");
			printf("\t\t\t课程编号\t平时成绩\t考试成绩\n");
			printf("\t\t\t%s\t%d\t%d\n",p->courseNum,p->commonDegr,p->examDegr);
			printf("\t\t------------------------------------------\n");
			printf("\t\t********请输入要修改的学生信息!********\n");
			strcpy(new_p->stuNum,num);
			strcpy(new_p->courseNum,p->courseNum);
			printf("\t\t修改过的学生平时成绩:");
			scanf("%d",&new_p->commonDegr);
			printf("\n\t\t修改过的学生考试成绩:");
			scanf("%d",&new_p->examDegr);
		}
		else
		{
			printf("\t\t********没有这位同学,请检查输入!********\n");
		}      
		fseek(fp,-(long)sizeof(DEGREE),1);        /*指向修改记录开头*/
		fwrite(new_p,sizeof(DEGREE),1,fp);       /*新纪录覆盖原有记录*/
	}
	else
	{
		printf("\n\t\t********没有学生记录!********\n");	
	}
	fclose(fp);
}


/*查询学生信息*/

void teacherSearchInfor()
{
	char num[9];
	FILE *fp;
	STUDENT stu,*p;
	p=&stu;
	if((fp=fopen("Students.dat","rb+"))==NULL)
	{
		printf("\n\t\t不能打开Students.dat文件!\n");
		exit(0);
	}
	fseek(fp,0,2);
	if(ftell(fp)>0)
	{
		printf("\n\t\t请输入要查找学生的学号:");
		scanf("%s",num);
		rewind(fp);
		while(1)
		{
			fread(p,sizeof(STUDENT),1,fp);
			if(feof(fp)||strcmp(p->stuNum,num)==0)
				break;
		}
		if(!feof(fp))
		{
			printf("\t\t---------------------------------------------------------\n");
			printf("\n\t\t学生姓名  学生学号  学生性别  学生年龄  课程编号  班级编号\n");
			printf("\t\t%2s\t%10s\t%s\t%d\t%2s\t%5s\n",p->stuName,p->stuNum,p->stuSex,p->stuAge,p->courseNum,p->classNum);
			printf("\t\t---------------------------------------------------------\n\n");
		}
		else
		{
			printf("\n\t\t****************查无此人!****************\n");
			return;
		}
	}
	else
	{
		printf("\t\t***************没有学生记录!***************\n");
		return;
	}
}

/*查询学生成绩*/

void teacherSearchScore()
{
	
	char num[9];
	FILE *fp;
	DEGREE deg,*p;
	p=&deg;
	if((fp=fopen("Degrees.dat","rb+"))==NULL)
	{
		printf("\n\t\t不能打开Degrees.dat文件!\n");
		exit(0);
	}
	fseek(fp,0,2);
	if(ftell(fp)>0)
	{
		printf("\n\t\t请输入要查找学生的学号:");
		scanf("%s",num);
		rewind(fp);
		while(1)
		{
			fread(p,sizeof(DEGREE),1,fp);
			if(feof(fp)||strcmp(p->stuNum,num)==0)
				break;
		}
		if(!feof(fp))
		{
			printf("\n\t\t-------------------------------------\n\n");
			printf("\t\t课程编号\t考试成绩\t平时成绩\n");
			printf("\t\t%s\t\t%3d\t\t%3d\n",p->courseNum,p->examDegr,p->commonDegr);
			printf("\t\t-------------------------------------\n\n");
		}
		else
		{
			printf("\n\t\t****************查无此人!****************\n");
			return;
		}
	}
	else
	{
		printf("\n\t\t***************没有学生记录!***************\n");
		return;
	}
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -