/*
Name: studentmanage.cpp
Copyright: 2113040833
Author: 付佳伟
Date: 06/03/22 16:52
Description: 某班学生信息处理学生信息包括:学号,姓名,成绩1,成绩2;
*/
#include<Stdio.h>
#include<stdlib.h>
//预设人数人数//
#define init_size 50
//定义学生结构体//
typedef struct student
{
int num;
char name[20];
int score1;
int score2;
} student;
//函数声明//
void init(student *&);//数组空间动态分配//
void input(student *&);//数据的输入//
void querybynum(student *);//按学号查询 //
void querybyname(student *);//按姓名查询 //
void print(student *);//输出所有的信息//
void destroy(student*&);//释放内存,推出系统//
int main()
{
//系统功能主菜单;//
int flag;
student *p;
while(1)
{
printf("**********学生信息管理系统主菜单***********\n");
printf("********* 1 :输入学生信息****************\n");
printf("********* 2 :查询所以学生信息**********\n");
printf("********* 3 :按学号查询学生信息**********\n");
printf("********* 4 :推出系统********************\n");
printf("********* 5 :请输入你想完成的编号********\n");
scanf("%d",&flag);
switch(flag)
{ case 1:init(p);
input(p);
break;
case 2:print(p);
break;
case 3:querybynum(p);
break;
case 4:destroy(p);
break;
default :printf("没有你想完成的语句");}}
return 0;}
//完成函数的定义//
//数组空间动态分配//
void init(student *&q)
{ q=(student *)malloc(sizeof(student)*init_size);
if(!q)
{printf("内存分配失败") ;
exit(-2);
}
}
//数据的输入//
int g_count;
void input(student *&q)
{ printf("请输入班级人数");
scanf("%d",&g_count);
if(g_count<=init_size)
{ //完成学生信息的输入//
printf("请输入学生的信息:\n学号 姓名 成绩1 成绩2");
int i;
for(i=0;i<g_count;i++)
{scanf("%d%s%d%d",&q[i].num,&q[i].name,&q[i].score1,&q[i].score2);
}
}
else
{
printf("预设空间不足");}
}
//按学号来查询//
void querybynum(student *q)
{ int num;
printf("请输入你想查询的学号");
scanf("%d",&num);
if(num>0&&num<=g_count)
{ q=q+num-1;
printf("学号为%d的学生信息为:\n",num);
printf("学号:%d,姓名:%s,性别:%c,年龄:%d\n",q->num,q->name,q->score1,q->score2);
}
else
{printf("学生学号不正确");
}
}
//输出所有信息//
void print(student *q)
{
printf("全部同学成绩如下");
int i;
for(i=0;i<g_count;i++)
{printf("学号:%d,姓名:%s,性别:%c,年龄:%d\n",q->num,q->name,q->score1,q->score2);}
}
//释放内存,推出系统//
void destroy(student*&q)
{ free(q);
exit(0);
}
c语言实现学生信息管理系统
最新推荐文章于 2024-07-18 19:57:00 发布