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

أرجو منكم مساعدة عاجلة

بدأه غربة في 21 أبريل 2009 · 8 رد · 816 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه ،،

وضعت مشكلتي في موضوع سابق وكان احد الأخوة يساعدني الا انه لم يدخل للمنتدى منذ فترة عسى يكون غيابه خير ان شاء الله ويعود سالما غانما..

وأنا الآن مضطرة ومحتاجة الى مساعدة عاجلة فأرجو ممن لديه الخبرة مساعدتي وجزاكم الله ألف خير

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

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

كيف بامكاني ان اجعل المستخدم اختيار كذا مادة يعني عدد غير محدود في طلب واحد .. يعني كذا مادة للعميل الواحد وكميات مختلفة من كل مادة في نفس الطلب

ما اعرف اذا استخدم لوب واي لوب بهالحالة وكيف اضعه

واليكم الكود..

double rabatt(int ant, double pr)
{
if(pr>2000)
return 0.15;
else if (pr>1000 || ant>20)
return 0.10;
else 
return 0;
}
double priset (int antal, double stpris)
{ 
const double moms=0.25;
double radpris, rabproc;
radpris= antal*stpris;
rabproc= rabatt(antal, radpris);
return radpris*(1-rabproc)*(1+moms);
}
int antart, artnr, soktart, kundnr, soktkund, datum, hittart=0, hittkund=0;
double pris;
char adress [40]="", namn[30]="", artnamn[30]="";
void skapaorder ()
{
ofstream utfil("orderregister.txt",ios::app);
cout<<endl<<"Ange datum: ";
cin>>datum;
ifstream infil("kundregister.txt");
cout<<"...och kundnummer: ";
cin>>soktkund;
while (infil.getline(namn,29))
{
infil.getline(adress,39);
infil >> kundnr;
infil.get();
if (soktkund==kundnr)
{
hittkund=1;
break;
}
}
if(!hittkund)
cout<<"kundnummer saknas";
ifstream infil1("artikelregister.txt");
cout<<"...och produktnummer: ";
cin>>soktart;
while (infil1.get(artnamn,29))
{
infil1>>artnr>>pris;
infil1.get();
if (soktart==artnr)
{
hittart=1;
break;
}
}
if (!hittart)
cout<<"Produkten saknas";
cout<<"pris/liter är: "<<pris<<endl;
cout<<"Ange antal: ";
cin>>antart;   
cout<<"Din order: "<<endl<<"================================"<<endl<<"Datum"<<setw(15)<<datum<<endl<<"Kundnummer: " <<setw(8)<<soktkund<<
endl<<"Produktnummer: "<<setw(5)<<artnr<<endl<<"Antal liter: "<<setw(7)<<antart<<endl<<
"Att Betala: "<<setw(8)<<priset(antart,pris)<<"kr"<<endl;
utfil<<"Din order: "<<endl<<"================================"<<endl<<"Datum"<<setw(15)<<datum<<endl<<"Kundnummer: " <<setw(8)<<soktkund<<
endl<<"Produktnummer: "<<setw(5)<<artnr<<endl<<"Antal liter: "<<setw(7)<<antart<<endl<<
"Att Betala: "<<setw(8)<<priset(antart,pris)<<"kr"<<endl;
infil.get();
infil.close();
infil1.close();
utfil.close();
}

تحياتي

أختكم غربة

#2

ممكن اشوف البرنامج بالكامل مع الخورازمية عشان افهم المطلوب :rolleyes:

تم تعديل هذه المشاركة بواسطة time1 في 23 أبريل 2009 في 18:45

llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#3

بســم الله الـرحمــن الرحيــم

السلام عليكــم ورحمـة الله وبركاتــه ،،

تحية طيبة أخي الكريم وشكرا لك على الرد وجعله الله في ميزان أعمالك..

البرنامج مقسم الى header file وملف cpp

الـ header يحتوي على functions

واليك الكود:

