定义一个包含学生信息(学号,姓名,成绩)的顺序表和链表,使其具有如下功能:
(1) 根据指定学生个数,逐个输入学生信息;
(2) 逐个显示学生表中所有学生的相关信息;
(3) 根据姓名进行查找,返回此学生的学号和成绩;
(4) 根据指定的位置可返回相应的学生信息(学号,姓名,成绩);
(5) 给定一个学生信息,插入到表中指定的位置;
(6) 删除指定位置的学生记录;
(7) 统计表中学生个数。

//顺序表实现学生成绩管理系统
#include<iostream>
#include<string.h>
using namespace std;
#define ok 1
#define error 0
#define MAXSIZE 100struct Student {char no[8]; //学号char name[10]; //姓名int grade;  //成绩
}; //定义表结构 typedef struct{Student *elem;int length;
} SqList ; //初始化表
int InitList(SqList &L){//顺序表数组分配内存 L.elem = new Student[MAXSIZE];L.length = 0;return ok;
}//插入
int InsertList(SqList &L,int i,Student data){//判断边界条件if(i < 1 || i > L.length+1){//结束执行 exit(error);} if(L.length == MAXSIZE){//结束执行exit(error);}for(int j = L.length-1; j>=i-1; j--){L.elem[j+1] = L.elem[j];}L.elem[i-1] = data;++L.length;return ok;
}//查找
int FindList(SqList L,char name[10]){for(int i=0; i<L.length; i++){if(strcmp(L.elem[i].name,name)==0){return i+1;}else{return 0;} }
} //删除
int DeleteList(SqList &L,int i){if(i < 1 || i > L.length){return error;}for(int j=i;j<=L.length;j++){L.elem[j-1] = L.elem[j];}--L.length;return ok;
} int main(){SqList L;int choose = -1,count=0;cout<<"****************************************\n"; cout<<"1.初始化学生管理系统\n";cout<<"2.输入指定学生个数,逐个输入学生信息\n";cout<<"3.姓名查找,返回学生的学号和成绩\n";cout<<"4.根据指定位置,返回学生所有信息\n";cout<<"5.插入学生信息到指定位置\n";cout<<"6.删除指定位置的学生信息\n";cout<<"7.统计学生个数\n";cout<<"0.退出学生管理系统\n";cout<<"****************************************\n"; while(choose!=0){cout<<"\n请选择功能:";cin>>choose;cout<<"\n";switch(choose){case 1:if(InitList(L)){cout<<"分配内存空间成功\n";}else {cout<<"分配内存空间失败\n";}break;case 2:L.elem = new Student[MAXSIZE]; L.length = 0;cout<<"录入学生信息的个数:";cin>>count;cout<<"输入每位学生的学号,姓名和成绩信息!\n";for(int i=0; i<count; i++){cin>>L.elem[i].no>>L.elem[i].name>>L.elem[i].grade;++L.length; }cout<<"录入学生信息成功\n";break;case 3:char findName[10];int temp; cout<<"输入查找的学生姓名:";cin>>findName;temp = FindList(L,findName);if(temp !=0){cout<<"查找成功";cout<<"该学生的学号和成绩分别为"<<L.elem[temp-1].no<<","<<L.elem[temp-1].grade<<endl;    }else {cout<<"查找失败\n";}break;case 4:int index;cout<<"查找第几个学生所有信息:";cin>>index;cout<<"第"<<index<<"个学生的学号,姓名,成绩分别为:"<<L.elem[index-1].no<<","<<L.elem[index-1].name<<","<<L.elem[index-1].grade<<endl; break;case 5:int index2;Student data;cout<<"插入位置:";cin>>index2;cout<<"填写插入的学生信息:\n";cin>>data.no>>data.name>>data.grade;if(InsertList(L,index2,data)){cout<<"插入数据成功\n";} else {cout<<"插入数据失败\n";}break;case 6:int index3;cout<<"输入删除位置:";cin>>index3;if(DeleteList(L,index3)){cout<<"删除数据成功\n";} else {cout<<"删除数据失败\n";}break;case 7:cout<<"学生个数为:"<<L.length<<endl;break; case 0:choose = 0;break;} }return 0;
}









顺序表实现学生管理系统相关推荐

  1. 用顺序表实现学生信息管理系统

    用顺序表实现学生信息管理系统 问题描述: 定义一个包含学生信息(学号,姓名,成绩)的顺序表,使其具有如下功能: (1) 根据指定学生个数,逐个输入学生信息: (2) 逐个显示学生表中所有学生的相关信息 ...

  2. c语言用顺序表写一个学生管理系统,用顺序表实现学生信息管理系统

    #include #include #include #define MAXSIZE 100 typedef struct{ char no[20]; // 学号 char name[20]; // ...

  3. 顺序表实现图书管理系统增删改查

    顺序表学习: 这个程序是用于学习数据结构而参考数据结构C语言第二版的教材实现的一个简易的图书管理系统. 逻辑结构:顺序表 线性表的顺序存储又称作顺序表.由一组地址连续的存储单元依次存储线性表的数据元素 ...

  4. 顺序表实现 电子地图管理系统

    项目简介: 开发一个对电子地图数据进行管理的系统,原始数据按照地图数据格式存储在一个二进制 文件中,每个道路都是被赋予了独一无二的编号,这个编号叫做 LinkID,在这个文件中存储着 文件中,每个道路 ...

  5. 约瑟夫环c语言代码顺序存储,顺序表实现约瑟夫环地问题,C语言.doc

    顺序表实现约瑟夫环地问题,C语言 计算机科学与工程学院 PAGE PAGE 2 <算法与数据结构>试验报告 计算机科学与工程学院 <算法与数据结构>试验报告[一] 专业班级 1 ...

  6. 顺序表讲解和顺序表实现增删查改

    前言 顺序表是一种参见的数据结构 特点:类似数组的储存,需要预先开辟空间已备数据插入.(1)同时顺序表也因此会存在和数组同样的问题(例如:越界)(2)同时因为其类似与数组的结构给二分查找这种算法提供了 ...

  7. 顺序表实现图书信息管理系统

    设计一个图书信息管理系统,每本图书包含ISBN号.书名.定价信息, 要求实现取值.查找.插入.删除等功能#include <cstring> #include <iostream&g ...

  8. 约瑟环c语言,顺序表实现约瑟环的问题,C语言.doc

    计算机科学与工程学院 <算法与数据结构>试验报告[一] 专业班级 10级计算机工程02 试验地点 计算机大楼计工教研室 学生学号 1005080222 指导教师 蔡琼 学生姓名 肖宇博 试 ...

  9. 栈——用顺序表实现栈操作

    一.线性表特点 线性表:由0个或者多个数据元素组成的有限序列 除了第一个节点(头节点),都有前驱节点 除了最后一个节点(尾节点),都有后继节点 线性表主要由顺序存储结构或者链式存储结构 一般线性表:可 ...

最新文章

  1. The Excel Connection Manager is not supported in the 64-bit version of SSIS, as no OLE DB provider i
  2. java 学习笔记2022.1.26
  3. 映射文件_Hibernate 映射文件
  4. Equipment upload 不起作用的分析
  5. 【牛客 - 368B】选点(dfs序,LIS 或 dfs序 + 树状数组 + 离散化,树状数组求LIS的方法)
  6. CSU 1558 和与积
  7. 猜数游戏软件的设计开发系统测试参考
  8. 不容错过!Greenplum的又一本好书
  9. 中职计算机ps公开课教案,全国“xx杯”计算机类说课大赛课件一等奖作品:《利用PS蒙版制作照片的蒙太奇效果》教学设计.doc...
  10. python列表左闭右开_python中的细节—左闭右开原则
  11. 小米9se开发版系统回刷MIUI稳定版系统
  12. GitLab使用手册
  13. xelatex+beamer+中文的一个tex例子
  14. 拥抱AI!人工智能如何在疫情期间重塑娱乐业?
  15. python circle后面是什么意思_pythoncircle
  16. 走进WebAssembly
  17. Navicat操作MySQL简易教程
  18. 【大学物理学】狭义相对论
  19. 【RT-Thread】UART串口设备驱动★DLT645-2007多功能电能表通信协议★RTThread★
  20. 创新谈-数据库概念设计之几点见解-吴雨光

热门文章

  1. [Mac软件推荐] Bartender - 使你的 Mac 菜单栏井然有序
  2. js中如何获取数组索引号
  3. Uncaught Error: Error calling method on NPObject的几种解决方案
  4. 04 核心知识点和资料推荐
  5. 基于粒子群优化算法的微电网调度(光伏、储能、电动车、电网交互)(Matlab代码实现)
  6. 2021全球工业互联网大会 | 芯讯通5G旗舰模组惊艳亮相华为展台
  7. C#实现回合制游戏模拟
  8. 考研捡.漏指南这几所985院校专业去年一志愿没招满
  9. 【漫画】谈谈中国的键盘侠们
  10. 公式穿搭法则,让你穿搭更简单