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

📄 课表.cpp

📁 这是我数据结构课程设计的原代码,已经经过调试通过了的
💻 CPP
📖 第 1 页 / 共 2 页
字号:
#include <string.h>
#include <stdio.h>
#include <stdlib.h>   /*其它说明*/
#include <ctype.h>    /*字符操作函数*/
#include <conio.h>
int ban=1;/*录入的班级数目*/
typedef struct stu
{   
    char name[15];/*课程名*/
    char place[15];/*地点*/
    char teacher[15];/*教师名*/
}kb;   /*每个课的类型结构定义*/
kb KEBIAO[10][6][5];
char classes[10][20]={"1"};

void print_KEBIAO()
{
	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\t    ┏━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━┓\n");
		printf("\t    ┃      星期      ┃      课时      ┃     课程名     ┃      地点      ┃      教师      ┃\n");
     	for(j=0;j<5;j++)
	    for(i=0;i<6;i++)
	    {
    		if(KEBIAO[k][i][j].name[0]!='\0')
	     	{
	    	  	
	    	  	printf("\t    ┃     星期%d      ┃",j+1);
				printf("     第%d大节    ┃",i+1);
				printf("%-16s┃",KEBIAO[k][i][j].name);
				printf("%-16s┃",KEBIAO[k][i][j].place);
				printf("%-16s┃",KEBIAO[k][i][j].teacher);
				printf("\n"); 
	     	}
	    	else
      			continue;
	    }
	   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) print_KEBIAO();
	        else if(q==2) break;
	        else 
         	{
      			p=1;
		       	printf("\n\n\t\t\t\t\t错误输入,请重新输入!");
	     	}	
	   }while(p==1);
    }
    system("PAUSE");
}

void add_KEBIAO()
{  
	system("cls");  
	int k,w,n,z=0,l,g,h,i;
	int q,p,x;
	char cc[15],a[15],b[15];
	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\t1.新增一个班级\n\n\t\t\t\t\t\t2.添加单独一节课\n\n\t\t\t\t\t\t3.返回\n\n\t\t\t\t\t\t请选择: ");
    scanf("%d",&x);
    if(x==1)
    {
   		printf("\n\n\t\t\t\t\t请输入您想添加课表的班级: ");
        scanf("%s",b);
        for(i=0;i<ban;i++)
  		{
		  	if(strcmp(b,classes[i])) 
		  		z=1;
  		}
		if(z==1)
  	 	{
  	 		strcpy(classes[ban++],b);
  			for(k=0;k<5;k++)
   				for(w=0;w<6;w++)
	      		{
		  			printf("\n\n\t\t    请输入星期%d第%d大节课课程名(输入*就退出此节课输入): ",k+1,w+1);
	  	  			scanf("%s",cc);
	  	  			if(!strcmp(cc,"*")) 
						continue;
	  	  			strcpy(KEBIAO[ban-1][w][k].name,cc);
	 	  			printf("\n\n\t\t\t\t    请输入星期%d第%d大节课上课地点: ",k+1,w+1);
		  			scanf("%s",cc);
    	  			strcpy(KEBIAO[ban-1][w][k].place,cc);
		  			printf("\n\n\t\t\t\t\t请输入星期%d第%d大节课教师: ",k+1,w+1);
		  			scanf("%s",cc);
    	  			strcpy(KEBIAO[ban-1][w][k].teacher,cc);
   				}
  	 	}
  	 	else
  	 	{
  	 		printf("\n\n\t\t\t\t\t您输入的班级已存在!");
  			do
	    	{
				printf("\n\n\t\t\t\t\t您想继续查询吗?1为继续,2为返回: ");
	        	scanf("%d",&g);
	        	h=0;
	        	if(g==1) add_KEBIAO();
	        	else if(g==2) return;
	        	else 
         		{
		   			h=1;
		   			printf("\n\n\t\t\t\t\t错误输入,请重新输入!");
		 		}	
	   		}while(h==1);	
 	  	}
    }
    else if(x==2)
    {
    	z=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;l=n;break;}
		}
		if(z==0)
		{	
			printf("\n\n\t\t\t\t\t该班级不存在!");
		}
	   	if(z==1)
     	{
     		printf("\n\n\t\t\t\t\t你要添加星期几的课程: ");
    		scanf("%d",&k);
    		printf("\n\n\t\t\t\t\t你要添加第几大节的课程: ");
    		scanf("%d",&w);
    		while((k<1||k>5)&&(w<1||w>6))
			{
				printf("\n\n\t\t\t\t\t您输入错误!");
				printf("\n\n\t\t\t\t\t您想继续查询吗?1为继续,2为返回: ");
	        	scanf("%d",&g);
	        	h=0;
	        	if(g==1) add_KEBIAO();
	        	else if(g==2) return;
	        	else 
         		{
		   		h=1;
		   		printf("\n\n\t\t\t\t\t错误输入,请重新输入!");
		 		}	
			} 
   		    if(KEBIAO[l][w][k].name[0]!='\0')
	     	{
   		 		printf("\n\n\t\t\t\t\t该时间段已有安排了.");
	    	 	do
	    	 	{
            		printf("\n\n\t\t\t\t\t您想继续添加吗?1为继续,2为返回: ");
	        		scanf("%d",&q);
	        		p=0;/*防止意外p的随即值与自己规定的值匹配*/
	        		if(q==1) add_KEBIAO();
	        		else if(q==2) return;
	       		 	else 
	       		  	{
		    		    p=1;
		   	   			printf("\n\n\t\t\t\t\t错误输入,请重新输入!");
		   	   		}	
	 		 	}while(p==1);
	    	} 
	   		else
			{
	  	  		printf("\n\n\t\t\t\t\t请输入课程名: ");
	  	  		scanf("%s",cc);
	  	  		strcpy(KEBIAO[l][w-1][k-1].name,cc);
	 	  		printf("\n\n\t\t\t\t\t请输入上课地点: ");
		  		scanf("%s",cc);
    	  		strcpy(KEBIAO[l][w-1][k-1].place,cc);
		  		printf("\n\n\t\t\t\t\t请输入教师: ");
		  		scanf("%s",cc);
    	  		strcpy(KEBIAO[l][w-1][k-1].teacher,cc);
			}  
		}
	}
	else if(x==3) return;
	else
	{
		printf("\n\n\t\t\t\t\t您输入错误!");
  		do
	    {
			printf("\n\n\t\t\t\t\t您想继续查询吗?1为继续,2为返回: ");
	        scanf("%d",&g);
	        h=0;
	        if(g==1) add_KEBIAO();
	        else if(g==2) return;
	        else 
         	{
		   	h=1;
		   	printf("\n\n\t\t\t\t\t错误输入,请重新输入!");
		 	}	
	   }while(h==1);
	}
	system("PAUSE");
}