#include <iostream.h>//nödvändigt för att kunna mata in och skriva ut, cin- och cout-satsen
#include <stdlib.h>//för att rensa skärmen med cls
#include <fstream.h> //för att kunna skapa strömmar
#include <iomanip.h> //för utskrifter
#include <stdio.h> //för att radera och döpa om filer
double rabatt(int ant, double pr)//funktionen rabatt 
{
 if(pr>2000) //om rad priset är större än 2000 så blir rabatten 15%
  return 0.15;
 else if (pr>1000 || ant>20)//om radpris är större än 1000 eller antal produkter större än 20
  return 0.10;// är ratten 10%
 else // annars är rabbatten 0%
  return 0;
}
double priset (int antal, double stpris)//funktionen av priset som ska betalas
{ //räknar radpriset dvs. pris per styck(liter) av produkten multiplicerat med antal produkter (antal liter)
 const double moms=0.25;//constanten moms
double radpris, rabproc;
radpris= antal*stpris;//beräkning av radpris
rabproc= rabatt(antal, radpris);//beräkning av rabatt, kallar rabatt funktionen
return radpris*(1-rabproc)*(1+moms);//beräkning av det slutliga beloppet
}
int antart, artnr, soktart, kundnr, soktkund, datum, hittart=0, hittkund=0;//deklarerar olika integer
double pris;//deklarerar decimalen pris
char adress [40]="", namn[30]="", artnamn[30]="";
void skapaorder ()//namn på funktionen för att skapa order
{//funktionen öppnas
  ofstream utfil("orderregister.txt",ios::app);//deklarerar utstömmen utfil till diskfilen orderregister.txt
  cout<<endl<<"Ange datum: ";
  cin>>datum;//inmatning av datum
  ifstream infil("kundregister.txt");//deklarerar inströmmen infil från kundregister.txt
  cout<<"...och kundnummer: ";
  cin>>soktkund;//inmatning av kundnummer som söks av användaren
  while (infil.getline(namn,29))//while loopen kontrollerar att kundnummret som söks finns redan i kundregistret
  {
   //Läs in namn och adress med getline
   infil.getline(adress,39);
   infil >> kundnr;
	infil.get();
  if (soktkund==kundnr)//villkor så att det inmatade kundnummer är lika med den inströmmande kundnummret från kundregistret
  {
   hittkund=1;// den sökta kundnummer finns i kunregistret, programmet fotsätter
   break;
  }// villkoret stängs
  }//loopen stängs
  if(!hittkund)// om det sökta kundnummret inte finns i kundregistret, nedanstående meddelandet skrivs ut på skärmen
   cout<<"kundnummer saknas";
  ifstream infil1("artikelregister.txt");//deklarerar inströmmen infil1 från artikelregister.txt
  cout<<"...och produktnummer: ";
  cin>>soktart;//inmatning av artikeln som söks av användaren
  while (infil1.get(artnamn,29))//while loopen läser in artikel nummer och pris från artikelgistret
  {
   infil1>>artnr>>pris;
   infil1.get();//läsning rad för rad i registret
   if (soktart==artnr)//villkor att det sökta artikelnummret är det samma som finns i artikelregistret
   {
	hittart=1;
	break;
   }
  }
   if (!hittart)//om inte artikeln som söks hittas:
   cout<<"Produkten saknas";
	cout<<"pris/liter är: "<<pris<<endl;//om villkoret är sant läses priset in och skrivs ut på skärmen 
   cout<<"Ange antal: ";
   cin>>antart;//inmatning av antal artiklar
   //Utskrift av orderinfo.
   cout<<"Din order: "<<endl<<"================================"<<endl<<"Datum"<<setw(15)<<datum<<endl<<"Kundnummer: " <<setw(8)<<soktkund<<
	endl<<"Produktnummer: "<<setw(5)<<artnr<<endl<<"Antal liter: "<<setw(7)<<antart<<endl<<
	"Att Betala: "<<setw(8)<<priset(antart,pris)<<"kr"<<endl;
   utfil<<"Din order: "<<endl<<"================================"<<endl<<"Datum"<<setw(15)<<datum<<endl<<"Kundnummer: " <<setw(8)<<soktkund<<
	endl<<"Produktnummer: "<<setw(5)<<artnr<<endl<<"Antal liter: "<<setw(7)<<antart<<endl<<
	"Att Betala: "<<setw(8)<<priset(antart,pris)<<"kr"<<endl;
   infil.get();
   infil.close();//inströmmen från kundregistret stängs
  infil1.close();//inströmmen från artikelregistret stängs
  utfil.close();//utströmmen till orderregistret stängs
  }//funktionen stängs
