数据结构之使用单链表创建学生表
#include<stdio.h>
#include<iostream>
#include<string.h>
#define MAXSIZE 100
using namespace std;typedef struct
{char xh[9]; //定义学生学号char xm[20]; //定义学生姓名int fs; //定义学生分数
}Student;typedef Student ElemType;typedef struct LNode
{ElemType data;struct LNode *next;
}LNode,*LinkList;int InitList(LinkList &L)
{L=new LNode;L->next=NULL;return 1;
}void Input(LinkList &L); //添加学生
void Display(LinkList &L);//显示学生表
void NameSearch(LinkList &L);//按姓名查找学生
void PositonSearch(LinkList &L);//按序号查找学生
void Insert(LinkList &L); //插入学生
void Del(LinkList &L); //删除学生int main(){printf("--------------------------功能界面--------------------------\n");printf("1.添加学生\t2.显示学生表\t3.按姓名查找学生\n");printf("4.按序号查找学生5.插入学生\t6.删除学生信息\t-1.退出\n");printf("------------------------------------------------------------\n");LNode *L;InitList(L);int i;printf("输入你要进行操作的相应数字:");cin>>i;while(true){switch(i){case 1:Input(L);printf("输入你要进行操作的相应数字:");cin>>i;break;case 2:Display(L);printf("输入你要进行操作的相应数字:");;cin>>i;break;case 3:NameSearch(L);printf("输入你要进行操作的相应数字:");cin>>i;break;case 4:PositonSearch(L);printf( "输入你要进行操作的相应数字:");cin>>i;break;case 5:Insert(L);printf("输入你要进行操作的相应数字:");cin>>i;break;case 6:Del(L);printf("输入你要进行操作的相应数字:");cin>>i;break;default:if(i <0)return 0;else{printf("输入数字非法,请重新输入:");cin>>i;}break;}}
}void Input(LinkList &L)
{printf("请输入学生人数:");int i,j;LNode *p,*q;p=L;cin>>i;for(j=1;j<=i;j++){printf("请按顺序填写学生的学号,姓名, 成绩:");q=new LNode;cin>>q->data.xh>>q->data.xm>>q->data.fs;q->next=NULL;p->next=q;p=q;}printf("创建完成!\n");
}void Display(LinkList &L)
{LNode *p;printf("学号 姓名 成绩\n");for(p=L->next;p!=0;p=p->next)printf("%s %s %d\n",p->data.xh,p->data.xm,p->data.fs);
}void NameSearch(LinkList &L)
{int i=0;char na[10];printf("请输入要查找的姓名:");cin>>na;LNode *p;for(p=L;p!=0;p=p->next){if(strcmp(p->data.xm,na)==0){printf("学号 %s\n成绩 %d\n",p->data.xh,p->data.fs);i++;}}if(i==0)printf("无此人\n");
}void PositonSearch(LinkList &L)
{int i,j,k=0;printf("请输入要查找的位置:");cin>>i;LNode *p;p=L->next;if(i<=0)printf("输入位置非法\n");else{for(j=1;j<i;j++){if(p)p=p->next; }if(p){printf("学号 %s\n姓名 %s\n成绩 %d\n",p->data.xh,p->data.xm,p->data.fs);printf("查找完毕!");}elseprintf("输入位置非法\n");}
}void Insert(LinkList &L)
{int i,j;printf("请输入插入位置:");cin>>i;LNode *p,*q;p=L;if(i<=0)printf("插入位置非法\n");else{for(j=1;j<i;j++)if(p)p=p->next;if(p){printf("请按顺序填写学生的学号,姓名, 成绩:");q=new LNode;cin>>q->data.xh>>q->data.xm>>q->data.fs;q->next=p->next;p->next=q;}elseprintf("插入位置非法\n");}
}void Del(LinkList &L)
{int i,j;printf("请输入删除数据的位置:");cin>>i;LNode *p,*q;p=L;if(i<=0)printf("删除位置非法\n");else{for(j=1;j<=i;j++)if(p){q=p;p=p->next;}if(p)q->next=p->next;elseprintf("删除位置非法\n");}
}
数据结构之使用单链表创建学生表相关推荐
- 单链表创建学生成绩表 输出学生姓名成绩及班级平均分
建立单链表(有头尾指针)用于存放学生某门课程成绩(整型):输出链表中的所有数据和平均成绩,并且能够在指定的位置插入或删除指定的某学生的成绩.要求:数据个数和数据从键盘输入. #include < ...
- python数据结构基础(单链表,多链表,二叉树)
python数据结构基础(单链表,多链表,二叉树) 数据结构指数据对象中数据元素之间的关系 Python 给我们提供了很多现成的数据结构类型,这些系统自己定义好的,不需要我们自己去定义的数据结构叫做 ...
- 数据结构之——《单链表》
数据结构之--<单链表> 1.链表概念 2.链表分类 3.接口函数实现 1.链表概念 链表是一种物理存储结构上非连续,非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现. ...
- 单链表删除整表_单链表删除
单链表删除整表 Deletion can be at various positions like: 删除可以在各个位置进行,例如: Deleting the first node 删除第一个节点 D ...
- 单链表(线性表的链式存储)---C语言版
目录 单链表(线性表的链式存储)---C语言版 一.相关说明 二.单链表的定义 三.单链表上具体操作的实现和时间复杂度 1.初始化表.构造一个空表. 2.根据数组创建单链表 3.求表长 4.插入操作. ...
- 数据结构与算法--单链表相关面试题
此文章仅作为自己学习过程中的记录和总结,同时会有意地去用英文来做笔记,一些术语的英译不太准确,内容如有错漏也请多指教,谢谢! 一.概述 获取单链表的有效元素个数[新浪面试题1] 获取单链表倒数第k个结 ...
- C语言基础篇02:单链表实现学生成绩管理系统
单链表实现学生成绩管理系统 前言 需求分析 详细设计 增加成绩信息 删除成绩信息 修改成绩信息 查询学生信息和浏览学生信息 总结 前言 上篇已经讲过单链表的基本实现,这篇将以一个简单的管理系统入手. ...
- 数据结构精讲——单链表
新手必会数据结构精讲--单链表 链表的介绍 概念:链表是一种物理存储结构上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 . 实际中链表的结构非常多样,以下情况组合起来就 ...
- c语言用链表实现成绩管理系统,C语言基于单链表得学生成绩管理系统
前言 传说中讲课通俗而不庸俗,说话风流而不下流的小编又来了哦,今天的主要内容是:C语言基于单链表得学生成绩管理系统.首先给年夜家总结下为什么你们学习C语言会觉得难,尤其是对单链表这块,主要原因得是因为 ...
最新文章
- python什么是调用_python open需要调用什么
- 送你一朵小红花观后感
- JZOJ 3943. 【GDOI2015模拟11.29】环游世界
- 作为程序员之正则表达式
- vscode中如何创新建php文件,vscode如何创建代码模板
- 数据库索引优化原理,索引的工作机制
- Sicily 1934 移动小球
- c# 数据库操作学习
- 孤岛能源安卓游戏源码
- 利用HP优盘启动盘格式化工具制作U盘Dos启动盘
- 用计算机算术表白,数学表白密码
- (完全解决)为什么二阶行列式的绝对值为面积
- linux 查看vcf文件,Linux生信练习4-vcf
- php生成分子式,php 转化smiles为分子式
- 码流格式: Annex-B, AVCC(H.264)与HVCC(H.265), extradata详解
- 2022网鼎杯白虎组misc830题解
- 消除笔软件哪个好?这些软件可以无损涂抹图片
- 论坛各种问题总结--(随时更新)
- 兀键和6键怎么判断_σ键、π键和大π键
- Golang 小技巧