پروژه تهیه نرم افزار حقوق و دستمزد

تحقیق و پروژه و پایان نامه و مقاله دانشجویی

عنوان :

پروژه تهیه نرم افزار حقوق و دستمزد

تعداد صفحات : ۷۷

نوع فایل : ورد و قابل ویرایش

چکیده:

مقاله در ۴ فصل آشنایی با نرم افزارهای استفاده شده در سیستم حقوق و دستمزد، تجزیه و تحلیل سیستم، طراحی فرم‌ها و چگونگی کارکرد نرم افزار و نحوه پیاده سازی سیستم می باشد.

دات نت ، پلات فرم جدید مایکروسافت بمنظور تحقق نظریه : ” نرم افزار بعنوان سرویس ” ، است . دات نت یک محیط پیاده سازی است که به کمک آن می توان اقدام به ایجاد و بکارگیری نرم افزار و نسل جدیدی از عناصر موسوم به ” سرویس های وب ” ، نمود. تمامی محصولات اصلی مایکروسافت از ویژوال استودیو دات نت تا ویندوز و نهایتا مجموعه آفیس ، متاثر از پلات فرم فوق شده و خواهند شد . دات نت به پیاده کنندگان این امکان را خواهد داد که با زبان برنامه نویسی مورد علاقه خود ، اقدام به پیاده سازی برنامه ها نمایند. ویژگی ( پتانسیل ) فوق از طریق معرفی CLR)Common Language Runtime )، میسر شده است . در این مقاله قصد در بررسی دات نت و پتانسیل ها و قابلیت های گسترده آن است.

نرم افزار حقوق و دستمزد محاسبه حقوق و دستمزد با توجه به مدرک و سابقه افراد حقوق و پایه در نظر گرفته می شود و در ضمن نوع شغل نیز می تواند بر میزان حقوق موثر باشد .  ساعت حضور و غیاب از ساعت سیستم خوانده می شود و ساعت مرخصی بر حقوق ماهیانه تاثیر می گذارد میزان تاخیر روزانه نیز بریا هر فرد مشخص می گردد .

میزان اضافه کاری و حقوق با توجه به سقف اضافه کاری ۹۰ ساعت می باشد سیستم محاسبه حقوق و دستمزد دو نوع گزارش گیری دارد که یکی به منزله فیش حقوقی کارمند می باشد و نوع دیگر گزارش گیری دارد که یکی به منزله فیش حقوقی کارمند می باشد و نوع دیگر گزارش که برای مسئولین و حسابرسی شرکت استفاده می شود شامل گزارشی از لیست پرداختی های شرکت به کارمندان می باشد در این نرم افزار سعی شده است تمامی مبالغ اعم از بیمه ، مالیات ، حق اولاد ، پایه حقوق ، حق مسکن و … بر اساس قانون کار محاسبه شده است .

واژه های کلیدی: حقوق و دستمزد،زبان C#، شیء گرایی، دات نت، فرم، پیاده سازی، گزارش گیری

فهرست مطالب

