📄 028245.cpp
字号:
cout<<"请输入您要查询的姓名:"<<endl;
cin>>temp;
while(strcmp(temp,B[i].name)!=0)
i++;
loc=B[i].loc;
cout<<A[loc-1].number<<"\t"<<A[loc-1].name<<"\t"<<A[loc-1].sex<<"\t"<<A[loc-1].classin<<"\t"<<A[loc-1].birth<<"\t"<<A[loc-1].telephone<<"\t"<<A[loc-1].address<<"\t"<<A[loc-1].instructor<<"\t"<<endl;
return loc-1;
}
int classinsearch(classinindex B[])//按班级查询--顺序表
{
char temp[20];
int loc;
int i=0;
cout<<"请输入您要查询的班级:"<<endl;
cin>>temp;
while(strcmp(temp,B[i].classin)!=0)
i++;
loc=B[i].loc;
cout<<A[loc-1].number<<"\t"<<A[loc-1].name<<"\t"<<A[loc-1].sex<<"\t"<<A[loc-1].classin<<"\t"<<A[loc-1].birth<<"\t"<<A[loc-1].telephone<<"\t"<<A[loc-1].address<<"\t"<<A[loc-1].instructor<<"\t"<<endl;
return loc-1;
}
int instructorsearch(instructorindex B[])//按指导老师查询--顺序表
{
char temp[10];
int loc;
int i=0;
cout<<"请输入您要查询的指导老师:"<<endl;
cin>>temp;
while(strcmp(temp,B[i].instructor)!=0)
i++;
loc=B[i].loc;
cout<<A[loc-1].number<<"\t"<<A[loc-1].name<<"\t"<<A[loc-1].sex<<"\t"<<A[loc-1].classin<<"\t"<<A[loc-1].birth<<"\t"<<A[loc-1].telephone<<"\t"<<A[loc-1].address<<"\t"<<A[loc-1].instructor<<"\t"<<endl;
return loc-1;
}
int searchinstructor()//指导老师查询
{
instructor_index();
int i=0;
fstream f1;
f1.open("d:\\instructor_index.txt",ios::in|ios::out);
cout<<"从指导教师索引文件中读取索引:"<<endl;
while(!f1.eof()&&i<N)
{
f1>>E[i].loc>>E[i].instructor;
cout<<E[i].loc<<"\t"<<E[i].instructor<<endl;
i++;
}
f1.close();
return instructorsearch(E);//按指导老师查询
}
int searchclassin()//班级查询
{
classin_index();
int i=0;
fstream f1;
f1.open("d:\\name_index.txt",ios::in|ios::out);
cout<<"从姓名索引文件中读取索引:"<<endl;
while(!f1.eof()&&i<N)
{
f1>>C[i].loc>>C[i].name;
cout<<C[i].loc<<"\t"<<C[i].name<<endl;
i++;
}
f1.close();
return classinsearch(D);//按班级查询
}
int searchnumber()//学号查询
{
number_index();//创建学号索引文件
int i=0;
fstream f1;
f1.open("d:\\number_index.txt",ios::in|ios::out);
cout<<"从学号索引文件中读取索引:"<<endl;
while(!f1.eof()&&i<N)
{
f1>>B[i].loc>>B[i].number;
cout<<B[i].loc<<"\t"<<B[i].number<<endl;
i++;
}
f1.close();
return numbersearch(B);//按学号查询
}
int searchname()//姓名查询
{
name_index();
int i=0;
fstream f1;
f1.open("d:\\name_index.txt",ios::in|ios::out);
cout<<"从姓名索引文件中读取索引:"<<endl;
while(!f1.eof()&&i<N)
{
f1>>C[i].loc>>C[i].name;
cout<<C[i].loc<<"\t"<<C[i].name<<endl;
i++;
}
f1.close();
return namesearch(C);//按姓名查询
}
int search()//查询search
{
int i,input;
cout<<"请输入查询方式:"<<endl;
cout<<"1、按学号查询"<<endl;
cout<<"2、按姓名查询"<<endl;
cout<<"3、按班级查询"<<endl;
cout<<"4、按指导老师查询"<<endl;
cin>>input;
switch(input)
{
case 1:
{
i=searchnumber();
break;
}
case 2:
{
i=searchname();
break;
}
case 3:
{
i=searchclassin();
break;
}
case 4:
{
i=searchinstructor();
break;
}
default:
break;
}
return i;
}
//////////////////////////////////////////////////////////////////
void modify(int i)//修改主索引中的相应数据
{
fstream f1;
f1.open("d:\\data.txt",ios::in|ios::out|ios::trunc);
cout<<"请选择您想修改的属性:"<<endl;
cout<<"1、学号"<<endl;
cout<<"2、姓名"<<endl;
cout<<"3、性别"<<endl;
cout<<"4、班级"<<endl;
cout<<"5、出生日期"<<endl;
cout<<"6、电话"<<endl;
cout<<"7、住址"<<endl;
cout<<"8、指导教师"<<endl;
int choose;
cin>>choose;
switch(choose)
{
case 1:
{
cout<<"请输入您修改后的学号:";
cin>>A[i].number;
break;
}
case 2:
{
cout<<"请输入您修改后的姓名:";
cin>>A[i].name;
break;
}
case 3:
{
cout<<"请输入您修改后的性别:";
cin>>A[i].sex;
break;
}
case 4:
{
cout<<"请输入您修改后的班级:";
cin>>A[i].classin;
break;
}
case 5:
{
cout<<"请输入您修改后的出生日期:";
cin>>A[i].birth;
break;
}
case 6:
{
cout<<"请输入您修改后的电话:";
cin>>A[i].telephone;
break;
}
case 7:
{
cout<<"请输入您修改后的住址:";
cin>>A[i].address;
break;
}
case 8:
{
cout<<"请输入您修改后的指导教师:";
cin>>A[i].instructor;
break;
}
default:
break;
}
cout<<A[i].number<<"\t"<<A[i].name<<"\t"<<A[i].sex<<"\t"<<A[i].classin<<"\t"<<A[i].birth<<"\t"<<A[i].telephone<<"\t"<<A[i].address<<"\t"<<A[i].instructor<<"\t"<<endl;
cout<<"修改后:"<<endl;
for(i=0;i<N&&A[i].number!=-1;i++)
{
if(i!=0)
f1<<endl;
f1<<A[i].number<<"\t"<<A[i].name<<"\t"<<A[i].sex<<"\t"<<A[i].classin<<"\t"<<A[i].birth<<"\t"<<A[i].telephone<<"\t"<<A[i].address<<"\t"<<A[i].instructor;
cout<<A[i].number<<"\t"<<A[i].name<<"\t"<<A[i].sex<<"\t"<<A[i].classin<<"\t"<<A[i].birth<<"\t"<<A[i].telephone<<"\t"<<A[i].address<<"\t"<<A[i].instructor<<"\t"<<endl;
}
f1.close();
}
//////////////////////////////////////////////////////////////////
void change() //修改 过程:
{
writein_display(); //从主索引文件中读出数据并输出
int i=search(); //调用search函数,返回需要修改数据的地址
modify(i); //修改主索引文件中相应数据,并将修改后的数据项输出
changeindex(); //修改各索引文件数据内容
}
////////////////////////////////////////////////////////////
void insert()//插入
{
fstream f3;
f3.open("d:\\data.txt",ios::in|ios::out|ios::trunc);//打开主索引文件,将数据添加到文件最后
for(int i=0;A[i].number!=-1&&i<N;i++);
cout<<"请输入学号"<<endl;
cin>>A[i].number;
cout<<"请输入姓名"<<endl;
cin>>A[i].name;
cout<<"请输入性别"<<endl;
cin>>A[i].sex;
cout<<"请输入班级"<<endl;
cin>>A[i].classin; //班级
cout<<"请输入生日"<<endl;
cin>>A[i].birth; //生日
cout<<"请输入电话"<<endl;
cin>>A[i].telephone; //电话
cout<<"请输入地址"<<endl;
cin>>A[i].address; //地址
cout<<"请输入指导老师"<<endl;
cin>>A[i].instructor; //指导老师
for(int j=0;j<=i;j++) //显示数据
{
if(j!=0)
f3<<endl;
f3<<A[j].number<<"\t"<<A[j].name<<"\t"<<A[j].sex<<"\t"<<A[j].classin<<"\t"<<A[j].birth<<"\t"<<A[j].telephone<<"\t"<<A[j].address<<"\t"<<A[j].instructor;
}
f3.close();
changeindex(); //修改所有的索引文件
}
/////////////////////////////////////////////////////////////////
void remove()//删除
{
int i=search(); //搜索主索引找到删除数据的位置
for(int k=i;k<N&&A[k].number!=-1;k++) //其后数据逐一前移
{
A[k]=A[k+1];
}
fstream f3;
f3.open("d:\\data.txt",ios::out|ios::trunc);
for(int j=0;j<=k-1;j++)
{
if(j!=0)
f3<<endl;
f3<<A[j].number<<"\t"<<A[j].name<<"\t"<<A[j].sex<<"\t"<<A[j].classin<<"\t"<<A[j].birth<<"\t"<<A[j].telephone<<"\t"<<A[j].address<<"\t"<<A[j].instructor;
}
f3.close();
cout<<"删除操作成功!"<<endl;
changeindex(); //修改所有的索引文件
}
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
void main()
{
cout<<endl<<endl<<"欢迎参与测试程序!!"<<endl<<endl<<endl;
cout<<" *******************************程序说明***********************************"<<endl;
cout<<" *本程序是一个简单的学生毕业设计信息管理系统,其功能是可对毕业生的各种信息*"<<endl;
cout<<" *(包括学号、姓名、性别、班级、电话、住址、指导教师)进行查询、检索、修改、*"<<endl;
cout<<" *删除和排序,其中运用了索引结构、顺序表、搜索树、文件操作、查找、排序、搜 *"<<endl;
cout<<" *索等抽象数据类型和算法,程序代码简明易懂,操作简单方便,使其具有实用性。*"<<endl;
cout<<" *另外要感谢老师和各位同学的帮助和支持,在编程的道路上我将继续奋进!! *"<<endl;
cout<<" **************************************************************************"<<endl<<endl<<endl;
int input;
do
{
cout<<" 请输入您所选择的功能:"<<endl;
cout<<"1、 创建一个毕业生信息文件"<<endl;
cout<<"2、 显示目前文件内容"<<endl;
cout<<"3、 创建学号主索引"<<endl;
cout<<"4、 创建姓名索引"<<endl;
cout<<"5、 创建班级索引"<<endl;
cout<<"6、 创建指导老师索引"<<endl;
cout<<"7、 显示索引文件内容"<<endl;
cout<<"8、 插入一个新毕业生信息"<<endl;
cout<<"9、 删除一个毕业生信息"<<endl;
cout<<"10、查询学生信息"<<endl;
cout<<"11、修改学生信息"<<endl;
cout<<"12、退出"<<endl;
cin>>input;
switch(input)
{
case 1:
{
setup();
break;
}
case 2:
{
writein_display();
break;
}
case 3:
{
number_index();
break;
}
case 4:
{
name_index();
break;
}
case 5:
{
classin_index();
break;
}
case 6:
{
instructor_index();
break;
}
case 7:
{ show_index();
break;}
case 8:
{
insert();
break;
}
case 9:
{
remove();
break;
}
case 10:
{
search();
break;
}
case 11:
{
change();
break;
}
}
}while(input!=12);
exit(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -