C语言实现_ATM自动取款机系统
来源:互联网 发布:java简单数据字典 编辑:程序博客网 时间:2024/05/12 12:03
一、系统简介
1、使用技术点:
数组:把具有相同数据类型的若干变量按有序的形式组起来,以便于程序处理,这些数据元素的集合就是数组。
指针:指针是一个特殊的变量,它里面存储的是地址。
文本文件:数据在相关介质上的表现形式。
函数:具有某种特定意义的代码的集合,利用它可实现代码的重用。
2、主要功能模块:
欢迎界面、登陆界面、操作界面、退出系统。
二、演示效果
进入系统后,有提示信息,界面为绿色代表安全。
选择Y登陆系统
登陆界面密码星号化,使得系统更安全,用户信息存储在文件中。
登陆成功后进入主界面。
选择相应的选项可以执行相应的功能
三、功能实现
1、欢迎界面的实现用函数welcom实现,建立.h文件命名welcom.h
void wel()//欢迎界面;{FILE *fp;if((fp=fopen("data/welcome.txt","r"))!=NULL){char ch[10000];while(!feof(fp)){fgets(ch,100,fp);printf(ch);Sleep(200);}printf("\n\n");fclose(fp);}}void menu()//主菜单;{FILE *fp;if((fp=fopen("data/menu.txt","r"))!=NULL){char ch[100];while(!feof(fp)){fgets(ch,100,fp);printf(ch);}fclose(fp);}}
2.用户的功能由函数client实现,也是存储在client.h文件中。void showmoney()//功能1:查询余额{printf("\t用户名 :%s\n",user.name);printf("\t账户余额:%d\n",user.money);printf("\t请按Enter键返回\n");getchar();}void drawmoney()//功能2:取款业务{FILE *fp;int a,i;char c;while(1){printf("\t请输入您的取款金额:");scanf("%d",&a);if(a>user.money)printf("\t账户余额不足,请重新输入!\n");else if(a<0)printf("\t输入有误,请重新输入!\n");elsebreak;}getchar();user.money-=a;if((fp=fopen("data/client.dat","wb"))!=NULL){fwrite(&user, sizeof(client), 1 ,fp);fclose(fp);}printf("\t取款成功,请收好您的钞票!\n");printf("\t是否打印凭条? y/n ");scanf("%c",&c);getchar();if(c=='Y' || c=='y'){printf("\t正在打印请稍后。。。。。\n\t\t");for(i=0;i<10;i++){printf("■");Sleep(400);}printf("\n");printf("\t打印完成,请收好您的凭条\n");printf("\t请按Enter键退出\n");getchar();}else{printf("\t请按Enter键退出\n");getchar();}}void savemoney()//功能3:存款业务{FILE *fp;int a,i;char c;printf("\t请输入您的存款数额:");scanf("%d",&a);getchar();user.money+=a;if((fp=fopen("data/client.dat","wb"))!=NULL){fwrite(&user, sizeof(client), 1 ,fp);fclose(fp);}printf("\t存款成功\n");printf("\t是否打印凭条? y/n ");scanf("%c",&c);getchar();if(c=='Y' || c=='y'){printf("\t正在打印请稍侯。。。。。\n\t\t");for(i=0;i<10;i++){printf("■");Sleep(400);}printf("\n");printf("\t打印完成,请收好您的凭条\n");printf("\t请按Enter键退出\n");getchar();}else{printf("\t请按Enter键退出\n");getchar();}}void updatekey()//功能5:改密业务{char ch[10];char str[10];FILE *fp;int i;printf("\t请输入您的初始密码 :");strcpy(ch,get_password());while(1){if(strcmp(ch,user.key) != 0){printf("\t您的初始密码输入错误请重新输入:");strcpy(ch,get_password());}else break;}while(1){printf("\t请输入您要修改的密码 :");strcpy (ch,get_password());printf("\t请再次输入要修改的密码:");strcpy(str,get_password());if(strcmp(ch,str)==0){strcpy(user.key,ch);printf("\t正在为您修改,请稍候\n\t");for(i=0;i<10;i++){printf("■");Sleep(400);}if((fp=fopen("data/client.dat","wb"))!=NULL){fwrite(&user, sizeof(client), 1 ,fp);fclose(fp);}printf("\n\t密码修改成功\n");printf("\t请按回车键退出\n");getchar();break;}elseprintf("\t您两次密码输入不一致,请重新输入!\n");}}void rename()//功能5:修改用户名{FILE *fp;char name[30];char mame[30];while(1){printf("\t请输入您要修改的用户名:");scanf("%s",&name);printf("\t请确认您的用户名 :");scanf("%s",&mame);getchar();if(strcmp(name,mame)==0){strcpy(user.name,name);if((fp=fopen("data/client.dat","wb"))!=NULL){fwrite(&user, sizeof(client), 1 ,fp);fclose(fp);}printf("\t已成功修改您的用户名,请牢记!\n");printf("\t请按回车键退出\n");getchar();break;}elseprintf("\t您两次输入的用户名不一致,请重新输入!\n");}}void exitsystem()//功能6:退出系统{system("cls");FILE *fp;char ch;fp=fopen("data/exit.txt","r");while(!feof(fp)){ch=fgetc(fp);putchar(ch);}fclose(fp);printf("\n");printf("请按Enter键退出\n");getchar();}3、登陆功能用函数login实现struct client //结构体用于存储信息;{char name[50]; //用户名char key[10]; //密码int money;}user;char *get_password()//星号密码获取函数;{int i=0;char a[50];char ch='\0';while(ch != '\r'){ch = getch();//无回显的从键盘接收一个字符,if(ch == 8) //8是退格符的 ASSIC码。{a[--i]='\0';putchar(8);putchar(' ');putchar(8);}else{if(ch=='\r')break;a[i++] = ch;printf("*");//输出星号}}a[i]='\0';printf("\n");return &a[0];} int login() //登陆函数;{FILE *fp; //读取文件保存的用户名及密码,赋值给结构体。if((fp=fopen("data/client.dat","rb"))!=NULL){fread(&user,sizeof(user),1,fp);}else{printf("该用户信息错误!\n");}char a[50];char b[50];int count=0,i,flag=0;while(1){printf("\t请输入您的用户名:");scanf("%s",a);printf("\t请输入您的密码 :");strcpy(b,get_password());if(strcmp(a,user.name)!=0 || strcmp(b,user.key)!=0)printf("\t用户名或者密码输入错误!请重新输入!\n");else {printf("\t\t\t正在登陆 请稍后\n");printf("\t\t\t");for(i=0;i<8;i++){printf("■");Sleep(500); //让系统在此处停留500毫秒之后在运行。}printf("\n");break;}count++;if(count == 3){printf("\t\t您输入错误已超过三次,系统已退出!\n");system("color 4a");flag=1;break;}}return flag;}
4、主函数ATM.cpp中值调用,使得结构更清晰合理。#include <stdio.h>#include <string.h>#include <stdlib.h>#include <conio.h>#include <windows.h>#include "login.h" //登陆函数模块#include "Welcome.h" //界面欢迎模块#include "client.h" //用户操作界面int main(){system("color 2a");wel();printf("\t\t\t确定登陆?Y/N ");char c;scanf("%c",&c);getchar();if(c=='n'||c=='N'){exitsystem();}else{int f;system("cls"); //清屏printf("\t\t\t进入中,请稍候.......\n\n");Sleep (800);f=login();system("cls");if(f==1){printf("正在退出系统。。。。");Sleep(3000);exitsystem();}else{while(1){menu();printf("\n\t请输入代号:");int m;scanf("%d",&m);getchar();if(m==1){Sleep (500);showmoney();system("cls");}else if(m==2){Sleep (500);drawmoney();system("cls");}else if(m==3){Sleep (500);savemoney();system("cls");}else if(m==4){Sleep (500);updatekey();system("cls");}else if(m==5){Sleep (500);rename();system("cls");}else if(m==6){exitsystem();break;}}}}return 0;}四、补充
该系统还有很多特效,但是由于不会在博客展示动态效果,更多信息,课在本地运行展示。
0 0
- C语言实现_ATM自动取款机系统
- 自动取款机流程模拟C语言的实现
- C语言实现 ATM机存取款系统
- <1>c语言实现ATM存取款系统(数组)
- <4>c语言实现ATM存取款系统(链表)
- 自动取款机ATM取款系统 课题项目
- c语言:模拟实现一个输入密码自动取款的程序
- <3>c语言实现ATM存取款系统(数组实现)
- 模拟ATM自动取款机系统
- <5>c语言实现ATM存取款系统(文件、排序)
- c语言ATM取款机程序
- linux 调用系统函数来实现 ATM 自动取款机功能 (进程间通信)
- [c语言]模拟银行atm机,实现存款、取款等业务
- 【学习ios之路:C语言】小程序:实现类似ATM取款机功能.
- 自动取款机
- 自动取款机
- NXOJ:自动取款机
- ATM自动取款机
- 项目总结 不断更新中
- Android利用Soap读取WebService并且解析XML的DataSet数据
- 工作中遇到的技术问题 记录
- OO面相对象设计的五大原则
- JTable常见用法细则
- C语言实现_ATM自动取款机系统
- 网络编程--WINSOCK
- 修改linux下的环境变量PATH
- 41_leetcode_Decode Ways
- java--图片和BYTE数组的那些事
- 最大电视现英国:长9米重1吨售1061万
- 微信公众平台接口程序搜索音乐
- 关于无法进入断点的问题
- 虚拟机安装WIN7