#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");}
}

数据结构之使用单链表创建学生表相关推荐

  1. 单链表创建学生成绩表 输出学生姓名成绩及班级平均分

    建立单链表(有头尾指针)用于存放学生某门课程成绩(整型):输出链表中的所有数据和平均成绩,并且能够在指定的位置插入或删除指定的某学生的成绩.要求:数据个数和数据从键盘输入. #include < ...

  2. python数据结构基础(单链表,多链表,二叉树)

    python数据结构基础(单链表,多链表,二叉树) 数据结构指数据对象中数据元素之间的关系 Python 给我们提供了很多现成的数据结构类型,这些系统自己定义好的,不需要我们自己去定义的数据结构叫做 ...

  3. 数据结构之——《单链表》

    数据结构之--<单链表> 1.链表概念 2.链表分类 3.接口函数实现 1.链表概念 链表是一种物理存储结构上非连续,非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现. ...

  4. 单链表删除整表_单链表删除

    单链表删除整表 Deletion can be at various positions like: 删除可以在各个位置进行,例如: Deleting the first node 删除第一个节点 D ...

  5. 单链表(线性表的链式存储)---C语言版

    目录 单链表(线性表的链式存储)---C语言版 一.相关说明 二.单链表的定义 三.单链表上具体操作的实现和时间复杂度 1.初始化表.构造一个空表. 2.根据数组创建单链表 3.求表长 4.插入操作. ...

  6. 数据结构与算法--单链表相关面试题

    此文章仅作为自己学习过程中的记录和总结,同时会有意地去用英文来做笔记,一些术语的英译不太准确,内容如有错漏也请多指教,谢谢! 一.概述 获取单链表的有效元素个数[新浪面试题1] 获取单链表倒数第k个结 ...

  7. C语言基础篇02:单链表实现学生成绩管理系统

    单链表实现学生成绩管理系统 前言 需求分析 详细设计 增加成绩信息 删除成绩信息 修改成绩信息 查询学生信息和浏览学生信息 总结 前言 上篇已经讲过单链表的基本实现,这篇将以一个简单的管理系统入手. ...

  8. 数据结构精讲——单链表

    新手必会数据结构精讲--单链表 链表的介绍 概念:链表是一种物理存储结构上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 . 实际中链表的结构非常多样,以下情况组合起来就 ...

  9. c语言用链表实现成绩管理系统,C语言基于单链表得学生成绩管理系统

    前言 传说中讲课通俗而不庸俗,说话风流而不下流的小编又来了哦,今天的主要内容是:C语言基于单链表得学生成绩管理系统.首先给年夜家总结下为什么你们学习C语言会觉得难,尤其是对单链表这块,主要原因得是因为 ...

最新文章

  1. python什么是调用_python open需要调用什么
  2. 送你一朵小红花观后感
  3. JZOJ 3943. 【GDOI2015模拟11.29】环游世界
  4. 作为程序员之正则表达式
  5. vscode中如何创新建php文件,vscode如何创建代码模板
  6. 数据库索引优化原理,索引的工作机制
  7. Sicily 1934 移动小球
  8. c# 数据库操作学习
  9. 孤岛能源安卓游戏源码
  10. 利用HP优盘启动盘格式化工具制作U盘Dos启动盘
  11. 用计算机算术表白,数学表白密码
  12. (完全解决)为什么二阶行列式的绝对值为面积
  13. linux 查看vcf文件,Linux生信练习4-vcf
  14. php生成分子式,php 转化smiles为分子式
  15. 码流格式: Annex-B, AVCC(H.264)与HVCC(H.265), extradata详解
  16. 2022网鼎杯白虎组misc830题解
  17. 消除笔软件哪个好?这些软件可以无损涂抹图片
  18. 论坛各种问题总结--(随时更新)
  19. 兀键和6键怎么判断_σ键、π键和大π键
  20. Golang 小技巧

热门文章

  1. 流媒体协议之RTSP详解
  2. EOS基金会的资金来源于哪里,被用于哪里?
  3. Activity返回首页
  4. AC/DC、DC/DC转换器基础指南(一)
  5. 第十二届省赛嵌入式设计与开发《停车计费系统》
  6. js progress 滑动条实现投资计算器
  7. 生产者-消费者问题 ——by一宇 2021-01-04
  8. 计算机组成原理课程设计(1)
  9. 大数据-极值数据学院
  10. 连接ssh响应慢解决办法