อาจารย์ท่านให้โจทย์แนวข้อสอบปลายภาคมาให้ไปลองทำ
-----------------------------------------
esy atm (รหัสผ่าน 1234 เงินคงเหลือในบัญชี1500)
input password ....
ถ้า password ถูกต้องจะถอนเงินได้
ถ้า password ผิด ให้ปิดโปรแกรม
input withdraw money .....500 เงินที่ต้องการถอน
ถ้า เงินคงเหลือในบัญชี พอ ที่จะถอน ให้แสดงผลดังนี้
remaining money = ?? 1000 เงินที่เหลือในบัญชีหลังจากถอน
ถ้าเงินคงเหลือไม่พอที่จะถอน ให้แสดงผลดังนี้
Not enough money เงินไม่เพียงพอ
Your money = ... 1500เงินที่เหลือในบัญชีเท่าไร
******************
สร้างฟังชั่นย่อยอย่างน้อย 2 ฟังชั่น ไม่รวม void main
----------------------------------
หนูลองทำแล้วค่ะ โจทย์มีข้อกำหนดหลายอย่าง คือหนูลองทำ 2 แบบ 1.แบบครบข้อกำหนดของโจทย์ แต่ยกเว้นฟังชัน Modul แล้วมันรันโปรแกรมได้ปกติคะ แต่พอลองทำ 2.แบบครบตามโจทย์ ลองแบ่งฟังชัน Modul ด้วย เป็น void ..... แล้วมันติด error คะ หนูลองแก้หลายรอบแล้วไม่หาย
โปรแกรมแบบ 1.
#include<stdio.h>
#include<conio.h>
int main(int argc, char *argv[])
{
int money,pass,input,a,i=0,b=0;
char ab;
money = 1500;
do{
printf("\n\t\t esy atm ");
printf("\n\n\t Password.= ");scanf("%d",&pass);
if(pass!=1234){
i++;b--;
if(b=0)
printf("The code is not correct, again.\n");
else
printf("The code is not correct, Close Program.\n");
}
if(pass==1234){
do{
printf("Ok, success\n");
printf("input withdraw money= ");scanf("%d",&input);
if (money>input){
a=money-input;
printf("Ok, success,Total= %d\n",input);
money=a;
printf("remaining money=%d\n",a);}
else{
printf("Not enough money");
printf("\n Your money = %d\n",money);}
printf("Do you want to continue? y or n [y >> Continue] [n >> Close Program] \n");
scanf("%s",&ab);
}while(ab=='y'||ab=='Y');
printf("Thank you\n");
getch();
system("PAUSE"); return 0;
}
}while(i!=0);
printf("Thank you\n");
getch();
system("PAUSE");
return 0;
}
โปรแกรมแบบที่ 2.
#include<stdio.h>
#include<conio.h>
int main(int argc, char *argv[])
{
int money,pass,input,a,i=0,b=0;
char ab;
money = 1500;
void else()
{
printf("\n\t\t esy atm ");
printf("\n\n\t Password.= ");scanf("%d",&pass);
if(pass!=1234){
i++;b--;
if(b=0)
printf("The code is not correct, again.\n");
else
printf("The code is not correct, Close Program.\n");
}
}
void if()
{
if(pass==1234){
do{
printf("Ok, success\n");
printf("input withdraw money= ");scanf("%d",&input);
if (money>input){
a=money-input;
printf("Ok, success,Total= %d\n",input);
money=a;
printf("remaining money=%d\n",a);}
else{
printf("Not enough money");
printf("\n Your money = %d\n",money);}
printf("Do you want to continue? y or n [y >> Continue] [n >> Close Program] \n");
scanf("%s",&ab);
}while(ab=='y'||ab=='Y');
printf("Thank you\n");
getch();
system("PAUSE"); return 0;
}
}
void main()
{
do{
else();
if();
}while(i!=0);
}
printf("Thank you\n");
getch();
system("PAUSE");
return 0;
}
หนูไม่รู้ว่าหนูแบ่งฟังชันผิดหรือเปล่าคะ รบกวนด้วยคะ ขอบคุณคะ
ภาษา C รบกวนผู้รู้ โปรดช่วยชี้แนะทีคะ
-----------------------------------------
esy atm (รหัสผ่าน 1234 เงินคงเหลือในบัญชี1500)
input password ....
ถ้า password ถูกต้องจะถอนเงินได้
ถ้า password ผิด ให้ปิดโปรแกรม
input withdraw money .....500 เงินที่ต้องการถอน
ถ้า เงินคงเหลือในบัญชี พอ ที่จะถอน ให้แสดงผลดังนี้
remaining money = ?? 1000 เงินที่เหลือในบัญชีหลังจากถอน
ถ้าเงินคงเหลือไม่พอที่จะถอน ให้แสดงผลดังนี้
Not enough money เงินไม่เพียงพอ
Your money = ... 1500เงินที่เหลือในบัญชีเท่าไร
******************
สร้างฟังชั่นย่อยอย่างน้อย 2 ฟังชั่น ไม่รวม void main
----------------------------------
หนูลองทำแล้วค่ะ โจทย์มีข้อกำหนดหลายอย่าง คือหนูลองทำ 2 แบบ 1.แบบครบข้อกำหนดของโจทย์ แต่ยกเว้นฟังชัน Modul แล้วมันรันโปรแกรมได้ปกติคะ แต่พอลองทำ 2.แบบครบตามโจทย์ ลองแบ่งฟังชัน Modul ด้วย เป็น void ..... แล้วมันติด error คะ หนูลองแก้หลายรอบแล้วไม่หาย
โปรแกรมแบบ 1.
#include<stdio.h>
#include<conio.h>
int main(int argc, char *argv[])
{
int money,pass,input,a,i=0,b=0;
char ab;
money = 1500;
do{
printf("\n\t\t esy atm ");
printf("\n\n\t Password.= ");scanf("%d",&pass);
if(pass!=1234){
i++;b--;
if(b=0)
printf("The code is not correct, again.\n");
else
printf("The code is not correct, Close Program.\n");
}
if(pass==1234){
do{
printf("Ok, success\n");
printf("input withdraw money= ");scanf("%d",&input);
if (money>input){
a=money-input;
printf("Ok, success,Total= %d\n",input);
money=a;
printf("remaining money=%d\n",a);}
else{
printf("Not enough money");
printf("\n Your money = %d\n",money);}
printf("Do you want to continue? y or n [y >> Continue] [n >> Close Program] \n");
scanf("%s",&ab);
}while(ab=='y'||ab=='Y');
printf("Thank you\n");
getch();
system("PAUSE"); return 0;
}
}while(i!=0);
printf("Thank you\n");
getch();
system("PAUSE");
return 0;
}
โปรแกรมแบบที่ 2.
#include<stdio.h>
#include<conio.h>
int main(int argc, char *argv[])
{
int money,pass,input,a,i=0,b=0;
char ab;
money = 1500;
void else()
{
printf("\n\t\t esy atm ");
printf("\n\n\t Password.= ");scanf("%d",&pass);
if(pass!=1234){
i++;b--;
if(b=0)
printf("The code is not correct, again.\n");
else
printf("The code is not correct, Close Program.\n");
}
}
void if()
{
if(pass==1234){
do{
printf("Ok, success\n");
printf("input withdraw money= ");scanf("%d",&input);
if (money>input){
a=money-input;
printf("Ok, success,Total= %d\n",input);
money=a;
printf("remaining money=%d\n",a);}
else{
printf("Not enough money");
printf("\n Your money = %d\n",money);}
printf("Do you want to continue? y or n [y >> Continue] [n >> Close Program] \n");
scanf("%s",&ab);
}while(ab=='y'||ab=='Y');
printf("Thank you\n");
getch();
system("PAUSE"); return 0;
}
}
void main()
{
do{
else();
if();
}while(i!=0);
}
printf("Thank you\n");
getch();
system("PAUSE");
return 0;
}
หนูไม่รู้ว่าหนูแบ่งฟังชันผิดหรือเปล่าคะ รบกวนด้วยคะ ขอบคุณคะ