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

📄 索引.cpp

📁 数据库,实现对主关键字的索引功能。 实现对其它关键字的索引功能。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
                                                     p->only.pz[j]=place;
										           	p=NULL;
													break;
												}
											}
                                            
										
										
					   }
				   }
			   }
	        }
	  if(!strcmp(shuxingname,"c"))
        	{  z2 *place;
		       strcpy(head[indexcount].only.date,z0[0].c);
			   head[indexcount].only.pz[0]=&z0[0];
			   head[indexcount].only.ps[0]=NULL;
               head[indexcount].only.pc[0]=NULL;
               head[indexcount].left=NULL;
			   head[indexcount].right=NULL;
			   for(i=1;i<17;i++)
			   {
				   strcpy(k,z0[i].c);
				   place=&z0[i];
				   p=&head[indexcount];
				   fu=p;
				   while(p!=NULL)
				   {
					   bijiao=strcmp(k,p->only.date);
					   if(bijiao==-1)
					   {
										   if(p->left!=NULL) {fu=p;p=p->left;}
										   else
										   {
										   s1=(index *)malloc(sizeof(index));
										   strcpy(s1->only.date,k);
										   s1->only.pz[0]=place;
										     s1->only.pz[1]=NULL;
										   s1->only.pz[2]=NULL;
										   s1->only.pz[3]=NULL;
										   s1->only.pz[4]=NULL;
										   s1->only.ps[0]=NULL;
										   s1->only.pc[0]=NULL;
										   s1->left=NULL;
										   s1->right=NULL;
										   p->left=s1;
										   p=NULL;
										   }
					   }
					   else if(bijiao==1)
					   {
                                           if(p->right!=NULL) {fu=p;p=p->right;}
										   else
										   {
										   s1=(index *)malloc(sizeof(index));
										   strcpy(s1->only.date,k);
										   s1->only.pz[0]=place;
										     s1->only.pz[1]=NULL;
										   s1->only.pz[2]=NULL;
										   s1->only.pz[3]=NULL;
										   s1->only.pz[4]=NULL;
										   s1->only.ps[0]=NULL;
										   s1->only.pc[0]=NULL;
										   s1->left=NULL;
										   s1->right=NULL;
										   p->right=s1;
										   p=NULL;
										   }
					   }
					   else 
					   {                   for(dd=0;dd<10;dd++)
											{
												if(p->only.pz[dd]==NULL)
												{
                                                     p->only.pz[dd]=place;
										           	p=NULL;
													break;
												}
											}
                                            
									
					   }
				   }
			   }
	        }
	      
	 indexcount++;
	 cout<<"************************第"<<indexcount<<"个索引"<<index_name[indexcount]<<"已经创建成功!***************"<<endl;
	 }

}