مقدمه    و فصل اول : آشنایی با نرم افزارهای استفاده شده در سیستم حقوق و دستمزد
۱-۱ مطرح شدن بعنوان یک استاندارد صنعتی    ۲
۲-۱ C#چیست ؟    ۲
۱-۲-۱ کد مدیریت یافته    ۳
۲-۲-۱ روش یادگیری C#    ۳
۳-۲-۱ مفاهیم شیء گرایی در C#    ۴
۳-۱ شیء چیست؟    ۴
۱-۳-۱ کلاسه کردن اشیاء مقدمه ای بر ارث بری Inheritance))    ۶
۲-۳-۱ سلسله مراتب اشیاء (بررسی ارث بری در محیط شیءگرا)    ۷
۳-۳-۱ انتزاع (Abstraction)    ۸
۴-۳-۱ اشیاء درون اشیاء (مقدمه ای بر کپسوله‌کردن یا Encapsulation)    ۹
۵-۳-۱ اشیائی با رفتارهایی متفاوت (مقدمه بر چند ریختی یا Polymorphism)    ۱۱
۴-۱ .NET چیست و چگونه شکل گرفت؟    ۱۴
۱-۴-۱ یک پلات فرم مناسب برای آینده    ۱۵
۲-۴-۱ ایده های اولیه    ۱۶
۳-۴-۱ تولد دات نت    ۱۶
۴-۴-۱ مروری بر Frame work دات نت:    ۱۷
۵-۱ مفاهیم مبنایی پایگاه داده ها :    ۱۸
۱-۵-۱منظور از کنترل و مدیریت :    ۱۹
۲-۵-۱ مفهوم داده :    ۲۲
۳-۵-۱ مفاهیم ابتدائی    ۲۴
۴-۵-۱ شکل کلی دستور :    ۲۵
۵-۵-۱ذخیره تصاویر در SQL Server    ۲۵
۶-۱ آشنایی با نسخه‌های SQL Server 2005    ۲۷
۱-۶-۱ کدام سیستم عامل؟    ۲۸
۲-۶-۱ آشنایی با محیط Sqlserver management studio    ۳۰
۷-۱ انتقال اطلاعات با Replication در SQLserver     ۳۴
۱-۷-۱ معرفی Replication     ۳۴
۲-۷-۱ انتقال اطلاعات به روش ادغام (Merge)     ۳۵
۳-۷-۱ تصویر برداری از اطلاعات (snapshot)    ۳۵
۴-۷-۱ انتقال بر اساس فرآیند (Transactional)     ۳۶
۵-۷-۱ تعریف ناشر و مشترکین     ۳۶
۶-۷-۱ طرح یک مسئله    ۳۷
۷-۷-۱ مراحل ایجاد ناشر     ۳۷
۸-۱ مراحل ایجاد مشترکین     ۳۸
۱-۸-۱ روش pul (از طریق مشترک)    ۳۸
۲-۸-۱ روش push (از طریق ناشر)     ۳۸
۳-۸-۱ snapshot lsolation level     ۳۹
۴-۸-۱ باز هم دات نت     ۳۸
۹-۱ ADO.Net وارد می‌شود    ۴۰
۱۰-۱ تکنولوژی xml    ۴۱
۱۱-۱ سرویس اعلان (Notification)     ۴۲
۱۲-۱ سرویس گزارش گیری     ۴۲
۱۳-۱ مدیریت خطا     ۴۳
فصل دوم : تجزیه و تحلیل سیستم
۱-۲ نمودارER-MODELING    ۴۵
۲-۲ نمودار دیدهای فرمها و کاربران نسبت به هم    ۴۶
۳-۲ تعاریف    ۴۷
۴-۲ کارکرد نرم افزار حقوق و دستمزد :    ۴۷
۱-۴-۲ جدول پرسنلی (Personally) :    ۴۸
۲-۴-۲ جدول پایانی (Final) :    ۴۸
۳-۴-۲ تصویر اضافه کار (Ezkar) :    ۴۹
۵-۲ گزارش ماهانه :    ۴۹
۱-۵-۲ فیش حقوقی :    ۵۰
۲-۵-۲ فیلدهای جداول جدول ساعت زنی Time :    ۵۰
۳-۵-۲ جدول پرسنلی Personally    ۵۰
۴-۵-۲ جدول محاسباتی حقوق    ۵۱
۵-۵-۲ تصویر اضافه کار (Ezkar)    ۵۱
۶-۵-۲ گزارش ماهانه    ۵۱
فصل سوم : طراحی فرم‌ها و چگونگی کارکرد نرم افزار
۱-۳ فرم شروع    ۵۳
۱-۱-۳ فرم ساعت زنی    ۵۴
۲-۱-۳ فرم  ثبت کارمندان    ۵۶
۳-۱-۳ فرم نمایش همه کاربران    ۵۷
۴-۱-۳ محاسبه حقوق    ۵۸
۲-۳ فرمول های محاسبات :    ۵۹
فصل چهارم ‌: نحوه پیاده سازی سیستم
مقدمه    ۶۱
۱-۴ کلاس add    ۶۱
۱-۱-۴ نحوه استفاده از کلاس add در برنامه برای اضافه کردن کارمند جدید به لیست کامندان    ۶۲
۲-۴ نحوه گزارش گیری با کریستال ریپورت    ۶۶
فهرست منابع    ۶۸

۱-۱ مطرح شدن بعنوان یک استاندارد صنعتی

