آژانس هواپیماییexchanging

نیاز به یک برنامه ساده در VC6 (فوری!)

شروع موضوع توسط balabala ‏15 آگوست 2005 در انجمن خانواده C++ , C

  1. balabala

    balabala کاربر قدیمی پرشین تولز

    تاریخ عضویت:
    ‏22 می 2005
    نوشته ها:
    7,350
    تشکر شده:
    1,321
    محل سکونت:
    یه خورده اونورتر
    سلام به دوستان، من کد یک برنامه ساده رو در VC6 میخوام. اگر امکان داره کمک کنید:

    توضیح:
    برنامه command line هست و از کلاس های پایه سی استفاده میکنه.
    برنامه در ابتدا از طریق command line اسم یک فایل رو میگیره.
    فرمت فایل ساده هست: جفت اعداد integer که اولی x و دومی y هست مثل:

    2,3,4,3,5,6,4,5

    برنامه x رو از کاربر سوال میکنه و در جواب y رو برمیگردونه.

    همین! یک کلاس که این کارهارو بمنه.
    تشکر، من به این سورس خیلی سریع احتیاج دارم. هرکس این رو کد کنه و یک مقدار گسترشش بده (اضافه کردن کد که اعداد رو بگیره و در یک فایل بریزه)، خوشحال میشم بهش هدیه ای بدم. :cool: فقط 24 ساعت وقت دارم!
     
  2. MehdiC#

    MehdiC# کاربر تازه وارد

    تاریخ عضویت:
    ‏2 نوامبر 2004
    نوشته ها:
    55
    تشکر شده:
    0
    محل سکونت:
    ابهر
    سلام
    اینهم برنامه ، با VC++ .NET کامپایل کردم ، اما داخلش کلا از توابع
    C استفاده شده. (به احتمال 99 درصد با VC6 هم کامپایل میشه)
    این برنامه فرض میکنه که اعداد به این صورت در فایل ذخیره شدن:
    اول x بعد یه کاما و بعد هم y و بعد خط بعدی ، الی آخر
    مثل
    25,14
    20,32
    96,21
    11,-8

    و اگه x که کاربر وارد کرده موجود نباشه مقدار -1 رو برمی گردونه (که میشه
    این عدد رو عوض کرد)

    یه کلاس ایجاد کردم با نام ReadNumberFromFile که کلا دو تا متد داره :
    void WriteNumbers(int x, int y);
    int ReadY(int x);
    که از اسمشون معلومه چیکار میکنن.
    البته این برنامه خیلی ساده است و مکانیسم مواجهه با خطا در اون گنجونده نشده
    (مثلا اگه یه خط خالی در فایل باشه یا بین کاما و عدد فاصله باشه ، برنامه crash میکنه.
    دیگه ساعت 2:30 نصفه شبه و منم بیشتر از این وقت نداشتم ، امیدوارم به دردتون بخوره)

    کد برنامه ، خود برنامه و یک فایل حاوی اعداد رو براتون قرار دادم.
    (دانلودش كنين)
    موفق باشید.
     

    فایل های ضمیمه:

    • archive.zip
      اندازه فایل:
      21.1 KB
      نمایش ها:
      29
  3. balabala

    balabala کاربر قدیمی پرشین تولز

    تاریخ عضویت:
    ‏22 می 2005
    نوشته ها:
    7,350
    تشکر شده:
    1,321
    محل سکونت:
    یه خورده اونورتر
    تشكر... ولي نوشدارو بعد از مرگ سهراب بود :D خيلي متشكر.
     
  4. balabala

    balabala کاربر قدیمی پرشین تولز

    تاریخ عضویت:
    ‏22 می 2005
    نوشته ها:
    7,350
    تشکر شده:
    1,321
    محل سکونت:
    یه خورده اونورتر
    [​IMG] !!!
     
  5. balabala

    balabala کاربر قدیمی پرشین تولز

    تاریخ عضویت:
    ‏22 می 2005
    نوشته ها:
    7,350
    تشکر شده:
    1,321
    محل سکونت:
    یه خورده اونورتر
    این سورس برنامه ای هست که میخواستم. یه جورایی نوشتمش! (دادم نوشتنش!) :blush: :D

    کد:
    // VC6.cpp : Defines the entry point for the console application.
    //
    
    
    #include "stdafx.h"
    #include "windows.h"
    #include "conio.h"
    
    int Menu()
    {
    	printf("\nPress button to continue:\n");
    	printf("1 - Input new array\n");
    	printf("2 - Find Y by X\n");
    	printf("3 - Find all X by Y\n");
    	printf("4 - Load Pairs from file\n");
    	printf("5 - Save Pairs to file\n");
    	printf("6 - Print array here\n");
    	printf("any key - Exit program\n");
    	printf("\n");
    	return getch();	
    }
    
    class MyClass{
    private:
    	int n;
    	int x[100], y[100]; 
    	char st[200];
    public:
    	MyClass() {n = 0;};
    	void Input();
    	void FindYByX();
    	void FindXByY();
    	void LoadFromFile();
    	void SaveToFile();
    	void Print();
    };
    
    void MyClass::Input()
    {
    	printf("\nInput count of pairs: ");
    	scanf("%d", &n);
    	for (int i=0; i<n; i++)
    	{
    		printf("Pair %d X: ", i+1);
    		scanf("%d", &(x[i]));
    		printf("Pair %d Y: ", i+1);
    		scanf("%d", &(y[i]));
    		printf("\n");
    	}
    }
    
    void MyClass::FindYByX()
    {
    	int xx;
    	printf("Input X: "); 
    	scanf("%d", &xx);
    	for (int i=0; i<n; i++)
    		if (x[i] == xx) 
    			printf("(%d,%d)", x[i], y[i]);
    	st[0] = 0;
    	printf("\nType filename to save (input 'q' to skip):\n");
    	scanf("%s", st);
    	if ((st[0] != 'q') || (st[1] != 0))
    	{
    		FILE *f = fopen(st,"w");
    		fprintf(f, "%d\n", n);
    		for (i=0; i<n; i++)
    			if (x[i] == xx) 
    				fprintf(f, "(%d,%d)", x[i], y[i]);
    		fclose(f);
    	}
    }
    
    void MyClass::FindXByY()
    {
    	int yy;
    	printf("Input Y: "); 
    	scanf("%d", &yy);
    	for (int i=0; i<n; i++)
    		if (y[i] == yy) 
    			printf("(%d,%d)\n", x[i], y[i]);					
    	st[0] = 0;
    	printf("\nType filename to save (input 'q' to skip):\n");
    	scanf("%s", st);
    	if ((st[0] != 'q') || (st[1] != 0))
    	{
    		FILE *f = fopen(st,"w");
    		fprintf(f, "%d\n", n);
    		for (i=0; i<n; i++)
    			if (y[i] == yy) 
    				fprintf(f, "(%d,%d)\n", x[i], y[i]);	
    		fclose(f);
    	}
    }
    
    void MyClass::LoadFromFile()
    {
    	st[0] = 0;
    	printf("\nType filename to load array from (input 'q' to skip):\n");
    	scanf("%s", st);
    	if ((st[0] != 'q') || (st[1] != 0))
    	{
    		FILE *f = fopen(st,"r");
    		fscanf(f, "%d\n", &n);
    		for (int i=0; i<n; i++)
    			fscanf(f, "(%d,%d)\n", &(x[i]), &(y[i]));	
    		fclose(f);
    	}
    }
    
    void MyClass::SaveToFile()
    {
    	st[0] = 0;
    	printf("\nType filename to save array to (input 'q' to skip):\n");
    	scanf("%s", st);
    	if ((st[0] != 'q') || (st[1] != 0))
    	{
    		FILE *f = fopen(st,"w");
    		fprintf(f, "%d\n", n);
    		for (int i=0; i<n; i++)
    			fprintf(f, "(%d,%d)\n", x[i], y[i]);	
    		fclose(f);
    	}
    }
    
    void MyClass::Print()
    {
    	printf("\nPrinting array\n%d\n", n);
    	for (int i=0; i<n; i++)
    		printf("(%d,%d)\n", x[i], y[i]);	
    	printf("-----------------\n");
    	getch();
    }
    
    
    int main(int argc, char* argv[])
    {
    	MyClass Sample;
    
    	ShowMenu:
    
    	switch (Menu())
    	{
    		case '1':
    			Sample.Input();
    			goto ShowMenu;
    		case '2':
    			Sample.FindYByX();
    			goto ShowMenu;
    		case '3':
    			Sample.FindXByY();
    			goto ShowMenu;
    		case '4':
    			Sample.LoadFromFile();
    			goto ShowMenu;
    		case '5':
    			Sample.SaveToFile();
    			goto ShowMenu;
    		case '6':
    			Sample.Print();
    			goto ShowMenu;
    	}
    	
    	printf("\n\n\nDone.\nPress any key to close window...");
    	getch();	
    
    	return 0;
    }