//fuktionen för att visa ut atikel listan på skärmen
  void visaartiklar ()//funktionens namn
  {
   char artnamn[30]="";//deklarerar strängvariabeln artikel namn
   int artnr;// deklarerar integer artikel nummer
   double pris;//deklarerar decimalen pris på artiklar
   ifstream infil("artikelregister.txt"); //deklarerar inströmmen infil och kopplar den till diskfilen artikelregister.txt
   while (infil.getline(artnamn,29))//while loopen ser till att inläsning från inströmmen går bra
   {
	infil>>artnr;//inläsning av artikelnummer
	infil>>pris;//inläsning av pris
	infil.get();
   cout<<"Produktnamn: "<<setw(10)<<artnamn<<endl<<"Produktnummer: "<<setw(5)<<artnr<<endl<<"Pris/liter: "<<setw(10)<<pris<<endl;//inlästa artikelnamnet och nummer och pris skrivs ut på skärmen
   }//while loopen stängs
   infil.close();//inläsning från fil stängs
  }//funktionen stängs
  //funktionen för att visa ut kundlistan på skärmen
  void visakunder()//namn på funktionen
  {//funtionen öppnas
   char namn[30]="", adress[40]="";//deklaration av strängvariablar kundnamn och adress
		 int kundnr;//deklaration av integer kund nummer
   ifstream infil("kundregister.txt");//deklaration av inströmmen infil, kopplar den till diskfilen kundregister.txt
   while (infil.getline(namn,29))//while loopen ser till att inläsningen går nra
   {//loopen öppnas
	infil.getline (adress,39);//inläsning av adress
	infil>>kundnr;//inläsning av kundnummer
	infil.get();
   cout<<"Kundnamn: "<<setw(8)<<namn<<endl<<"Adress: "<<setw(11)<<adress<<endl<<"Kundnummer: "<<setw(5)<<kundnr<<endl;//inlästa data skrivs ut på skärmen
   }//loopen stängs
   infil.close();//inströmmen stängs
  }//funktionen tängs
  // funktionen för att lägga till en ny kund i kundregistret
  void skapakund ()
  {
   char namn[30]=" ", adress[40]=" ";//deklaration av strängvariablar kundnamn och adress
		 int kundnr;//deklaration av integer kund nummer 
   cin.clear();//rensa tangentbordsbufferten
   cin.get();//förbereda för inmatning
   cout<<"Ange Kundnamn: ";
   cin.get(namn, 30,'\n');//inmatning av kundnamn, storlek på strängen, och '\n' liksom endl för att programmet ska stanna innan den frågar om den andra inmatning
   while(cin.get()!= '\n')//här stannar programmet innan den hoppar till den andra inmatnings fågan
   cin.clear();
   cout << endl << "Ange adress: "; 
   cin.get( adress,40,'\n'); // inmatning av adress, strängen storlek, och endl
   while(cin.get()!= '\n')// programmet stannar för inmatningen .
   cin.clear();
   cout << endl << "Kundnummer: ";
   cin >> kundnr;
   ofstream utfil ("kundregister.txt",ios::app);//skriver till kundregister filen med att behålla den gamla info som finns redan i den.
   utfil<<namn<<endl<<adress<<endl<<kundnr<<endl;
   utfil.close();
   cin.clear();
   cin.get();
  }
  //funktionen för att skapa en en produkt i artikelregistret
 void skapaart ()
  {
   char artnamn[30]="";
		 int artnr;//deklaration av integer artnummer
   double pris;
   cin.clear();//rensa tangentbordsbufferten
   cin.get();//redogör för inmatningen
   cout<<endl<<"Ange Produktnamn: ";
   cin.get(artnamn, 30,'\n'); // cin.get( namn,sizeof(namn) )
   while(cin.get()!= '\n')//gör att programmet stannar innan den frågar om den andra inmatningen
   cin.clear();
   cout<<endl<<"Ange Produktnummer: ";
   cin>>artnr;
   cout<<endl<<" Pris: ";
   cin>>pris;
   ofstream utfil ("artikelregister.txt",ios::app);//skriver till artikelregister filen, utan att radera vad som redan finns i den
   utfil<<artnamn<<endl<<artnr<<endl<<pris<<endl;
   utfil.close();
   cin.clear();
   cin.get();
  }
 //funktionen för att ändra kund info.
 void andrakund()
 {
  int soktkund, kundnr;// deklaration av kund nummer som söks. 
   char namn[30]="", adress[40]="";//deklaration av olika sträng
  ifstream infil ("kundregister.txt");//läsa från filen kundregister öppnas
  ofstream utfil ("temp.txt");//skriva  till en tillfällig txt fil.
  cout<<"Ange kundnummer: ";
  cin>>soktkund;// inmatning av det kundnummer som söks och önskas ändra.
  // programmaet stannar för inmatningen
  while(cin.get()!='\n')
  cin.clear(); 
  while (infil.getline(namn,29))//while loopen kontrollerar att kunden som söks finns redan i kundregistret
   //Läs in kundnummer och adress rad för rad med getline
  {
   infil.getline(adress,39);
   infil>>kundnr;
	infil.get();
   if(kundnr==soktkund)//villkor on det sökta kundnummer finns i kundregister 
   {
	//inmatning av nya kundnamn och adress och programmet stannar imellan
	cout<<"Ange nytt Kundnamn: ";
	cin.get(namn, 29,'\n');
   while(cin.get()!='\n')
	cin.clear();
	cout<<"Ange ny adress: ";
	cin.get(adress, 39,'\n');
	while(cin.get()!='\n')
	 cin.clear();
   }
   utfil<<namn<<endl<<adress<<endl<<kundnr<<endl;//skriver till temp filen.
  }
  infil.close();
  utfil.close();
  remove("kundregister.txt");// radera det gamla kundregister
  rename("temp.txt", "kundregister.txt");//och sedan spara temp filen som kundregister fil
 }
 //funktionen för att ändra produkt info.
 void andraart ()
 {
  //deklaration av olika integer (artikel nummer) och produktnamn sträng
  int soktart, artnr;
  double pris;
  char artnamn[30]="";
  ifstream infil ("artikelregister.txt");//läsa från fil artikelregister
  ofstream utfil ("tempo.txt");//öppnar en tillfällig fil (tempo)
  //inmatning av produktnummer so ska ändras
  cout<<"Ange produktnummer: ";
  cin>>soktart;
  while(cin.get()!='\n')
  cin.clear();
  //läser i filen rad för rad och letar efetr produktnummer som användra har matat in
  while (infil.getline(artnamn,29))
  {
   infil>>artnr;
   infil.get();
   infil>>pris;
	infil.get();
   if(artnr==soktart)//kollar om artnr som finns i register är lika med det som söks
   {
	//inmatning av produktens nya info
	cout<<"Ange produkt namn: ";
	cin.get(artnamn,29,'\n');
	while(cin.get()!='\n')
	cin.clear();
	cout<<"Ange ny pris: ";
	cin>>pris;
	while(cin.get()!='\n')
	cin.clear();
   }
   utfil<<artnamn<<endl<<artnr<<endl<<pris<<endl;//skriver till tempo filen de nya inmatnings info
  }
  infil.close();
  utfil.close();
  remove("artikelregister.txt");//radera det gamla filen artikelregister
  rename("tempo.txt", "artikelregister.txt");//spara om tempo till artikelregister fil
 }