int findshuxing(char name[10],char tablename)
{  
	if(tablename=='s')
	{
			  if(!strcmp(name,"s")||!strcmp(name,"sname")||!strcmp(name,"age")||!strcmp(name,"sex"))return 1;
			  else return 0;
	}
	else if(tablename=='c')
	{
			  if(!strcmp(name,"c")||!strcmp(name,"cname")||!strcmp(name,"teacher"))return 2;
			  else return 0;
	}
    if(tablename=='z')
	{
			  if(!strcmp(name,"s")||!strcmp(name,"c")||!strcmp(name,"grade"))return 3;
			  else return 0;
	}
}
void del_index()
{   int i,j,k;
	char name[10];
	if(indexcount==0)
	{
		cout<<"系统不存在索引,不能删除索引!"<<endl;
		goto l;
	}
	cout<<"请输入您要删除索引的名字:";
	cin>>name;
	for(i=0;i<10;i++)
	{
		if(!strcmp(index_name[i],name))
			break;
	}
	if(i==10) cout<<"不存在该属性!"<<endl;
	for(i=i;i<10;i++)
	{
          j=i+1;
		  head[i]=head[j];
	}
	indexcount--;
	cout<<"索引删除成功!"<<endl;
	
l:cout<<endl;
}
void _select()
{   int j,i;
	char name[10],name1[10],k[10];
	cout<<"请输入您所要选择记录的索引值:";
	cin>>name;
	cout<<"请输入记录所在索引表名称:";
	cin>>name1;
    for(i=0;i<10;i++)
	{
		if(!strcmp(index_name[i],name1))
			break;
	}
	if(i==10) cout<<"不存在该索引!"<<endl;
	p=&head[i];
	{
		strcpy(k,name);
		while(p!=NULL)
		{   j=strcmp(k,p->only.date);
			if(j==0)
			{
				printf("************************选择成功!列表如下*****************************\n");
			
				if(p->only.pc[0]!=NULL)
				{
                    	c2 * cc2=p->only.pc[0];
						printf("课程号  课程名  任课教师\n");
			        	printf("%s,%s,%s",cc2->c,cc2->cname,cc2->teacher);
						printf("\n");
				}
				else if(p->only.pz[0]!=NULL)
				   	{
                    	z2 * cc2=p->only.pz[0];
						printf("学号  课程名  成绩");
			        	printf("%s,%s,",cc2->s,cc2->c);
						
						printf("%d",cc2->grade);
				}
				else if(p->only.ps[0]!=NULL)
				   	{
                    	s2 * cc2=p->only.ps[0];
						printf("学号 姓名 年龄 性别\n");
			        	printf("%s,%s,",cc2->s,cc2->sname);
						printf("  ");
                        	printf("%d,",cc2->age);
							printf("  ");
								printf("%c",cc2->sex);
						printf("\n");
				}
				p=NULL;
			}
			else if(j==-1)
			{
				p=p->left;
			}
			else p=p->right;
		}
	}
}
void connect()
{   char name1[50],name2[10],ch,name3[3];
    void intinal();
    int i;
	i=0;
printf("请输入连接条件:");
	scanf("%c",&ch);
	while(ch!='\n')
	{
		name1[i]=ch;
		i++;
		scanf("%c",&ch);
	}
	name1[i]='\0';
	for(i=0;i<7;i++)
		name2[i]=name1[i];
	name2[i]='\0';
	
	for(i=0;i<2;i++)
		name3[i]=name1[i+16];
	name3[i]='\0';
   
	if(!strcmp(name2,"s.s=z.s"))
	{
		for(i=0;i<6;i++)
		{
			if(strcmp(name3,s0[i].s))
			{   //cout<<name3<<"   "<<s0[i].s<<endl;
				strcpy(s0[i].s,"");
				strcpy(s0[i].sname,"");
				s0[i].age=0;
				s0[i].sex=' ';
			}
		}
		for(i=0;i<17;i++)
		{
				if(strcmp(name3,z0[i].s))
			{
				strcpy(z0[i].s,"");
				strcpy(z0[i].c,"");
				z0[i].grade=0;
			}
		}
		cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
		  cout<<"s#"<<"                  "<<"c#"<<"                  "<<"grade"<<endl;
					                   cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
						               for(i=0;i<17;i++)
									   {if(strcmp(z0[i].s,""))
						                    	 cout<<setiosflags(ios::left)<<setw(20)<<z0[i].s;
									   if(strcmp(z0[i].c,""))
												 cout<<setiosflags(ios::left)<<setw(20)<<z0[i].c;
												 if(z0[i].grade!=0)
												 cout<<setiosflags(ios::left)<<setw(20)<<z0[i].grade<<endl;
												// cout<<endl;
									   }
									   cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
									    cout<<"s#"<<"                  "<<"sname"<<"                "<<"age"<<"                 "<<"sex"<<endl;
					                   cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
						               for(i=0;i<6;i++)
									   {if(strcmp(s0[i].s,""))
						                    	 cout<<setiosflags(ios::left)<<setw(20)<<s0[i].s;
									   if(strcmp(s0[i].sname,""))
												 cout<<setiosflags(ios::left)<<setw(20)<<s0[i].sname;
												 if(s0[i].age!=0)
												 cout<<setiosflags(ios::left)<<setw(20)<<s0[i].age;
												 if(s0[i].sex!=' ')
												 cout<<setiosflags(ios::left)<<setw(20)<<s0[i].sex<<endl;
									   }
	}
    else if(!strcmp(name2,"c.c=z.c"))
	{
		for(i=0;i<5;i++)
		{
			if(strcmp(name3,c0[i].c))
			{
				strcpy(c0[i].c,"");
				strcpy(c0[i].cname,"");
				strcpy(c0[i].teacher,"");
			}
		}
		for(i=0;i<17;i++)
		{
				if(strcmp(name3,z0[i].c))
			{
				strcpy(z0[i].s,"");
				strcpy(z0[i].c,"");
				z0[i].grade=0;
			}
		}
		cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
		  cout<<"s#"<<"                  "<<"c#"<<"                  "<<"grade"<<endl;
					                   cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
						               for(i=0;i<17;i++)
									   {         if(strcmp(z0[i].s,""))
						                    	 cout<<setiosflags(ios::left)<<setw(20)<<z0[i].s;
									             if(strcmp(z0[i].c,""))
												 cout<<setiosflags(ios::left)<<setw(20)<<z0[i].c;
												 if(z0[i].grade!=0)
												 cout<<setiosflags(ios::left)<<setw(20)<<z0[i].grade<<endl;
												 
									   }
									   cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
									  cout<<"c#"<<"                      "<<"cname"<<"               "<<"teacher"<<endl;
					     cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
						 for(i=0;i<5;i++)
						 {if(strcmp(c0[i].c,""))
							 cout<<setiosflags(ios::left)<<setw(20)<<c0[i].c<<"    ";
						 if(strcmp(c0[i].cname,""))
							 cout<<setiosflags(ios::left)<<setw(20)<<c0[i].cname;
						 if(strcmp(c0[i].teacher,""))
							 cout<<setiosflags(ios::left)<<setw(20)<<c0[i].teacher<<endl;
						 }
				      
	}
	intinal();
}
void display()
{
	cout<<"        ********欢迎进入试验五:索引********"<<endl;
	cout<<"                (1)创建索引;"<<endl;
	cout<<"                (2) 删除索引;"<<endl;
	cout<<"                (3) 选择操作;"<<endl;
	cout<<"                (4)连接操作;"<<endl;
	cout<<"                (0)退出系统;"<<endl;
	cout<<"********************************************************"<<endl;
}
void intinal()
{  
    strcpy(s0[0].s,"s1");
	strcpy(s0[1].s,"s2");
	strcpy(s0[2].s,"s3");
	strcpy(s0[3].s,"s4");
	strcpy(s0[4].s,"s5");
	strcpy(s0[5].s,"s8");
	s0[0].s[2]='\0';
	s0[1].s[2]='\0';
	s0[2].s[2]='\0';
	s0[3].s[2]='\0';
	s0[4].s[2]='\0';
	s0[5].s[2]='\0';
	strcpy(s0[0].sname,"wang");
	strcpy(s0[1].sname,"xiao");
	strcpy(s0[2].sname,"chen");
	strcpy(s0[3].sname,"juan");
	strcpy(s0[4].sname,"ying");
	strcpy(s0[5].sname,"dong");
	s0[0].age=20;
	s0[1].age=19;
	s0[2].age=22;
	s0[3].age=19;
	s0[4].age=21;
	s0[5].age=18;
    s0[0].sex='m';
	s0[1].sex='m';
	s0[2].sex='m';
	s0[3].sex='m';
	s0[4].sex='f';
	s0[5].sex='f';
	
	strcpy(c0[0].c,"c1");
	strcpy(c0[1].c,"c2");
	strcpy(c0[2].c,"c3");
	strcpy(c0[3].c,"c4");
	strcpy(c0[4].c,"c5");

	strcpy(c0[0].cname,"db");
	strcpy(c0[1].cname,"ms");
	strcpy(c0[2].cname,"cy");
	strcpy(c0[3].cname,"pa");
	strcpy(c0[4].cname,"os");

	strcpy(c0[0].teacher,"lin");
	strcpy(c0[1].teacher,"hua");
	strcpy(c0[2].teacher,"yin");
	strcpy(c0[3].teacher,"shi");
	strcpy(c0[4].teacher,"wen");

	strcpy(z0[0].s,"s1");
	strcpy(z0[1].s,"s1");
	strcpy(z0[2].s,"s1");
	strcpy(z0[3].s,"s1");
	strcpy(z0[4].s,"s1");
	strcpy(z0[5].s,"s2");
	strcpy(z0[6].s,"s3");
	strcpy(z0[7].s,"s3");
	strcpy(z0[8].s,"s3");
	strcpy(z0[9].s,"s4");
	strcpy(z0[10].s,"s4");
	strcpy(z0[11].s,"s5");
	strcpy(z0[12].s,"s5");
	strcpy(z0[13].s,"s5");
	strcpy(z0[14].s,"s5");
	strcpy(z0[15].s,"s8");
	strcpy(z0[16].s,"s8");

	strcpy(z0[0].c,"c1");
	strcpy(z0[1].c,"c2");
	strcpy(z0[2].c,"c3");
	strcpy(z0[3].c,"c4");
	strcpy(z0[4].c,"c5");
	strcpy(z0[5].c,"c1");
	strcpy(z0[6].c,"c1");
	strcpy(z0[7].c,"c2");
	strcpy(z0[8].c,"c3");
	strcpy(z0[9].c,"c1");
	strcpy(z0[10].c,"c4");
	strcpy(z0[11].c,"c1");
	strcpy(z0[12].c,"c2");
	strcpy(z0[13].c,"c3");
	strcpy(z0[14].c,"c5");
	strcpy(z0[15].c,"c1");
	strcpy(z0[16].c,"c3");

	z0[0].grade=80;
	z0[1].grade=70;
	z0[2].grade=85;
	z0[3].grade=90;
	z0[4].grade=70;
	z0[5].grade=85;
	z0[6].grade=90;
	z0[7].grade=85;
	z0[8].grade=95;
	z0[9].grade=75;
	z0[10].grade=70;
	z0[11].grade=70;
	z0[12].grade=60;
	z0[13].grade=80;
	z0[14].grade=65;
	z0[15].grade=90;
	z0[16].grade=95;

	z0[0].mark=0;
	z0[1].mark=0;
	z0[2].mark=0;
	z0[3].mark=0;
	z0[4].mark=0;
	z0[5].mark=0;
	z0[6].mark=0;
	z0[7].mark=0;
	z0[8].mark=0;
	z0[9].mark=0;
	z0[10].mark=0;
	z0[11].mark=0;
	z0[12].mark=0;
	z0[13].mark=0;
	z0[14].mark=0;
	z0[15].mark=0;
	z0[16].mark=0;
}

⌨️ 快捷键说明

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