الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

طلب لو سمحتم

مغلق
بدأه hodazek في 13 أغسطس 2005 · 3 رد · 443 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله

أنا كنت اقوم ببرنامج يتعامل مع مخزن ولكن واجهتنى مشكلة وانا بعمل البرنامج اننى محتاج انشئ ملف اخزن فيه المعلومات txt ولكن كنت ابحث عن درس كويس يشرح طريقة انشاء ملفات الtxt والتعامل معها بس يكون درس واضح وسهل ومفوم وكنت عاوز كمان طريقة البحث داخل الملف ومقارنة ارقام مدخلة بأرقام مخزنة فى هذا الملف ؟؟؟؟؟

ارجوا الإجابة على طلبى مشكووورين

:D

#2

السلام عليكم اذا كنت تتكلم عن ++c فهذا برنامج انا كاتبه وفيه المطلوب بشكل بسيط وعملي

أتمنى انك تستفيد منه

#include<fstream> // dont forget this
#include<stdlib.h> // dont forget this
#include<iostream>
#include<string>
using namespace std;
class student
{
private:
	int final, m;
	string name;
	char grade;
public:
	void setN(string);
	void setM(int);
	void setF(int);
	int getM();
	int getF();
	student();
	void read();
	void display();
	void processing();
	void copy(student);
	string getname();
	void close();
};
class ArrStudent
{
private:
	int number;
	student s[100];
public:
	void openAll(); // this is what u want
	void closeAll(); // this is what u want
	ArrStudent();
	void read();
	void display();
	void processing();
	bool insert(student);
	bool Delete(string);
	bool search(string,int&);
};

void student::setN(string l)
{
	name = l;
}

void student::setM(int l)
{
	m = l;

}
void student::setF(int l)
{
	final = l;
}

int student::getM()
{
	return m;
}
int student::getF()
{
	return final;
}
student::student()
{
	name = " ";
	final = 0;
	m = 0;
	grade = ' ';
}
void student::read()
{
	cout<<"enter name : ";
	cin >> name;
	cout<<"enter m :";
	cin>>m;
	cout<<"enter final:";
	cin>>final;
}
void student::processing()
{
	int sum = final + m;
	if(sum >= 60)
  grade = 'p';
	else
  grade = 'f';
}
void student::display()
{
	cout << "===========================\n";
	cout<<"name : "<<name<<endl;
	cout<<"final = "<<final<<endl;
	cout<<"m = "<<m<<endl;
	cout<<"grade : "<<grade<<endl;
	cout << "===========================\n";

}
void student::copy(student s)
{
	name = s.name;
	final = s.final;
	m = s.m;
	grade = s.grade;
}
string student::getname()
{
	return name;
}
// this is what u want ///////////////////////////////
void ArrStudent::openAll()
{
	int fileint;
	string filestring;
	{
  ifstream fin("counter.txt");
  fin >> number;
	}
  if(number > 0)
  {
 	 {
    ifstream fin("name.txt");
    for(int i=0;i<number;i++)
    {
   	 fin >> filestring;
   	 s.setN(filestring);
    }
 	 }
 	 {
    ifstream fin("m.txt");
    for(int i=0;i<number;i++)
    {
   	 fin >> fileint;
   	 s.setM(fileint);
    }
 	 }
 	 {
    ifstream fin ("final.txt");
    for(int i=0;i<number;i++)
    {
   	 fin >> fileint;
   	 s.setF(fileint);
    }
 	 }
 	 processing();
  }
}
void ArrStudent::closeAll()
{
	int fileint;
	string filestring;

  {
  ofstream fout("counter.txt");
  fout << number;
  }

	if(number > 0)
	{
  {
 	 ofstream fout("name.txt");
 	 for(int i=0;i<number;i++)
 	 {
    filestring = s.getname();
    fout << filestring <<endl;
 	 }
  }
  {
 	 ofstream fout("m.txt");
 	 for(int i=0;i<number;i++)
 	 {
    fileint = s.getM();
    fout << fileint << endl;
 	 }
  }
  {
 	 ofstream fout("final.txt");
 	 for(int i=0;i<number;i++)
 	 {
    fileint = s.getF();
    fout << fileint << endl;
 	 }
  }
	}
}
/////////////////// The end of what u want///////////
ArrStudent::ArrStudent()
{
	number = 0;
}
void ArrStudent::read()
{
	cout<<"enter number:";
	cin>>number;
	for(int i=0;i<number;i++)
  s.read();
}
void ArrStudent::display()
{
	for(int i=0;i<number;i++)
  s.display();
}
void ArrStudent::processing()
{
	for(int i=0;i<number;i++)
  s.processing();
}
bool ArrStudent::search(string name,int &index)
{
	index = -1;
	for(int i=0;i<number;i++)
  if(s.getname() == name)
  {
 	 index = i;
 	 return true;
  }
  return false;
}
bool ArrStudent::insert(student st)
{
	if(number == 100)
  return false;
	s[number].copy(st);
	number++;
	return true;
}
bool ArrStudent::Delete(string name)
{
	int pos;
	search(name,pos);
	if(pos == -1)
  return false;
	s[pos].copy(s[number-1]);
	number--;
	return true;
}


int main()
{
	student st;
	ArrStudent A;
	A.openAll();
	int choo;
	string name;
	do
	{
	cout<<"MENU :"<<endl;
	cout<<"1=>Insert students(one time)"<<endl;
	cout<<"2=>Insert 1 student"<<endl;
	cout<<"3=>Display students"<<endl;
	cout<<"4=>Delete one student"<<endl;
	cout<<"5=>process students"<<endl;
	cout<<"6=>Exit"<<endl;
	cout<<"enter your choice:";
	cin>>choo;
	switch(choo)
	{
	case 1 : A.read();
  break;
	case 2 : st.read();
  if(! A.insert(st))
 	 cout<<"the array is full\n";
  else
 	 cout<<"student inserted\n";
  break;
	case 3 : A.display();
  break;
	case 4 : cout<<"enter name:";
    cin>>name;
    if(!A.Delete(name))
     cout<<"the student was not found\n";
    else
   	 cout<<"student deleted\n";
    break;
	case 5 : A.processing();
   	 break;

	case 6 : A.closeAll();
  break;
	default : cout<<"WRONG CHOICE\n";
	}
	}
	while(choo != 6);
	return 0;
	}

ملاحظة : انتبه لل include

أخوك

The Cpp

abofahad5515@hotmail.com

#3

أنا اعجز عن الشكر cpp بس هتقل عليك شوية وكنت عاوز اعرف كمان ازاى اعمل بحث ومطابقة بأحد البيانات داخل هذا الملف

؟؟؟؟

#4

العفو

بالنسبة لسؤالك

في المثال السابق أخذنا الرقم COUNTER وعملنا عليه مقارنه

وبالنسبة للبحث فبما أن التخزين والاسترجاع يكون بالتريب يمكن عمل استرجاع للبيانات ووضعها في مصفوفة مثلاً وإجراء عملية البحث عليها ..

وشكرا

أخوكم

The Cpp

abofahad5515@hotmail.com

هذا الموضوع مغلق.

مواضيع مشابهة