C语言单向链表输入学生成绩,使用c语言单向链表实现简单学生成绩管理系统(1)...

#include//个人信息结构体,各科成绩可自定义添加

typedef struct grade_msg

{

char name[16];

char sex;

int chinese;

int math;

int english;

}grade_msg_t;

//链表结构体

typedef struct student_msg

{

grade_msg_t msg;

struct student_msg * next;

}student_msg_t;

//创建链表头

student_msg_t * create_slist_head()

{

student_msg_t * head;

//申请空间

head = (student_msg_t *)malloc(sizeof(student_msg_t));

if(head == NULL)

{

printf("create slist head fail\n");

return NULL;

}

//初始化

head->next = NULL;

return head;

}

//判断链表中有无数据

//返回1为空,0为非空

int isnull(student_msg_t * head)

{

if(head->next == NULL)

return 1;

else

return 0;

}

//链表头添加数据

int insert_data(student_msg_t * head,grade_msg_t * msg)

{

printf("enter insert msg\n");

student_msg_t * new_node;

new_node = (student_msg_t * )malloc(sizeof(student_msg_t));

if(new_node == NULL)

{

printf("insert,create space fail\n");

return -1;

}

strcpy(new_node->msg.name,msg->name);

new_node->msg.sex = msg->sex;

new_node->msg.chinese = msg->chinese;

new_node->msg.math = msg->math;

new_node->msg.english = msg->english;

new_node->next = head->next;

head->next = new_node;

return 0;

}

//链表尾部删除数据

int delete_data(student_msg_t * head,grade_msg_t * msg)

{

return 0;

}

//打印所有信息

int printf_list(student_msg_t * head)

{

if(isnull(head))

{

printf("no student msg\n");

return -1;

}

while(head->next != NULL)

{

head = head->next;

printf("name:%s,sex:%c,chinese:%d,math:%d,english:%d\n",head->msg.name,head->msg.sex,head->msg.chinese,head->msg.math,head->msg.english);

}

return 0;

}

//修改数据

int modify_data(student_msg_t * head,char * data,int index)

{

return 0;

}

int main(int argc, const char *argv[])

{

student_msg_t * msg_head;

msg_head = create_slist_head();

if(msg_head == NULL)

{

printf("create student msg head fail\n ");

return -1;

}

while(1)

{

//姓名 字符串, 性别 字符类型, 语数英 整型

printf("please input 姓名[enter] 性别[enter] 语文[enter] 数学[enter] 英语[enter]\n");

grade_msg_t insert_msg;

printf("------------input start------------\n");

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

getchar();

scanf("%c",&insert_msg.sex);

getchar();

scanf("%d",&insert_msg.chinese);

getchar();

scanf("%d",&insert_msg.math);

getchar();

scanf("%d",&insert_msg.english);

getchar();

printf("------------input end------------\n");

insert_data(msg_head,&insert_msg);

printf("==========printf start==========\n");

if(msg_head -> next != NULL)

printf_list(msg_head);

printf("==========printf end=========\n");

}

return 0;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值