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

📄 课表.cpp

📁 这是我数据结构课程设计的原代码,已经经过调试通过了的
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		   	h=1;
		   	printf("\n\n\t\t\t\t\t错误输入,请重新输入!");
		 	}	
	   }while(h==1);
	}
	system("PAUSE");
}

void searchbyclasses()
{
	system("cls");
	int i,j,n,z,q,p,k;
    char a[20];
    z=0;/*作为班级不匹配的标志*/
    q=0;
    printf("\t\t\t\t    ┏━━━━━━━━━━━━━━━━━━━━━━━┓\n");
	printf("\t\t\t\t    ┃            课  表  查  询  系  统            ┃\n");
	printf("\t\t\t\t    ┗━━━━━━━━━━━━━━━━━━━━━━━┛");
	printf("\n\n************************************************************************************************************************"); 
    printf("\n\n\t\t\t\t\t你想要查询哪个班的课程表: ");
    scanf("%s",a);
    for(n=0;n<ban;n++)
	{
 		if(strcmp(a,classes[n])==0) {z=1;k=n;break;}
	}
    if(z==1)
    {
		printf("\n\n\t\t\t\t\t\t\t%s\n\n",classes[k]); 
		printf("    ┏━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━┓\n");
		printf("    ┃                ┃     星期一     ┃     星期二     ┃     星期三     ┃     星期四     ┃     星期五     ┃\n");
		for(i=0;i<6;++i)
		{
			printf("    ┃    第%d大节     ┃",i+1);
			for(j=0;j<5;j++)
 				printf("%-16s┃",KEBIAO[k][i][j].name);
			printf("\n"); 
		}
		printf("    ┗━━━━━━━━┻━━━━━━━━┻━━━━━━━━┻━━━━━━━━┻━━━━━━━━┻━━━━━━━━┛\n");
    }
   	else
    { 
    	printf("\n\n\t\t\t\t\t你所输入的班级不存在\n");
     	do
	    {
		    printf("\n\n\t\t\t\t\t您想继续查询吗?1为继续,2为返回: ");
	        scanf("%d",&q);
	        p=0;
	        if(q==1) searchbyclasses();
	        else if(q==2) break;
	        else 
         	{
      			p=1;
		       	printf("\n\n\t\t\t\t\t错误输入,请重新输入!");
	     	}	
	   }while(p==1);
    }
    system("PAUSE");
}

void searchbyday()
{
	system("cls");
	int i,j,n,z,q,p,k,w;
    char a[20];
    z=0;/*作为班级不匹配的标志*/
    q=0;
    printf("\n\n\t\t\t\t\t你想要查询哪个班的课程表: ");
    scanf("%s",a);
    for(n=0;n<ban;n++)
	{
 		if(strcmp(a,classes[n])==0) {z=1;w=n;break;}
	}
    if(z==1)
    {
    	printf("\n\n\t\t\t\t\t你想查询星期几的课表: ");
		scanf("%d",&j);
		if(j>0&&j<6)
    	{
    		printf("\n\n\t\t\t\t\t\t      星期%d\n\n",j); 
			printf("\t\t    ┏━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━┓\n");
			printf("\t\t    ┃      课时      ┃     课程名     ┃      地点      ┃      教师      ┃\n");
			for(i=0;i<6;++i)
			{
				printf("\t\t    ┃    第%d大节     ┃",i+1);
				printf("%-16s┃",KEBIAO[w][i][j-1].name);
				printf("%-16s┃",KEBIAO[w][i][j-1].place);
				printf("%-16s┃",KEBIAO[w][i][j-1].teacher);
				printf("\n"); 
			}
			printf("\t\t    ┗━━━━━━━━┻━━━━━━━━┻━━━━━━━━┻━━━━━━━━┛\n");
    	}
    	else
    	{
    		printf("\n\n\t\t\t\t\t你所输入的星期不存在!");
     		do
	    	{
		    	printf("\n\n\t\t\t\t\t您想继续查询吗?1为继续,2为返回: ");
	        	scanf("%d",&q);
	        	p=0;
	        	if(q==1) searchbyday();
	        	else if(q==2) break;
	        	else 
         		{
      				p=1;
		       		printf("\n\n\t\t\t\t\t错误输入,请重新输入!");
	     		}	
	   		}while(p==1);
    	}
	}
   	else
    { 
    	printf("\n\n\t\t\t\t\t你所输入的班级不存在!");
     	do
	    {
		    printf("\n\n\t\t\t\t\t您想继续查询吗?1为继续,2为返回: ");
	        scanf("%d",&q);
	        p=0;
	        if(q==1) searchbyday();
	        else if(q==2) break;
	        else 
         	{
      			p=1;
		       	printf("\n\n\t\t\t\t\t错误输入,请重新输入!");
	     	}	
	   }while(p==1);
    }
    system("PAUSE");
}