void alter_KEBIAO()
{
	system("cls");
    int k,w,q,p,g,h,l,i,z;
    char a[15];
    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(i=0;i<ban;i++)
	{
	  	if(strcmp(a,classes[i])==0) {z=1;l=i;}
	}
    if(z==1)
   	{
    	printf("\n\n\t\t\t\t\t你要修改星期几的课程: ");
    	scanf("%d",&k);
    	printf("\n\n\t\t\t\t\t你要修改第几大节的课程: ");
    	scanf("%d",&w);
		while((k<1||k>5)&&(w<1||w>6))
		{
			printf("\n\n\t\t\t\t\t您输入错误!");
			printf("\n\n\t\t\t\t\t您想继续查询吗?1为继续,2为返回: ");
  			scanf("%d",&g);
    		h=0;
     		if(g==1) alter_KEBIAO();
      		else if(g==2) return;
       		else 
   			{
		   		h=1;
		   		printf("\n\n\t\t\t\t\t错误输入,请重新输入!");
 			}	
		}    	
    	if(KEBIAO[l][w-1][k-1].name[0]=='\0')
		{
	    	printf("\n\n\t\t\t\t\t该时间段未有安排。");
	    	do
	    	{
				printf("\n\n\t\t\t\t\t您想继续修改吗?1为继续,2为返回: ");
	        	scanf("%d",&q);
	        	if(q==1) alter_KEBIAO();
	        	else if(q==2) return;
	        	else 
	         	{
		      		p=1;
		      		printf("\n\n\t\t\t\t\t错误输入,请重新输入!");
		     	}	
	   		}while(p==1);
		} 
    	else
		{
	  		printf("\n\n\t\t\t\t\t请输入课程名: ");
	  		scanf("%s",KEBIAO[l][w-1][k-1].name);
	  		printf("\n\n\t\t\t\t\t请输入上课地点: ");
	  		scanf("%s",KEBIAO[l][w-1][k-1].place);
	  		printf("\n\n\t\t\t\t\t请输入教师: ");
	  		scanf("%s",KEBIAO[l][w-1][k-1].teacher);
		}  
   }
   else
   {
		printf("\n\n\t\t\t\t\t您所要修改的班级不存在");
  		do
	    {
			printf("\n\n\t\t\t\t\t您想继续查询吗?1为继续,2为返回: ");
	        scanf("%d",&g);
	        if(g==1) alter_KEBIAO();
	        else if(g==2) return;
	        else 
         	{
		   		h=1;
		   		printf("\n\n\t\t\t\t\t错误输入,请重新输入!");
		 	}	
	   	}while(h==1);
   }
   system("PAUSE");
}

void delete_KEBIAO()
{
	system("cls");    
    int k,w,q,p,g,h,i,z,l;
    p=0;
    char a[15];
    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(i=0;i<ban;i++)
	{
	  	if(strcmp(a,classes[i])==0) {z=1;l=i;}
	}
    if(z==1)
	{
		printf("\n\n\t\t\t\t\t你要删除星期几的课程: ");
    	scanf("%d",&k);
    	printf("\n\n\t\t\t\t\t你要删除第几大节的课程: ");
    	scanf("%d",&w);
    	while((k<1||k>5)&&(w<1||w>6))
		{
			printf("\n\n\t\t\t\t\t您输入错误!");
			printf("\n\n\t\t\t\t\t您想继续查询吗?1为继续,2为返回: ");
  			scanf("%d",&g);
    		h=0;
     		if(g==1) delete_KEBIAO();
      		else if(g==2) return;
       		else 
			{
 				h=1;
		   		printf("\n\n\t\t\t\t\t错误输入,请重新输入!");
 			}	
		}
		if(KEBIAO[l][w-1][k-1].name[0]=='\0')
		{
	    	printf("\n\n\t\t\t\t\t该时间段未有安排。");
	    	do
	    	{
				printf("\n\n\t\t\t\t\t您想继续删除吗?1为继续,2为返回: ");
	        	scanf("%d",&q);
	        	if(q==1) delete_KEBIAO();
	        	else if(q==2) return;
	        	else 
	         	{
		   			p=1;
		   			printf("\n\n\t\t\t\t\t错误输入,请重新输入!");
		 		}	
	   		}while(p==1);
		} 
    	else 
		{
    		KEBIAO[l][w-1][k-1].name[0]='\0';
   		}
	}
	else
	{
   		printf("\n\n\t\t\t\t\t您所要修改的班级不存在");
     	do
	    {
			printf("\n\n\t\t\t\t\t您想继续查询吗?1为继续,2为返回: ");
	        scanf("%d",&g);
	        if(g==1) delete_KEBIAO();
	        else if(g==2) return;
	        else 
         	{

⌨️ 快捷键说明

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