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

📄 text2.cpp

📁 该程序实现了用文件记录变长字节流
💻 CPP
字号:
#include<iostream.h>
#include<fstream.h>
#include<stdlib.h>
#include<iomanip.h>
#include<string.h>
#include"mainfile.h"
#include"index.h"
void main()
{char *f1=".\\mainfile.dat";
char *f2=".\\mainindex.idx";
char *f3=".\\keyindex.idx";
char *f4=".\\nameindex.idx";
element temp2;
index temp1;
while(1)
{cout<<endl<<"功能号表:"<<endl;
cout<<"1-----向文件中插入一个元素"<<endl;
cout<<"2-----从文件中删除一个元素"<<endl;
cout<<"3-----从文件中查找一个元素"<<endl;
cout<<"4-----输出文件"<<endl;
cout<<"5-----结束运行"<<endl;
char choice1;
cout<<"请输入你的选择(1-5):"<<endl;
cin>>choice1;
switch(choice1)
{case '1':
{ll:cout<<"<1> 插入一组元素。"<<endl;
cout<<"<2> 插入一个元素。"<<endl;
cout<<"<3> 返回上层目录。"<<endl;
char choice2;
cin>>choice2;
switch(choice2)
{case '1':
{cout<<"请输入待插入元素个数:(一个整数)"<<endl;
int nn;
cin>>nn;
for(int i3=0;i3<nn;i3++)
{cout<<"请插入第"<<i3+1<<"个元素(一个整数和一个标志名):"<<endl;
cin>>temp2.key>>temp2.name;
temp1.key=temp2.key;
strcpy(temp1.name,temp2.name);
temp1.deletetag=0;
temp2.deletetag=0;
Insert(f1,f2,temp2);
keyInsert(f3,temp1);
nameInsert(f4,temp1);
}
break;
}
case '2':
{cout<<"请输入待插入元素:(一个整数和一个标志符): "<<endl;
cin>>temp2.key>>temp2.name;
temp2.deletetag=0;
temp1.key=temp2.key;
temp1.deletetag=0;
strcpy(temp1.name,temp2.name);
Insert(f1,f2,temp2);
keyInsert(f3,temp1);
nameInsert(f4,temp1);
break;}
case '3':break;
default:{cout<<"输入选择错误,请重新输入!"<<endl;
	goto ll;}}
break;}
case'2':
	{char choice3;
l1:cout<<"<1> 已知要删除元素的关键字;"<<endl;
	cout<<"<2> 已知要删除元素的标志符;"<<endl;
    cout<<"<3> 返回上层目录。"<<endl;
	cin>>choice3;
	switch(choice3)
	{case '1':{
cout<<"请输入待删除元素的关键字:"<<endl;
cin>>temp2.key;
temp1.key=temp2.key;
bool t1=maindelete(f1,f2,temp2);
temp1=deletekey(f3,temp1);
if(temp1.key!=-1) deletename(f4,temp1);
if(t1==1)cout<<"删除成功!"<<endl;
else cout<<"删除不成功!"<<endl;
break;	}
	case '2':
		{cout<<"请输入待删除元素的标志符:"<<endl;
		cin>>temp1.name;
   temp1=deletename(f4,temp1);
   temp1=deletekey(f3,temp1);
   temp2.key=temp1.key;
   strcpy(temp2.name,temp1.name);
   maindelete(f1,f2,temp2);
	break;}
	case '3':break;
	default:{cout<<"输入选择错误,请重新输入!"<<endl;goto l1;}}
	break;}
case '3':
	{l2:cout<<"<1> 按关键字查找"<<endl;
cout<<"<2> 按标志符查找"<<endl;
cout<<"<3> 返回上层目录。"<<endl;
char ch1;
cin>>ch1;
switch(ch1)
{case '1':
{cout<<"请输入待查找元素的关键字: "<<endl;
cin>>temp2.key;
temp2=mainsearch(f1,f2,temp2);
break;}
case '2':
{cout<<"请输入待查找元素的标志符:"<<endl;
  cin>>temp1.name;
  temp1=searchname(f4,temp1);
  temp2.key=temp1.key;
  strcpy(temp2.name,temp1.name);
  temp2=mainsearch(f1,f2,temp2);
  break;}
case'3':break;
default:{cout<<"输入选择错误,请重新输入!"<<endl;
		goto l2;}
		}
break;}
case '4':
	{l3:cout<<"<1>按关键字的顺序输出;"<<endl;
cout<<"<2>按标志符的顺序输出;"<<endl;
cout<<"<3> 返回上层目录。"<<endl;
char choice7;
cin>>choice7;
switch(choice7)
{case '1':
{mainprint(f1,f2);
break;}
case '2':
	{namekeyprint(f4,f1,f2);
	break;}
case '3':break;
default:{cout<<"输入选择错误,请重新输入!"<<endl;
	goto l3;}
}
break;}
case '5':return;
default:cout<<"输入选择错误,请重输!"<<endl;
}}}

⌨️ 快捷键说明

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