انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => انجمن عمومی => نویسنده: Mostafa Jalilianfar در 19 خرداد 1391، 09:55 ب‌ظ

عنوان: ext4 یا ntfs ؟ به روایت آمار خودم ؟
ارسال شده توسط: Mostafa Jalilianfar در 19 خرداد 1391، 09:55 ب‌ظ
چند روز پیش برای شخصی پروژه پایانیش رو انجام دادم (شرمنده که همچینی کار بدی رو انجام دادم و اون هم برای پول)
هرچند بماند که چرا پروژه پایانی لیسانس یک شخص چرا باید اینقدر ابتدایی باشه و چرا ماها اینقدر بی‌سواد هستیم

برنامه اینه که یک فایل 100 مگابایتی ایجاد میکنه سپس اون فایل رو در اندازه‌های 10 مگابایت - یک مگابایت و 100 کیلو بایت ذخیره و یا می‌خونه
و اینکار باید در ویندوز و گنو/لینوکس انجام بشه و نتیجه رو بصورت نمودار نمایش داده بشه

نتیجه رو نمی‌گم خودتون ببینید
برای دیدن نتیجه کار بصورت جدول و نمودار
http://mustafajf.persiangig.com/Projects/File/FileProject.docx

دریافت فایل اجرایی برای گنو و ویندوز (به حجم دو فایل توجه کنید)
http://mustafajf.persiangig.com/Projects/File/GNUFile
http://mustafajf.persiangig.com/Projects/File/WinFile.exe

و در آخر کد پروژه (البته برای اینکه استاد شک نکنه برنامه بصورت ابتدایی نوشته شده و همچنین سطح برنامه نویسی من هم بالا نیست در کل ببخشید برای برنامه)
http://mustafajf.persiangig.com/Projects/File/GNUFile.cpp


من تا وقتی که این برنامه رو ننوشته بودم کاملا برعکس فکر می‌کردم
خوشحال میشم نظر شما رو هم بدونم
عنوان: پاسخ : ext4 یا ntfs ؟ به روایت آمار خودم ؟
ارسال شده توسط: دانیال بهزادی در 23 خرداد 1391، 12:13 ق‌ظ
با یه فرمت استاندارد می‌ذاشتی حداقل. مثل odt یا حتا pdf
عنوان: پاسخ : ext4 یا ntfs ؟ به روایت آمار خودم ؟
ارسال شده توسط: Mostafa Jalilianfar در 23 خرداد 1391، 10:27 ق‌ظ
با یه فرمت استاندارد می‌ذاشتی حداقل. مثل odt یا حتا pdf

چون طرف برای ویندوز می‌خواستش و منم خیلی حوصله نداشتم دیگه تبدیل نکردم خلاصه دیگه شرمنده ولی به زودی درستش می‌کنم
عنوان: پاسخ : ext4 یا ntfs ؟ به روایت آمار خودم ؟
ارسال شده توسط: Mostafa Jalilianfar در 23 خرداد 1391، 10:29 ق‌ظ
#include <iostream>
#include <fstream>
#include <string>
#include <ctime>
#include <cstring>
#include <cstdlib>

using namespace std;

void Menu();
void GetTime();
void clrscr();
void SetFileNames();
//****************آرایه دو بعدی برای ذخیره نام فایلها
char fileNames[1024][4];
long start, end, buffer, fileSize, oldFileSize = 1024000;
//***************************کلاس ایجاد و خواندن فایل
class file
{
    char str[1025];
    long bytes;
    public:
        file();
        ~file();
        void setStr(char chr);
        void makeFile(char *fileName, int buffer, long fileSize);
        void readFile(char *fileName, int buffer, long fileSize, bool writeDevided);
        void delFile ();
}File;

file::file()
{
    setStr('a');
    makeFile("Text.txt",1024,102400);
}

file::~file()
{
    remove("Text.txt");
}

void file::setStr(char chr)
{
for (int i = 0; i <= 1023; i++)
    str[i] = chr;
}

