阿黎不吃鱼
2021-05-19 08:22
采纳率: 100%
浏览 66

怎样用C语言写一个简单的机房收费管理系统

要有用户添加,删除,修改,还要有机房收费管理和计算机添加删除及修改,感觉好难啊,只会做一个主菜单,之后的完全没有头绪

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • CSDN专家-sinjack 2021-05-19 08:30
    已采纳

    C语言机房收费系统:https://www.docin.com/touch/detail.do?id=2046340479

    点赞 2 打赏 评论
  • 发个银行系统给你参考一下。

    /* Note:Your choice is C IDE */
    #include "stdio.h"
    #include "string.h"
    #define N 50
    //银行的结构体
    struct Bank
    {
    	char name[20]; //姓名
    	char password[20];//登录密码
    	int cardno; //卡号
    	double money; //帐上余额
    }bank[N];
    //记录系统中已经开户的用户数
    int count=0;
    
    //开户
    void kaihu();
    //存款
    void cunkuan();
    //取款
    void qukuan();
    //登录
    int login();
    //查询
    void find();
    //转账
    void transfer();
    
    void main()
    {
    	int num;
    	do{
    		printf("\t\t\t*******************************************************\n");
    		printf("\t\t\t*                                                     *\n");
    		printf("\t\t\t*                 欢迎进入中国银行系统                *\n");
    		printf("\t\t\t*                                                     *\n");
    		printf("\t\t\t*******************************************************\n");
    		printf("\t\t\t请选择您要办理的业务:\n");
    		printf("\t\t\t\t1.开户:\n");
    		printf("\t\t\t\t2.存款:\n");
    		printf("\t\t\t\t3.取款:\n");
    		printf("\t\t\t\t4.查询余额:\n");
    		printf("\t\t\t\t5.转账:\n");
    		printf("\t\t\t\t6.退出:\n");
    		scanf("%d",&num);
    		switch(num)
    		{
    			case 1://开户
    				kaihu();
    				break;
    			case 2://存款
    				cunkuan();
    				break;
    			case 3: //取款
    				qukuan();
    				break;
    			case 4://查询
    				find();
    				break;
    			case 5://转账	
    				transfer();
    				break;
    			case 6:
    				
    				break;
    		}
    		printf("按任意键继续......\n");
    		getch();//暂停
    		system("cls");
    	}while(num!=6);
        
    }
    //开户
    void kaihu()
    {
    	printf("请输入您的姓名:");
    	scanf("%s",bank[count].name);//字符数组赋值   字符数组,数组传址,所以可以不写 &.
    	printf("请输入卡号:");
    	scanf("%d",&bank[count].cardno);
    	printf("请输入密码:");
    	scanf("%s",bank[count].password);
    	printf("请输入开户金额:");
    	scanf("%lf",&bank[count].money);
    	printf("恭喜你开户成功!请妥善保管您的个人信息,详细信息如下:\n");
    	printf("您的姓名是:%s,您的卡号是:%d,您的密码是:%s,您的账上余额是:%0.2lf\n",bank[count].name,bank[count].cardno,bank[count].password,bank[count].money);	
    	count++;
    }
    //登录,返回数组的下标
    int login()
    {
    	int m_cardno;
    	int i;
    	int index=-1;//登录成功的用户下标
    	char m_password[20];
    	printf("请输入卡号和密码");
    	scanf("%d,%s",&m_cardno,m_password);
    	
    	for(i=0;i<count;i++)
    	{
    		if(m_cardno==bank[i].cardno && strcmp(m_password,bank[i].password)==0)	//字符串比较要加头文件 "string.h"
    		{
    			index = i;
    			break; //找到以后立即终止循环
    		}
    	}
    	return index;
    }
    //存款
    void cunkuan()
    {
    	double m_money;
    	int currentIdx;
    	//返回的下标大于等于0时,表示登录成功
    	currentIdx=login();
    	if(currentIdx>=0)
    	{
    		printf("请输入你要存款的金额:");
    		scanf("%lf",&m_money);
    		printf("存款之前您的账上余额是:%0.2lf\n",bank[currentIdx].money);
    		bank[currentIdx].money += m_money;
    		printf("存款%0.2lf元,您的账上余额是:%0.2lf\n",m_money,bank[currentIdx].money);
    		
    	}else{
    		printf("您输入的卡号或密码错误\n");
    	}
    }
    //取款
    void qukuan()
    {
    	double m_money;
    	int currentIdx;
    	//返回的下标大于等于0时,表示登录成功
    	currentIdx=login();
    	if(currentIdx>=0)
    	{
    		printf("请输入你要取款的金额:");
    		scanf("%lf",&m_money);
    		if(bank[currentIdx].money-m_money>=0)
    		{
    			printf("取款之前您的账上余额是:%0.2lf\n",bank[currentIdx].money);
    			bank[currentIdx].money -= m_money;
    			printf("取款%0.2lf元,您的账上余额是:%0.2lf\n",m_money,bank[currentIdx].money);
    		}else{
    			printf("余额不足!\n");
    		}
    	}else{
    		printf("您输入的卡号或密码错误\n");
    	}
    }
    //查询
    void find()
    {
    	int currentIdx;
    	//返回的下标大于等于0时,表示登录成功
    	currentIdx=login();
    	if(currentIdx>=0)
    	{
    		printf("您的账上余额是:%0.2lf\n",bank[currentIdx].money);
    	}else{
    		printf("您输入的卡号或密码错误\n");
    	}	
    	
    }
    //转账
    void transfer()
    {
    	double m_money;
    	int currentIdx;
    	int parnetcardno;
    	int i,parentIdx=-1;
    	//返回的下标大于等于0时,表示登录成功
    	currentIdx=login();
    	if(currentIdx>=0)
    	{
    		printf("请输入对方卡号:");
    		scanf("%d",&parnetcardno);	
    		for(i=0;i<count;i++)
    		{
    			if(bank[i].cardno==parnetcardno){
    				parentIdx=i; //表示对方的账号信息对应的下标
    				printf("请输入转出金额:");
    				scanf("%lf",&m_money);
    				if(bank[currentIdx].money-m_money>=0)
    				{
    					//自己的账号减掉转出的钱
    					bank[currentIdx].money-=m_money;
    					//对方的账号加上转入的钱
    					bank[parentIdx].money+=m_money;
    					printf("转账成功:转出%0.2lf元,账上余额是:%0.2lf\n",m_money,bank[currentIdx].money);
    				}else{
    					printf("转账失败:余额不足\n");
    				}
    				break;
    			}	
    		}
    		if(parentIdx==-1){
    			printf("转账失败:对方卡号不存在\n");
    		}
    	}else{
    		printf("您输入的卡号或密码错误\n");
    	}
    }
    点赞 2 打赏 评论
  • Plate79578 2021-05-19 10:11

    确定一下这些东西需要哪些字段,再选定一下用数组还是链表存储,就可以开始写了。

    点赞 打赏 评论
  • 有问必答小助手 2021-05-19 11:49

    您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

    如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

    ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

    点赞 打赏 评论

相关推荐 更多相似问题