انجمن تولیدکنندگان کامپیوتر اروپا (ECMA) زبان C#را در سوم اکتبر سال ۲۰۰۱ بعنوان یک  استاندارد پذیرفته (ECMA-334) و بدنبال آن تلاش های وسیعی برای کسب گواهی ISO نیز انجام شده است. زبان فوق در ابتدا توسط شرکت مایکروسافت و بعنوان بخشی از دات نت پیاده سازی و بلافاصله پس از آن توسط شرکت های اینتل، هیولیت پاکارد و مایکروسافت مشترکا، جهت استاندارسازی پیشنهاد گردید.

زبان C#بگونه ای طراحی شده است که نه تنها وابستگی به یک Platform خاص را ندارد، بلکه در اغلب موارد وابستگی RunTime نیز ندارد. کامپایلر C#می تواند بر روی هر نوع معماری سخت افزاری طراحی و اجرا گردد. در برخی از نسخه های اولیه کامپایلر زبان فوق که توسط برخی از شرکت های جانبی ارائه شده است، کدهای C#را به بایت کدهای جاوا کمپایل می کنند. یکی از چنین کامپایلرهائی را می توان در سایت Halcyonsoft.com مشاهده نمود. بنابراین کدهای  C#براحتی قابلیت حمل بر روی محیط های متفاوت را دارا خواهند بود.

مشخصات تعریف شده زبان C#با سایر استاندارهای تعریف شده ECMA نظیر (ECMA-335) CLI (Common Language Infrastructure) بخوبی مطابقت می نمایند. CLI قلب و روح دات نت و CLR(Common Language Runtime) است. اولین نسخه از کامپایلر زبان  C#که از CLI استفاده می کند، NET Framwork. مایکروسافت است.

با توجه به موارد گفته شده، مشخص می گردد که این زبان بسرعت بسمت استاندارد شدن حرکت و با تایید استانداردهای مربوطه از طرف انجمن های معتبر بین المللی و حمایت فراگیر شرکت های معتبر کامپیوتری در دنیا مسیر خود را بسمت جهانی شدن بخوبی طی می نماید.

۲-۱ C#چیست ؟

طراحان زبان C#با تاکید و الگوبرداری مناسب از مزایای زبانهائی نظیر ++C، C و جاوا و نادیده گرفتن برخی از امکانات تامل برانگیز و کم استفاده شده در هر یک از زبانهای فوق، یک زبان برنامه نویسی مدرن شی گراء را طراحی کرده اند. در مواردی، برخی از ویژگی های استفاده نشده و درست درک نشده در هر یک از زبانهای گفته شده، حذف و یا با اعمال کنترل های لازم بر روی آنها، زمینه ایجاد یک زبان آسان و ایمن برای اغلب پیاده کنندگان نرم افزار بوجود آمده است. مثلا C و ++C می توانند مستقیما با استفاده از اشاره گرها عملیات دلخواه خود را در حافظه انجام دهند. وجود توانائی فوق برای نوشتن برنامه های کامپیوتری با کارائی بالا ضرورت اساسی دارد. اما در صورتیکه عملیاتی اینچنین بدرستی کنترل و هدایت نگردند، خود می تواند باعث بروز مسائل (Bugs) بیشماری گردد.

طراحان زبان C#، با درک اهمیت موضوع فوق، این ویژگی را کماکان در آن گنجانده ولی بمنظور ممانعت از استفاده نادرست و ایجاد اطمینان های لازم مسئله حفاظت نیز مورد توجه قرار گرفته است. جهت استفاده از ویژگی فوق، برنامه نویسان می بایست با صراحت و به روشنی خواسته خود را از طریق استفاده از Keyword های مربوطهاعلان نمایند( فراخوانی یک توانائی و استفاده از آن).

C#بعنوان یک زبان شی گراء عالی است. این زبان First-Class را برای مفهوم Property (Data Member) بهمراه سایر خصائص عمومی برنامه نویسی شی گراء حمایت می کند. در C و  ++C  و جاوا یک متد get/set اغلب برای دستیابی به ویژگی های هر Property استفاده می گردد. CLI  همچنان تعریف Property را به متدهای get/ser ترجمه کرده تا بدین طریق بتواند دارای حداکثر ارتباط متقابل با سایر زبانهای برنامه نویسی باشد  .C#

بصورت فطریEvents ، Declared Value، Reference Type ، Operator Overloading را نیز حمایت می کند.

 ۱-۲-۱ کد مدیریت یافته

با استفاده از نسخه پیاده سازی شده  C# توسط مایکروسافت، می توان همواره کد مدیریت یافته ای را تولید کرد. یک برنامه  C# پس از کامپایل، بصورت برنامه ای در خواهد آمد که شامل دستورالعمل های تلفیق شده (CIL)Common Intermediate Language است -درست بر خلاف دستورالعمل های مختص یک ماشین خاص-.

CILگاهاً با نام   MSIL (Microsoft Intermediate Language)  یا به اختصار IL نیز نامیده می شود)، در مفهوم مشابه بایت کدهای جاوا بوده و شامل مجموعه ای از دستورالعمل های سطح پایین قابل فهم توسط تکنولوژی مبتنی بر CLI نظیر CLR مایکروسافت خواهد بود. این برنامه ها بدین دلیل کد مدیریت یافته، نامیده می شوند که CLR مسئولیت تبدیل این دستورالعمل ها به کدهای قابل اجرا برروی ماشین و ارائه اغلب سرویس های اساسی برای کدینگ نظیر : Garbage Collection، مدیریت Heap و عمر مفید یک Object و یا Type Verification را فـراهم می کند.

۲-۲-۱ روش یادگیری C#

یادگیری این زبان برای افرادیکه دارای سابقه آشنائی با یکی از زبانهای برنامه نویسی ++C ،C  و یا جاوا باشند کار مشکلی نخواهد بود، حتی افرادیکه دارای آشنائی اولیه با جاوا اسکریپت و یا دیگر زبانهای برنامه نویسی نظیر ویژوال بیسک می باشند، امکان پذیر و راحت خواهد بود. برخی از برنامه نویسان حرفه ای بر این باور هستند که  C# نسبت به VB.NET با اقبال بیشتر و سریعتری مواجه خواهد شد، چراکه  C# نسبت به ویژوال بیسک خلاصه تر است. حتی برنامه های بزرگ و پیچیده ای که توسط  C# نوشته می گردند خواناتر، کوتاه و زیبا خواهند بود. برخی از ویژگی های ارائه شده در  C# نظیر Unsigned Integer، Operator OverLoading و امنیت بیشتر Type ها، در VB.NET وجود نداشته و این امر می تواند دلیلی بر فراگیرتر شدن  C# نسبت به VB.NET نزد برنامه نویسان با تجربه باشد.

برای یادگیری هر یک از زبانهای حمایت شده در دات نت، می بایست از BCL (Basic Class Library) مربوط به.NET Framework   شروع کرد. C#  خود صرفاً دارای ۷۷ کلمه کلیدی یا Keyword  بوده که برای اکثر برنامه نویسان ناآشنا نخواهند بود. در مقابل BCL، دارای ۴۵۰۰ کلاس و تعداد بیشماری متد و Property است که برنامه نویسان C# ، می توانند از آنها برای انجام عملیات دلخواه خود استفاده نمایند. شاید یکی از مسائل قابل توجه جهت یادگیری این زبان برای برخی از برنامه نویسان حرفه ای عدم وجود برخی از ویژگی ها و امکاناتی باشد که در گذشته و از طریق سایر زبانهای استفاده شده، بخدمت گرفته می شدند. مثلا عدم وجود امکاناتی جهت توارث چندگانه (MI) سلسله مراتبی یک شئ.

 ۳-۲-۱ مفاهیم شیء گرایی در C#

یکی از مهمترین و اصلی ترین مشکلات برای افرادی که به تازگی با محیط‌های برنامه نویسی شی‌گرا آشنا می شوند، درک مفاهیم شیءگرائی است. در حقیقت درک مفاهیمی چون شیء و مولفه (Component) بسیار دشوار نیست، کافیست کمی به اطراف خود با دقت نگاه کنیم. ما در دنیایی از اشیاء مختلف زندگی میکنیم. تلویزیون، رادیو در و پنجره، همه و همه نمونه هایی از اشیاء مختلفی هستند که در اطراف ما وجود دارند. اما درک و پیاده‌سازی این مفهوم در یک زبان برنامه‌سازی اندکی متفاوت است.

 ۳-۱ شیء چیست؟