void file::makeFile(char *fileName, int buffer, long fileSize)
{
    ofstream out(fileName, ios::out | ios::binary);
    long aaa = 0;
    bytes = fileSize * 1024 / buffer;
    while (aaa < bytes)
    {
        out.write(str, buffer);
        aaa ++;
    }
    out.close();
}

void file::readFile(char *fileName, int buffer, long fileSize, bool wr)
{
    ifstream in(fileName, ios::in | ios::binary);
    int a;
    ofstream out;
        File.delFile();
    for (int i = 0; i < 102400 / fileSize; i++)
    {
        if (wr)
            out.open((char*)fileNames[i], ios::out | ios::binary);
        for (int j = 0; j < ((102400 / (102400 / fileSize)) * 1024) / buffer; j++)
        {
            in.read(str, buffer);
            if (wr)
                out.write(str, buffer);
        }
        out.close();
    }
    in.close();
    oldFileSize = fileSize;
}

void file::delFile ()
{
    for (int i = 0; i < 102400 / oldFileSize; i++)
        remove((char*)fileNames[i]);
}

int main (int argc,char *argv[])
{
    SetFileNames();
    Menu();
    return 0;
}

//*******************نمایش منو برای تعیین اندازه بافر, اندازه فایل و ایجاد و یا خواندن فایل در بافر
void Menu()
{
    int choice;
    cout << "\n ( 1 ) - Set the size of buffer" << "\n ( 2 ) - Set the size of File" << "\n ( 3 ) - Create the File" << "\n ( 4 ) - Read Read the File" << "\n ( 5 ) - Exit" << "\n" ;
    cout << "\n Enter the number (1 to 5) : ";
    cin >> choice;
    switch (choice)
    {
        case 1:
        {
            clrscr();
            cout << "\n  - Enter the size of buffer (under 1024) : ";
            cin >> buffer;
            Menu();
            break;
        }
        case 2:
        {
            clrscr();
            cout << "\n (Sizes [100-MB ; 10-MB ; 1-MB ; 100-KB] are recomended) for 100MB enter 102400 \n  - Enter the size of File in KB : ";
            cin >> fileSize;
            Menu();
            break;
        }
        case 3:
        {
            clrscr();
            if (buffer <= 0)
                cout << "Set the buffer`s size \n";
            else if (fileSize <= 0)
                cout << "Set the File`s size \n";
            else
            {
                File.readFile("Text.txt", buffer,fileSize, true);
                GetTime();
            }
            Menu();
            break;
        }
        case 4:
        {
            clrscr();
            if (buffer <= 0)
                cout << "Set the buffer`s size \n";
            else if (fileSize <= 0)
                cout << "Set the File`s size \n";
            else
            {
                File.readFile("Text.txt", buffer,fileSize, false);
                GetTime();
            }
            Menu();
            break;
        }
        case 5:
        {
            File.delFile();
            exit(1);
        }
        default:
            while (choice < 1 || choice >5)
            {
                cout << "\n Choose a number between 1 to 5 : ";
                cin >> choice;
            }
    }
}

//*******************تابع تعیین زمان سپری شده برای انجام هر عملیات
void GetTime()
{
    long miliSecond, seconds, minutes, timer;
    start = end;
    end = clock() / 1000;
    timer = difftime (end, start);
    miliSecond = timer % 1000;
    seconds = timer / 1000 % 60;
    minutes = timer / 60000;
    cout << endl << minutes << " Minutes " << seconds << " Seconds " << miliSecond << " Mili Seconds " <<  endl;
}

//********************تابع برای ایجاد یکدسته فایل برای تقسیم کردن فایل بزرگتر به فایلهای کوچکتر
void SetFileNames()
{
    int aaa = 0;
    for(int i = 97; i <= 122; i++)
        for(int j = 97; j <= 122; j++)
            for(int k = 97; k <= 122; k++)
            {
                if (aaa == 1024)
                    break;
                fileNames[aaa][0] = (char)i;
                fileNames[aaa][1] = (char)j;
                fileNames[aaa][2] = (char)k;
                aaa++;
            }
}

void clrscr()
{
    for (int i = 0; i < 60; i++)
        cout << endl;
}