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

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

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define MAXSIZE 100typedef struct{char no[20];       // 学号 char name[20];    // 姓名 int price;        // 成绩
}Student;typedef struct{Student elem[MAXSIZE]; //线性表占用的数组空间 int last;    //最后一个元素的下标
}SeqList;int Locate(SeqList *L,Student e)   //按照姓名查找
{    /*用e返回L中第i个数据元素的值*/ int i;for(i=0;i<L->last+1;i++){if(!strcmp(L->elem[i].name,e.name)) //比较两个字符串是否相同 return i+1;  }return 0;
}int InsList(SeqList *L,int i,Student e)   //插入学生信息
{    /*在L中第i个位置之前插入新的数据元素e,L的长度加1*/ int k;if(i<1||(i>L->last+2)){return 0;}for(k=L->last;k>=i-1;k--) //元素向后移动位置L->elem[k+1]=L->elem[k];L->elem[i-1]=e;L->last++;return 1;
}int DelList(SeqList *L,int i) //删除指定位置学生记录
{      int k;if(i<1||i>L->last+1)return 0;for(k=i;k<=L->last;k++) {L->elem[k-1]=L->elem[k]; //将后面元素依次前移 }L->last--;return 1;
}int main()
{int i,x,a,temp,select,sum=0,c;SeqList L;Student m,e;printf("********************************************************************\n"); printf("*      1. 根据指定学生个数,逐个输入学生信息;                      *\n");printf("*      2. 逐个显示学生表中所有学生的相关信息;                     *\n");printf("*      3. 根据姓名进行查找,返回此学生的学号和成绩;               *\n");printf("*      4. 根据指定的位置返回相应的学生信息(学号,姓名,成绩);      *\n");printf("*      5. 给定一个学生信息,插入到表中指定的位置;                 *\n");printf("*      6. 删除指定位置的学生记录;                                 *\n");printf("*      7. 统计表中学生个数;                                       *\n");printf("*      8. 退出。                                                   *\n");printf("********************************************************************\n");printf("\n"); while(select){printf("请选择你要操作的选项:");scanf("%d",&select);printf("\n");switch(select){case 1:printf("请输入学生的数量:"); scanf("%d",&x);printf("\n");sum=x; for(i=0;i<x;i++){printf("第%d位学生信息\n",i+1);printf("\n");printf("学号:");scanf("%s",L.elem[i].no);printf("-----------------------------\n");printf("姓名:");scanf("%s",L.elem[i].name);printf("-----------------------------\n");printf("成绩:");scanf("%d",&L.elem[i].price);printf("-----------------------------\n");} L.last=x;printf("\n");break;case 2:printf("所有学生的相关信息为:\n\n");for(i=0;i<L.last;i++){printf("学号:%s 姓名:%s 成绩:%d\n\n",L.elem[i].no,L.elem[i].name,L.elem[i].price);}printf("\n");break;case 3:printf("请输入你要查找的姓名:");scanf("%s",e.name);temp=Locate(&L,e);if(temp!=0)printf("学号:%s 成绩:%d\n\n",L.elem[temp-1].no,L.elem[temp-1].price);elseprintf("查找失败!\n\n");break;case 4:printf("请输入你要查询的位置:");scanf("%d",&i);if(i<=0||i>L.last)printf("查询失败!\n\n");elseprintf("该位置的学生信息为\n学号:%s 姓名:%s 成绩:%d\n\n\n",L.elem[i-1].no,L.elem[i-1].name,L.elem[i-1].price);break; case 5:printf("请输入你要插入的位置:");scanf("%d",&a);printf("请输入插入学生信息:\n");printf("学号:");scanf("%s",m.no);printf("姓名:");scanf("%s",m.name);printf("成绩:");                                                                                scanf("%d",&m.price);if(InsList(&L,a,m)){sum++;printf("插入成功!\n\n"); }elseprintf("插入失败!\n\n");break;case 6:printf("请输入要删除学生的位置:");scanf("%d",&c);if(DelList(&L,c)){sum--;printf("删除成功!\n\n");}elseprintf("删除失败!\n\n");break;case 7:{printf("总学生个数为:%d\n\n",sum);}break;case 8:{printf("\n退出系统成功!请按任意键结束!\n");exit(0);}break;        } }return 0;
}

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

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

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

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

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

  3. 顺序表实现学生管理系统

    定义一个包含学生信息(学号,姓名,成绩)的顺序表和链表,使其具有如下功能: (1) 根据指定学生个数,逐个输入学生信息: (2) 逐个显示学生表中所有学生的相关信息: (3) 根据姓名进行查找,返回此 ...

  4. 学生信息管理系统实习报告(java版数据结构)

    一. 问题分析 1.1 什么是学生信息管理系统以及研究意义 学生信息管理系统是校园网络中一个重要的应用系统,它大大改善了学校教学.科研与管理的基础环境,在一定程度上反映出学校管理现代化的水平.信息管理 ...

  5. 考试报名管理系统C语言顺序表,学生信息管理系统(顺序表)实验

    <学生信息管理系统(顺序表)实验>由会员分享,可在线阅读,更多相关<学生信息管理系统(顺序表)实验(29页珍藏版)>请在人人文库网上搜索. 1.精品文档数 据 结 构 课 程 ...

  6. 用顺序表创建学生信息花名册

    问题:用顺序表创建学生信息包括姓名,学号,语数外3科成绩,并对顺序表实现基本的操作. 1.LinearList.h #ifndef _LINEARLIST_H_ #define _LINEARLIST ...

  7. 基于SSM搭建的学生信息管理系统项目源码+学习视频

    基于SSM搭建的学生信息管理系统 目录 基于SSM搭建的学生信息管理系统 1.为什么要编写学生信息管理系统 1.1编写项目的起因: 2.编写学生信息管理系统的过程 2.1项目成果的展示: 登录界面: ...

  8. 赶紧进来看看--用C语言实现学生信息管理系统(1.0静态版)

    本文介绍了用C语言实现学生信息管理系统设计,主要包括对学生信息增删查改.分类统计.排序等功能,文章最后有全部源码展示- C语言实现学生信息管理系统--1.0静态版 一.学生信息管理系统介绍 二.实现学 ...

  9. Python系列教程之学生信息管理系统

    1.上传图片/文件等资源 有时候需要添加一些附件,例如,新生刚入学,大家相互之间还不熟悉,希望能通过照片来加深印象,并且方便教学管理. 首先,对demo/urls.py文件进行改造,给urlpatte ...

最新文章

  1. Dell遇载软件出问题!可能被安装软件含有病毒
  2. 2.4 matlab矩阵的特征值和特征向量
  3. docker run -it 如何退出_Docker学习笔记(4)容器的基本命令 1 - 你个小秃头
  4. 【机器视觉】 break算子
  5. 每天一道LeetCode-----将字符串的连续相同的字符合并成一个字符后加个数
  6. Qt中消息的机制原理
  7. java 类变量 赋值_Java 中类变量,实例变量,局部变量的赋值
  8. 解决IE6中 PNG图片透明的终极方案-八种方案!
  9. python复制文件shutil_Python常用模块——文件复制模块shutil
  10. 在Java中将字符串转换为char数组,将char数组转换为String
  11. 流水灯c语言代码大全,单片机闪烁灯流水灯汇编代码大全
  12. AhMyth远程控制手机实践
  13. 第20节 简单密码破解—基于windows系统
  14. 定义客户类(Customer): 1,客户类的属性包括:姓名、年龄、电话、金钱数量、账号、密码; 2,方法包括:购买商品、付款、显示自己的信息。 3,创建测试类,在main方法中使用客户类创建两个客户
  15. 浅谈AI芯片的简要发展历史
  16. 华硕电脑连接不上wifi_华硕电脑连不上无线网_华硕电脑无法连接wifi
  17. 十大热门职位公布 高薪行业一目了然
  18. java sort 没法用,$ group无法使用Spring聚合类后的$ sort管道
  19. 健康指南:趴桌睡觉三大危害
  20. vimdiff常用命令详解

热门文章

  1. Grafana入门使用
  2. ddd linux 调试工具_Centos安装DDD调试器
  3. java事务 spring事务 分布式事物
  4. ERP期末复习知识点
  5. Lua性能优化—Lua内存优化
  6. 云+X案例展 | 金融类:金山云为新网银行重塑金融服务提供云计算动力
  7. 计算机408看不懂?那是你还不知道这套学习方法和资源
  8. hutool excel 生成包含图片
  9. SDUT数据结构实验之链表一:顺序建立链表
  10. 用计算机对PLC进行编程时,PLC编程中的五个常见问题