- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Fűzzük össze a szavakat :)
- sellerbuyer: Milyen laptopot vegyek? Segítek: semmilyet!
- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- Argos: Az vagy, amit megeszel
- ricsi99: 6. Genes alaplap tündöklése.. kontra MS/Zintel korlátozásai.(Mehetnek a levesbe)
- Geri Bátyó: Agglegénykonyha 1 – rizseshús másképp
- hcl: HP 255 G8 (250 G8) LCD csere
Új hozzászólás Aktív témák
-
Milgram1
aktív tag
Így próbálkoztam, ahogy az új adatnál van de kifagy mikor elindul. Hogy őszinte legyek ennél a láncolt listás dolognál kicsit elmaradtam.
void fajlolvasas()
{
FILE *fp;
fp=fopen("data.BIN","r+b");
if(fp==NULL)
{
fp=fopen("data.BIN","w+b");
}
else
{
fseek(fp,0,SEEK_SET);
uj=(struct nevek*)malloc(sizeof(struct nevek));
fread(&uj,sizeof(nevek),1,fp);
elozo=NULL;
aktualis=elso;
while(!feof(fp))
{
fread(&uj,sizeof(nevek),1,fp);
aktualis=aktualis->kovetkezo;
}
fclose(fp);
}
} -
Milgram1
aktív tag
Üdv!
Egy kis segítségre lenne szükségem utolsó beadandómhoz. Feladat a következő: Adatnyilvántartó program, ami a következőket tudja: új adat megadás, keresés, módosítás, törlés, listázás és egy bináris fájlba kell kiírnom a rekordokat meg onnan kell visszaolvasni a program indulásakor. Ezen kívül még a program futása közben láncolt listában kell tárolnom a rekordokat. Egy rekord 3 adatból áll. Egy integer azonosító, és egy név meg telefonszám ami karaktertömb. Na most jöjjön a probléma: A program nagyrészt megvan viszont a fájlba írás/olvasás(194 és 209 sor) nem működik mert egyrészt nem fut le valami hiba miatt az a rész másrészt meg így nem is tudom hogy jó lenne-e.A másik meg az adatbevitelnél le kell ellenőriznem hogy létezik-e a megadott azonosító amire van egy bool fv(100 sor) aminek visszatérési értéke true ha létezik és addig kellenek kérnie az azonosítót amíg nem hamis viszont tovább megy. Igazán nagyra értékelném ha valaki besegítene mert ezek hiányznak.
[link] -
Milgram1
aktív tag
válasz
BTminishop #5797 üzenetére
Értem, köszönöm!
-
Milgram1
aktív tag
Hali!
Kaptam egy olyan házi feladatot, hogy egy korábbi adatnyilvántartó programomat kell átírnom úgy hogy rekordok tárolásához struktúrát használjak, és mindenhez függvényt kell. Ez meg is van viszont a problémám az, hogy a keresés, és módosítás rész sehogy sem akar össze jönni, vagyis ha olyan azonosítóra keresek ami nem létezik akkor vagy kifagy a program vagy pedig csak kiír valamit ami egyébként nincs benne. Próbáltam már több módot, a törlés részből másoltam akkor sem volt jó szóval nem nagyon tudok vele már mit kezdeni.más: Az miért van, hogy a code::blocks rendesen megjeleníti ahogy elterveztem, viszont nem működik a program? ez alatt azt értem, hogy amikor új adatot akarok megadni akkor folyamat csak új azonosítót kér, a devC++ meg fordítva.
-
Milgram1
aktív tag
Szoktam, csak ez a beillesztés most nem jött össze.
-
Milgram1
aktív tag
Most már elindul a program,a törlés része jó is, viszont mikor listáznám akkor leáll a program.
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define max 100
int main () {
int azon[max];
char nevek[max][100];
int telszam[max];
int menu;
int db=0;
int i,j;
bool letezik;
bool kesz;
int a;
int keres;
char torol; //torles megerositesehez
int tmp;//ideiglenes buborekos rendezeshez
char tmp1[100];
printf("\t\t\t\t\tAdatnyilvantarto program: \n");
printf("Menupontok: \n");
Menupontok:
printf("Uj adat:(1), Kereses:(2), Adatmodositas:(3), Torles:(4), Listazas:(5), Kilepes:(6)\n");
printf("valasz: ");scanf("%d",&menu);
switch (menu) {
case 1:
printf("__________________________________\n");
printf("Uj adat felvetele\n");
do {
azon_bekeres:
printf("Adjon meg egy int tipusu azonositot: ");scanf("%d",&a);
for(int i=0;i<db;i++){
if(azon[I]==a) {
printf("Ez az azonosito mar szerepel! Adjon meg masikat!");
goto azon_bekeres;
letezik=1;[/I]
[I]}else {
letezik=0;
}
}
if (letezik==false) {
azon[db]=a;
printf("Adja meg a nevet: ");scanf("%s",&nevek[db]);
printf("Adja meg a telefonszamot: ");scanf("%d",&telszam[db]);
db++;
printf("Uj adat felvetel: (0), Menupontok: (1): ");scanf("%d",&kesz);
}
}while(kesz!=true);
goto Menupontok;
case 2:
printf("__________________________________\n");
printf("Kereses:\n");
printf("rekordok szama: %d\n",db);
printf("Adja meg a keresendo rekord azonositojat: ");scanf("%d",&keres);
i=0;
while(azon(i)!=keres) {
i++;
}
if (i==db+1) {
printf("Nem letezik rekord a megadott azonositoval!");
}else {
printf("Azonosito: %d - Nev: %s - Telefonszam: %d\n",azon(i),nevek(i),telszam(i));
}
goto Menupontok;
case 3:
printf("__________________________________\n");
printf("Adatmodositas:\n");
printf("Adja meg a modositando rekord azonositojat: ");scanf("%d",&keres);
i=0;
while(azon(i)!=keres) {
i++;
}
if (i==db+1) {
printf("Nem letezik rekord a megadott azonositoval!");
}else {
printf("Uj nev: ");scanf("%s",&nevek(i));
printf("Uj telefonszam: ");scanf("%d",&telszam(i));
}
printf("\nA modositas megtortent!\n");
goto Menupontok;
case 4:
printf("__________________________________\n");
printf("Rekord torlese:\n");
printf("Adja meg a torlendo rekord azonositojat: ");scanf("%d",&keres);
for(i=0;i<db;i++){
if(keres==azon(i))break;
}
if(db==i)printf("Nem létezik a megadott azonosito!");
else{
printf("Biztos torlni akarja a megadott rekordot? (%d - %s - %d)(1-Igen/0-Nem)",azon(i),nevek(i),telszam(i));scanf("%d",&torol);
if(torol==1) {
for(;i<db;i++){
strcpy(nevek(i), nevek[i+1]);
telszam(i)=telszam[i+1];[/I]
[I]}
}else {
break;
}
}
db--;
goto Menupontok;
case 5:
printf("__________________________________\n");
printf("Listazas:\n");
//Buborék rendezés
for(int i=0;i<db-1;i++) {
for(int j=0;db-i-1;j++) {
if(azon[j]<azon[j+1]) {
tmp=azon[j];
azon[j]=azon[j+1];
azon[j+1]=tmp;
strcpy(tmp1, nevek[j+1]);
strcpy(nevek[j], nevek[j+1]);
strcpy(nevek[j+1], tmp1);
tmp=telszam[j];
telszam[j]=telszam[j+1];
telszam[j+1]=tmp;[/I]
[I]}
}
}
printf("Azonostio - Nev - Telefonszam\n");
for(int i=0;i<db;i++) {
printf("%d - %s - %d\n",azon(i),nevek(i),telszam(i));[/I]
[I]}
goto Menupontok;
case 6:
break;
}
}[/I]
[I]A cserével lenne valami gond?[/I] -
Milgram1
aktív tag
Hali!
Kellene egy eleg egyszeru adatnyilvantarto programot csinalnom. Annyit kell tudnia, hogy adatokat bekerni, listazni, modositani, torolni es a listazasnal elotte rendezni is kell a tombbot. Annyi meg a kikotes, hogy nem lehet strukturat es dinamukus memoriat hasznalni. A következot alkottam eddig: [link] Egy kis segitsegre lenne szuksemem vele kapcsolatban, a torles es buborekos rendezesnel nem tudom, hogy mit kellene kezdenem vele.
Valaszoakt elore is koszonom!
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Proxmox VE
- Milyen monitort vegyek?
- Milyen házat vegyek?
- Oldalról rápillanthatunk a Vivo X300-ak kameráira
- Azonnali notebookos kérdések órája
- OLED TV topic
- BestBuy topik
- Milyen lézer nyomtatót vegyek?
- Horgász topik
- Nem tetszik pár profi eSport játékosnak, hogy Intel CPU-val kell játszaniuk
- További aktív témák...
- Enermax ETS-T50 W-ARGB (Brutál hiányos+hibás alkatrésznek csakis) INGYEN FOXPOST
- Apple Watch Series 10 45mm GPS, Újszerű, 1 Év Garanciával
- Apple iPad Air 4 64GB, Újszerű, 1 Év Garanciával
- Samsung Galaxy A56 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Asztali PC v2 , R5 8400F , RX 5700 XT , 16GB DDR5 , 512GB NVME , 500 GB HDD
- Bomba ár! HP EliteBook 830 G5 - i5-8G I 8GB I 256GB SSD I 13,3" FHD I HDMI I Cam I W11 I Gari!
- Samsung Galaxy A16 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- iKing.Hu - Apple iPhone 12 Pro Max Prémium Graphite stílus, óriási kijelző és profi kamera 100%
- Bomba ár! Dell Latitude E7440 - i5-4GEN I 8GB I 500GB I 14" HD I HDMI I Cam I W10 I Gari!
- Lian Li HydroShift LCD 360R/TL AIO vízhűtés eladó!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest