资源简介
基于顺序存储的学生名册管理程序源代码
学生名册管理程序,名册中的每条记录包括学号和姓名。程序能够在顺序表,栈和队列三种模式下自由切换,支持数据的插入、删除、查找、按学号排序和屏幕打印。具体要求的功能如下:
1) 按照顺序表的方式,在指定位置进行插入与删除。
2) 以栈的方式进行插入与删除。
3) 以队列的方式进行插入与删除。
4) 按姓名进行顺序查找,按学号进行二分查找(查找学号时需要先排序)。
5) 打印所有学生的信息。
学生名册管理程序,名册中的每条记录包括学号和姓名。程序能够在顺序表,栈和队列三种模式下自由切换,支持数据的插入、删除、查找、按学号排序和屏幕打印。具体要求的功能如下:
1) 按照顺序表的方式,在指定位置进行插入与删除。
2) 以栈的方式进行插入与删除。
3) 以队列的方式进行插入与删除。
4) 按姓名进行顺序查找,按学号进行二分查找(查找学号时需要先排序)。
5) 打印所有学生的信息。
代码片段和文件信息
#include
#include
#include
#include
#include
#define INIT_SIZE 5 /*线性表存储空间的初始分配量*/
#define EX_SIZE 5 /*线性表存储空间的分配增量*/
using namespace std;
typedef struct {
char name[20];
int ID;
}stu;
typedef stu Datatype;
typedef struct {
stu* student; //存储空间的基地址
int length; //当前长度
int size; //当前分配的存储容量
}sq_List;
int Initialize(sq_List*);//初始化顺序表
void lv1menu(sq_List*);//一级菜单
void lv2menu(char sq_List*);//二级菜单
int ins_ele(char sq_List*);//插入
int del_ele(char sq_List*);//删除
int prt_all(sq_List*);//打印
void sort(sq_List);//排序
int sea_ele(sq_List int);//按学号二分查找
int main()
{
sq_List database;
if (!Initialize(&database)) {
cout << “Error! Initialization failed!“ << endl;
exit(0);
}//初始化失败则结束程序
lv1menu(&database);//显示一级菜单
return 0;
}
int Initialize(sq_List* List)
/*初始化顺序表,成功返回1,失败返回0*/
{
List->student = (Datatype*)malloc(INIT_SIZE * sizeof(Datatype));
if (!List->student)
return 0; /*初始化失败*/
List->length = 1;
List->size = INIT_SIZE;
return 1; /*初始化成功*/
}
void lv1menu(sq_List* List)
{
char _op1;
bool flag = true;
//system(“cls“);
do {
cout << “ 学生信息管理系统“ << endl;
cout << “---------------------------“ << endl;
cout << “A.按照顺序表方式管理“ << endl;
cout << “B.按照栈方式管理“ << endl;
cout << “C.按照队列方式管理“ << endl;
cout << “D.查找\tE.打印\nF.退出“ << endl;
cout << “选择操作:“;
cin >> _op1;
_op1 = toupper(_op1);
if (_op1 == ‘F‘)flag = false;
lv2menu(_op1 List);
cout << “\n“;
} while (flag);
}
void lv2menu(char m sq_List* List)
{
char optype _op2;
int p;
optype = m;
int target;
if (optype == ‘A‘ || optype == ‘B‘ || optype == ‘C‘) {
p = 0;
cout << “\na.插入\nb.删除\nc.返回“ << endl;
cout << “选择操作:“;
cin >> _op2;
cout << “\n“;
if (_op2 == ‘c‘)
lv1menu(List);
if (_op2 == ‘a‘) {
do {
ins_ele(optype List);
cout << “是否继续输入(1表示继续插入,0表示终止插入)“;
cin >> p;
cout << “\n“;
} while (p == 1);
}
if (_op2 == ‘b‘) {
do {
del_ele(optype List);
cout << “删除后表中元素有: “ << endl;
prt_all(List);
cout << “是否继续删除(1表示继续删除,0表示终止删除)“;
cin >> p;
cout << “\n“;
} while (p == 1);
}
}
if (optype == ‘D‘) {
cout << “输入要查找的学号:“;
cin >> target;
p = sea_ele(*List target);
if (p > 0)
cout << “查找目标位于第“ << p << “位。“ << endl;
else
cout << “目标未找到。“ << endl;
cout << “\n“;
system(“pause“);
}
if (optype == ‘E‘) {
prt_all(List);
}
}
int ins_ele(char optype sq_List* List)
{
Datatype* temp = NULL buff;//temp暂存指针,buff暂存数据
int j;
if (List->length >= List->size - 1) /*当前存储空间已满,增加分配*/
{
temp = (Datatype*)realloc(List->student (List->size + EX_SIZE)
- 上一篇:TM1629系列驱动代码
- 下一篇:天津工业大学C++语言期末考试题及答案
相关资源
- 数据结构课程设计 排序综合(C++)
- 二叉排序树C语言版的!.c
- 数据结构课设 运动会分数统计
- 循环列队数据结构课题舞会配对的问
- 校园导航系统c++数据结构
- 实现简单银行叫号模拟系统(C++版)
- 数据结构课设排序算法的可视化演示
- 算法与数据结构_C语言版_答案(1-8章
- 数据结构课程设计CC++描述[阮宏一][程
- 数据结构课程设计学生成绩管理系统
- 交通咨询系统-C语言
- C++数据结构与算法源代码第四版清华
- 数据结构课程设计,飞机订票系统源
- 数据结构与算法c语言 严蔚敏 代码实
- 数据结构c语言实现严蔚敏版
- 八皇后问题加实验报告
- B-树和B+树的源代码
- 敢死队问题纯C语言编写
- 数据结构上机作业 一元稀疏多项式计
- 数据结构习题集与答案(C语言版严蔚
- 《数据结构(c++描述)》教材习题解
- 任务书2一元稀疏多项式计算器数据结
- 数据结构上机 由用户输入n个10以内的
- 991“数据结构与C语言程序设计”考试
- 数据结构类库c++版
- 堆排序算法严蔚敏数据结构
- 数据结构约瑟夫环实习报告及源码
- 《数据结构——C++实现》第二版课本
- 哈夫曼树 C++算法
- C++编写的航空客运订票系统
评论
共有 条评论