PDA

View Full Version : سوال: مقایسه و جستجو در فایل



pershianix
شنبه 04 اردیبهشت 1389, 17:55 عصر
سلام. من کد زیرو نوشتم و حالا میخوام امکان زیرو بهش اضافه کنم:
برنامه از کابر میخواد که ID خودشو وارد کنه و اگه ID وارد شده توسط کاربر، مساوی با یکی از IDهای درون فایل بود، برنامه به کاربر اجازه ی ویرایش و حذف اطلاعات دانشجوییشو میده. چطور میتونم این کارو انجام بدم؟ ممنون.

#include<iostream>
#include<fstream>
using namespace std;
struct student{
int id;
char family[10], name[10];
};
void main()
{
student stud;
ofstream sfile("student.dat", ios::out);
cout<<"enter your ID, Name and Family: ";
cin>>stud.id>>stud.name>>stud.family;
cout<<"============="<<endl;
sfile<<stud.id<<stud.name<<stud.family;
}

pershianix
یک شنبه 05 اردیبهشت 1389, 13:26 عصر
کسی جواب نمیده؟

developing
یک شنبه 05 اردیبهشت 1389, 14:14 عصر
عزیز من اول سلام.
ولی این کدی که شما نوشتید هربار فایل رو از اول بازنویسی می کنه.
می دونی یعنی چی؟
یعنی اینکه هر بار که برنامه شما اجرا می شود اطلاعات یک نفر از ورودی دریافت شده و در یک فایل ذخیره می گردد.(توجه کنید که این فایل فقط و فقط تاکید می کنم فقط اطلاعات یک نفر رو در خودش داره.) و حالا شما اگر تمام اطلاعات فایل رو چاپ کنید فقط یک رکورد در آن وجود خواهد داشت. می گید نه!!! امتحان کنید.

ولی من به شما پیشنهاد می کنم یکی از مباحث زیر را کاملا فرا بگیرید و بعد این برنامه رو ادامه بدید.
1- اشاره گر و نحوه تعریف آرایه های پویا
2- لیست پیوندی
بعد از اینکه این ها رو یاد گرفتی بیا به برنامه ی خودت یک کم بخند.
البته من قصد توهین به شما رو ندارم ولی این برنامه فقط یک رکورد رو ذخیره می کنه که هر بار هم با اجرای برنامه اطلاعات اون تغییر پیدا می کنه. و اگر فرایند نوشتن در فایل با شکست مواجه شود دیگر حتی اون یک رکورد هم وجود نخواهد داشت.

pershianix
دوشنبه 06 اردیبهشت 1389, 22:02 عصر
اشکال از منه که فکر کردم منظور منو متوجه شدید. بعدم از کاه کوه نسازین. با دوتا کلمه همه چی حله: ios::app

حالا بسم االه. حالا باید چیکار کرد؟

developing
سه شنبه 07 اردیبهشت 1389, 09:11 صبح
باز هم سلام.

برای اینکه بتونی امکان ویرایش اطلاعات رو توی برنامتون داشته باشید باید تمام اطلاعات رو توی

رم بارگذاری کنید و برای این کار که نمی تونی از متغیر و یا آرایه ی ساده استفاده کنی یعنی شما

که از ابتدا نمی دونی چند تا دانشجو اطلاعات وارد کردن پس باید از لیست پیوندی استفاده کنی و

اطلاعات مربوط به تمام دانشجویان رو توی لیست قرار بدی، حالا می تونی یک جستجو توی

لیست بنویسی و خلاص. در ضمن در آخر هم تمام اطلاعات رو توی فایل بازنویسی کنی.

یعنی شما باید ابتدا فایل رو با ios::in باز کنی و اطلاعاتش رو توی لیست وارد کنی

بعد فایل رو با ios::out رونویسی می کنی تا اگه اطلاعاتی اضافه شده باشه توی فایل ذخیره

بشه.

بسم الله حالا شروع کن.

pershianix
سه شنبه 07 اردیبهشت 1389, 17:07 عصر
البته مطمئنم راه حل ساده تری هم با استفاده از ساختارها وجود داره اما نمیدونم چطور.

فکر کنم برم سراغ کمک گرفتن از رشته ها، زودتر به جواب برسم.