Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h> //KÄYTÄNNÖSSÄ TOIMII, POISTA VAIN ERRORMESSAGET JA SIISTI NÄTIX
- void nosta_rahaa();
- int katso_saldo();
- int valitse_toiminto();
- int kysy_salasana();
- void talleta_rahaa();
- void lueRoskat();
- void paivita_saldo();
- static int saldo;
- static char tilinumero[250];
- FILE * tili;
- FILE * tiliKirjoita;
- char oikea_salasana[100];
- int main(void){
- kysy_salasana();
- }
- int kysy_salasana(){
- char koodi[4];
- char salasana[100];
- int result;
- while(1){
- printf("Anna tilinumero: ");
- fgets(tilinumero, 250, stdin);
- if( tilinumero[ strlen(tilinumero) -1] == '\n'){
- tilinumero[ strlen(tilinumero) -1] = '\0';
- }else{
- lueRoskat();
- }
- strcat(tilinumero, ".tili");
- if( ( tili = fopen( tilinumero, "r" ))!=NULL){
- fgets( oikea_salasana, 100, tili );
- if( oikea_salasana[ strlen(oikea_salasana) -1] == '\n'){
- oikea_salasana[ strlen(oikea_salasana) -1] = '\0';
- do {
- printf("Anna pinkoodi: ");
- fgets( salasana, 100, stdin );
- if( salasana[ strlen(salasana) -1] == '\n'){
- salasana[ strlen(salasana) -1] = '\0';
- if( (result = strcmp( salasana, oikea_salasana )) == 0 ){
- fscanf(tili, "%d", &saldo);
- fclose(tili);
- }else
- printf("Vaara pin-koodi, yrita uudelleen!\n");
- }while( result != 0 );
- printf("%d\n", saldo);
- valitse_toiminto();
- }else{
- printf("Tiedostoa ei loytynyt!\n");
- }
- }
- return(0);
- }
- int valitse_toiminto(){
- int lopeta = 0;
- while (lopeta == 0){
- int toiminto = 0;
- printf("Valitse toiminto: \n(1) Nosta rahaa\n(2) Katso saldo\n(3) Talleta rahaa\n(4) Lopeta\n");
- scanf("%d", &toiminto);
- if (toiminto == 1){
- nosta_rahaa();
- }else if (toiminto == 2){
- katso_saldo();
- }else if (toiminto == 3){
- talleta_rahaa();
- }else if (toiminto == 4){
- lopeta = 1;
- }else
- printf("hupsista!");
- }
- if (lopeta == 1){
- printf("Kiitos asioinnista!\n");
- }
- return(0);
- }
- int katso_saldo(){
- printf("Tilillasi on %d euroa rahaa.", saldo);
- return(0);
- }
- void talleta_rahaa(){
- int summa;
- printf("Syota talletettava summa: ");
- scanf("%d", &summa);
- saldo = saldo+summa;
- paivita_saldo();
- }
- void lueRoskat(void){
- while(fgetc(stdin) != '\n');
- }
- void nosta_rahaa(void){
- int nosto, kakskyt, viiskyt;
- printf("Syota nostettava summa: ");
- scanf("%d", &nosto);
- if (saldo < nosto){
- printf("Uppsalaa, ei ole tililla tarpeeksi rahhaa!\n");
- }else{
- viiskyt = nosto / 50;
- kakskyt = (nosto%50)/20;
- if (nosto < 20 || nosto > 1000){
- printf("Sallitut nostot: 20-1000e.\n");
- }else if (nosto == 30){
- printf("Kiusallinen summa. Valitettavasti automaatti ei pysty tata antamaan.\n");
- }else if (nosto % 50 == 0){
- printf("Automaatti antaa %d x 50e setelia.\n", viiskyt);
- saldo = saldo-nosto;
- paivita_saldo();
- }else if ((nosto % 50)%20 == 0){
- printf("Automaatti antaa %d x 50e seteleita ja %d x 20e seteleita.\n", viiskyt, kakskyt);
- saldo = saldo-nosto;
- paivita_saldo();
- }else if (nosto % 50 == 30 || nosto % 50 == 10){
- viiskyt = viiskyt - 1;
- kakskyt = kakskyt + 3;
- printf("Automaatti antaa %d x 50e seteleita ja %d x 20e seteleita.\n", viiskyt, kakskyt);
- saldo = saldo-nosto;
- paivita_saldo();
- }else{
- printf("Lukua ei voi antaa 20e ja 50e seteleina.\n");
- }
- }
- }
- void paivita_saldo(void){
- if (NULL != (tiliKirjoita = fopen(tilinumero, "w"))){
- fprintf(tiliKirjoita, "%s\n%d", oikea_salasana, saldo);
- fclose(tiliKirjoita);
- }else{
- printf("Tiedosto hukassa!\n");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement