信用卡客户管理系统基本要求:信用卡信息:卡号、用户姓名、身份证号码、开户银行、信用额度、信用积分(可能为负)等。
功能要求:1)能够对信用卡信息进行维护:新建、修改、删除操作;2)按给定的条件(卡号、用户姓名、身份证号码、信用积分等)查询课程信息;3)以文件形式保存相关信息,可以读取默认文件中的信息进行查询等操作。
#include<stdio.h>#include<stdlib.h>#include<string.h>#define BUFLEN 120#define LEN 20#define N 200struct record //结构体{char number[LEN]; //帐号char name[LEN]; // 姓名(name)int noc; //信用额度char bank[4]; //开户银行char bri[8]; //开户年月int credits; //信用积分credit scorechar id[LEN];//身份证}meb[N];int k=1,n,m; // 定义全局变量void readfile(); //读入void seek(); //查找void modify(); //修改void insert(); //添加void del(); //删除void display(); //显示void save(); //保存void menu(); //菜单void to_menu(); //回到菜单main() //主函数{int num;menu();while(1){printf("请输入功能号[1-8]:");scanf("%d",&num);switch(num){case 1:readfile();break; //主菜单选项case 2:seek();break;case 3:modify();break;case 4:insert();break;case 5:del();break;case 6:display();break;case 7:save();break;case 8:k=0;break;default:printf("请在1-8之间选择\n");}if(k==0) break;to_menu();}return(0);}void readfile() // 读入信息(第十章文件){char *p="bank.txt"; //打开文件FILE *fp;int i=0;if ((fp=fopen("bank.txt","r"))==NULL){printf("打开%s 失败! 按回车键返回主菜单!",p);return;to_menu();}while(fscanf(fp,"%s %s %d %s %s %d %s",meb[i].number,meb[i].name,&meb[i].noc, meb[i].bank,meb[i].bri,&meb[i].credits,meb[i].id)==7){i++;i=i;}fclose(fp);n=i;printf("录入完毕!\n");}void seek() //查询{int i,item,flag,zn;char s1[21]; //查询菜单选项printf("------------------╭┴┴-----┴┴╮\n");printf("1.按用户姓名查询││\n");printf("2.按信用积分查询│●●│\n");printf("3.按卡号查询│○╰┬┬┬╯○│\n");printf("4.按身份证查询│╰-╯/\n");printf("5.退出本系统╰-┬○----┬○╯\n");printf("------------------\n");while(1){printf("请选择子菜单编号:");scanf("%d",&item);flag=0;switch(item) //查询菜单选项{case 1:printf("请输入要查询的信用卡用户的姓名:\n");scanf("%s",&s1);printf("%s信用卡用户帐号,姓名,信用额度,开户银行,开户年月,信用积分,身份证号码分别为:\n",s1);for(i=0;i<n;i++)if(strcmp(meb[i].name,s1)==0){flag=1;printf("%s %s %d %s %s %d %s\n",meb[i].number,meb[i].name,meb[i].noc,meb[i].bank,meb[i].b ri,meb[i].credits,meb[i].id);}if(flag==0)printf("该用户不存在!\n"); break;case 2: //用信用积分查询printf("请输入要查询的信用卡用户信用积分:\n");scanf("%d",&zn);printf("有%d个积分的信用卡用户帐号,姓名,信用额度,开户银行,开户年月,信用积分,身份证号码分别为:\n",zn);for(i=0;i<n;i++)if(meb[i].credits==zn){flag=1;printf("%s %s %d %s %s %d %s\n",meb[i].number,meb[i].name,meb[i].noc, meb[i].bank,meb[i].bri,meb[i].credits,meb[i].id);}if(meb[i].credits=!zn)printf("有%d个信用积分的信用卡用户不存在!\n",zn); break;case 3://按卡号查询printf("请输入要查询的帐号\n");scanf("%s",&s1);for(i=0;i<n;i++)if(strcmp(meb[i].number,s1)==0){flag=1;printf("该信用卡用户帐号,姓名,信用额度,开户银行,开户年月,信用积分,身份证号码分别为:\n");printf("%s %s %d %s %s %d %s\n",meb[i].number,meb[i].name,meb[i].noc, meb[i].bank,meb[i].bri,meb[i].credits,meb[i].id);}if(flag==0)printf("该帐号不存在!\n"); break;case 4://身份证号查询printf("请输入要查询的身份证号\n");scanf("%s",&s1);for(i=0;i<n;i++)if(strcmp(meb[i].id,s1)==0){flag=1;printf("该信用卡用户帐号,姓名,信用额度,开户银行,开户年月,信用积分,身份证号码分别为:\n");printf("%s %s %d %s %s %d %s\n",meb[i].number,meb[i].name,meb[i].noc, meb[i].bank,meb[i].bri,meb[i].credits,meb[i].id);}if(flag==0)printf("该帐号不存在!\n"); break;case 5:return;default:printf("请在1-5之间选择\n");}}}void modify() //修改员工信息{int i,item,num;char sex1[3],s1[LEN+1],s2[LEN+1]; //长度根据实际情况定义printf("请输入要要修改的信用卡用户的卡号:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(meb[i].number,s1)==0)num=i;printf("------------------╭╮__╭╭╭╭╭__╭╮\n"); //修改项目printf("1.修改姓名││\n");printf("2.修改信用额度││\n");printf("3.修改开户银行│.╭---╮.│\n");printf("4.修改开户年月│≡│●●│≡│\n");printf("5.修改信用积分╰---╯╯\n");printf("6.修改卡号╰--┬○----┬-○------╯\n");printf("7.修改身份证号\n");printf("8.退出本菜单\n");printf("------------------\n");while(1){printf("请选择子菜单编号:");scanf("%d",&item);switch(item){case 1:printf("请输入新的姓名:\n");scanf("%s",s2);strcpy(meb[num].name,s2); break;case 2:printf("请输入新的信用额度:\n");scanf("%d",&meb[num].noc);break;case 3:printf("请输入新的开户银行:\n");scanf("%s",sex1);strcpy(meb[num].bank,sex1); break;case 4:printf("请输入新的开户年月:\n");scanf("%s",s2);strcpy(meb[num].bri,s2); break;case 5: printf("请输入新的信用积分:\n");scanf("%s",&meb[num].credits); break;case 6:printf("请输入新的卡号\n");scanf("%s",s2);strcpy(meb[num].number,s2);case 7:printf("请输入新的身份证号\n");scanf("%s",s2);strcpy(meb[num].id,s2);case 8:return;default:printf("请在1-7之间选择\n");}}}void insert() //增加(插入)员工信息{int i=n,j,flag;scanf("%d",&m);do{flag=1;while(flag){flag=0;printf("请输入第%d 个信用卡用户的卡号:\n",i+1);scanf("%s",meb[i].number);for(j=0;j<i;j++)if(strcmp(meb[i].number,meb[j].number)==0){printf("已有该卡号,请检查后重新录入!\n");flag=1;break; //如果重复立即退出该层循环,提高判断速度}}printf("请输入第%d 个信用卡用户的姓名:\n",i+1); //新入项目scanf("%s",meb[i].name);printf("请输入第%d 个信用卡用户的信用额度:\n",i+1);scanf("%d",&meb[i].noc);printf("请输入第%d 个信用卡用户的开户银行:\n",i+1);scanf("%s",&meb[i].bank);printf("请输入第%d 个信用卡用户的开户年月:(格式:年.月)\n",i+1);scanf("%s",&meb[i].bri);printf("请输入第%d 个信用卡用户的信用积分:\n",i+1);scanf("%d",&meb[i].credits);printf("请输入第%d 个信用卡用户的身份证号:\n",i+1);scanf("%s",&meb[i].id);if(flag==0){i=i;i++;}}while(i<n+m);n+=m;printf("录入完毕!\n");}void del() //删除员工信息(按帐号){int i,j,sos,flag=0;char s1[LEN+1];scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(meb[i].number,s1)==0){flag=1;for(j=i;j<n-1;j++)meb[j]=meb[j+1];}if(flag==0)printf("该信用卡用户帐号不存在!\n");if(flag==1){printf("是否确认删除:1删除\n2不删除\n");//删除确认scanf("%d",&sos);switch(sos){case 1:printf("删除成功,显示结果请选择菜单6\n");n--;break;case 2:return;default:printf("请在1、2之间选择\n");}}}void display() //显示员工信息{int i;printf("所有信用卡用户的信息为:\n");printf("信用卡用户帐号,姓名,信用额度,开户银行,开户年月,信用积分,身份证号分别为:\n");for(i=0;i<n;i++){printf(" %s %s %d %s %s %d %s\n",meb[i] .number,meb[i].name,meb[i].noc,meb[i].bank,meb[i].bri,meb[i].credits,meb[i].id);}}void save() //保存信息{int i,flag=0;FILE *fp;fp=fopen("bank.txt","w"); //文件写入for(i=0;i<n;i++){fprintf(fp,"%s %s %d %s %s %d %s\n",meb[i].number,meb[i].name,meb [i].noc,meb[i].bank,meb[i].bri,meb[i].credits,meb[i].id);} fclose(fp);}void menu() //主界面{system("cls");//清屏printf(" ╔═══════════════════════════════════╗\n");printf(" ║信用卡用户信息管理系统║\n");printf(" ║制作人员:LostBoys Stduio _/ ̄\║\n");printf(" ║****系统功能菜单***** ┬┴┬┴▏▔▔▔▔\║\n");printf(" ║▄︻┻═┳一一┴┬┴/\/\║\n");printf(" ║ 1.读入信用卡用户信息┬┴∕/)║\n");printf(" ║ 2.查询信用卡用户信息┴┬▏●▏║\n");printf(" ║ 3.按信用卡用户卡号修改信息┬┴▏▔█◤║\n");printf(" ║ 4.增加信用卡用户信息┴◢██◣\__/║\n");printf(" ║ 5.按信用卡用户帐号删除信息┬█████◣/║\n");printf(" ║ 6.显示当前信用卡用户信息┴█████████████◣║\n");printf(" ║7.保存(数据无价,务必保存) ◢██████████████◣║\n");printf(" ║8.退出系统◢███████████████◣║\n");printf(" ║▄︻┻═┳一一◢████████████████▄║\n");printf(" ║║\n");printf(" ╚═══════════════════════════════════╝\n");}void to_menu()//用来返回主菜单函数的函数头{char c1,c2;printf("\n\n\n按回车键返回主菜单...");scanf("%c%c",&c1,&c2);menu();//调用主菜单函数}。