C语言 做一个学生信息管理系统

编程入门 行业动态 更新时间:2024-10-24 20:19:31

C语言 <a href=https://www.elefans.com/category/jswz/34/1770767.html style=做一个学生信息管理系统"/>

C语言 做一个学生信息管理系统

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct person 
{char name[30];char sex[10];int num;struct person *next;
}stu;
stu *head = NULL;
void printf_link(stu *head)
{stu *pd = head;while(pd != NULL){printf("姓名:%s\t性别:%s\t学号%d\n",pd->name,pd->sex,pd->num);pd = pd->next;}printf("\n");
}
stu *add(stu *head,stu *stu1)
{if(stu1 == NULL ){return head;}if(head == NULL){head = stu1;printf("添加成功\n");return head;}stu *lastNode = head;while(lastNode != NULL){if(lastNode->next == NULL){break;}else{lastNode = lastNode->next;}}lastNode->next = stu1;printf("添加成功\n");return head;
}
stu * add_stu(stu *head)
{stu *stu1 = calloc(1,sizeof(stu));printf("请输入学员姓名:\n");scanf("%s",stu1->name);printf("请输入学院性别:\n");scanf("%s",stu1->sex);printf("请输入学院学号:\n");scanf("%d",&stu1->num);  head = add(head,stu1); return head;
}
int get_len(stu *head)
{int i = 0;stu *pd = head;while(pd != NULL){i++;pd = pd->next;}return i;
}
stu *insert(stu *head)
{stu *stu1 = calloc(1,sizeof(stu));printf("请输入要插入学员的姓名\n");scanf("%s",stu1->name);printf("请输入要插入学员的性别\n");scanf("%s",stu1->sex);printf("请输入要插入学员的学号\n");scanf("%s",&stu1->num);printf("请输入要插入学员的位置(从0开始)\n");int index = 0;scanf("%d",&index);int len = get_len(head);if(index > len){head = add(head,len);return head;}if(index < 0){printf("输入位置有误\n");return head;}if(index == 0){stu1->next = head;head = stu1;printf("添加成功\n");return head;}stu *pd = head;for(int i;i < index-1;i++){pd = pd->next;}stu1->next = pd->next;pd->next = stu1;printf("添加成功\n");return head;
}
stu * delete(stu *head)
{int a;stu *pd=NULL,*p;printf("请输入要删除的学号:\n");scanf("%d",&a);if(!head) {printf("系统中已经没有数据可以删除\n");return head;}p=head;while(p&&p->num !=a){pd=p;p=p->next;}if(p){if(!pd) {head =head->next;}else pd->next=p->next;free(p);}return head;
}
void find(stu *head)
{int b = 0;stu *pd = NULL,*p;printf("请输入要查找的学号:\n");scanf("%d",&b);if(!head) {printf("系统中已经没有数据可以删除\n");return head;}p=head;while(p&&p->num !=b){pd=p;p=p->next;}if(p){if(!pd) {head =head->next;}else pd->next=p->next;free(p);}return head;
}
void my_menu(int tag)
{switch(tag){case 1:printf_link(head);break;case 2:head = add_stu(head);break;case 3:head = insert(head);break;case 4:head = delete(head);break;case 5:break;case 6:break;default:printf("输入有误请重新输入:\n");break;}
}
void free_link(stu *head)
{stu *pd = head;while(pd != NULL){stu *next = pd->next;free(pd);pd = next;}
}
int main(int argc, char const *argv[])
{while (1){printf("1,查询所有学员信息\n2,添加学员信息\n3,插入学员信息\n4,删除学员信息\n5,修改学员信息\n6,查找指定位置的学员\n7,退出程序\n");printf("请输入菜单号:\n");int tag = 0;scanf("%d",&tag);if(tag != 7){my_menu(tag);}else{free_link(head);printf("您下次再来\n");break;}}return 0;
}

更多推荐

C语言 做一个学生信息管理系统

本文发布于:2023-11-15 18:29:47,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1604193.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:做一个   信息管理系统   语言   学生

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!