📄 main.cpp
字号:
#include "iostream.h"
#include "stdlib.h"
#include "conio.h"
#include "CListMZ.h"
#include "string.h"
#include "CListMZ.cpp"
#include "show.h"
#include "windows.h"
#define SHOW 30
void main()
{
CListMZ <int> list;
CShow show;
int strlen1=25;//"数据结构研究 功能演示平台"
char str2[]="湖北汽车工业学院电系2005年数据结构双语班! 挑战极限,超越自我! ";
int strlen2=strlen(str2);
char * pstr1[24];
//012345678901234567890123456789012345678901234567890
char pstr[][49]={"● 数据结构研究 功能演示平台 ● ",//0
"┏━━━━━━━━━━━━━━━━━━━━━━┓",//1
"┃ 程序信息 ┃",//2
"┠──────┬───────────────┨",//3
"┃ 设计目的:│ 实现表的有关操作 ┃",//4
"┠──────┼───────────────┨",//5
"┃ 程序功能:│ 双链表的测试 ┃",//6
"┠──────┼───────────────┨",//7*
"┃ 指导教师:│ 马春江老师 ┃",//8
"┠──────┼───────────────┨",//9
"┃ 设计者: │ 马哲江 ┃",//10
"┠──────┼───────────────┨",//11
"┃ 设计日期:│ 2005年3月31日 ┃",//12
"┠──────┴───────────────┨",//13
"┃ 湖北汽车工业学院电系2005年数据结构双语班 ┃",//14
"┗━━━━━━━━━━━━━━━━━━━━━━┛",//15
"┠──────┴───────────────┨",//16
"┃ ┃",//17
"┃ 1: 用初始值来创建一个表 ┃",//18
"┃ 2: 销毁一个表。 ┃",//19
"┃ 3: 确定表是空。 ┃",//20
"┃ 4: 获得表的长度。 ┃",//21
"┃ 5: 获得表的某位置的元素。 ┃",//22
"┃ 6: 删除表中的数据。 ┃",//23
"┃ 7: 插入数据到表中 ┃",//24
"┃ 8: 追加数据到表尾 ┃",//25
"┃ 9: 修改表中的数据 ┃",//26
"┃ A: 显示表中的内容 ┃",//27
"┃ 0: 退出。 ┃",//28
"┃ ┃",//29
"┃ ┃",//30
"┗━━━━━━━━━━━━━━━━━━━━━━┛"};//31
char ch=' ',c;
int strlen0=strlen(pstr[0]);
int number,number1,j,i,k,ii=17,kk=10;
bool flag=true,flag1=true;
for(i=0;i<16;i++)
pstr1[i]=pstr[i];
show.SetType(pstr1,16,CShow::SH_LTORLINE,10);
show.Show();
Sleep(1000);
for(i=j=0;i<=SHOW+1;i++,j++)
{
if(i==7)
i=16;
pstr1[j]=pstr[i];
}
show.SetType(pstr1,j,CShow::SH_STATIC,10);
k=0;
while(1)
{
system("cls");
show.Show();
Sleep(200);
//*
pstr[ii][5]=ch;
pstr[SHOW-1-ii+17][6]=ch;
pstr[ii][42]=ch;
pstr[SHOW-1-ii+17][41]=ch;
if(flag)
ii++;
else
ii--;
if(ii==16)
{
ii=17;
ch='*';
flag=true;
}
if(ii==SHOW)
{
ii=SHOW-1;
ch=' ';
flag=false;
}
if(k>strlen2-2)
k=0;
for(i=2;i<strlen0-4;i++)
pstr[SHOW][i]=pstr[SHOW][i+2];
pstr[SHOW][i]=str2[k];
pstr[SHOW][i+1]=str2[k+1];
k+=2;
//0
if(flag1)
{
for(i=0;i<strlen1;i++)
pstr[0][kk+i]=pstr[0][kk+i+2];
pstr[0][kk+i]=' ';
pstr[0][kk+i+1]=' ';
kk-=2;
}
else
{
for(i=strlen1;i>=0;i--)
pstr[0][kk+i+1]=pstr[0][kk+i-1];
pstr[0][kk]=' ';
pstr[0][kk+1]=' ';
kk+=2;
}
if(kk==0)
{
kk=2;
flag1=false;
}
if(kk==20)
{
kk=18;
flag1=true;
}
//没有按键重新循环
if(!kbhit())
continue;
c=getch();
if(c=='0')
//退出程序
break;
system("cls");
switch(c)
{
case '1'://用初始值来创建一个表
cout<<"创建一个表,请输入长度:";
cin>>number;
number1=0;
if(list.Create(number,number1))
{
cout<<"表创建成功,表的长度是:"<<list.GetLength()<<endl;
}
else
cout<<"创建失败!"<<endl;
break;
case '2'://销毁一个表,
cout<<"你真得要销毁表吗?请输入(Y/y)确定:";
cin>>c;
if(c=='Y'||c=='y')
{
list.DestroyList();
cout<<"表已经销毁!"<<endl;
}
break;
case '3'://表是否已空
cout<<"表的当前状态";
if(list.IsEmpty())
cout<<"是:空。"<<endl;
else
cout<<"是:不为空的。"<<endl;
break;
case '4'://获得表的长度。
system("cls");
cout<<"表的长度是:"<<list.GetLength()<<endl;
break;
case '5'://获得表的某位置的元素。
cout<<"从表中取数据。\n请输入位置(1--"<<list.GetLength()<<"):";
cin>>number;
if(list.GetAt(number-1,number1))
{
cout<<"第"<<number<<"个数据是:"<<number1<<endl;
cout<<"表的内容是:"<<endl;
list.Display();
}
else
cout<<"取数据失败!"<<endl;
break;
case '6'://删除表中的数据。
cout<<"从表中删除数据。\n请输入位置(1--"<<list.GetLength()<<"):";
cin>>number;
if(list.GetAt(number-1,number1))
{
cout<<"表的内容是:"<<endl;
list.Display();
cout<<"第"<<number<<"个数据是:"<<number1<<endl;
cout<<"你真得要删除吗?请输入(Y/y)确定:";
cin>>c;
if(c=='Y'||c=='y')
{
list.Delete(number-1);
cout<<"第"<<number<<"个数据是:"<<number1<<"已经删除!"<<endl;
}
}
else
cout<<"删除失败!"<<endl;
cout<<"表中的内容是:"<<endl;
list.Display();
break;
case '7'://添加数据到表中
cout<<"向表中插入数据。\n请输入位置(1--"<<list.GetLength()<<"):";
cin>>number;
cout<<"请输入数据:";
cin>>number1;
if(list.Insert(number-1,number1))
cout<<"数据"<<number1<<"成功地插在表的第"<<number<<"个位置上"<<endl;
else
cout<<"添加失败!"<<endl;
cout<<"表的内容是:"<<endl;
list.Display();
break;
case '8'://追加数据到表尾
cout<<"向表尾追加数据。\n请输入数据:";
cin>>number1;
if(list.Add(number1))
cout<<"数据"<<number1<<"成功地追加在表尾"<<endl;
else
cout<<"追加失败!"<<endl;
cout<<"表的内容是:"<<endl;
list.Display();
break;
case '9':
cout<<"修改表中的数据。\n请输入位置(1--"<<list.GetLength()<<"):";
cin>>number;
cout<<"请输入数据:";
cin>>number1;
if(list.SetAt(number-1,number1))
cout<<"第"<<number<<"个数据修改成功!"<<endl;
else
cout<<"数据修改失败!"<<endl;
cout<<"表的内容是:"<<endl;
list.Display();
break;
case 'A':
case 'a':
cout<<"表的内容是:"<<endl;
list.Display();
break;
default:
cout<<"没有这样的的命令"<<endl;
break;
}
cout<<"按任一键继续!"<<endl;
getch();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -