All pastes #804520 Raw Edit

kuraa_kokoPaska

public c v1 · immutable
·published 2007-12-03 15:32 UTC
rendered paste body
#include <stdio.h>#include <string.h>#include <ctype.h>#include <conio.h>#define TAVARAT_KOKO 100#define BUF_KOKO 50typedef struct tavara { 	char nimi[BUF_KOKO]; 	double hinta; 	long kpl; } Tavara;int lisays(Tavara tavarat[]);int poista(Tavara tavarat[]);int valinta_KE();//testitarkoitukseenvoid annaTeksti(char jono[]);int vertaa(char* a, char* b);void annaIntLuku(int* luku);void annaDoubleLuku(double* luku);int main(int argc, char** argv){	//testi testi...	int valinta;	Tavara tavarat[TAVARAT_KOKO] = {0};	printf("nimi %s\nhinta %lf\nkpl %d", tavarat[0].nimi, tavarat[0].hinta, tavarat[0].kpl);	if(strcmp(tavarat[0].nimi, "") == 0)		puts("\nnimi = 0");		printf("K/E");	valinta = valinta_KE();	printf("%d",valinta);		lisays(tavarat);	lisays(tavarat);	lisays(tavarat);	getchar();	return 0;}int lisays(Tavara tavarat[]){	int i;	double hinta;	int kpl;	int vanha = 0;	int valinta;	char nimi[BUF_KOKO];	printf("Anna tavaran nimi: ");	annaTeksti(nimi);	for(i=0; i<TAVARAT_KOKO; i++)	{		if(vertaa(tavarat[i].nimi, nimi)) //Vertailufunktion pitäisi antaa 1 jos nimet on samoja!		{			vanha = 1; //Vanha nimi			break;		}	}	if(vanha==0) // Ei ole vanha nimi.(eli se on uusi...) Etsitään tyhjä paikka.	{		for(i=0; i<TAVARAT_KOKO; i++) //Onko käytössä?		{			if(strcmp(tavarat[i].nimi,"") == 0) //Ei ole käytössä				break;			if(i == TAVARAT_KOKO-1) //Kaikki paikat käytössä: palautetaan 0				printf("Tavaralista on t\x84ynn\x84!\n");				return 0;		}	}	strcpy(tavarat[i].nimi, nimi);	if(vanha)	{		printf("Muutetaanko hintaa? (k/e) Vanha hinta on %d\n", tavarat[i].hinta);		valinta = valinta_KE();	}	if(vanha==0 || valinta)	{		printf("Anna tuotteen hinta: ");		annaDoubleLuku(&tavarat[i].hinta);	}	valinta = 0;	if(vanha)	{		printf("Muutetaanko kappalem\x84\x84r\x84\x84? (k/e) Vanha m\x84\x84r\x84 on %d\n",tavarat[i].kpl);		valinta = valinta_KE();	}	if(vanha==0 || valinta)	{		printf("Anna tuotteiden m\x84\x84r\x84: ");		annaIntLuku(&tavarat[i].kpl);	}	return 1;}int poista(Tavara tavarat[]){	int i;	char nimi[BUF_KOKO];	printf("Anna poistettavan tavaran nimi: ");	annaTeksti(nimi);	for(i=0; i<TAVARAT_KOKO; i++)	{		if(vertaa(tavarat[i].nimi, nimi)) /*Vertailua!*/		{			strcpy(tavarat[i].nimi, "");			printf("Poisto onnistui!\n");			return 1;		}		if(i == TAVARAT_KOKO-1)		{			printf("Poistettavaa tietoa ei l\x94ytynyt!\n");			return 0;		}	}}int valinta_KE(){	char c;	do	{		c = tolower(getch());		if(c == 'k')			return 1;		else if(c == 'e')			return 0;	} while(c != 'k'||c != 'e');}//testikamaavoid annaTeksti(char jono[]){	gets(jono);}int vertaa(char* a, char* b){	printf("  vertailu %s %s \n", a, b);	return 0;}void annaIntLuku(int* luku){	char buf[BUF_KOKO];	gets(buf);	sscanf(buf, "%d", luku);}void annaDoubleLuku(double* luku){	char buf[BUF_KOKO];	gets(buf);	sscanf(buf, "%lf", luku);}