##标题重复率太高的学生管理系统
##include<windows.h>
#include<string>
using namespace std;
typedef struct Student
{
int num;
struct Student *next;
}node;
void chushihua(node *pp)/\\\\\\初始化信息./\\\\\\\\\\//
{
node *pp1,*pp2;
pp1 = new(node);
pp1 = pp;
int i = 1;
int x, y;
printf("请稍等");
for (x = 1; x<= 2; x++)
{
if (x % 3 == 0)
{
system("cls");
Sleep(100);
printf("请稍等");
}
for (y = 0; y <= 5; y++){ Sleep(300); printf("."); }
for (y = 0; y <= 5; y++)printf("\b");
for (y = 0; y <= 5; y++)printf(" ");
for (y = 0; y <= 5; y++)printf("\b");
}
while (i)/初始化
{
pp2= new(node);
pp2->next = NULL;
cout << "请输入学号:";
cin >> pp2->num;
pp1->next = pp2;
pp1 = pp1->next;
cout << "请选择是否退出:\n1.继续(请输入非0数)\n2.返回上一级(请输入0)\n";
cin >> i;
}
}
void showall(node *pp)/\\\\\\输出全部信息./\\\\\\\\\\//
{
int i = 1;
node *pp1;
pp1 = pp;
pp1 = pp1->next;
do
{
cout << "\t\t学号" << i << "=( " << pp1->num << " )" << endl;;
pp1 = pp1->next;
i++;
} while (pp1 != NULL);
cout << "展示完毕!\n";
}
void zeng(node *pp)插入信息
{
int i = 1;
node *pp1,*pp2;
pp2 = pp;
///尾
cout << "\n\t\t\t尾插" << endl;
while (i)
{
pp1 = new(node);
pp1->next = NULL;
cout << "请输入需要增加的信息\nnum=";
cin >> pp1->num;
while (pp2->next != NULL)//找到尾
{
pp2 = pp2->next;
}
pp2->next = pp1;//把增加的插到尾处
cout << "\n请选择是否退出:\n1.继续输入信息(请输入非0数)\n2.返回上一级(请输入0)\n";
cin >> i;
}
///头
cout << "\n\t\t\t头插" << endl;
i = 1;
node *pp11, *pp22;
pp22 = pp->next;
while (i)
{
pp11 = new(node);
pp11->next = NULL;
cout << "请输入需要增加的信息\nnum=";
cin >> pp11->num;
pp11->next = pp22;
pp->next = pp11;
pp22 = pp11;
cout << "\n请选择是否退出:\n1.继续输入信息(请输入非0数)\n2.返回上一级(请输入0)\n";
cin >> i;
}
}
void paixu(node *pp)//进行num排序。
{
cout << "\t\t接下来进行num排序\n" << endl;
int temp,min;
node *pp1,*pp2;
pp1 = pp2 = new(node);
pp1 = pp->next;
while (pp1 != NULL)
{
min = pp1->num;
pp2 = pp1->next;
while (pp2 != NULL)
{
if (pp2->num<min)
{
temp = pp2->num;
pp2->num = min;
min = temp;
}
pp2 = pp2->next;
}
pp1->num = min;
pp1 = pp1->next;
}
int x, y;
printf("请稍等");
for (x = 1; x <= 2; x++)
{
if (x % 3 == 0)
{
system("cls");
Sleep(100);
printf("请稍等");
}
for (y = 0; y <= 5; y++){ Sleep(300); printf("."); }
for (y = 0; y <= 5; y++)printf("\b");
for (y = 0; y <= 5; y++)printf(" ");
for (y = 0; y <= 5; y++)printf("\b");
}
}
void shan(node *pp)//删除节点//
{
showall(pp);
node *ppleft,*ppright;
int i,j=1;
cout << "\n\t\t\t删除节点";
while (j)
{
ppright = pp->next;
ppleft = pp;
cout << "\n请输入要删除的num:";
cin >> i;
while (ppright != NULL)
{
if (ppright->num == i)
{
ppleft->next = ppright->next;
break;
}
ppleft = ppright;
ppright = ppright->next;
}
cout << "\n请选择是否退出:\n1.继续输入信息(请输入非0数)\n2.返回上一级(请输入0)\n";
cin >> j;
}showall(pp);
}
void xiugai(node *pp)
{
node *pp1;
pp1 = pp;
int i,t=0;
cout << "请输入您需要修改的学号:";
cin >> i;
while (pp1 != NULL)
{
if (pp1->num == i)
{
cout << "输入您要修改的信息:";
cin >> pp1->num;
t = 1;
break;
}
}
if (t = 0)
{
cout << "输入错误!查无此人";
}
else cout << "修改完毕!";
}
void outdelete(node *pp)
{
node *pp1, *pp2;
pp1 = pp;
pp2 = pp1->next;
do
{
delete(pp1);
pp1 = pp2;
pp2 = pp2->next;
} while (pp2 != NULL);
cout << "释放完毕!";
}
int main()
{
int i = 1,j,k;
node *p;
p = new(node);
p->next = NULL;
cout << "\t\t\t\t学生管理系统\n" << "首先进行初始化\n";
chushihua(p);
Sleep(500);
system("cls");
while (i)
{
cout << "\t\t\t\t学生管理系统\n"
<< "1.增添节点\n"
<< "2.进行学号大小排序\n"
<< "3.删除信息\n"
<< "4.输出所有信息\n"
<< "5.修改信息\n"
<< "6.退出系统\n"
<< endl
<< "请选择操作:";
cin >> j;
switch (j)
{
case 1:zeng(p); {i = 1; cout << "\n9秒后返回上一级";
cout << "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b";//15个退格//
for (k = 8; k >= 0; k--)
{
Sleep(1000);
cout << k << "\b";
}system("cls"); break; }//增添节点
case 2:paixu(p); {i = 1; cout << "\n9秒后返回上一级";
cout << "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b";//15个退格//
for (k = 9; k >= 0; k--)
{
Sleep(1000);
cout << k << "\b";
}system("cls"); break; }//按学号排序
case 3:shan(p); {i = 1; cout << "\n9秒后返回上一级";
cout << "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b";//15个退格//
for (k = 8; k >= 0; k--)
{
Sleep(1000);
cout << k << "\b";
} system("cls"); break; }//删除节点
case 4:showall(p); {i = 1; cout << "\n9秒后返回上一级";
cout << "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b";//15个退格//
for (k = 8; k >= 0; k--)
{
Sleep(1000);
cout << k << "\b";
} system("cls"); break; }//输出所有信息
case 5:xiugai(p); {i = 1; cout << "\n9秒后返回上一级";
cout << "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b";//15个退格//
for (k = 8; k >= 0; k--)
{
Sleep(1000);
cout << k << "\b";
} system("cls"); break; }//输出所有信息
case 6:{i = 0; outdelete(p); break; }//退出系统
default:{cout << "输入错误!请重新输入:"; cout << "\n9秒后返回上一级";
cout << "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b";//15个退格//
for (k = 8; k >= 0; k--)
{
Sleep(1000);
cout << k << "\b";
}system("cls"); break; }
}
}
system("pause");
return 0;
}