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

مساعدتي في هذا البرنامج للضرووره

مغلق
بدأه bebe في 28 فبراير 2005 · 1 رد · 324 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

write a programme that converts a number entered in roman numerals to decimal. your programme should consist class .say roman type.an object of the type roman type should do the following:

1-store the number as a roman numeral

2-convert and stor the number into decimal

3-print the number as a roman numeral or decimal number as requested by the user

the decimal valus of the roman numerals are

M 1000

D 500

C 100

L 50

X 10

V 5

1 I

ارجو الرد علي في اقرب وقتتتت ممكن.... البرنامج غير مفهوم ارجووو شرح لي طريقة حل

and this is a try but it does't work correctly

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

class Student
{
public:
	Student();
	void setAll(string);
	void getAll(string&);
	void print();
	void computeType();
private:


	string Name;
};


 string name;
 long int y[7];
int i,j=0;


Student:: Student()
{
	Name = ""; // BECAUSE ITS A STRING

}

void Student:: setAll(string name)
{

	cout<<"Please enter your name" <<endl;
	cin>>name;


Name = name;

}

void Student:: getAll(string& name)
{
	name = Name;

}

void Student:: computeType()
{
	for(i=0;i!='\0';i++)

{
if(name=='M')
y[j]=1000;
else
if(name=='D')
y[j]=500;
else
if(name=='C')
y[j]=100;
else
if(name=='L')
y[j]=50;
else
if(name=='X')
y[j]=10;
else
if(name=='V')
y[j]=5;
else
if(name=='I')
y[j]=1;
	}
j++;

}

void Student:: print()
{
	getAll(name);
	cout<<"the student name is:"<<name<<endl;
	for(j=0;j<7;j++)
cout<<y[j];

computeType();


}

int main ()
{
	Student std1;

	std1.setAll(name);
	std1.getAll(name);
	std1.print();

	return 0;
}
#2

السلام عليكم

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

كما فهمت من سؤالك اذا لم اكن مخطا وهو بدالتين وليس بفصيلة class فعليك فهمه وتحويله لما تريد.

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

الكود .

#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>

#define M 1000
#define D 500
#define C 100
#define L 50
#define X 10
#define V 5
#define I 1


//ÏÇáÉ ÇáÊÍæíá ãä ÚÔÑí Çáì ÑæãÇäí

void ConvertFromDecimaltoRomani()
{
	int RomanyNumbers[] = { M,D,C,L,X,V,I };
	char Romani[] = { 'M','D','C','L','X','V','I' };
	int number;
	int i = 0;
	int Div;
	int Rdiv;

	cout << "Enter Number : ";
	cin  >> number;

	Div  = number / RomanyNumbers;


	while( 1 )
	{
  
  Rdiv = number % RomanyNumbers;

  for( int k = 0; k < Div; k++ )
  {
 	 cout << Romani; //ØÈÇÚÉ ÇáÍÑæÝ 
  }

  if( Rdiv == 0 ) //ÇáÎÑæÌ ãä ÇáÊßÑÇÑ
  {
 	 cout << "\n\n\n";
 	 break;
  }

  i++;
  
  Div  = Rdiv / RomanyNumbers;
  
	}

}

//ÏÇáÉ ÇáÊÍæíá ãä ÑæãÇäí Çáì ÚÔÑí

void ConvertFromRomanitoDecimal()
{
	int RomanyNumbers[] = { M,D,C,L,X,V,I };
	char c;
	int count[7];
	int sum = 0;

	for( int k=0; k<7; k++ )
	{
  count[k] = 0;
  
	}

	c = getchar();

	while( c != '\n' )
	{
  switch( c ) 
  {

 	 case 'M':
    count[0]++;
    break;

 	 case 'D':
    count[1]++;
    break;

 	 case 'C':
    count[2]++;
    break;

 	 case 'L':
    count[3]++;
    break;

 	 case 'X':
    count[4]++;
    break;

 	 case 'V':
    count[5]++;
    break;

 	 case 'I':
    count[6]++;
    break;

 	 default:
    cout << "\a\a\nError INPUT CHAR \n\n";

  }

  c = getchar();

	}

	for(  k=0; k<7; k++ )
	{
   sum += count[k] * RomanyNumbers[k];
  
	}

	cout << "\n" << sum << "\n";


}


void main()
{
	int chose;

	while(1)
	{

	cout << "\n MENU \n";
	cout << "\n\t1 - Convert From Decimal to Romani. ";
	cout << "\n\t2 - Convert From Romani  to Decimal. ";
	cout << "\n\t3 - Exit. ";
	cout << "\n\tchose = ";

	cin  >> chose;

	if( chose == 1 )
  ConvertFromDecimaltoRomani();
	else if( chose == 2 )
  ConvertFromRomanitoDecimal();
	else if( chose == 3 )
  exit(0);
	else
  cout << "\a\nError in Chose \n";

	}



}

هذه مجردمحاولة للحل وليست حل نهائي.

والى القاء.

اللهم علمنا ما ينفعنا وأنفعنا بما علمتنا أنك أنت العليم الحكيم

سبحان الله وبحمده سبحان الله العظيم

لاحول ولاقوة الا بالله( كنز من كنوز الجنة ).

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

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