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

📄 course.cpp

📁 C语言写的学生成绩管理系统
💻 CPP
字号:
/*文件名:course.cpp;输入:裘云雷*/
#include "stdio.h"
#include "student.h"
#define MAX 100
extern int findmajor(int no);
void course()
{
	void incour();
	void upcour();
	void decour();
	void dicour();
	void dacour();
	void ficour();
	int sel1;
	do
	{
		printf("  课程记录操作: 1:添加 2:修改 3:显示 4:查找 5:删除 6:全删 0:返回=>");
		scanf("%d",&sel1);
		switch(sel1)
		{
			case 1:incour();break;
			case 2:upcour();break;
			case 3:dicour();break;
			case 4:ficour();break;
			case 5:decour();break;
			case 6:dacour();break;
			case 0:break;
			default:printf("\t**选择错误\n");break;
		}
	} while (sel1!=0);
}
void incour()
{
	FILE *fp;
	COURSE cour,cour1;
	if ((fp=fopen("course.dat","ab+"))==NULL)
		if ((fp=fopen("course.dat","wb+"))==NULL)
			{
				printf("\t>>不能建立course.dat文件\n");
				return;
			}
		printf("	输入格式:课程号 课程名\n");
		printf("	课程记录:");
		scanf("%d%S",&cour.cno,cour.cname);
		rewind(fp);
		while (!feof(fp))
		{
			fread(&cour1,sizeof(COURSE),1,fp);
			if (cour1.cno==cour.cno) break;
		}
		if (!feof(fp))
			printf("\t>>课程号重复\n");
		else
			fwrite(&cour,sizeof(COURSE),1,fp);
		fclose(fp);
}
void upcour()
{
	FILE *fp;
	COURSE cour,ncour;
	int i,num;
	if ((fp=fopen("course.dat","rb+"))==NULL)
	{
		printf("\t>>不能打开course.dat文件\n");
		return;
	}
	fseek(fp,0,2);
	if (ftell(fp)>0)
	{
		rewind(fp);
		printf("	要修改的课程号:");
		scanf("%d",&num);
			for (i=0;!feof(fp) && fread(&cour,sizeof(COURSE),1,fp)==1;i++)
				if (cour.cno==num) break;
		    if (feof(fp))
			{
				printf("\t>>没有%d课程号的课程\n",num);
				return;
			}
			printf("	输入格式:课程名\n");
			scanf("%s",ncour.cname);
			ncour.cno=cour.cno;
			fseek(fp,-(long)sizeof(COURSE),SEEK_CUR);
			fwrite(&ncour,sizeof(COURSE),1,fp);
			fclose(fp);
	}
	else
	{
		printf("\t>>无任何记录\n");
		fclose(fp);
	}
}
void decour()
{
	void dacour();
	FILE *fp;
	COURSE cour[MAX];
	int i,j,n,num;
	if ((fp=fopen("course.dat","rb"))==NULL)
	{
		printf("\t>>不能打开course.dat文件\n");
		return;
	}
	fseek(fp,0,2);
	if (ftell(fp)>0)
	{
		rewind(fp);
		for (n=0;!feof(fp) && fread(&cour[n],sizeof(COURSE),1,fp);n++);
		printf("	要删除的课程号:");
		scanf("%d",&num);
		for (i=0;i<n && cour[i].cno!=num;i++);
		if (i>=n)
		{
			printf("\t>>没有%d课程号的课程\n",num);
			return;
		}
		fclose(fp);
		if (n>1)
		{
			for (j=i;j<n-1;j++)
				cour[i]=cour[i+1];
			fp=fopen("course.dat","wb");
			for (i=0;i<n-1;i++)
				fwrite(&cour[i],sizeof(COURSE),1,fp);
			fclose(fp);
		}
		else dacour();
	}
	else
	{
		printf("\t>>无任何记录\n");
		fclose(fp);
	}
}
void dicour()
{
	FILE *fp;
	int i;
	COURSE cour;
	if ((fp=fopen("course.dat","rb"))==NULL)
	{
		printf("\t>>不能打开course.dat文件\n");
		return;
	}
	fseek(fp,0,2);
	if (ftell(fp)>0)
	{
		rewind(fp);
		printf("	记录号  课程号		课程名\n");
		i=0;
		while (1)
		{
			fread(&cour,sizeof(COURSE),1,fp);
			if (feof(fp))break;
			printf(" %6d%10d%20s\n",i+1,cour.cno,cour.cname);
			i++;
		}
	}
	else
		printf("\t>>无任何记录\n");
}
void dacour()
{
	FILE *fp;
	if ((fp=fopen("course.daat","wb"))==NULL)
	{
		printf("\t>>不能打开course.dat文件\n");
		return;
	}
	printf("\t>>全部记录已删\n");
	fclose(fp);
}
void ficour()
{
	void ficour1();
	void ficour2();
	int sel2;
	do
	{
		printf("  课程查找操作: 1:按课程号 2:按专业号 0:返回=>");
		scanf("%d",&sel2);
		switch(sel2)
		{
			case 1:ficour1();break;
			case 2:ficour1();break;
			case 0:break;
			default:printf("\t**选择错误\n");break;
		}
	} while (sel2!=0);
}
void ficour1()
{
	int i=0,num;
	FILE *fp;
	COURSE cour;
	if  ((fp=fopen("course.dat","rb"))==NULL)
	{
		printf("\t>>不能打开course.dat文件\n");
		return;
	}
	fseek(fp,0,2);
	if(ftell(fp)>0)
	{  
		printf("	输入课程号;");
		scanf("%d",&num);
		rewind(fp);
		while (1)
		{
			fread(&cour,sizeof(COURSE),1,fp);
			if (feof(fp) || cour.cno==num) break;
			i++;
		}
		if (!feof(fp))
		{ 
			printf("	记录号  课程号		课程名		专业号\n");
			printf(" %6d%10d%20s%6d\n",i+1,cour.cno,cour.cname,cour.mno);
		}
		else 
			printf("\t>>查无此记录\n");
	}
	else 
		printf("\t>>无任何记录\n");
}
void ficour2()
{
	int i=0,num,flag=0;
	FILE *fp;
	COURSE cour;
	if  ((fp=fopen("course.dat","rb"))==NULL)
	{
		printf("\t>>不能打开course.dat文件\n");
		return;
	}
	fseek(fp,0,2);
	if(ftell(fp)>0)
	{  
		printf("	输入专业号;");
		scanf("%d",&num);
		rewind(fp);
		i=0;
		while (1)
		{
			fread(&cour,sizeof(COURSE),1,fp);
			i++;
			if (feof(fp)) break;
			if (cour.cno==num)
			{
				if (flag==0)
				{
					flag=1;
					printf("	记录号  课程号		课程名		专业号\n");
				}
				printf(" %6d%10d%20s%6d\n",i+1,cour.cno,cour.cname,cour.mno);
			}
		}
		if (flag==0)
			printf("\t>>查无此记录\n");
	}
	else 
		printf("\t>>无任何记录\n");
}

⌨️ 快捷键说明

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