当前位置:文档之家› 银行存取款管理系统

银行存取款管理系统

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>//自定义结构体程序struct student{char acad[10],name[20],sex; //客户账号,姓名,性别int age; //客户年龄char addr[30]; //客户住址long int num; //存取款数目};void inputing(student *p); //声明输入函数中的输数据部分并保存的函数void input(student *p,int i); //声明输入函数void insert(student *p,int i); //声明插入函数void output(student *p,int i); //声明输出函数void sort(student *p,int n); //声明排序函数void find(student *p,int n); //声明查找函数int del(student *p,int n); //声明删除函数void main(){system("color 34");student *q=NULL; //自定义类型指针int i=0,j,k,b=0;do{printf("\t\t|-------------------------------------------|\n");printf("\t\t|----------一银行存取款管理系统-------------|\n");printf("\t\t| by:xiaqingsong |\n");printf("\t\t|-------------------------------------------|\n");printf("\t\t| 1.输入客户信息 2.添加客户信息 |\n");printf("\t\t| 3.排序客户信息 4.查找客户信息 |\n");printf("\t\t| 5.删除客户信息 6.显示客户信息 |\n");printf("\t\t| 7.退出系统 |\n");printf("\t\t|-------------------------------------------|\n");printf("\t\t\t\t请选择菜单: ");scanf("%d",&j);switch(j){case 1:b++;if(b!=1){printf("你已经输入过一次了,不能再选择,加入可以选择<2.添加客户信息>\n");break;}else{printf("请输入要输入的客户人数:");scanf("%d",&i);while(b<=0){printf("输入错误,请重新输入要输入的客户人数:");scanf("%d",&i);}q=(student *)malloc(i*sizeof(student));input(q,i); //调用输入函数break;}case 2:i++;q=(student *)realloc(q,i*sizeof(student));insert(q,i-1); //调用插入函数break;case 3:sort(q,i); //调用排序函数break;case 4:find(q,i); //调用查找函数break;case 5:k=del(q,i); //调用删除函数if(k==1){i--;q=(student *)realloc(q,i*sizeof(student));}break;case 6:output(q,i); //调用输出函数break;case 7:printf("程序即将退出...\n");break;default:printf("菜单选择错误!");}}while(j!=7);free(q);}//输入函数中的输数据部分并保存的函数void inputing(student *p){printf("请输入客户账号:");scanf("%s",p->acad);printf("请输入客户姓名:");scanf("%s",p->name);printf("输入客户住址:");scanf("%s",&(p->addr));do{printf("输入客户性别<m:男/f:女>:");fflush(stdin);scanf("%c",&(p->sex));if(p->sex!='m'&&p->sex!='f'){printf("输入错误,重新");}}while(p->sex!='m'&&p->sex!='f');do{printf("输入客户年龄:");scanf("%d",&(p->age));if(p->age<1||p->age>100){printf("输入错误,重新");}}while(p->age<1||p->age>100);do{printf("输入客户存取款数目:");scanf("%ld",&(p->num));if(p->num<0||p->num>1000000){printf("输入错误,重新");}}while(p->num<0||p->num>1000000);}//输入函数void input(student *p,int i){int x;for(x=0;x<i;x++,p++){printf("请输入第%d名客户存取款信息:\n",x+1);inputing(p); //调用输入函数中的输数据部分并保存的函数printf("\n");}}//输出函数void output(student *p,int i){printf("账号\t姓名\t性别\t年龄\t住址\t存取款数目");int x=0;for(x=0;x<i;x++,p++){printf("%s\t%s\t%c\t%d\t%s\t%ld\n",p->acad,p->name,p->sex,p->age,p->addr ,p->num);}printf("\n");}//插入函数void insert(student *p,int i){p=p+i;printf("请输入要插入的客户存取款信息:\n");inputing(p); //调用输入函数中的输数据部分并保存的函数printf("\n");}//排序函数void sort(student *p,int n){student t;int i,j;{printf("要求按账号从小到大排序.\n");for(i=0;i<n-1;i++){for(j=0;j<n-i-1;j++){if(strcmp((p+j)->acad,(p+j+1)->acad)==1){t=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=t;}}}}output(p,n);}//查找函数void find(student *p,int n){student t;int i=0;printf("要求按客户姓名查找:");printf("请输入要查找的姓名:");scanf("%s",);for(i=0;i<n;i++){if(strcmp(,(p+i)->name)==0){break;}}if(i>=n){printf("查找的姓名是%s的客户,没有找到!\n",);}else{printf("查找的姓名是%s的客户,是所输入的客户中的%d个客户.\n",,i+1);printf("账号\t姓名\t性别\t年龄\t住址\t存取款数目");printf("%s\t%s\t%c\t%d\t%s\t%ld\n",p->acad,p->name,p->sex,p->age,p->addr, p->num);}}//删除函数int del(student *p,int n){student t;int i=0,j;char ch;printf("要求按客户姓名删除:");{printf("输入要删除的客户的姓名:");scanf("%s",);for(i=0;i<n;i++){if(strcmp(,(p+i)->name)==0){break;}}if(i>=n){printf("删除的姓名是%s的客户,没有找到.\n",);return 0;}else{printf("删除的姓名是%s的客户,是所输入的客户中的%d个客户.\n",,i+1);printf("要删除的客户存取款信息:\n");printf("账号\t姓名\t性别\t年龄\t住址\t存取款数目");printf("%s\t%s\t%c\t%d\t%s\t%ld\n",p->acad,p->name,p->sex,p->age,p->addr, p->num);printf("是否一定删除<y:删除/n:不删除>:");fflush(stdin);scanf("%c",&ch);if(ch!='y'){printf("你选择了不删除%s客户存取款信息,没有删除\n",(p+i)->name);return 0;}else{printf("你选择了删除%s客户存取款信息,已删除\n",(p+i)->name);for(j=i;j<n;j++){*(p+j)=*(p+j+1);}return 1;}}}}。

相关主题