Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 3 của 3
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Giúp đỡ code ngôn ngữ C, chương trình mô phỏng máy rút tiền tự động.

    Em vừa học lập trình C, đang học phần vòng lặp, thầy có ra bài tập về nhà là viết chương trình mô phỏng máy rút tiền tự động, đề thầy ra thế này:
    Viết chương trình mô phỏng máy rút tiền tự đông ATM.
    Giả sử rằng giá trị tài khoản được khởi đầu với 10.000 đồng
    và máy này cho phép thực hiện các thao tác rút tiền ấn R,
    nộp tiền ấn N và xem tài khoản ấn X.
    Khi rút tiền phải kiểm tra đảm bảo để số tiền còn lại không bị âm
    và số tiền rút là bội số của 10.000 (tức là chia hết cho 10.000).
    (HD: sử dụng Switch-case để cho phép chọn chức năng.)
    E đã viết được thế này:
    Mã:
    #include <stdio.h>
    #include <conio.h>
    main(){
    	int tk,tien;
    	char ch,key;
    	tk=10000;
    	printf("Chuong trinh mo phong may rut tien ATM");
    	while(key!=27){
    	printf("
    Moi ban nhap:
    n de nop tien
    r de rut tien
    x de xem tai khoan: "); scanf("%c",&ch);
    	if(ch=='n' || ch=='x' || ch=='r')
    		switch(ch){
    			case 'n':{
    				printf("Moi ban nhap so tien can gui: "); scanf("%d",&tien);
    				tk+=tien;
    				printf("So tien trong tai khoan quy khach la: %d",tk);
    				printf("
    Moi ban nhan phim bat ki de tiep tuc, hoac Esc de thoat.");
    				key=getch();
    				break;
    			}
    			case 'r':{
    				printf("Moi ban nhap so tien can rut: "); scanf("%d",&tien);
    				if(tien>tk){
    					printf("So tien ban rut lon hon so tien hien tai trong tai khoan.");
    					printf("
    Moi ban nhan phim bat ki de tiep tuc, hoac Esc de thoat.");
    					key=getch();
    				}
    					else
    						if(tien%10000!=0){
    							printf("So tien can rut phai la boi so cua 10000.");
    							printf("
    Moi ban nhan phim bat ki de tiep tuc, hoac Esc de thoat.");
    							key=getch();
    						}
    							else{
    								tk-=tien;
    								printf("So tien con lai trong tai khoan quy khach la: %d",tk);
    								printf("
    Moi ban nhan phim bat ki de tiep tuc, hoac Esc de thoat.");
    								key=getch();
    							}
    				break;
    			}
    			case 'x':	printf("So tien trong tai khoan quy khach la: %d",tk);
    						printf("
    Moi ban nhan phim bat ki de tiep tuc, hoac Esc de thoat.");
    						key=getch();
    				break;
    		}
    		else printf("
    Ban da chon sai ki tu, moi ban nhap lai, hoac nhan Esc de thoat ra.");
    		key=getch();
    	}
    }
    Code em không bị lỗi, nhưng khi chạy thì nó bị như thế này:

    Mọi người xem giùm e thiếu chỗ nào, e cảm ơn nhiều

  2. #2
    Ngày tham gia
    Sep 2015
    Đang ở
    Hà Nội
    Bài viết
    0
    #include <stdio.h>
    #include <conio.h>
    main()
    {
    int tk,tien;
    char ch,key;
    tk=10000;
    printf("Chuong trinh mo phong may rut tien ATM");
    do{
    printf("
    Moi ban nhap:
    n de nop tien
    r de rut tien
    x de xem tai khoan
    Q de Thoat: "); scanf("%c",&ch);
    switch(ch){
    case 'n':{
    printf("Moi ban nhap so tien can gui: "); scanf("%d",&tien);
    tk+=tien;
    printf("So tien trong tai khoan quy khach la: %d",tk);
    getch();
    break;
    }
    case 'r':
    printf("Moi ban nhap so tien can rut: "); scanf("%d",&tien);
    if(tien>tk){
    printf("So tien ban rut lon hon so tien hien tai trong tai khoan.");
    printf("
    Moi ban nhan phim bat ki de tiep tuc, hoac Esc de thoat.");
    getch();break;
    }
    else
    if(tien%10000!=0){
    printf("So tien can rut phai la boi so cua 10000.");
    printf("
    Moi ban nhan phim bat ki de tiep tuc, hoac Esc de thoat.");

    }
    else{
    tk-=tien;
    printf("So tien con lai trong tai khoan quy khach la: %d",tk);
    printf("
    Moi ban nhan phim bat ki de tiep tuc, hoac Esc de thoat.");

    }
    getch();break;

    case 'x': printf("So tien trong tai khoan quy khach la: %d",tk);
    printf("
    Moi ban nhan phim bat ki de tiep tuc, hoac Esc de thoat.");
    getch();
    break;
    }

    }while(ch !='q' );
    }

  3. #3
    Mình nhìn sơ thì thấy cò vẻ biến key chưa được tạo thì sao nó biết key!= 27 ???
    Bạn thử dùng flushall() đặt trong vòng while đầu tiên, đặt trên nhất để làm sạch. while(key!=27){ flushall()
    ......} Kiến thức hạn hẹp không biết giúp được bạn không.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •