链表实现学生管理系统(作业)
来源:互联网 发布:好看的单眼皮女生知乎 编辑:程序博客网 时间:2024/06/05 22:35
#include<stdio.h>#include<string.h>#include<stdlib.h>#define Maxlen 100struct Data//定义链表的元素个体{ char number[20]; char name[20]; char sex[10]; int age; char examtype[20];};typedef Data ElemType;struct Sqlist{ ElemType data;//保存元素的链表 struct Sqlist *next;};/*****************************创建链表*********************************/Sqlist* CreateList(Sqlist *L){ Sqlist *s,*r; int i,n; printf("请输入考生人数:\n"); scanf("%d",&n); printf("请输入考生信息:\n"); L=(Sqlist *)malloc(sizeof(Sqlist));//创建头结点 r=L; for(i=0; i<n; i++) { s=(Sqlist*)malloc(sizeof(Sqlist)); scanf("%s%s%s%d%s",s->data.number,s->data.name,s->data.sex,&s->data.age,s->data.examtype); r->next=s; r=s; } r->next=NULL; printf("创建成功!\n"); return L;}/*****************************输出链表*********************************/void DispList(Sqlist *&L){ Sqlist *p=L->next; while(p!=NULL) { printf("%s %s %s %d %s\n",p->data.number,p->data.name,p->data.sex,p->data.age,p->data.examtype); p=p->next; }}/*****************************查找链表*********************************/void SearchList(Sqlist *L){ Sqlist *p=L->next; char num1[20]; printf("请输入查找的考生号:\n"); scanf("%s",num1); while(p!=NULL) { if(strcmp(p->data.number,num1)==0) { printf("%s %s %s %d %s\n",p->data.number,p->data.name,p->data.sex,p->data.age,p->data.examtype); break; } p=p->next; } if(p==NULL) printf("没有此考生!\n");}/*****************************增加链表*********************************/void AddList(Sqlist *L)//将信息插在头结点之后{ int n; Sqlist *p=L->next; Sqlist*s=NULL; printf("请输入增加考生人数:\n"); scanf("%d",&n); printf("请输入考生信息:\n"); for(int i=0; i<n; i++) { s=(Sqlist*)malloc(sizeof(Sqlist)); scanf("%s%s%s%d%s",s->data.number,s->data.name,s->data.sex,&s->data.age,s->data.examtype); L->next=s; s->next=p; } printf("增加成功!\n");}/*****************************修改链表*********************************/void ReviseList(Sqlist *L){ Sqlist *p=L->next; char num2[20]; printf("请输入修改的考生号:\n"); scanf("%s",num2); while(p!=NULL) { if(strcmp(p->data.number,num2)==0) { printf("请重新输入考生信息:\n"); scanf("%s%s%s%d%s",p->data.number,p->data.name,p->data.sex,&p->data.age,p->data.examtype); printf("修改成功!\n"); break; } p=p->next; } if(p==NULL) printf("没有此考生!\n");}/*****************************删除链表*********************************/void DeleteList(Sqlist *L){ Sqlist *p=L->next; Sqlist *pre=L,*r=p,*rpre=pre;//pre始终指向其前驱节点 char num3[20]; printf("请输入要删除的考生号:\n"); scanf("%s",num3); while(p!=NULL) { if(strcmp(p->data.number,num3)==0)//若相等 { r=p; //更改r rpre=pre; //更改rpre } pre=p; //p。pre同步后移一个节点 p=p->next; } rpre->next=r->next; //删除rpre节点 free(r); printf("删除成功!\n");}/*****************************测试链表*********************************/int main(){ int n; Sqlist *a; Sqlist *L=NULL; printf("***********欢迎进入考生管理系统*************\n"); printf("* 1.创建学生信息表 *\n"); printf("* 2.查找学生信息表 *\n"); printf("* 3.修改学生信息表 *\n"); printf("* 4.删除学生信息表 *\n"); printf("* 5.增加学生信息表 *\n"); printf("* 6.输出学生信息表 *\n"); printf("* 7.退出系统 *\n"); printf("********************************************\n"); printf("请根据提示操作!\n"); while(scanf("%d",&n)!=EOF) { switch(n) { case 1: L=CreateList(a); break; case 2: SearchList(L); break; case 3: ReviseList(L); break; case 4: DeleteList(L); break; case 5: AddList(L); break; case 6: DispList(L); break; case 7: exit(0); default: printf("输入有误!\n"); } } return 0;}
0 0
- 链表实现学生管理系统(作业)
- 链表实现的学生管理系统
- 链表实现c学生管理系统
- 学生管理系统 链表实现
- 学生管理系统c++链表实现
- 链表实现学生管理系统
- 简单的.NET三层框架的实现(学生作业管理系统)
- 学生管理系统实现
- 链表实现学生管理系统,实现删除,…
- 实验一、链表实现学生管理系统
- 算法实验 学生管理系统 双向链表实现
- 数据结构-链表的简实现->学生管理系统
- 顺序表实现学生管理系统
- 顺序表实现学生管理系统
- 学生管理系统(利用指针实现)
- 数据结构课程设计总结--学生作业管理系统
- 编程作业:简单的学生管理系统
- 学生图书管理系统大作业
- JAVA开发之 13-关键字的使用
- ffplay常用命令
- MyBatis传入参数为list、数组、map写法
- IO
- 如何取消eclipse中编辑窗口上方的导航条
- 链表实现学生管理系统(作业)
- PHP--RSA加密解密
- Java基础--基本数据类型(字符型/char)
- WebView获取网页
- extern使用注意事项
- 你真的了解Java中的interrupt()中断线程吗?
- 【Nginx】Nginx + Tomcat + SpringBoot 部署项目
- A Simple Web Server
- Word Break,递归,暂存中间结果,“土地换和平”,dp