اللي محتاجة اعدله هو أول function

skapaorder ()

وهنا ملف الـ

cpp

وفيه قائمة تتيح للمستخدم استخدام واستعراض كل functions

#include <iostream.h>//nödvändigt för att kunna mata in och skriva ut, cin- och cout-satsen
#include <stdlib.h>//för att rensa skärmen med cls
#include <fstream.h> //för att kunna skapa strömmar
#include <iomanip.h> //för utskrifter
#include <stdio.h> //för att kunna radera och döpa om filer
#include "funktioner.h"
void main ()
{
 char val;//deklarerar val
 cout<<" V\x84lkommen Till Zeinab Kawtharani Olja F\x94retag"<<endl<<"H\x84r hittar du v\x86r sj\x84lvbetj\x84ning system"<<endl;
 do //do loopen 
 {//loopen  öppnas
//listan med olika val
 cout<<"  Meny"<<endl<<"==========="<<endl;//rubriken på listan
 cout<<"A. Order"<<endl;
 cout<<"B. Kundlistan"<<endl;
 cout<<"C. Produktlistan"<<endl;
 cout<<"D. Ny Kund"<<endl;
 cout<<"E. Ny Produkt"<<endl;
 cout<<"F. \x8Endra kund"<<endl;
 cout<<"G. \x8Endra Produkt"<<endl;
 cout<<"X. Avsluta"<<endl;
 cout<<"Ditt val:  ";
 cin>>val; //inmatning av val
//utföra val
 switch (val)
 {
 case 'A':
  skapaorder();//kallar fuktionen skapa order
  break; 
 case 'B' :
  visakunder();//kallar funktionen visa kunder 
   break;
 case 'C' :
		visaartiklar();//kallar funtionen visaartiklar
   break;
 case 'D' :
		skapakund();//kallar funtionen skapakund
   break;
 case 'E' :
		skapaart();//kallar funtionen skapaart
   break;
 case 'F' :
	   andrakund();//kallar funtionen andrakund
   break;
 case 'G' :
		andraart();//kallar funtionen andraart
   break;
 case 'X':
  cout<<"Du avslutar programmet, v\x84lkommen \x86ter"<<endl;//avsluta programmet
   break;
 default://om något annat val än vad som står i listan väljs.
  cout<<"Fel val"<<endl;
  cout<<"välj igen:"<<endl;
  break;
 }//stänga switch
 }while (val!='X');//while följer do loopen, sätter villkor till at val inte ska vara X, annars loopar inte listan med olika val igen.
  cin.clear();// rensa tangentbordsbufferten
 cin.get();//redogör för inmatning av nya data
}//main avslutas

