1.编写函数int Read(int *p); 录入数组元素,返回值代表元素个数。录入数据时输入0代表数据录入的结束。编写函数void Print(int *p, int n); 负责输出数组中的元素,n代表数组大小。编写函数void Swap(int *p, int m, int *q, int n); 交换主函数里的两个整形数组里的数据值,其中数组的元素个数分别传递给形参m和n。编写选择排序的函数void MySort(int *p, int n); 负责实现数组元素从小到大的排序。
#define _CRT_CESURE_NO_WARNINGS
//编写函数int Read(int* p); 录入数组元素,返回值代表元素个数。录入数据时输入0代表数据录入的结束。
//编写函数void Print(int* p, int n); 负责输出数组中的元素,n代表数组大小。
//编写函数void Swap(int* p, int m, int* q, int n);
//交换主函数里的两个整形数组里的数据值,其中数组的元素个数分别传递给形参m和n。
//编写选择排序的函数void MySort(int* p, int n); 负责实现数组元素从小到大的排序。
#include<stdio.h>
#include<iostream>
using namespace std;
int Read(int* p)
{
int i = 0;
int count = 0;
for (i = 0; i < 10; i++)
{
*(p + i) = 0;
scanf("%d", p + i);
if (*(p + i))
{
count++;
continue;
}
else
break;
}
return count;
}
void Swap(int* a, int m, int* b, int n)
{
int i = 0;
if (m > n)
{
for (i = 0; i < m; i++)
{
if (i < n)
{
int tmp = *(a + i);
*(a + i) = *(b + i);
*(b + i) = tmp;
}
else
{
int tmp = *(a + i);
*(a + i) = *(b + i);
*(b + i) = tmp;
}
}
}
else
{
for (i = 0; i < n; i++)
{
if (i < n)
{
int tmp = *(a + i);
*(a + i) = *(b + i);
*(b + i) = tmp;
}
else
{
int tmp = *(b + i);
*(b + i) = *(a + i);
*(a + i) = tmp;
}
}
}
}
void Print(int* a, int m)
{
int i = 0;
for (i = 0; i < m; i++)
{
if (*(a + i) != 0)
{
printf("%d ", *(a + i));
}
}
printf("\n");
}
void MySort(int* a, int m)
{
int i = 0;
for (i = 0; i < m - 1; i++)
{
int j = 0;
for (j = 0; j < m - i - 1; j++)
{
if (*(a + j) > *(a + j + 1))
{
int tmp = *(a + j);
*(a + j) = *(a + j + 1);
*(a + j + 1) = tmp;
}
}
}
}
int main()
{
int a[10] = { 0 };
int b[10] = { 0 };
int m = Read(a);
int n = Read(b);
Swap(a, m, b, n);
Print(a, n);
Print(b, m);
MySort(a, n);
MySort(b, m);
Print(a, n);
Print(b, m);
return 0;
}
2.定义函数reverse,实现字符串的逆序存储,函数原型为: void reverse(char *s)。并在主函数中实现字符串的输入以及逆序后的输出。
#include<stdio.h>
#include<string.h>
//定义函数reverse,实现字符串的逆序存储,
//函数原型为: void reverse(char *s)。并在主函数中实现字符串的输入以及逆序后的输出。
void reverse(char* s)
{
int len = strlen(s);
int i = 0;
for (i = 0; i < len / 2; i++)
{
char tmp = *(s + i);
*(s + i) = *(s + len - 1- i);
*(s + len - 1 - i) = tmp;
}
}
int main()
{
//字符串的输入
char s[100] = { 0 };
gets(s);
reverse(s);
printf("%s", s);
return 0;
}
3.设计一个矩阵结构体类型aRectangle,该类型有长和宽两个double类型成员。编写函数void Read(aRectangle &a):输入一个矩形的长和宽的值,并确保长宽都在(0,50)范围之内,如果不在范围内设置它们的默认值为1。编写函数double Perimeter(aRectangle &a):求该矩阵的周长。编写函数void Print(aRectangle &a):输出矩阵的周长。
#include<stdio.h>
#include<iostream>
using namespace std;
//设计一个矩阵结构体类型aRectangle,该类型有长和宽两个double类型成员.
//编写函数void Read(aRectangle& a):输入一个矩形的长和宽的值,
//并确保长宽都在(0, 50)范围之内,如果不在范围内设置它们的默认值为1。
//编写函数double Perimeter(aRectangle & a):求该矩阵的周长。
//编写函数void Print(aRectangle & a):输出矩阵的周长。
typedef struct aRectangle
{
double length;
double width;
}aRectangle;
void Read(aRectangle& a)
{
cin >> a.length>>a.width;
//scanf_s("%d %d", &(a.length), &(a.width));
if (a.length >= 50 || a.length <= 0)
{
a.length = 1;
}
if (a.width >= 50 || a.length <= 0)
{
a.width = 1;
}
}
double Perimeter(aRectangle& a)
{
return (a.length + a.width) * 2;
}
void Print(double ret)
{
cout << ret;
//printf("%lf", ret);
}
int main()
{
aRectangle a = { 0,0 };
Read(a);
double ret = Perimeter(a);
Print(ret);
return 0;
}
4.定义一个坐标点的结构体类型Point,该类型有两个double类型成员,分别代表横纵两个坐标;然后再设计一个矩形结构体类型bRectangle,该类型有两个Point类型成员,分别代表左下角与右上角两个点。编写函数void Read(bRectangle &rec):输入一个矩形的的左下角与右上角两个点的值,并判断该矩形的两个点是否能够构成一个矩形。如果不能构成矩形,则将矩形的两点初始化为(0,0)和(1,1)。编写函数double Area(bRectangle &rec):计算该矩形的面积。编写函数void bPrint(bRectangle &rec):输出矩阵的面积。
#include<stdio.h>
#include<iostream>
using namespace std;
//定义一个坐标点的结构体类型Point,该类型有两个double类型成员,
//分别代表横纵两个坐标;然后再设计一个矩形结构体类型bRectangle,
//该类型有两个Point类型成员,分别代表左下角与右上角两个点。
//编写函数void Read(bRectangle& rec) :输入一个矩形的的左下角与右上角两个点的值,
//并判断该矩形的两个点是否能够构成一个矩形。
//如果不能构成矩形,则将矩形的两点初始化为(0,0)和(1, 1)。
//编写函数double Area(bRectangle & rec):计算该矩形的面积。
//编写函数void bPrint(bRectangle & rec):输出矩阵的面积。
typedef struct Point
{
double x;
double y;
}Point;
typedef struct bRectangle
{
Point a1;
Point a2;
}bRectangle;
void Read(bRectangle& rec)
{
//输入矩形左下角和右上角的坐标
cin >> rec.a1.x >> rec.a1.y;
cin >> rec.a2.x >> rec.a2.y;
if (rec.a1.x == rec.a2.x || rec.a1.y == rec.a2.y)
{
rec.a1.x = 0;
rec.a1.y = 0;
rec.a2.x = 1;
rec.a2.y = 1;
}
}
double Area(bRectangle& rec)
{
double x1 = (rec.a2.x) - (rec.a1.x);
double y1 = (rec.a2.y) - (rec.a1.y);
return (x1*y1);
}
void bPrint(double ret)
{
cout << ret;
}
int main()
{
bRectangle rec = { 0,0 };
Read(rec);
double ret = Area(rec);
bPrint(ret);
return 0;
}
5.设计相应的结构体类型数组,完成一个班(为方便输入,设定为5人)学生的学号、姓名、语文成绩、数学成绩、外语成绩的输入;计算每位同学的总分及平均分,并按表格形式输出学生的所有信息;将上述表格按照学生的平均分排序并按表格形式输出。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#define MAX 5
#include<assert.h>
#include<string.h>
typedef struct PeoInfo
{
char id[15];
char name[15];
double chin;
double math;
double eng;
double socre;
double aver;
}PeoInfo;
//分装到一层
typedef struct Student
{
PeoInfo data[MAX];//存放多个人的信息
int count;//计数记录当前的人的信息
}Student;
void InitStudent(Student* pc)
{
assert(pc);
pc->count = 0;
memset(pc->data, 0, sizeof(pc->data));
}
void AddStudent(Student* pc)
{
assert(pc);
if (pc->count >= MAX)
{
printf("表格已满,无法添加\n");
return;
}
printf("请输入学生学号:");
scanf("%s", pc->data[pc->count].id);
printf("请输入学生姓名:");
scanf("%s", pc->data[pc->count].name);
printf("请输入语文成绩:");
scanf("%lf", &(pc->data[pc->count].chin));
printf("请输入数学成绩:");
scanf("%lf", &(pc->data[pc->count].math));
printf("请输入英语成绩:");
scanf("%lf", &(pc->data[pc->count].eng));
pc->data[pc->count].socre = (pc->data[pc->count].chin + pc->data[pc->count].math + pc->data[pc->count].eng);
pc->data[pc->count].aver = (pc->data[pc->count].socre) / 3.0;
pc->count++;
printf("增加成功\n");
}
void ShowStudent(const Student* pc)
{
assert(pc);
//printf(" ________________________________________________________________________________________________________________\n");
printf("—————————————————————————————————————————————————————————————\n");
printf("%-15s\t\t%-15s\t\t%-2s\t%-2s\t%-2s\t%-2s\t\t%-2s\n ", "|学号"," |姓名"," |语文成绩",
" |数学成绩"," |英语成绩"," |总分"," |平均成绩|");
int i = 0;
for (i = 0; i < pc->count; i++)
{
printf("—————————————————————————————————————————————————————————————\n");
printf("|%-15s\t |%-15s\t |%-.2lf\t\t |%-.2lf\t\t |%-.2lf\t\t |%-.2lf\t |%-.2lf\t |\n ", pc->data[i].id, pc->data[i].name, pc->data[i].chin,
pc->data[i].math, pc->data[i].eng, pc->data[i].socre, pc->data[i].aver);
}
//printf(" ________________________________________________________________________________________________________________\n");
printf("—————————————————————————————————————————————————————————————\n");
}
int main()
{
Student Stu;//Stu就是学生信息
//初始化学生信息,模块化的工作,不直接进行初始化
InitStudent(&Stu);
do
{
//增加学生信息
AddStudent(&Stu);
} while (Stu.count < MAX);
//显示学生信息
ShowStudent(&Stu);
return 0;
}
6.第六题还存在着小问题,先拿来应应急,过几天发另改正后的一个版本
(1)主界面为
*********************
1.输入一名学生信息
2.删除一名学生信息
3.修改一名学生信息
4.查找一名学生信息
5.输出全部学生信息
6.排序
*********************
(2)“1.输入一名学生信息”的要求:若输入1,则清屏后显示表头,并输出提示信息:“请输入一名学生信息”,输入一名学生信息后(注意:此时应计算出该学生的总分及平均分),输出提示信息:“是否输入下一名学生信息(y/n)”,若输入'y'则继续输入下一名学生信息,若输入'n',则返回主界面。
(3)“2.删除一名学生信息”的要求:若输入2,则清屏,并输出子界面1
*************************
1.输入待删除学生的学号
2.输入待删除学生的姓名
3.返回主界面
*************************
若输入1,则清屏并输出提示信息:“请输入待删除学生的学号”,输入一名学生学号后,若学生学号正确,则输出“删除成功,并返回子界面1;若学生学号不正确,则输出“该学生不存在”,并返回子界面1;
若输入2,则清屏并输出提示信息:“请输入待删除学生的姓名”,输入一名学生姓名后,若学生姓名正确,则输出“删除成功,并返回子界面1;若学生姓名不正确,则输出“该学生不存在”,并返回子界面1;
若输入3,则返回主界面
(4)“3.修改一名学生信息”的要求:若输入3,则清屏,并输出提示信息:“请输入待删除学生的学号”,输入一名学生学号后,若正确,则输出如下子界面2;若输入不正确,则输出“该学生不存在”,并清屏及输出提示信息:“请输入待删除学生的学号”。
子界面2如下:
*************************
1.修改学生的学号
2.修改学生的姓名
3.修改学生的语文成绩
4.修改学生的数学成绩
5.修改学生的英语成绩
6.返回主菜单
*************************
若输入1,则清屏并输出提示信息:“请输入修改后的学号:”,输入后,返回子界面2;
若输入2,则清屏并输出提示信息:“请输入修改后的姓名:”,输入后,返回子界面2;
若输入3,则清屏并输出提示信息:“请输入修改后的语文成绩:”,输入后,返回子界面2;
若输入4,则清屏并输出提示信息:“请输入修改后的数学成绩:”,输入后,返回子界面2;
若输入5,则清屏并输出提示信息:“请输入修改后的英语成绩:”,输入后,返回子界面2;
(5)“4.查找一名学生信息”的要求:若输入4,则清屏,并输出子界面3
子界面3如下:
*************************
1.查找学生的学号
2.查找学生的姓名
3.返回主菜单
*************************
若输入1,则清屏并输出提示信息:“请输入待查找学生的学号”,输入一名学生学号后,若学生学号正确,则分行输出该学生的各项信息后,输出一行提示信息“是否返回上级界面?(y/n)”,若输入y则返回界面3,否则继续停留在该界面;若学生学号不正确,则输出“该学生不存在”,并返回子界面3;
若输入2,则清屏并输出提示信息:“请输入待查找学生的姓名”,输入一名学生姓名后,若学生姓名正确,则分行输出该学生的各项信息后,输出一行提示信息“是否返回上级界面?(y/n)”,若输入y则返回界面3,若输入n则继续停留在该界面;若学生姓名不正确,则输出“该学生不存在”,并返回子界面3;
若输入3,则返回主界面
(6)“5.输出全部学生信息”的要求:若输入5,则清屏,并按第5题要求按表格方式输出表格
(7)“6.排序”的要求:若输入6,则清屏,并输出子界面4
子界面4如下:
*************************
1.按照学生的学号排序
2.按照学生的语文成绩排序
3.按照学生的数学成绩排序
4.按照学生的英语成绩排序
5.按照学生的总分排序
6.返回主菜单
*************************
若输入1,则清屏,并按第5题要求按表格方式输出排序后的表格
若输入2,则清屏,并按第5题要求按表格方式输出排序后的表格
若输入3,则清屏,并按第5题要求按表格方式输出排序后的表格
若输入4,则清屏,并按第5题要求按表格方式输出排序后的表格
若输入5,则清屏,并按第5题要求按表格方式输出排序后的表格
若输入6,则清屏,并返回主菜单
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<stdlib.h>
#define MAX 100
using namespace std;
#include<assert.h>
typedef struct PeoInfo
{
char id[15];
char name[15];
double chin;
double math;
double eng;
double score;
double aver;
}PeoInfo;
typedef struct Student
{
PeoInfo data[MAX];
int count;
}Student;
void menu()
{
printf("******************\n");
printf("1.输入一名学生信息\n");
printf("2.删除一名学生信息\n");
printf("3.修改一名学生信息\n");
printf("4.查找一名学生信息\n");
printf("5.输出全部学生信息\n");
printf("6.排序\n");
printf("******************\n");
}
int menu1()
{
printf("是否输入下一名学生信息(y/n)");
char i = 0;
cin >> i;
if (i == 'n')
return 0;
else if (i == 'y')
return 1;
else
{
printf("输入错误,请重新选择\n");
return menu1();
}
}
int Find(Student* pc, char s[])
{
int i = 0;
for (i = 0; i < pc->count; i++)
{
if (strcmp(pc->data[i].id, s) == 0)
return i;
if (strcmp(pc->data[i].name, s) == 0)
return i;
}
return -1;
}
void DelStudent(Student* pc)
{
int input = 0;
char id[15];
char name[15];
while (input != 3)
{
printf("********************\n");
printf("1.输入待删除学生的学号\n");
printf("2.输入待删除学生的姓名\n");
printf("3.返回主界面\n");
printf("********************\n");
int pos1 = 0;
int pos2 = 0;
int i = 0;
cin >> input;
if (pc->count == 0)
{
printf("表格为空,没有信息可以删除\n");
return;
}
switch (input)
{
case 1:
system("cls");
printf("输入待删除学生的学号:");
scanf("%s", id);
//删除1:查找2:删除
pos1 = Find(pc, id);
if (pos1 == -1)
{
printf("该学生不存在\n");
return;
}
else
{
for (i = pos1; i < pc->count - 1; i++)
{
pc->data[i] = pc->data[i + 1];
}
pc->count--;
printf("删除成功\n");
}
break;
case 2:
system("cls");
printf("输入待删除学生的姓名:");
scanf("%s", name);
pos2 = Find(pc, name);
if (pos2 == -1)
{
printf("该学生不存在\n");
return;
}
else
{
for (i = pos2; i < pc->count - 1; i++)
{
pc->data[i] = pc->data[i + 1];
}
pc->count--;
printf("删除成功\n");
}
break;
case 3:
system("cls");
break;
}
}
}
void InitStudent(Student* pc)
{
//确保pc不是一个空指针
pc->count = 0;
memset(pc->data, 0, sizeof(pc->data));
}
void AddStudent(Student* pc)
{
if (pc->count >= MAX)
{
printf("表格已满,无法添加\n");
return;
}
printf("请输入学生学号:");
scanf("%s", pc->data[pc->count].id);
printf("请输入学生姓名:");
scanf("%s", pc->data[pc->count].name);
printf("请输入语文成绩:");
scanf("%lf", &(pc->data[pc->count].chin));
printf("请输入数学成绩:");
scanf("%lf", &(pc->data[pc->count].math));
printf("请输入英语成绩:");
scanf("%lf", &(pc->data[pc->count].eng));
pc->data[pc->count].score = (pc->data[pc->count].chin + pc->data[pc->count].math + pc->data[pc->count].eng);
pc->data[pc->count].aver = (pc->data[pc->count].score) / 3.0;
pc->count++;
printf("增加成功\n");
}
//修改id和name
void Change1(struct Student* pc, char s[], int pos, int input)
{
//字符串拷贝
if (input == 1)
strcpy(pc->data[pos].id, s);
if (input == 2)
strcpy(pc->data[pos].name, s);
}
void Change2(struct Student* pc, double l, int pos, int input)
{
if (input == 3)
pc->data[pos].chin = l;
else if (input == 4)
pc->data[pos].math = l;
else if (input == 5)
pc->data[pos].eng = l;
}
int menu3()
{
printf("********************\n");
printf("1.修改学生的学号\n");
printf("2.修改学生的姓名\n");
printf("3.修改学生的语文成绩\n");
printf("4.修改学生的数学成绩\n");
printf("5.修改学生的英语成绩\n");
printf("6.返回主菜单\n");
printf("********************\n");
int input = 0;
scanf("%d", &input);
return input;
}
void Midfy(struct Student* pc)
{
char s[15];
double chin = 0;
double math = 0;
double eng = 0;
int input = 0;
while (input != 6)
{
printf("请输入待修改学生的学号:");
scanf("%s", s);
int pos = Find(pc, s);
if (pc->count == 0)
{
printf("没有录入学生信息,无法修改\n");
return;
}
if (pos == -1)
{
printf("该学生不存在\n");
//system("cls");
}
if (pos != -1)
{
input = menu3();
switch (input)
{
case 1:
system("cls");
printf("请输入修改后的学号:");
scanf("%s", s);
Change1(pc, s, pos, input);
printf("修改成功\n");
input = menu3();
break;
case 2:
system("cls");
printf("请输入修改后的姓名:");
scanf("%s", s);
Change1(pc, s, pos, input);
printf("修改成功\n");
input = menu3();
break;
case 3:
system("cls");
printf("请输入修改后的语文成绩:");
scanf("%lf", &chin);
Change2(pc, chin, pos, input);
printf("修改成功\n");
input = menu3();
break;
case 4:
system("cls");
printf("请输入修改后的数学成绩:");
scanf("%lf", &math);
Change2(pc, math, pos, input);
printf("修改成功\n");
input = menu3();
break;
case 5:
system("cls");
printf("请输入修改后的英语成绩:");
scanf("%lf", &eng);
Change2(pc, eng, pos, input);
printf("修改成功\n");
input = menu3();
break;
case 6:
system("cls");
return;
break;
}
}
}
}
void menu4()
{
printf("****************\n");
printf("1.查找学生的学号\n");
printf("2.查找学生的姓名\n");
printf("3.返回主菜单\n");
printf("****************\n");
}
void Search(struct Student* pc)
{
int input = 0;
char i = 0;
char s[15];
int pos = 0;
int flag = 1;
do
{
if (flag)
menu4();
scanf("%d", &input);
switch (input)
{
case 1:
printf("请输入待查找学生的学号:");
scanf("%s", s);
pos = Find(pc, s);
if (pc->count == 0)
printf("学生信息未录入\n");
if (pos == -1)
printf("该学生不存在\n");
else
{
printf("%-15s\t%-15s\t%-.2lf\t%-.2lf\t%-.2lf\n", pc->data[pos].id, pc->data[pos].name,
pc->data[pos].chin, pc->data[pos].math, pc->data[pos].eng);
printf("是否返回上级界面?(y/n)");
scanf("%s", &i);
if (i == 'n')
flag = 0;
}
break;
case 2:
printf("请输入待查找学生的姓名:");
scanf("%s", s);
pos = Find(pc, s);
if (pc->count == 0)
printf("学生信息未录入\n");
if (pos == -1)
printf("该学生不存在\n");
else
{
printf("%-15s\t%-15s\t%-.2lf\t%-.2lf\t%-.2lf\n", pc->data[pos].id, pc->data[pos].name,
pc->data[pos].chin, pc->data[pos].math, pc->data[pos].eng);
printf("是否返回上级界面?(y/n)");
scanf("%s", &i);
if (i == 'n')
flag = 0;
}
break;
case 3:
system("cls");
menu();
break;
}
} while (input != 3);
}
void Show(struct Student* pc)
{
assert(pc);
//printf(" ________________________________________________________________________________________________________________\n");
printf("—————————————————————————————————————————————————————————————\n");
printf("%-15s\t\t%-15s\t\t%-2s\t%-2s\t%-2s\t%-2s\t\t%-2s\n ", "|学号", " |姓名", " |语文成绩",
" |数学成绩", " |英语成绩", " |总分", " |平均成绩|");
int i = 0;
for (i = 0; i < pc->count; i++)
{
printf("—————————————————————————————————————————————————————————————\n");
printf("|%-15s\t |%-15s\t |%-.2lf\t\t |%-.2lf\t\t |%-.2lf\t\t |%-.2lf\t |%-.2lf\t |\n ", pc->data[i].id, pc->data[i].name, pc->data[i].chin,
pc->data[i].math, pc->data[i].eng, pc->data[i].score, pc->data[i].aver);
}
//printf(" ________________________________________________________________________________________________________________\n");
printf("—————————————————————————————————————————————————————————————\n");
}
void menu5()
{
printf("******************\n");
printf("1.按照学生学号排序\n");
printf("2.按照语文成绩排序\n");
printf("3.按照数学成绩排序\n");
printf("4.按照英语成绩排序\n");
printf("5.按照总分排序\n");
printf("6.返回主菜单\n");
printf("******************\n");
}
int cmp_stu_by_id(const void* e1, const void* e2)
{
return strcmp(((PeoInfo*)e1)->id, ((PeoInfo*)e2)->id);
}
void Swap(double* num)
{
double chin = *num;
*num = *(num + 1);
*(num + 1) = chin;
}
void my_sort(struct Student* pc, int input)
{
int i = 0;
for (i = 0; i < pc->count - 1; i++)
{
int j = 0;
for (j = 0; j < pc->count - i - 1; j++)
{
if (input == 2)
{
if (pc->data[i].chin > pc->data[i + 1].chin)
{
Swap(&(pc->data[i].chin));
}
}
else if (input == 3)
{
if (pc->data[i].math > pc->data[i + 1].math)
{
Swap(&(pc->data[i].math));
}
}
else if (input == 4)
{
if (pc->data[i].eng > pc->data[i + 1].eng)
{
Swap(&(pc->data[i].eng));
}
}
else if (input == 5)
{
if (pc->data[i].score > pc->data[i + 1].score)
{
Swap(&(pc->data[i].score));
}
}
}
}
}
void Sort(struct Student* pc)
{
assert(pc);
int input = 0;
do
{
menu5();
scanf("%d", &input);
switch (input)
{
case 1:
system("cls");
qsort(pc->data, pc->count, sizeof(PeoInfo), cmp_stu_by_id);
Show(pc);
break;
case 2:
system("cls");
my_sort(pc, input);
Show(pc);
break;
case 3:
system("cls");
my_sort(pc, input);
Show(pc);
break;
case 4:
system("cls");
my_sort(pc, input);
Show(pc);
break;
case 5:
system("cls");
my_sort(pc, input);
Show(pc);
break;
case 6:
menu();
break;
}
} while (input != 6);
}
int main()
{
int input = 0;
Student Stu;
InitStudent(&Stu);
do
{
menu();
//结构体元素初始化
cin >> input;
switch (input)
{
case 1:
{
system("cls");
int ch = 0;
do
{
//增加学生信息
AddStudent(&Stu);
ch = menu1();
} while (ch);
break;
}
case 2:
{
system("cls");
DelStudent(&Stu);
break;
}
case 3:
system("cls");
Midfy(&Stu);
break;
case 4:
system("cls");
Search(&Stu);
break;
case 5:
system("cls");
Show(&Stu);
break;
case 6:
system("cls");
Sort(&Stu);
break;
default:
printf("输入错误,请重新选择\n");
break;
}
} while (input);
}