همانطور که گفتیم، با یک دید تصویری به سادگی می توانید اشیاء مختلفی را در اطراف خود بیابید. تمامی این اشیاء دارای سطوح و درجه پیچیدگی متفاوتی هستند. پیچیدگی آنها به شکل ظاهری و نوع رفتار آنها بستگی دارد.

در شیء گرایی به “شکل ظاهر” در اصطلاح، صفت یا Attribute و به عملی که شیء انجام می دهد، رفتار یا Behavior می گویند.

برای مثال یک صندلی را در نظر بگیرید. صندلی صفات مختلفی دارد ولی رفتار خاصی ندارد. مثلاً پایه های صندلی جزو صفات آن بشمار می روند. با کمی دقیق تر شدن می توان از این صفات برای توصیف صندلی استفاده کرد. بعنوان مثال تعداد پایه های صندلی می تواند عددی بین ۳ تا ۵ باشد. محل نشستن صندلی می تواند جمله‌ای در وصف جنس آن و مقدار مصرف ماده سازنده آن باشد. پشتی صندلی را نیز می توان بعنوان متغییری boolean در نظر گرفت چراکه برخی از صندلی ها فاقد پشتی هستند. با استفاده از این سه صفت ساده، به راحتی می توان صندلی را توصیف نمود و با همین سه صفت میتوان گونه‌های مختلفی از صندلی را نیز توصیف کرد.

منظور از رفتار، عملی است که یک شیء انجام می دهد. از اینرو برای صندلی نمی توان به سادگی صفات آن، رفتاری را متصور شد. مثلاً می‌توانیم بگوئیم تاشو بودن صندلی یکی از رفتارهای آن می تواند باشد، چراکه عملی است که می تواند یک صندلی آنرا انجام دهد.

حال شیء دیگری مانند تلویزیون را در نظر بگیرید. صفاتی که می توان برای تلویزیون در نظر گرفت عبارتند از: صفحه نمایش، سازنده آن و … برای تلویزیون به راحتی می توان رفتار در نظر گرفت: خاموش و روشن شدن، تغییر کانال و کم و زیاد کردن صدا. این رفتارها بر اثر درخواست یک انسان یا همان کاربر اتفاق می افتند. شیء تلویزیون را میتوان بصورت زیر نمایش داد :

بطور کلی، یک شیء را میتوان بوسیله صفات و رفتارهای آن بطور کامل توصیف نمود. یک شیء حتماً جسمی فیزیکی نیست، بلکه هر چیز قابل تصوری است که دارای صفت و رفتار است. در حقیقت میتوان گفت یک شیء شبیه به یک اسم است. اگر بتوان برای این اسم، صفت و رفتاری تعریف کرد، آن وقت تبدیل به شیء می شود.

از دید انتزاعی، زمان را نیز می توان بعنوان یک شیء در نظر گرفت. صفات زمان، ساعت، دقیقه و ثانیه هستند و گذشت زمان، رفتار آن است. در ایجاد شیء هیچ محدودیتی وجود ندارد و همه چیز به تخیل شما باز میگردد.

در زبان C#، اشیاء بوسیله کلاسها (Class) نمایش داده می شوند. داخل کلاس، صفات بصورت فیلدها ظاهر می شوند و جهت پیاده سازی رفتارها از متدها استفاده می گردد. به مثال زیر توجه نماید :

کد:

class Time
{
int hours;
int minutes;
int seconds;
void pastime()
{
//some implementation
}
}

در این مثال، کلاس Time مشاهده می شود. این کلاس با کلمه کلیدی class اعلان گردیده است. همانطور که میدانید، دو کروشه باز و بسته {} نیز ابتدا و انتهای کلاس را مشخص می‌کند. فیلدها دارای نام و نوع هستند. متدها دارای نام و نوع بازگشتی می باشند و پیاده‌سازی آنها داخل بلوک مربوط به خود آنها (بین دو {}) انجام میگردد.

یک شیء می‌تواند هر یک از نیازمندی‌های یک پروژه باشد. طراحی و اعلان صحیح اشیاء و مشخص کردن صفات و رفتار آنها یکی از مقوله‌های مهم در مهندسی نرم افزار بر پایه شیء‌گرائی است، چراکه همگی تراکنشها بین اشیاء صورت می پذیرند.

۱-۳-۱ کلاسه کردن اشیاء مقدمه ای بر ارث بری Inheritance))

