单向动态链表练习(学生系统的增删改查)
2017-09-26 17:47
351 查看
#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; }
相关文章推荐
- 学生管理系统--实现了系统的增删改查~
- 学生管理系统(增删改查)
- XML练习案例(学生管理系统)
- 面向对象的学生增删改查管理系统java版
- jsp开发学生信息管理系统,实现了基本的增删改查的功能
- C#操作Xml(增删改查)练习
- Day 09 学生管理(增删改查)
- 练习ssm框架整合,做增删改查操作
- C语言编程入门——综合练习(三)学生管理系统
- C#操作Xml(增删改查)练习
- JDBC-简单的学生管理系统-增删改查
- C语言练习-学生信息管理系统
- XML“数据库”:简单的通讯录系统(用dom4j完成增删改查)
- java(jsp)简单实现数据库学生信息的增删改查案例
- 关于系统就是对表格的增删改查的说法
- 用python编写简易名片管理系统(增删改查)
- Redis 笔记与总结7 PHP + Redis 信息管理系统(用户信息的增删改查)
- 使用单向链表实现学生信息管理系统
- 增删改查语句练习
- 黑马程序员——综合练习 学生信息管理系统