资源简介
基于顺序存储的学生名册管理程序源代码
学生名册管理程序,名册中的每条记录包括学号和姓名。程序能够在顺序表,栈和队列三种模式下自由切换,支持数据的插入、删除、查找、按学号排序和屏幕打印。具体要求的功能如下:
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语言版源代码
- DSDEMO-C演示(数据结构C语言版 严蔚敏
- 数据结构 图的遍历源代码
- 数据结构实验源代码集
- 实验报告:数据结构长整数四则运算
- 数据结构教程李春葆第五版书中例题
- 吕鑫vc6c++数据结构视频源码
- 数据结构教程李春葆第五版课后答案
- 李春葆课后习题答案(数据结构教材
- 数据结构1800题 题+答案(全)
- 数据结构(C语言版)ppt课件,清华,
- c++常用游戏算法及数据结构设计
- 数据结构超全面复习导图
- 《Data Structures and Algorithm Analysis in C
- 数据结构C语言版教学笔记严蔚敏
- 数据结构C语言版期末考试试题(有答
- 多功能计算器实现C++代码以及代码详
- C语言数据结构银行客户排队
- C语言实现栈操作
- 简易学生管理系统源码 数据结构 大作
- 数据结构与C语言综合习题集
- 数据结构实验——赫夫曼树相关
- C语言进阶源码---基于graphics实现图书
- 数据结构——C++语言描述 陈慧南
- 广东工业大学数据结构课程设计航空
- 数据结构课程设计扑克牌排序
- 数据结构各种算法实现(C++模板),
- (严版C语言版数据结构源码.rar
评论
共有 条评论