位置:首页 > 软件操作教程 > 编程开发 > C语言 > 问题详情

增加或删除学生信息在C语言的程序中如何编写?

提问人:杨紫红发布时间:2020-11-17

#include "stdio.h"

struct student

{

int ID;

char name[20];

struct

{

int year,month,day;

}birthday;

float scores[3];

char address[100];

};

void stud_out(struct student *a,int n);

int stud_ins(struct student *a,int n);

void stud_del(struct student *a,int *n,int j);


int main()

{

struct student stu[50]={

{1001,"李天骄",1990,12,3,87.5,93.6,79.5,"北京联合大学信息学院97号"},

{1002,"张璍萸",1991,2,13,97.5,83.6,89.5,"北京联合大学信息学院97号"},

{1003,"陈自逸",1989,10,31,77.5,88.6,79.5,"北京联合大学信息学院97号"}};

int num=3;

int n,k;

stud_out(stu,num);

while(1)

{

printf("请选择操作内容:1.增加学生;2.删除学生;0.退出系统!\n");

scanf("%d",&k);

if(k==1)

{

num=stud_ins(stu,num);

stud_out(stu,num);

}

else if(k==2)

{

printf("请选择删除第几个学生\n");

scanf("%d",&n);

stud_del(stu,&num,n);

printf("删除第%d个学生后\n",n);

stud_out(stu,num);

}

else 

{

break;

}

}

return 0;


}

int stud_ins(struct student *a,int n)

{

int i;

struct student tmp;

printf("输入学号\n");

scanf("%d",&tmp.ID);

printf("输入姓名\n");

fflush(stdin);

scanf("%s",tmp.name);

printf("输入生日(年月日)\n");

scanf("%d",&tmp.birthday.year);

scanf("%d",&tmp.birthday.month);

scanf("%d",&tmp.birthday.day);

printf("请输入C实验、C语言理论、C笔试成绩\n");

for(i=0;i<3;i++)

scanf("%f",&tmp.scores[i]);

printf("请输入地址\n");

fflush(stdin);

scanf("%s",&tmp.address);

a[n]=tmp;

return n+1;

}

void stud_del(struct student *a,int *n,int j)

{

int i;

for(i=j-1;i<*n-1;i++)

a[i]=a[i+1];

(*n)--;

}

void stud_out(struct student *a,int n)

{

int i,k;

printf(" 学号   姓名   生日      C实验  C理论   C笔试      地   址\n");

for(i=0;i<n;i++)

{

printf("%5d",a[i].ID);

printf("%7s",a[i].name);

printf("%5d",a[i].birthday.year);

printf("%3d",a[i].birthday.month);

printf("%3d",a[i].birthday.day);

for(k=0;k<3;k++)

printf("%7.1f",a[i].scores[k]);

printf("\t%s",a[i].address);

printf("\n");

}

}

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部