void searchbyteacher()
{
	system("cls");
	int i,j,n,z,q,p,k,w;
    char a[10];
    z=0;/*作为班级不匹配的标志*/
    q=0;
    printf("\n\n\t\t\t\t\t请输入教师名: ");
    scanf("%s",a);
    for(k=0;k<ban;k++)
		for(i=0;i<6;i++)
			for(j=0;j<5;j++)
			{
 				if(strcmp(a,KEBIAO[k][i][j].teacher)==0) {z=1;break;}
			}
    if(z==1)
    {
    	printf("\n\n\t\t\t\t\t你想查询星期几的课表: ");
		scanf("%d",&j);
		if(j>0&&j<6)
    	{
			printf("\n\n\t\t\t\t\t      您在星期%d的课\n\n",j); 
			printf("\t    ┏━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━┓\n");
			printf("\t    ┃      课时      ┃      班级      ┃     课程名     ┃      地点      ┃      教师      ┃\n");
			for(w=0;w<ban;w++)
				{
					for(i=0;i<6;++i)
					{
						while(strcmp(a,KEBIAO[w][i][j-1].teacher)==0) 
						{
							printf("\t    ┃    第%d大节     ┃",i+1);
							printf("%-16s┃",classes[w]);
							printf("%-16s┃",KEBIAO[w][i][j-1].name);
							printf("%-16s┃",KEBIAO[w][i][j-1].place);
							printf("%-16s┃",KEBIAO[w][i][j-1].teacher);
							printf("\n"); 
							if(strcmp(a,KEBIAO[w][i][j-1].teacher)==0) break;
						}
					}
				}
			printf("\t    ┗━━━━━━━━┻━━━━━━━━┻━━━━━━━━┻━━━━━━━━┻━━━━━━━━┛\n");
    	}
    	else
    	{
    		printf("\n\n\t\t\t\t\t你所输入的星期不存在!");
     		do
	    	{
		    	printf("\n\n\t\t\t\t\t您想继续查询吗?1为继续,2为返回: ");
	        	scanf("%d",&q);
	        	p=0;
	        	if(q==1) searchbyteacher();
	        	else if(q==2) break;
	        	else 
         		{
      				p=1;
		       		printf("\n\n\t\t\t\t\t错误输入,请重新输入!");
	     		}	
	   		}while(p==1);
    	}
	}
   	else
    { 
    	printf("\n\n\t\t\t\t\t此教师不存在!");
     	do
	    {
		    printf("\n\n\t\t\t\t\t您想继续查询吗?1为继续,2为返回: ");
	        scanf("%d",&q);
	        p=0;
	        if(q==1) searchbyteacher();
	        else if(q==2) break;
	        else 
         	{
      			p=1;
		       	printf("\n\n\t\t\t\t\t错误输入,请重新输入!");
	     	}	
	   }while(p==1);
    }
    system("PAUSE");
}

void menu1_KEBIAO()
{   
	system("cls");
	int i;
	while(i)
	{
		system("cls");
		printf("\t\t\t\t    ┏━━━━━━━━━━━━━━━━━━━━━━━┓\n");
		printf("\t\t\t\t    ┃            课  表  查  询  系  统            ┃\n");
		printf("\t\t\t\t    ┗━━━━━━━━━━━━━━━━━━━━━━━┛");
		printf("\n\n************************************************************************************************************************"); 
 		printf("\n\n\n\n\t\t\t\t\t\t    1.按班级查询\n\n\t\t\t\t\t\t    2.按星期几查询\n\n\t\t\t\t\t\t    3.按教师查询(教师用)\n\n\t\t\t\t\t\t    0.返回");
		printf("\n\n\t\t\t\t\t\t    请选择:");
		scanf("%d",&i);
		if(i==1) searchbyclasses();
		else if(i==2) searchbyday();
		else if(i==3) searchbyteacher();
		else if(i==0) system("PAUSE"); 
		else 
		{
			printf("无此选项!");
			system("PAUSE");
		}
	}
}

