zoukankan      html  css  js  c++  java
  • 个人作业三-ATM管理系统

    博客班级 计算机18级
    作业要求 ATM管理系统
    作业目标 熟悉ATM机制并实现相应功能
    学号 3180701128

    一.题目要求

    编写一个ATM管理系统,语言不限,要求应包括以下主要功能:

    (1)开户,销户

    (2)查询账户余额

    (3)存款

    (4)取款

    (5)转账(一个账户转到另一个账户)等...

    二.代码提交

    结构体:
    struct node
    {
    	char Name[30];
    	char Id[30];
    	char Key[20];
    	float Money;
    } info[10000];
    
    保存信息
    int preserve_info()//保存信息 
    {
    	int i = 0;
    	FILE *fp;
    	fp = fopen("info.txt", "w");
    	if(fp == NULL)
    	{
    		printf("文件打开失败
    ");
    		exit(0);
    	}
    	for(i=0; i<10000 && info[i].Id[0]!=''; i++)
    	{
    		fprintf(fp, "%s	", info[i].Name);
    		fprintf(fp, "%s	", info[i].Id);
    		fprintf(fp, "%s	", info[i].Key);
    		fprintf(fp, "%f
    ", info[i].Money);
    	}
    	fclose(fp);
    	return 0;
    }
    
    读取信息
    int  read_info()//读取信息 
    {
    	int i;
    	FILE *fp;
    	fp = fopen("info.txt", "rb");
    	if(fp == NULL)
    	{
    		printf("文件打开失败
    ");
    		exit(0);
    	} 
    	i=0;
    	while(!feof(fp))
    	{
    		fscanf(fp, "%s", &info[i].Name);
    		fscanf(fp, "%s", &info[i].Id);
    		fscanf(fp, "%s", &info[i].Key);
    		fscanf(fp, "%d", &info[i].Money);
    		i++;
    	}
    	fclose(fp);
    	return 0;
    }
    
    创建信息
    int create_info()//创建信息
    {
    	int i;
    	for(i=0; i<10000; i++)
    	{
    		if(info[i].Id[0]=='')
    		{
    			getchar();
    			printf("
      姓名:");
    			gets(info[i].Name);
    			printf("  身份证号:");
    			gets(info[i].Id);
    			printf("  密码:");
    			gets(info[i].Key);
    			info[i].Money = 0;
    			printf("
    账户创建成功!!!
    
    ");
    			return 0;
    		}
    	}
    	return 0;
    } 
    
    存取款以及转账
    int add_money(int n) //存款
    {
    	float num;
    	printf("存款金额为:");
    	scanf("%f", &num);
    	info[n].Money = info[n].Money + num;
    
    	printf("存款成功,剩余金额为:%.2f
    ", info[n].Money);
    
    	return 0;
    }
    
    int withdraw_money(int n) //取款
    {
    	float num;
    	printf("取款金额为:");
    	scanf("%f", &num);
    	info[n].Money = info[n].Money - num;
    
    	printf("取款成功,剩余金额为:%.2f
    ", info[n].Money);
    
    	return 0;
    }
    
    int transfer_money(int n)//转账 
    {
    	float num;
    	int i;
    	char other_id[30];
    	printf("请输入收款人的身份证号:");
    	getchar();
    	gets(other_id);
    	
    	for(i=0; i<10000; i++)
    	{
    		if(strcmp(info[i].Id, other_id) == 0)
    		{
    			printf("请输入转账金额:");
    			scanf("%f",&num);
    			
    			info[n].Money = info[n].Money - num;
    			info[i].Money = info[i].Money + num;
    			printf("转账成功,剩余金额为:%.2f", info[n].Money);
    			return 0;
    		}
    	} 
    	printf("转账失败
    ");
    	return 0;
    }
    
    登录
    int login_account() //登录
    {
    	int n;
    	char personal_id[30], personal_key[20];
    
    	printf("请输入您的身份证号:");
    	getchar();
    	gets(personal_id);
    	printf("请输入您的密码:");
    	gets(personal_key);
    
    	for (n=0; n<10000; n++)
    	{
    		if ((strcmp(info[n].Id, personal_id) == 0) && (strcmp(info[n].Key, personal_key) == 0))
    		{
    			return n;
    		}
    	}
    	return n;
    }
    
    截图
    创建账户

    创建账户.png

    存款

    存款.png

    登录

    登录.png

    取款

    取款.png

    销户

    销户.png

    转账

    转账.png

    三.个人小结

    psp 任务内容 计划完成需要的时间(min) 实际完成需要的时间(min)
    Planning 计划 20 16
    Estimate 估计这个任务需要多少时间,并规划大致工作步骤 20 23
    Development 开发 300 280
    Analysis 需求分析(包括学习新技术) 24 20
    Design Spec 生成设计文档 10 5
    Design Review 设计复审 10 5
    Coding Standard 代码规范 5 3
    Design 具体设计 20 15
    Coding 具体编码 60 58
    Code Review 代码复审 5 10
    Test 测试(自我测试,修改代码,提交修改) 20 15
    Reporting 报告 10 8
    Test Report 测试报告 5 3
    Size Measurement 计算工作量 3 2
    Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 6 5
  • 相关阅读:
    Linux下删除某些非法字符文件名的文件
    华为面经之我的同学是个死神
    算法面经之华为
    【剑指offer】两个链表的第一个公共结点
    算法面经之百度
    【剑指offer】丑数
    【剑指offer】把数组排成最小的数
    【深度学习最优化方法】
    【矩阵范数与秩、正定】
    算法面经之大华+顺丰+爱奇艺
  • 原文地址:https://www.cnblogs.com/hudamao/p/14003176.html
Copyright © 2011-2022 走看看