就是想要存下来代码源的卑微女大学生
c实现的银行管理系统
下附源代码
#include <iostream>
#include <string>
#include <windows.h>
#include <conio.h>
using namespace std;
#define TURE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
typedef int Status;
typedef struct
{
char value;
}SElemType;
typedef struct
{
SElemType *base;//在栈构造前和销毁后为NULL
SElemType *top;//栈顶指针
int stactsize;//当前已分配的元素存储空间
}Stack;
Status Init(Stack *S);//构造一个空栈S
Status Destory(Stack &S);//销毁一个栈S
Status Clear(Stack &S);//清空一个栈S
Status IsEmpty(Stack &S);//判断是否为空栈
char GetTop(Stack S);//用e返回S的栈顶元素
Status Push(Stack &S, char value);//插入e为新的栈顶元素,value赋值给e.value
Status Pop(Stack &S);//删除栈顶元素
Status prio(char c);//优先级排序
void Display(Stack &S);//逆序输出栈中的元素
int prio(char c);//优先级排序
//构造一个空栈S
Status Init(Stack &S)
{
S.base = (SElemType*)malloc(STACK_INIT_SIZE * sizeof(SElemType));
if (!S.base)//存储分配失败
exit(OVERFLOW);
S.top = S.base;
S.stactsize = STACK_INIT_SIZE;
return OK;
}
//销毁一个栈S
Status Destory(Stack &S)
{
if (!S.base)
return ERROR;
while (S.base != S.top)
{
S.top--;
free(S.top);
}
S.base = NULL;
return OK;
}
//清空一个栈S
Status Clear(Stack &S)
{
if (!S.base)
return ERROR;
while (S.base != S.top)
{
S.top--;
free(S.top);
}
//S.stactsize = 0;
return OK;
}
//判断是否为空栈
Status IsEmpty(Stack &S)
{
if (!S.base)
return ERROR;
if (S.base == S.top)
return TURE;
else
return FALSE;
}
//用e返回S的栈顶元素
char GetTop(Stack S)
{
SElemType e;
S.top--;
e = *S.top