单向动态链表练习(学生系统的增删改查)
来源:互联网 发布:html 获取js定义的值 编辑:程序博客网 时间:2024/06/04 19:39
#include <stdio.h>#include <stdlib.h>#include<malloc.h>#include<string.h>//定义一个学生结构体typedef struct student{int num;int age;char *name[20];char *sex[20];struct student *Next;} student;//-------------函数的声明------------void menu();void inforPrintf(student *head);//声明一个打印函数student *createS();//声明创建学生信息student *deleteS(student *head);//根据学号删除学生的信息void findS(student *head);//根据学号查询学生的信息student *insertS(student *head);//插入学生信息student *updateS(student *head);//修改学生信息int main(){ // 必须把返回给主函数 menu(); return 0;}//---------不同函数的定义----------// 0 meun 提示信息void menu(){ student *head=(student *)malloc(sizeof( student)); int flag=100; while(flag){ printf("\t--------简单大学生管理系统------------\n"); printf("\t1 \t创建学生信息\n"); printf("\t2 \t删除学生信息\n"); printf("\t3 \t插入学生信息\n"); printf("\t4 \t修改学生信息\n"); printf("\t5 \t查询学生信息\n"); printf("\t6 \t查看所有学生信息\n"); printf("\t0 \t退出系统!\n"); printf("\t--------简单大学生管理系统------------\n"); printf("请您输入您想操作的内容!\n"); scanf("%d",&flag); switch(flag){ case 1:head=createS();break; case 2:head=deleteS(head);break; case 3:head=insertS(head);break; case 4:head=updateS(head);break; case 5:findS(head);break; case 6:inforPrintf(head);break; case 0: printf("您已经成功退出 \n");exit(0); default:printf("您输入的数据不合法,请重新输入\n");break; } } }// 1.链表信息的打印void inforPrintf(student *head){ student *p; p=head->Next;printf("\t\t\t--------学生相关信息-----\n");while(p){ printf("姓名:%s 年龄:%d 性别:%s 学号:%d\n",p->name,p->age,p->sex,p->num); p=p->Next;}printf("\t\t\t--------学生相关信息-----\n");printf("\n\n");}// 2.创建学生信息student * createS(){ student *pTemp,*qNew,*head; student *p; int numStu,i; pTemp=(student *)malloc(sizeof( student)); pTemp->Next=NULL; head=pTemp; printf("请输入你要录入学生信息的个数! "); scanf("%d",&numStu); for(i=1;i<=numStu;i++){ qNew=(student *)malloc(sizeof( student)); printf("请输入学生的姓名:\n"); scanf("%s",&qNew->name); printf("请输入学生的年龄:\n"); scanf("%d",&qNew->age); printf("请输入学生的性别:\n"); scanf("%s",&qNew->sex); printf("请输入学生的学号:\n"); scanf("%d",&qNew->num); printf("ok ,第 %d 个信息录入成功\n",i); pTemp->Next=qNew; pTemp=qNew; } qNew->Next=NULL; return head;}// 2.删除学生信息student * deleteS(student *head){ student *pTemp ,*q; int numStu; pTemp=head->Next; q=head->Next; printf("-------------您已经成功进入删除学生模块!-----------------\n"); printf("请输入你要输入要删除学生的学号 \n"); scanf("%d",&numStu); while(pTemp->num!=numStu){ q=pTemp; pTemp=pTemp->Next; if(!pTemp){ printf("没有找到此学生\n"); break; } } if(pTemp){ printf("找到了此学号 %d \n",pTemp->num); q->Next=q->Next->Next; printf("删除学生成功!\n"); } return head;}//根据学号查询学生的信息void findS(student *head){ student *pTemp; int numStu; pTemp=head->Next; printf("-------------您已经成功进入查询学生模块!-----------------\n"); printf("请输入你要查询学生的学号 \n"); scanf("%d",&numStu); while(pTemp->num!=numStu){ pTemp=pTemp->Next; if(!pTemp){ printf("没有找到该学生 请重新输入\n"); break; } } if(pTemp){ printf("成功找到了此学生,信息如下 \n"); printf("姓名 :%s , 性别:%s ,年龄:%d ,学号 :%d \n",pTemp->name,pTemp->sex,pTemp->age ,pTemp->num); printf("\n"); }}student *insertS(student *head){ student *pTemp,*qNew,*p; pTemp=head->Next; p=head->Next; printf("建立学生节点....ing\n"); qNew=(student *)malloc(sizeof( student)); printf("请输入学生的姓名:\n"); scanf("%s",&qNew->name); printf("请输入学生的年龄:\n"); scanf("%d",&qNew->age); printf("请输入学生的性别:\n"); scanf("%s",&qNew->sex); printf("请输入学生的学号:\n"); scanf("%d",&qNew->num); printf("节点建立成功 正在插入信息中ing------\n"); while(p->num<qNew->num){ pTemp=p; p=p->Next; } qNew->Next=p; pTemp->Next=qNew; printf("-----------学生信息插入成功---------\n"); printf("\n"); return head;}student *updateS(student *head){ student *pTemp; int numStu; pTemp=head->Next; printf("-------------您已经成功进入修改学生模块!-----------------\n"); printf("请输入你要修改学生的学号 \n"); scanf("%d",&numStu); while(pTemp->num!=numStu){ pTemp=pTemp->Next; } printf("找到此学生\n"); printf("请修改学生的姓名:\n"); scanf("%s",&pTemp->name); printf("请修改学生的年龄:\n"); scanf("%d",&pTemp->age); printf("请修改学生的性别:\n"); scanf("%s",&pTemp->sex); printf("请修改学生的学号:\n"); scanf("%d",&pTemp->num); printf("成功修改此学生,信息如下\n"); printf("\n"); return head;}
阅读全文
0 0
- 单向动态链表练习(学生系统的增删改查)
- 单向链表的增删改查
- 学生管理系统(增删改查)
- 学生管理系统,实现学生的增删改查
- 学生管理系统--实现了系统的增删改查~
- java链表结构(单向、双向的增删改查)
- 【学生信息管理系统】增删改查
- java链表之--单向链表的增删改查
- 关于单向链表创建以及一些简单的增删查改功能
- SQL server的增删改查练习
- 动态增删改查
- 新生管理系统,加入了数据库后永久保存(只是学生的增删改查方法)
- jsp开发学生信息管理系统,实现了基本的增删改查的功能
- 链表的增删改查
- C链表的增删查改
- 链表的增删改查
- 链表的增删改查
- 链表的增删改查
- [Hadoop]HDFS shell命令
- Git使用—failed to push some ref to'url'
- 编译时出现java.lang.UnsupportedClassVersionError 异常
- 生产-消费模式的synchronized和lock实现(十)
- 安装多版本的xcode中,cocoapods安装出现的问题
- 单向动态链表练习(学生系统的增删改查)
- logback的使用和logback.xml详解
- Android 数据库升级数据迁移以及数据库导入
- QT mindmap
- oracle的结果输出单引号字符 的sql语句
- Node.js之文件及文件流(fs,path,buffer,stream)
- 前端css出现一个div 导致其下面的任何元素都没有了
- java-根据生日计算周岁
- Java多线程系列--“基础篇”07之 线程休眠