在这里插入/*===============================================
* 文件名称:学生信息管理系统
* 创 建 者:
* 创建日期:2022年12月29日
* 描 述:
================================================*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define SIZE 100
typedef struct STU
{
char xuehao[20];
char name[20];
float score;
}stu_t;
typedef stu_t data_t;
typedef struct list
{
data_t data[SIZE];
int last;
}seqlist;
//初始化
seqlist *seqlistCreate()
{
seqlist *seq = (seqlist *)malloc(sizeof(data_t)*SIZE);
if(seq == NULL)
perror("malloc");
bzero(seq->data,sizeof(data_t)*SIZE);
seq->last = -1;
return seq;
}
//判空
int seqlist_is_empty(seqlist *seq)
{
return (seq->last == -1)?1:0;
}
//判满
int seqlist_is_full(seqlist *seq)
{
return (seq->last == SIZE-1)?1:0;
}
//求表长
int seqlistLength(seqlist *seq)
{
return seq->last+1;
}
//插入
int seqlistInsert(seqlist *seq)
{
if(seqlist_is_full(seq))
{
puts("表已满");
return -1;
}
char x_h[20] = {0};
char m_z[20] = {0};
float f_s = 0;
scanf("%s",x_h);
getchar();
scanf("%s",m_z);
scanf("%f",&f_s);
seq->last++;
strcpy(seq->data[seq->last].xuehao,x_h);
strcpy(seq->data[seq->last].name,m_z);
seq->data[seq->last].score = f_s;
}
//打印
void seqlistDisplay(seqlist *seq)
{
if(seqlist_is_empty(seq))
{
puts("信息列表为空");
return;
}
for(int i = 0;i <= seq->last;i++)
{
printf("%s %s %f\n",seq->data[i].xuehao,seq->data[i].name,seq->data[i].score);
}
}
//根据名字修改分数
int seqlistChangeByName(seqlist *seq)
{
char m_z[20] = {0};
float f_s = 0;
scanf("%s%f",m_z,&f_s);
for(int i = 0;i <= seq->last;i++)
{
if(strcmp(seq->data[i].name,m_z) == 0)
{
seq->data[i].score = f_s;
return 0;
}
}
puts("没有此人");
return -1;
}
//按名字删除信息
void seqlistDeleteByName(seqlist *seq)
{
char m_z[20] = {0};
scanf("%s",m_z);
if(seqlist_is_empty(seq))
return;
for(int i = 0;i <= seq->last;i++)
{
if(strcmp(seq->data[i].name,m_z) == 0)
{
for(int j = i;j <= seq->last;j++)
{
seq->data[j] = seq->data[j+1];
}
}
}
seq->last--;
}
//按名字查看信息
int seqlistShowByName(seqlist *seq)
{
char m_z[20] = {0};
scanf("%s",m_z);
for(int i = 0;i <= seq->last;i++)
{
if(strcmp(seq->data[i].name,m_z) == 0)
{
printf("%s %s %f\n",seq->data[i].xuehao,seq->data[i].name,seq->data[i].score);
return 0;
}
}
puts("没有此人");
return -1;
}
//清空列表
void seqlistClear(seqlist *seq)
{
seq->last = -1;
}
//销毁列表
void seqlistDestroy(seqlist **seq)
{
free(*seq);
*seq = NULL;
}
//管理界面
void home_page()
{
printf("/###########################################################/\n");
puts("欢迎使用学生管路系统");
puts("请根据提示完成相关操作");
puts("1.添加学生信息 2.根据名字修改信息 3.根据名字删除信息 4根据名字显示信息
puts("5.清空列表 6.销毁列表 7.打印全部学生信息 0.退出系统");
printf("请输入指令:");
}
int main(int argc, char *argv[])
{
seqlist *seq = seqlistCreate();
if(seq == NULL)
perror("seqlistCreat");
int m = 0;
while(1)
{
home_page();
scanf("%d",&a);
switch(a)
{
case 1:seqlistInsert(seq);break;
case 2:seqlistChangeByName(seq);break;
case 3:seqlistDeleteByName(seq);break;
case 4:seqlistShowByName(seq);break;
case 5:seqlistClear(seq);break;
case 6:seqlistDestroy(&seq);break;
case 7:seqlistDisplay(seq);break;
case 0:return 0;
default:break;
}
}
return 0;
} 代码片
学生信息管理系统
最新推荐文章于 2024-10-01 04:50:10 发布