void save(kb KEBIAO[][6][5],int ban,char classes[][20] )
{ 	
	int i,j,k; 
	FILE *fp; /*指向文件的指针*/ 
	if((fp=fopen("record.txt","wb"))==NULL) /*打开文件,并判断打开是否正常*/ 
	{ 
		printf("can not open file!");/*没打开*/
		exit(1); /*退出*/ 
	} 
	printf("\nSaving file\n"); /*输出提示信息*/
	fprintf(fp,"%d",ban); /*将记录数写入文件*/
	fprintf(fp,"\r\n"); /*将换行符号写入文件*/
	for(k=0;k<ban;k++)
	{	
		fprintf(fp,"%-20s",classes[k]);/*格式写入记录*/
		fprintf(fp,"\r\n"); /*将换行符号写入文件*/  
	}
	for(k=0;k<ban;k++)
		for(i=0;i<6;i++)
			for(j=0;j<5;j++)
			{
				if(KEBIAO[k][i][j].name[0]!='\0')
				{
					fprintf(fp,"%-2d%-2d%-2d",k,i,j);
					fprintf(fp,"\r\n"); /*将换行符号写入文件*/
					fprintf(fp,"%-15s%-15s%-15s",KEBIAO[k][i][j].name,KEBIAO[k][i][j].place,KEBIAO[k][i][j].teacher);/*格式写入记录*/
					fprintf(fp,"\r\n"); /*将换行符号写入文件*/
				}
			} 
	fclose(fp);/*关闭文件*/ 
	printf("****Save success***\n"); /*显示保存成功*/
	system("PAUSE");
}

int load(kb KEBIAO[][6][5],int ban,char classes[][20])
{ 
	int i,j,k,t; 
	FILE *fp; /*指向文件的指针*/ 
	if((fp=fopen("record.txt","rb"))==NULL)/*打开文件*/ 
	{ 
		printf("can not open file\n"); /*不能打开*/ 
		exit(1); /*退出*/ 
	} 
	fscanf(fp,"%d",&ban); /*读入记录数*/ 
	for(k=0;k<ban;k++) 
	{
		fscanf(fp,"%20s",classes[k]); /*按格式读入记录*/
	}
	while(!feof(fp))
	{
		fscanf(fp,"%2d%2d%2d",&k,&i,&j);
		fscanf(fp,"%15s%15s%15s",KEBIAO[k][i][j].name,KEBIAO[k][i][j].place,KEBIAO[k][i][j].teacher);
	}
	fclose(fp); /*关闭文件*/ 
	printf("You have success read data from file!!!\n"); /*显示读取成功*/ 
	system("PAUSE");
	return ban;
}

void menu2_KEBIAO()
{   
	system("cls");
	int i;
	while(i)
	{
		system("cls");
		printf("\t\t\t\t    ┏━━━━━━━━━━━━━━━━━━━━━━━┓\n");
		printf("\t\t\t\t    ┃            课  表  管  理  系  统            ┃\n");
		printf("\t\t\t\t    ┗━━━━━━━━━━━━━━━━━━━━━━━┛");
		printf("\n\n************************************************************************************************************************"); 
 		printf("\n\n\n\n\t\t\t\t\t\t    1.显示课表信息\n\n\t\t\t\t\t\t    2.添加课表\n\n\t\t\t\t\t\t    3.修改课表信息\n\n\t\t\t\t\t\t    4.删除课表信息\n\n\t\t\t\t\t\t    5.保存课表\n\n\t\t\t\t\t\t    6.读取课表\n\n\t\t\t\t\t\t    0.返回");
		printf("\n\n\t\t\t\t\t\t    请选择:");
		scanf("%d",&i);
		if(i==1) print_KEBIAO();
		else if(i==2) add_KEBIAO();
		else if(i==3) alter_KEBIAO();
		else if(i==4) delete_KEBIAO();
		else if(i==5) save(KEBIAO,ban,classes);
		else if(i==6) ban=load(KEBIAO,ban,classes); 
		else if(i==0) system("PAUSE"); 
		else 
		{
			printf("无此选项!");
			system("PAUSE");
		}
	}
}

void mima_KIBAO()
{
	system("cls");
	char a[10];
	printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t请输入密码:");
	scanf("%s",a);
	if(strcmp(a,"123")==0)
		menu2_KEBIAO();
	else 
		printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t密码错误!\n");
	system("PAUSE");
}

main()
{
	system("cls");
	system("mode con: cols=120 lines=40");
	int i;
	int ban=1;
	int total_KEBIAO=0;
	char classes[10][20]={"1"};
	while(i)
	{
		system("cls");
		printf("\t\t\t\t    ┏━━━━━━━━━━━━━━━━━━━━━━━┓\n");
		printf("\t\t\t\t    ┃        课  表  查  询  管  理  系  统        ┃\n");
		printf("\t\t\t\t    ┗━━━━━━━━━━━━━━━━━━━━━━━┛");
		printf("\n\n************************************************************************************************************************"); 
 		printf("\n\n\n\n\t\t\t\t\t\t    1.课表查询\n\n\t\t\t\t\t\t    2.课表管理\n\n\t\t\t\t\t\t    0.退出");
		printf("\n\n\t\t\t\t\t\t    请选择:");
		scanf("%d",&i);
		if(i==1) menu1_KEBIAO();
		else if(i==2) mima_KIBAO();
		else if(i==0) system("PAUSE"); 
		else 
		{
			printf("无此选项!");
			system("PAUSE");
		}
	}
}

⌨️ 快捷键说明

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