📄 索引.cpp
字号:
#include"stdio.h"
#include"ctype.h"
#include"iostream.h"
#include"iomanip.h"
#include"string.h"
#include"stdlib.h"
typedef struct student
{
char s[3];
char sname[10];
int age;
char sex;
}s2;
s2 s0[6];
typedef struct study
{
char s[3];
char c[3];
int grade;
int mark;
}z2;
z2 z0[17];
typedef struct course
{
char c[3];
char cname[10];
char teacher[10];
}c2;
c2 c0[5];
typedef struct da
{
char date[10];
s2 *ps[10];
z2 *pz[10];
c2 *pc[10];
}date;
typedef struct in
{
struct in *left;
date only;
struct in *right;
}index;
index head[10];
index *p,*s1,*fu;
int indexcount,num1,num2;
char index_name[10][10];
void main()
{
int y;
void display();
void intinal();
void create_index();
void del_index();
void _select();
void connect();
intinal();
indexcount=0;
l: display();
cout<<"请选择:";
cin>>y;
switch(y)
{case 1:
create_index();goto l;
case 2:
del_index();goto l;
case 3:
_select();goto l;
case 4:
connect();goto l;
case 0:
exit(0);
default:
cout<<"选择错误!请重新输入选择!"<<endl;goto l;
}
}
void create_index()
{
int findshuxing(char name[10],char tablename);
int result,i,bijiao,j,dd;
char indexname[10],tablename,shuxingname[10],k[10];
cout<<"请输入您要新建索引名:";
cin>>indexname;
cout<<"请输入索引所建在的表名:";
l: cin>>tablename;
if(tablename!='s'&&tablename!='z'&&tablename!='c')
{cout<<"不存在该表,需重新输入!"<<endl;goto l;}
l1: cout<<"请输入索引的属性名:";
cin>>shuxingname;
result=findshuxing(shuxingname,tablename);
if(result==0) {cout<<"表"<<tablename<<"不存在属性"<<shuxingname<<"需重新输入!"<<endl;goto l1;}
strcpy(index_name[indexcount],indexname);
if(tablename=='s')
{ if(!strcmp(shuxingname,"s"))
{ s2 *place;
strcpy(head[indexcount].only.date,s0[0].s);
head[indexcount].only.ps[0]=&s0[0];
head[indexcount].only.pc[0]=NULL;
head[indexcount].only.pz[0]=NULL;
head[indexcount].left=NULL;
head[indexcount].right=NULL;
for(i=1;i<6;i++)
{
strcpy(k,s0[i].s);
place=&s0[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.ps[0]=place;
s1->only.pc[0]=NULL;
s1->only.pz[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.ps[0]=place;
s1->only.pc[0]=NULL;
s1->only.pz[0]=NULL;
s1->left=NULL;
s1->right=NULL;
p->right=s1;
p=NULL;
}
}
else
cout<<"出错!"<<endl;
}
}
}
if(!strcmp(shuxingname,"sname"))
{ s2 *place;
strcpy(head[indexcount].only.date,s0[0].sname);
head[indexcount].only.ps[0]=&s0[0];
head[indexcount].only.pc[0]=NULL;
head[indexcount].only.pz[0]=NULL;
head[indexcount].left=NULL;
head[indexcount].right=NULL;
for(i=1;i<6;i++)
{
strcpy(k,s0[i].sname);
place=&s0[i];
p=&head[indexcount];
fu=p;
while(p!=NULL)
{
bijiao=strcmp(k,p->only.date);
cout<<bijiao<<endl;
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.ps[0]=place;
s1->only.pc[0]=NULL;
s1->only.pz[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.ps[0]=place;
s1->only.pc[0]=NULL;
s1->only.pz[0]=NULL;
s1->left=NULL;
s1->right=NULL;
p->right=s1;
p=NULL;
}
}
else
cout<<"出错!"<<endl;
}
}
}
indexcount++;cout<<"*************恭喜:第"<<indexcount<<"个索引"<<index_name[indexcount]<<"已经创建成功!************"<<endl;
}
else if(tablename=='c')
{ if(!strcmp(shuxingname,"c"))
{ c2 *place;
strcpy(head[indexcount].only.date,c0[0].c);
head[indexcount].only.pc[0]=&c0[0];
head[indexcount].only.ps[0]=NULL;
head[indexcount].only.pz[0]=NULL;
head[indexcount].left=NULL;
head[indexcount].right=NULL;
for(i=1;i<5;i++)
{
strcpy(k,c0[i].c);
place=&c0[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.pc[0]=place;
s1->only.ps[0]=NULL;
s1->only.pz[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.pc[0]=place;
s1->only.ps[0]=NULL;
s1->only.pz[0]=NULL;
s1->left=NULL;
s1->right=NULL;
p->right=s1;
p=NULL;
}
}
else
cout<<"出错!"<<endl;
}
}
}
if(!strcmp(shuxingname,"cname"))
{ c2 *place;
strcpy(head[indexcount].only.date,c0[0].cname);
head[indexcount].only.pc[0]=&c0[0];
head[indexcount].only.ps[0]=NULL;
head[indexcount].only.pz[0]=NULL;
head[indexcount].left=NULL;
head[indexcount].right=NULL;
for(i=1;i<5;i++)
{
strcpy(k,c0[i].cname);
place=&c0[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.pc[0]=place;
s1->only.ps[0]=NULL;
s1->only.pz[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.pc[0]=place;
s1->only.ps[0]=NULL;
s1->only.pz[0]=NULL;
s1->left=NULL;
s1->right=NULL;
p->right=s1;
p=NULL;
}
}
else
cout<<"出错!"<<endl;
}
}
}
if(!strcmp(shuxingname,"teacher"))
{ c2 *place;
strcpy(head[indexcount].only.date,c0[0].teacher);
head[indexcount].only.pc[0]=&c0[0];
head[indexcount].only.ps[0]=NULL;
head[indexcount].only.pz[0]=NULL;
head[indexcount].left=NULL;
head[indexcount].right=NULL;
for(i=1;i<5;i++)
{
strcpy(k,c0[i].teacher);
place=&c0[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.pc[0]=place;
s1->only.ps[0]=NULL;
s1->only.pz[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.pc[0]=place;
s1->only.ps[0]=NULL;
s1->only.pz[0]=NULL;
s1->left=NULL;
s1->right=NULL;
p->right=s1;
p=NULL;
}
}
else
cout<<"出错!"<<endl;
}
}
}
indexcount++;cout<<"第"<<indexcount<<"个索引"<<index_name[indexcount]<<"已经创建成功!"<<endl;
}
else if(tablename=='z')
{ if(!strcmp(shuxingname,"s"))
{ z2 *place;
strcpy(head[indexcount].only.date,z0[0].s);
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++)
{ num1=1;num2=1;
strcpy(k,z0[i].s);
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(j=0;j<5;j++)
{
if(p->only.pz[j]==NULL)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -