数据结构课程设计-活期储蓄账目管理系统(含有排序和文章编译功能)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题目:活期储蓄帐目管理
活期储蓄处理中,储户开户、销户、存入、支出活动频繁,系统设计要求:能比较迅速地找到储户的帐户,以实现存款、取款记账;并能实现排序
能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。
一、主函数main
#include "文章编辑系统.h"
#include "排序子系统.h"
#include "活期帐目管理系统.h"
#include
#include
#include
using namespace std;
void main()
{
int choice;
char ch;
ch='y';
while (ch=='y'||ch=='Y')
{
printf("\n\n\n\n\t\t 数据结构实验演示系统\n\n\n");
printf("\t\t 主菜单");
printf("\n\t\t**************************************");
printf("\n\t\t* 1-------文章编辑系统*");
printf("\n\t\t* 2-------排序子系统*");
printf("\n\t\t* 3-------活期帐目管理系统*");
printf("\n\t\t* 0-------退出*");
printf("\n\t\t**************************************");
printf("\n\n\t\t请选择菜单号(0--3):");
scanf("%d",&choice);
getchar();
switch(choice)
{
case 1: Article(); break;
case 2: sort(); break;
case 3: Banksystem();break;
case 0: ch='n'; break;
default:printf("菜单选择错误!请重新输入!");
}
}
}
二、文章编译系统
#include
#include
#include
#include
using namespace std;
struct Node
{
char letter;
Node *next;
};
void InitList(Node *L)
{ //输入以"*"结束的文章
cout<<"\t\t\t输入一页文字(以*结束): "< while((L->letter = getchar()) != '*') { L->next = new Node; L = L->next; } L->next = NULL; cout<<"输入成功!"; } void CountStr(Node *L) { //统计某一字符串在文章中出现次数 int n = 0; char s[80], *q; Node *p; cout<<"\t\t\t输入一字符串: "; cin>>s; while(L->next) { for (p = L, q = s; *q != '\0' && p->next; p = p->next, q++) if (p->letter != *q) break; if (*q == '\0') n++; L = L->next; } cout<<"\t\t\t字符串"< } Node *DelStr(Node *L) {//删除某一子串 Node *H = L; char s[80], *q; Node *p; cout<<"\t输入该子串: "; cin>>s; if (H->letter == *s) { for (p = H->next, q = s+1; *q != '\0' && p->next; p = p->next, q++) if (p->letter != *q) break; if (*q == '\0') H = p; } while(L->next) { for (p = L->next, q = s; *q != '\0' && p->next; p = p->next, q++) if (p->letter != *q) break; if (*q == '\0') L->next = p; else L = L->next; } return H; } void print1(Node *L) { //分行输出用户输入的各行字符 while(L->next) { cout< L = L->next; } cout< } void print2(Node *L, int &p1, int &p2, int &p3, int &n) { //统计中英文字母和空格数以及整篇文章总字数 n = p1 = p2 = p3 = 0; for( ; L->next; L = L->next, n++) if(isalpha(L->letter)) p1++; else if(isdigit(L->letter)) p2++; else if(L->letter == ' ') p3++; else if(L->letter == '\n') n--; cout<<"\n\t\t\t全部字母数: "< cout<<"\n\t\t\t数字个数: "< cout<<"\n\t\t\t空格个数: "< cout<<"\n\t\t\t文章总字数: "<