ومثلما شرحت سابقا هو ماشي تمام يعني اقدر املي استمارة طلب شرائي ,لكن أريد انه المستخدم يستطيع ان يطلب اكثر من مادة في نفس طلب الشراء الواحد...

ان شاء الله أجد لديك الحل سريعا وموفق باذن الله ومشكور سلف

تحياتي

غربة

تم تعديل هذه المشاركة بواسطة غربة في 23 أبريل 2009 في 20:27

#4

اختي الكريمة .. ضعي الكود كما هو بدون تنسيقات فقط ضعيه بين وسمي الكود ...

llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#5

تم التعديل أخي الكريم .. اي شي انا موجودة

تحياتي

#6

شكرا لتفهمك .. سأرى الكود واعلق عليه

llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#7

تعديل بسيط على ملف الهيدر ... هل هذا المقصود ؟

#include <iostream.h>//nödvändigt för att kunna mata in och skriva ut, cin- och cout-satsen
#include <stdlib.h>//för att rensa skärmen med cls
#include <fstream.h> //för att kunna skapa strömmar
#include <iomanip.h> //för utskrifter
#include <stdio.h> //för att radera och döpa om filer
double rabatt(int ant, double pr)//funktionen rabatt 
{
if(pr>2000) //om rad priset är större än 2000 så blir rabatten 15%
  return 0.15;
else if (pr>1000 || ant>20)//om radpris är större än 1000 eller antal produkter större än 20
  return 0.10;// är ratten 10%
else // annars är rabbatten 0%
  return 0;
}
double priset (int antal, double stpris)//funktionen av priset som ska betalas
{ //räknar radpriset dvs. pris per styck(liter) av produkten multiplicerat med antal produkter (antal liter)
const double moms=0.25;//constanten moms
double radpris, rabproc;
radpris= antal*stpris;//beräkning av radpris
rabproc= rabatt(antal, radpris);//beräkning av rabatt, kallar rabatt funktionen
return radpris*(1-rabproc)*(1+moms);//beräkning av det slutliga beloppet
}
int antart, artnr, soktart, kundnr, soktkund, datum, hittart=0, hittkund=0;//deklarerar olika integer
double pris;//deklarerar decimalen pris
char adress [40]="", namn[30]="", artnamn[30]="";
void skapaorder ()//namn på funktionen för att skapa order
{//funktionen öppnas

  char End='y';
  while(End=='y'||End=='Y')
  {
  ofstream utfil("orderregister.txt",ios::app);//deklarerar utstömmen utfil till diskfilen orderregister.txt
  cout<<endl<<"Ange datum: ";
  cin>>datum;//inmatning av datum
  ifstream infil("kundregister.txt");//deklarerar inströmmen infil från kundregister.txt
  cout<<"...och kundnummer: ";
  cin>>soktkund;//inmatning av kundnummer som söks av användaren
  while (infil.getline(namn,29))//while loopen kontrollerar att kundnummret som söks finns redan i kundregistret
  {
   //Läs in namn och adress med getline
   infil.getline(adress,39);
   infil >> kundnr;
	infil.get();
  if (soktkund==kundnr)//villkor så att det inmatade kundnummer är lika med den inströmmande kundnummret från kundregistret
  {
   hittkund=1;// den sökta kundnummer finns i kunregistret, programmet fotsätter
   break;
  }// villkoret stängs
  }//loopen stängs
  if(!hittkund)// om det sökta kundnummret inte finns i kundregistret, nedanstående meddelandet skrivs ut på skärmen
   cout<<"kundnummer saknas";
  ifstream infil1("artikelregister.txt");//deklarerar inströmmen infil1 från artikelregister.txt
  cout<<"...och produktnummer: ";
  cin>>soktart;//inmatning av artikeln som söks av användaren
  while (infil1.get(artnamn,29))//while loopen läser in artikel nummer och pris från artikelgistret
  {
   infil1>>artnr>>pris;
   infil1.get();//läsning rad för rad i registret
   if (soktart==artnr)//villkor att det sökta artikelnummret är det samma som finns i artikelregistret
   {
	hittart=1;
	break;
   }
  }
   if (!hittart)//om inte artikeln som söks hittas:
   cout<<"Produkten saknas";
	cout<<"pris/liter är: "<<pris<<endl;//om villkoret är sant läses priset in och skrivs ut på skärmen 
   cout<<"Ange antal: ";
   cin>>antart;//inmatning av antal artiklar
   //Utskrift av orderinfo.
   cout<<"Din order: "<<endl<<"================================"<<endl<<"Datum"<<setw(15)<<datum<<endl<<"Kundnummer: " <<setw(8)<<soktkund<<
	endl<<"Produktnummer: "<<setw(5)<<artnr<<endl<<"Antal liter: "<<setw(7)<<antart<<endl<<
	"Att Betala: "<<setw(8)<<priset(antart,pris)<<"kr"<<endl;
   utfil<<"Din order: "<<endl<<"================================"<<endl<<"Datum"<<setw(15)<<datum<<endl<<"Kundnummer: " <<setw(8)<<soktkund<<
	endl<<"Produktnummer: "<<setw(5)<<artnr<<endl<<"Antal liter: "<<setw(7)<<antart<<endl<<
	"Att Betala: "<<setw(8)<<priset(antart,pris)<<"kr"<<endl;
   infil.get();
   infil.close();//inströmmen från kundregistret stängs
  infil1.close();//inströmmen från artikelregistret stängs
  utfil.close();//utströmmen till orderregistret stängs

  cout<<"Do you wont another ? (Y/N)"<<endl;
  cin>>End;
  while(End != 'y' && End!='Y' && End != 'n' && End!='N')
  {  
	  cout<<"Do you wont another ? (Y/N)"<<endl;
		cin>>End;
  }



  }

  }//funktionen stängs
