Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Từ 1 tới 3 trên tổng số 3 kết quả

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

  1. #1
    Ngày gia nhập
    04 2012
    Nơi ở
    Quận Thanh Khê- Đà Nẵng
    Bài viết
    0

    Mặc định 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:
    Code:
    #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("\nMoi ban nhap:\nn de nop tien\nr de rut tien\nx 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("\nMoi 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("\nMoi 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("\nMoi 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("\nMoi 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("\nMoi ban nhan phim bat ki de tiep tuc, hoac Esc de thoat.");
    						key=getch();
    				break;
    		}
    		else printf("\nBan 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:
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		Untitled.png
Lần xem:	17
Size:		9.3 KB
ID:		24226
    Mọi người xem giùm e thiếu chỗ nào, e cảm ơn nhiều
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Đã được chỉnh sửa lần cuối bởi caocuongcc92 : 25-11-2014 lúc 12:39 AM.

  2. #2
    Ngày gia nhập
    04 2014
    Bài viết
    7

    Mặc định Dùng do while đi bạn. Mình chưa debug bài bạn nhưng switch case cứ làm MENU kiểu thế này

    #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("\nMoi ban nhap:\nn de nop tien\nr de rut tien\nx de xem tai khoan \n 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("\nMoi 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("\nMoi 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("\nMoi 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("\nMoi ban nhan phim bat ki de tiep tuc, hoac Esc de thoat.");
    getch();
    break;
    }

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

  3. #3
    Ngày gia nhập
    05 2013
    Nơi ở
    TPHCM
    Bài viết
    2

    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.
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn