C语言结构体(struct)的详细讲解
#include "stdio.h"
#include "string.h"
#include
//定义存放学生信息的结构体类型
struct StuDentInfo
{
char Name[20]; //姓名
int number; //学号
char phone[20];//电话号码
};
//全局变量区域
unsigned int StuDentCnt=0; //记录已经录入的全部学生数量
//函数声明区域
void PrintStuDentInfoList(void);
void InputStuDentInfo(struct StuDentInfo*info);
void FindStuDentInfo(struct StuDentInfo*info);
void SortStuDentInfo(struct StuDentInfo*info);
void PrintStuDentInfo(struct StuDentInfo*info);
int main()
{
struct StuDentInfo data[100]; //可以100位学生的信息
int number;
while(1)
{
PrintStuDentInfoList(); //打印功能列表
scanf("%d",&number);
printf("
");
switch(number)
{
case 1:
InputStuDentInfo(data);
break;
case 2:
FindStuDentInfo(data);
break;
case 3:
SortStuDentInfo(data);
break;
case 4:
PrintStuDentInfo(data);
break;
case 5:
break;
default:
printf("选择错误!
");
break;
}
}
return 0;
}
/*
函数功能: 打印学生管理系统的功能列表
*/
void PrintStuDentInfoList(void)
{
printf("
--------------学生管理系统功能列表----------------
");
printf("1. 录入学生信息
");
printf("2. 根据学号查找学生信息
");
printf("3. 根据学号排序
");
printf("4. 打印所有学生信息
");
printf("5. 删除指定的学生信息
");
printf("请选择功能序号:");
}
/*
函数功能: 录入学生信息
*/
void InputStuDentInfo(struct StuDentInfo*info)
{
printf("输入学生姓名:");
scanf("%s",info[StuDentCnt].Name);
printf("输入学号:");
scanf("%d",&info[StuDentCnt].number);
printf("输入电话号码:");
scanf("%s",info[StuDentCnt].phone);
StuDentCnt++; //数量自增
}
/*
函数功能: 查找学生信息
*/
void FindStuDentInfo(struct StuDentInfo*info)
{
int num,i;
printf("输入查找的学号:");
scanf("%d",&num);
for(i=0; i { if(info[i].number==num) { printf("信息查找成功,该学生的信息如下: "); printf("姓名:%s ",info[i].Name); printf("学号:%d ",info[i].number); printf("电话号码:%s ",info[i].phone); printf(" "); break; } } if(i==StuDentCnt) { printf("----------%d学号不存在!--------- ",num); } } /* 函数功能: 根据学号排序 */ void SortStuDentInfo(struct StuDentInfo*info) { int i,j; struct StuDentInfo tmp; //保存临时信息 for(i=0; i { for(j=0;j { if(info[j].number>info[j+1].number) { tmp=info[j]; info[j]=info[j+1]; info[j+1]=tmp; } } } } /* 函数功能: 打印所有学生信息 */ void PrintStuDentInfo(struct StuDentInfo*info) { int i=0; printf("-----------所有学生的信息列表------------ "); for(i=0;i { printf("姓名:%s ",info[i].Name); printf("学号:%d ",info[i].number); printf("电话号码:%s ",info[i].phone); printf(" "); } }