//fuktionen för att visa ut atikel listan på skärmen
  void visaartiklar ()//funktionens namn
  {
   char artnamn[30]="";//deklarerar strängvariabeln artikel namn
   int artnr;// deklarerar integer artikel nummer
   double pris;//deklarerar decimalen pris på artiklar
   ifstream infil("artikelregister.txt"); //deklarerar inströmmen infil och kopplar den till diskfilen artikelregister.txt
   while (infil.getline(artnamn,29))//while loopen ser till att inläsning från inströmmen går bra
   {
	infil>>artnr;//inläsning av artikelnummer
	infil>>pris;//inläsning av pris
	infil.get();
   cout<<"Produktnamn: "<<setw(10)<<artnamn<<endl<<"Produktnummer: "<<setw(5)<<artnr<<endl<<"Pris/liter: "<<setw(10)<<pris<<endl;//inlästa artikelnamnet och nummer och pris skrivs ut på skärmen
   }//while loopen stängs
   infil.close();//inläsning från fil stängs
  }//funktionen stängs
  //funktionen för att visa ut kundlistan på skärmen
  void visakunder()//namn på funktionen
  {//funtionen öppnas
   char namn[30]="", adress[40]="";//deklaration av strängvariablar kundnamn och adress
		 int kundnr;//deklaration av integer kund nummer
   ifstream infil("kundregister.txt");//deklaration av inströmmen infil, kopplar den till diskfilen kundregister.txt
   while (infil.getline(namn,29))//while loopen ser till att inläsningen går nra
   {//loopen öppnas
	infil.getline (adress,39);//inläsning av adress
	infil>>kundnr;//inläsning av kundnummer
	infil.get();
   cout<<"Kundnamn: "<<setw(8)<<namn<<endl<<"Adress: "<<setw(11)<<adress<<endl<<"Kundnummer: "<<setw(5)<<kundnr<<endl;//inlästa data skrivs ut på skärmen
   }//loopen stängs
   infil.close();//inströmmen stängs
  }//funktionen tängs
  // funktionen för att lägga till en ny kund i kundregistret
  void skapakund ()
  {
   char namn[30]=" ", adress[40]=" ";//deklaration av strängvariablar kundnamn och adress
		 int kundnr;//deklaration av integer kund nummer 
   cin.clear();//rensa tangentbordsbufferten
   cin.get();//förbereda för inmatning
   cout<<"Ange Kundnamn: ";
   cin.get(namn, 30,'\n');//inmatning av kundnamn, storlek på strängen, och '\n' liksom endl för att programmet ska stanna innan den frågar om den andra inmatning
   while(cin.get()!= '\n')//här stannar programmet innan den hoppar till den andra inmatnings fågan
   cin.clear();
   cout << endl << "Ange adress: "; 
   cin.get( adress,40,'\n'); // inmatning av adress, strängen storlek, och endl
   while(cin.get()!= '\n')// programmet stannar för inmatningen .
   cin.clear();
   cout << endl << "Kundnummer: ";
   cin >> kundnr;
   ofstream utfil ("kundregister.txt",ios::app);//skriver till kundregister filen med att behålla den gamla info som finns redan i den.
   utfil<<namn<<endl<<adress<<endl<<kundnr<<endl;
   utfil.close();
   cin.clear();
   cin.get();
  }
  //funktionen för att skapa en en produkt i artikelregistret
