#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<Windows.h>
#include<conio.h>
#define MAX_LEN 20
#define STU_tel 200
#define MAX_Add 20
#define N 30
typedef struct Student
{
_int64 id; //学号
char name[MAX_LEN]; //姓名
char sex[8]; //性别
int dorm; //宿舍号
char Class; //班级
char add[MAX_Add]; //院系
_int64 tel; //手机号码
}STU;
STU stu[STU_NUM];
int ch = -1;
int Menu(void);
int n = 0; /* 学生人数为n */
int Menu(); //主菜单
void choose(int ch); //选择
void ReadData(); //读入数据
void Searchbyid(); //通过学号搜索信息
void SortByid(); //按学号从小到大排序
void Modifydata(); //修改信息
void Deletedatd(); //删除信息
void main()
{
printf("请输入要录入的学生数量(n<=200):\n");
scanf("%d", &n);
while (1) {
ch = Menu();
choose(ch);
ch = -1;
}
}
int Menu()
{
int ch;
printf("*********************┍ -----------------------┑ \n");
printf(" 欢迎使用学生通信管理系统 *********************\n");
printf("**********************┕------------------------┙ *********************\n");
printf("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx菜单xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n");
printf("======================================================================\n");
printf("....... 1.录入信息 ..... 2.查询信息 .......\n");
printf("....... 3.排序功能 ..... 4.删除信息 .......\n");
printf("....... 5.修改数据 ..... 0.退出系统 .......\n");
printf("请输入你的选择:\n");
scanf("%d", &ch);
return ch;
}
void choose(int ch)
{
switch (ch)
{
case 1:
printf("请输入 学号,姓名,性别,宿舍号,班级,院系,手机号码(Pause:0):\n");
ReadData();
break;
case 2:
printf("请输入你想要搜索的学生学号 : \n");
Searchbyid();
break;
case 3:
SortByid();
break;
case 4:
Modifydata();
break;
case 5:
Deletedatd();
break;
case 0:
printf("结束程序!");
exit(0);
default: printf("输出错误!\n");
}
}
void ReadData() //读入数据
{
int i;
for (i = 0; i < n; i++)
{
printf("学号:");
scanf("%lld", &stu[i].id);
if (stu[i].id == 0)break;
getchar();
printf("姓名:");
gets(stu[i].name);
printf("性别:");
scanf("%s", &stu[i].sex);
getchar();
printf("宿舍号:");
scanf("%d", &stu[i].dorm);
printf("班级:");
scanf("%s", &stu[i].Class);
printf("院系:");
scanf("%s", &stu[i].add);
getchar();
printf("手机号码:");
scanf("%lld", &stu[i].tel);
printf("\n");
}
}
void Searchbyid() //2.查找
{
_int64 term = -1;
int i;
scanf("%lld", &term);
for (i = 0; i < n; i++)
{
if (term == stu[i].id)
{
printf("学号:%lld\n", stu[i].id);
printf("姓名:%s\n", stu[i].name);
printf("性别:%s\n", stu[i].sex);
printf("宿舍号:%d\n", stu[i].dorm);
printf("班级:%s\n", stu[i].Class);
printf("院系:%s\n", stu[i].add);
printf("手机号码:%lld\n", stu[i].tel);
term = -2;
}
}
if (term != -2)
{
printf("查无此人!\n");
}
getch();
}
void SortByid() //3.排序
{
STU temp1 = { 0 };
int i, j;
for (i = 0; i < n - 1; i++)
{
if (stu[i].id > stu[i + 1].id)
{
temp1 = stu[i];
stu[i] = stu[i + 1];
stu[i + 1] = temp1;
}
}
for (j = 0; j < n; j++)
{
printf("学号:%lld\n", stu[j].id);
printf("姓名:%s\n", stu[j].name);
printf("性别:%s\n", stu[j].sex);
printf("宿舍号:%d\n", stu[j].dorm);
printf("班级:%s\n", stu[j].Class);
printf("院系:%s\n", stu[j].add);
printf("手机号码:%lld\n", stu[j].tel);
printf("\n");
}
getch();
}
void Deletedatd()//4.删除信息
{
int i, j, flag = 0;
_int64 id1;
printf("请输入学号:\n");
scanf("%lld", &id1);
for (i = 0; i < n; i++)
{
if (stu[i].id == id1)
{
flag = 1;
for (j = i; j < n - 1; j++)
{
stu[j] = stu[j + 1];
}
}
}
getch();
}
void Modifydata() //5.修改信息
{
int i, item, j = -1;
_int64 s1;
printf("请输入想要修改的学生学号:\n");
scanf("%lld", &s1);
for (i = 0; i < n; i++)
{
if (stu[i].id == s1)
{
j = i;
printf("1.修改姓名:\n");
printf("2.修改性别:\n");
printf("3.修改宿舍号:\n");
printf("4.修改班级:\n");
printf("5.修改院系:\n");
printf("6.修改手机号码:\n");
printf("0.结束程序!\n");
while (1)
{
printf("请选择:");
scanf("%d", &item);
switch (item)
{
case 1:
printf("请输入新的名字:\n");
scanf("%s", &stu[j].name);
break;
case 2:
printf("请输入新的性别:\n ");
scanf("%s", &stu[j].sex);
break;
case 3:
printf("请输入新的宿舍号:\n");
scanf("%d", &stu[j].dorm);
break;
case 4:
printf("请输入新的班级:\n");
scanf("%", &stu[j].Class);
break;
case 5:
printf("请输入新的院系:\n");
scanf("%s", &stu[j].add);
break;
case 6:
printf("请输入新的手机号码:\n");
scanf("%lld", &stu[j].tel);
break;
default: printf("输入错误!\n");
}
if (item == 0)
break;
}
}
}
getch();
}