طبقه‌بندی اشیاء در گروههای مختلف بسیار سودمند است. زمین شناسان سنگها را طبقه بندی می‌کنند و زیست شناسان گیاهان و حیوانات را طبقه‌بندی می‌کنند. طبقه بندی اشیاء باعث می‌شود تا با دقت و ظرافت بیشتری بتوان به جزئیات هر طبقه و یا هر نوع پرداخت.

برای مثال حیوانات را در نظر بگیرید. زیست شناسان حیوانات را به دسته‌های پرندگان، مهره داران و خزندگان تقسیم می‌کنند. پرندگان صفاتی همچون منقار و بال دارند، مهره‌داران بدنی مودار دارند و خون گرمند و خزندگان خون سردند. از دید رفتاری نیز پرندگان پرواز می کنند، مهره داران به بچه های خود شیر می‌دهند و خزندگان می‌خزند. اینها ویژگیهای ارشد یا عام هستند و صفات دیگری در زیر گروهها افزوده می‌شوند. در گروه اصلی تنها صفات و رفتارهایی قرار می‌گیرند که عمومیت داشته باشند و سایر صفات و رفتارها در زیر گروهها معین می‌گردند. بعنوان مثال کلاس پرندگان را بشکل زیر میتوان پیاده‌سازی نمود :

 کد:

class Bird
{
string beakDescription;
int wingSpan;
string typeOfBird;
void fly()
{
//some implementation
}
}

می توان این کلاس را بعنوان کلاسی عمومی برای پرندگان در نظر گرفت که دارای فیلدی جهت تعیین نوع پرنده نیز می‌باشد. با استفاده از فیلد typeOfBird می‌توان گونه پرنده مورد نظر را معین نمود.

۲-۳-۱ سلسله مراتب اشیاء (بررسی ارث بری در محیط شیءگرا)

روش گفته شده در بالا، جهت افزودن صفات برای یک طبقه‌بندی ساده کارآمد است، اما برای طبقه‌بندی‌های پیچیده قابل قبول نیست. تصور کنید حجم عظیمی نیازمندی در پروژه وجود داشته باشد و به سطح های مختلفی از طبقه بندی نیاز داشته باشید. با افزودن صفات جدید به هر یک از طبقات و سطحها به پیچیدگی پروژه به شدت افزوده می شود.

اتفاقی که در مورد زیر شاخه‌ها رخ می‌دهد، ایجاد یک سلسله مراتب طبیعی است. برنامه‌نویسی شیءگرا ، متدولوژیی را جهت مدیریت سلسله مراتب طبیعی فراهم می نماید. بعنوان مثال، اگر در یک پروژه یکی از طبقه بندیهای ما حیوانات باشند، منطقی است که شیءای از طبقه حیوانات در رأس سلسله مراتب قرار گیرد و در طبقات و زیر شاخه‌های سطوح پائینی، پرندگان، مهره داران و خزندگان قرار گیرند. در سطح بعدی می‌توان چند پرنده مانند اردک، کلاغ و … را نیز در زیر شاخه پرندگان قرار داد. این سلسله مراتب تا سطح مورد نظر قابل تعمیم است.

70,000 ریال – خرید

جهت دریافت و خرید متن کامل مقاله و تحقیق و پایان نامه مربوطه بر روی گزینه خرید انتهای هر تحقیق و پروژه کلیک نمائید و پس از وارد نمودن مشخصات خود به درگاه بانک متصل شده که از طریق کلیه کارت های عضو شتاب قادر به پرداخت می باشید و بلافاصله بعد از پرداخت آنلاین به صورت خودکار  لینک دنلود مقاله و پایان نامه مربوطه فعال گردیده که قادر به دنلود فایل کامل آن می باشد .

مطالب پیشنهادی: برای ثبت نظر خود کلیک کنید ...

به راهنمایی نیاز دارید؟ کلیک کنید

جستجو پیشرفته

پیوندها

دسته‌ها

آخرین بروز رسانی

    چهارشنبه, ۱۲ اردیبهشت , ۱۴۰۳
اولین پایگاه اینترنتی اشتراک و فروش فایلهای دیجیتال ایران
wpdesign Group طراحی و پشتیبانی سایت توسط digitaliran.ir صورت گرفته است
تمامی حقوق برایbankmaghaleh.irمحفوظ می باشد.