void skapaart ()
  {
   char artnamn[30]="";
		 int artnr;//deklaration av integer artnummer
   double pris;
   cin.clear();//rensa tangentbordsbufferten
   cin.get();//redogör för inmatningen
   cout<<endl<<"Ange Produktnamn: ";
   cin.get(artnamn, 30,'\n'); // cin.get( namn,sizeof(namn) )
   while(cin.get()!= '\n')//gör att programmet stannar innan den frågar om den andra inmatningen
   cin.clear();
   cout<<endl<<"Ange Produktnummer: ";
   cin>>artnr;
   cout<<endl<<" Pris: ";
   cin>>pris;
   ofstream utfil ("artikelregister.txt",ios::app);//skriver till artikelregister filen, utan att radera vad som redan finns i den
   utfil<<artnamn<<endl<<artnr<<endl<<pris<<endl;
   utfil.close();
   cin.clear();
   cin.get();
  }
//funktionen för att ändra kund info.
void andrakund()
{
  int soktkund, kundnr;// deklaration av kund nummer som söks. 
   char namn[30]="", adress[40]="";//deklaration av olika sträng
  ifstream infil ("kundregister.txt");//läsa från filen kundregister öppnas
  ofstream utfil ("temp.txt");//skriva  till en tillfällig txt fil.
  cout<<"Ange kundnummer: ";
  cin>>soktkund;// inmatning av det kundnummer som söks och önskas ändra.
  // programmaet stannar för inmatningen
  while(cin.get()!='\n')
  cin.clear(); 
  while (infil.getline(namn,29))//while loopen kontrollerar att kunden som söks finns redan i kundregistret
   //Läs in kundnummer och adress rad för rad med getline
  {
   infil.getline(adress,39);
   infil>>kundnr;
	infil.get();
   if(kundnr==soktkund)//villkor on det sökta kundnummer finns i kundregister 
   {
	//inmatning av nya kundnamn och adress och programmet stannar imellan
	cout<<"Ange nytt Kundnamn: ";
	cin.get(namn, 29,'\n');
   while(cin.get()!='\n')
	cin.clear();
	cout<<"Ange ny adress: ";
	cin.get(adress, 39,'\n');
	while(cin.get()!='\n')
	 cin.clear();
   }
   utfil<<namn<<endl<<adress<<endl<<kundnr<<endl;//skriver till temp filen.
  }
  infil.close();
  utfil.close();
  remove("kundregister.txt");// radera det gamla kundregister
  rename("temp.txt", "kundregister.txt");//och sedan spara temp filen som kundregister fil
}
//funktionen för att ändra produkt info.
void andraart ()
{
  //deklaration av olika integer (artikel nummer) och produktnamn sträng
  int soktart, artnr;
  double pris;
  char artnamn[30]="";
  ifstream infil ("artikelregister.txt");//läsa från fil artikelregister
  ofstream utfil ("tempo.txt");//öppnar en tillfällig fil (tempo)
  //inmatning av produktnummer so ska ändras
  cout<<"Ange produktnummer: ";
  cin>>soktart;
  while(cin.get()!='\n')
  cin.clear();
  //läser i filen rad för rad och letar efetr produktnummer som användra har matat in
  while (infil.getline(artnamn,29))
  {
   infil>>artnr;
   infil.get();
   infil>>pris;
	infil.get();
   if(artnr==soktart)//kollar om artnr som finns i register är lika med det som söks
   {
	//inmatning av produktens nya info
	cout<<"Ange produkt namn: ";
	cin.get(artnamn,29,'\n');
	while(cin.get()!='\n')
	cin.clear();
	cout<<"Ange ny pris: ";
	cin>>pris;
	while(cin.get()!='\n')
	cin.clear();
   }
   utfil<<artnamn<<endl<<artnr<<endl<<pris<<endl;//skriver till tempo filen de nya inmatnings info
  }
  infil.close();
  utfil.close();
  remove("artikelregister.txt");//radera det gamla filen artikelregister
  rename("tempo.txt", "artikelregister.txt");//spara om tempo till artikelregister fil
}
llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#8

بســم الله الـرحمــن الرحيــم

السلام عليكــم ورحمـة الله وبركاتــه ،،

شكرا أخي الكريم على مساعدتك السريعة وانا عدلت على الملف عندي وصار .. وما اعرف اذا هذا يكفي الاستاذ ويرضى فيها ..

لأن هو يقول ان بنفس الطلب أكثر من مادة..

انتظر رده بكرا لو بعده وعلى اساسه أرد عليك وان شاء الله يريحك دنيا وآخرة

تحياتي

غربة

#9

السلام عليكــم ورحمـة الله وبركاتــه ،،

عذبتك معي أخي time

.. ولكن مثلما ما قلت لك مو المقصود انه يتكرر الطلب

انما بنفس الطلب يعني نفس العميل يقدر يحتار كذا مادة يشتريها

يعني يطلع سؤال للمستخدم بعدما يدخل معلومات أول طلب :

Do you want to buy any more products?

مشكور سلف وسامحني اذا بثقل عليك

تحياتي

غربة

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