دارای داکیومنت و مستندات در قالب فایل WORD Doc و دارای نمودار های UML و فایل رشنال رز و توضیحات کدها و دارای پشتیبانی
فهرست مطالب . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . شماره صفحه
چکیده 8
مقدمه 9
فصل اول: چشم انداز پروژه (VISION) 10
1-1- VISION چیست 11
1-2- موضوع پروژه 12
1-3- اهداف پروژه 12
1-4- انجام پروژه چه سودی دارد 12
1-5- ذینفعان پروژه 13
1-6- سابقه انجام پروژه های مشابه 13
1-7- معایب پروژه های گذشته 14
1-8- زبان برنامه نویسی 15
1-9- پایگاه داده 15
1-10-روش تحلیل سیستم 15
1-11- سیستم عامل مورد نیاز برای پیاده سازی 15
1-12- سایر نرم افزارهای مورد نیاز برای پیاده سازی سیستم 16
فصل دوم: بررسی USE CASE DIAGRAM منطقی رستوران 17
فهرست مرتب شده FUNCTIONALITY هایی که باید سناریو برای آنها تعریف شود 18
نمودار منطقی کلی PACKAGE سیستم رستوران 19
نمایش ارتباط اکتورهای سیستم در حالت کلی 20
نکاتی راجع به نوشتن سناریو برای USE CASE ها 21
Use case Diagram مربوط به ورود به سیستم 22
سناریوی LogIn Use Case 23
Use case Diagram مربوط به بخش ورود اطلاعات رستوران 24
سناریوی Use Caseایجاد گروه غذای جدید 25
سناریوی Use Caseایجاد واحد شمارش غذا و مواد خوراکی 26
سناریوی Use Caseثبت غذای جدید 27
سناریوی Use Caseثبت موجودی غذا 28
سناریوی Use Case ثبت نام مشتری 29
سناریوی Use Case ایجاد فاکتور فروش 30
Use case Diagram مربوط به بخش تنظیمات امنیتی 31
سناریوی Use Case ایجاد کاربر 32
سناریوی Use Case ویرایش کاربر 33
سناریوی Use Case حذف کاربر 34
Use case Diagram مربوط به بخش گزارشات 35
سناریوی Use Case مشاهده گزارشات 36
فصل سوم: بررسی CLASS DIAGRAM 37
نمودار Class کلی سیستم رستوران 38
توضیحات متدهای نمودار کلاس اصلی سیستم 39
متد Insert () یا Create() 39
متد Delete () 39
متد Update() 39
متد Select() 40
جزئیات و نام هر کلاس 40
کلاس کاربر 40
کلاس اپراتور 40
کلاس مشتری 41
کلاس فاکتور 41
کلاس ایجاد غذا 41
کلاس جزئیات فاکتور 42
کلاس گروه غذا 42
کلاس واحد شمارش غذا 42
کلاس موجودی غذا 43
فصل چهارم: طراحی پایگاه داده سیستم رستوران 44
نمودار ER کلی پایگاه داده سیستم رستوران 45
جدول کاربران 46
جدول نوع کاربران 46
جدول مشتریان 47
جدول موجودی غذا 47
جدول ثبت انواع غذا 48
جدول تعریف فاکتور 48
جدول جزئیات فاکتور 48
جدول ثبت واحد شمارش غذا 49
جدول گروه غذا 49
اسکریپت SQL برای ایجاد جداول 49
فصل پنجم: بررسی نمودارهای SEQUENCE 51
نمودار توالی ایجاد کاربر 52
نمودار توالی حذف کاربر 53
نمودار توالی ویرایش مشخصات کاربری 54
نمودار توالی ورود به سیستم 55
نمودار توالی مشاهده گزارشات 56
نمودار توالی ثبت مشخصات مشتری 57
نمودار توالی ثبت عنوان های غذا 58
نمودار توالی ثبت موجودی غذا 59
نمودار توالی ایجاد فاکتور فروش غذا 60
فصل ششم: بررسی نمودارهای COLLABORATION 61
نمودار همکاری ایجاد کاربر 62
نمودار همکاری حذف کاربر 63
نمودار همکاری ویرایش کاربر 64
نمودار همکاری ورود به سیستم 65
نمودار همکاری مشاهده گزارشات 66
نمودار همکاری ایجاد مشتری 67
نمودار همکاری ثبت غذا 68
نمودار همکاری ثبت موجودی غذا 69
نمودار همکاری ایجاد فاکتور فروش 70
فصل هفتم: بررسی SOURCE CODE C# 71
در مورد زبان برنامه نویسی 72
مروري بر تاريخچه برنامه نويسي 72
برنامه نويسي ساخت يافته 74
تاریخچه سی شارپ 76
اهداف طراحی زبان 77
تاریخچه 77
ویژگیها 78
سیستم یکپارچه شده 79
انواع داده 79
BOXING و ENBOXING 80
ویژگیهای جدید در C# 2.0 80
کلاسهای PARTIAL 80
GENERICها 81
کلاس های STATIC 81
یک شکل جدید از تکرار کننده با استفاده از سازنده توابع 81
DELEGATEهای ناشناس 82
DELEGATE COVARIANCE AND CONTRAVARIANCE 82
نوع داده NULLABLE 82
کدهای مربوط به فرم ورود به سیستم 84
کدهای مربوط به فرم اصلی سیستم رستوران 86
کدهای مربوط به فرم ثبت دسته بندی غذا 90
کدهای مربوط به فرم ثبت واحد شمارش غذا 94
کدهای مربوط به فرم تعریف عنوان غذا 98
کدهای مربوط به فرم ثبت موجودی غذا 103
کدهای مربوط به فرم ثبت مشخصات مشتری 108
کدهای مربوط به فرم ثبت فاکتور فروش 114
کدهای مربوط به فرم ثبت کاربران سیستم 123
فصل هشتم: جمع بندی ، نتیجه گیری و پیشنهادات 130
جمع بندی 131
نتیجه گیری 132
پیشنهادات 133
منابع 134
کتابها 134
وب سایتها 134
فهرست عکسها ، نمودارها . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . شماره صفحه
نمایه 1 - نمودار Package کلی سیستم 19
نمایه 2 - نمودار Use Case ورود به سیستم 22
نمایه 3 - نمودار Usecase بهش ورود به سیستم 24
نمایه 4 - نمودار Usecase بخش تنظیمات امنیتی 31
نمایه 5 - نمودار Usecase گزارشات 35
نمایه 6 - نمودار کلاس کلی سیستم رستوران 38
نمایه 7 - کلاس کاربر 40
نمایه 8- کلاس اپراتور 40
نمایه 9- کلاس مشتری 41
نمایه 10- کلاس فاکتور 41
نمایه 11- کلاس ایجاد غذا 41
نمایه 12- کلاس جزئیات فاکتور 42
نمایه 13- کلاس گروه بندی غذا 42
نمایه 14- کلاس واحد شمارش غذا 42
نمایه 15- کلاس موجودی غذا 43
نمایه 16- نمودارER 45
نمایه 17 - جدول کاربران 46
نمایه 18 - جدول نوع کاربران 46
نمایه 19- جدول مشتریان 47
نمایه 20- جدول موجودی غذا 47
نمایه 21- جدول ثبت انواع غذا 48
نمایه 22- جدول تعریف فاکتور 48
نمایه 23- جدول ثبت جزئیات فاکتور 48
نمایه 24- جدول واحد شمارش غذا 49
نمایه 25- جدول گروه غذا 49
نمایه 26- نمودار توالی ایجاد کاربر جدید 52
نمایه 27- نمودار توالی حذف کاربر 53
نمایه 28- ویرایش مشخصات کاربری 54
نمایه 29- نمودار توالی ورود به سیستم 55
نمایه 30- مشاهده گزارشات 56
نمایه 31 - نمودار توالی ثبت مشخصات مشتری 57
نمایه 32 - نمودار توالی ثبت عنوان غذا 58
نمایه 33 - نمودار ثبت موجودی غذا 59
نمایه 34 - نمودار توالی ایجاد فاکتور فروش 60
نمایه 35- نمودار همکاری ایجاد کاربر 62
نمایه 36- نمودار همکاری حذف کاربر 63
نمایه 37 - نمودار همکاری ویرایش کاربران 64
نمایه 38- نمودار همکاری ورود به سیستم 65
نمایه 39 - نمودار همکاری نمایش گزارشات 66
نمایه 40 - نمودار همکاری درخواست ثبت نام مشتری 67
نمایه 41 - نمودار همکاری ثبت عنوان های غذا 68
نمایه 42 - نمودار همکاری ثبت موجودی غذا 69
نمایه 43 - نمودار همکاری ایجاد فاکتور فروش 70
نمایه 44 -اعداد باینری 73
نمایه 45 - محیط ویرایشگر کد 74
نمایه 46- عکس جلد کتاب آموزش سی شارپ 76
نمایه 47 - عکس فرم ورود به سیستم رستوران 84
نمایه 48 - فرم اصلی سیستم رستوران 86
نمایه 49 - فرم دسته بندی غذا 90
نمایه 50 - فرم ثبت واحد شمارش غذا 94
نمایه 51 - فرم ثبت عنوان غذا 98
نمایه 52 - ثبت موجودی غذا 103
نمایه 53 - فرم ثبت مشخصات مشتری 108
نمایه 54 - فرم ایجاد فاکتور فروش 114
نمایه 55 - فرم مربوط به کاربران سیستم 123
namespace Resturant
{
public partial class frmFoodUnits : Form // علامت ارث بری از کلاس اصلی فرم
{
public frmFoodUnits()
{
InitializeComponent(); // این متد در هنگام قبل از لود فرم فراخوانی شده و باعث می شود که اجزا و اشیاء استفاده شده بر روی فرم ظاهر و فعال شوند
}
private void frmFoodUnits_Load(object sender, EventArgs e) // این متد در هنگام لود فرم اجرا می شود
{
ثبت رخداد // Class_tblLogs LogReg = new Class_tblLogs(this.Text + " فعال گردید.");
LogReg.UDF_SaveLogToDb(); // با استفاده از این متد رخداد ارسال شده به کلاس در پایگاه داده ثبت ممی شود
UDF_GrdFill(); // فراخوانی متد نمایش رکوردها در گرید ویو
}
private void frmFoodUnits_FormClosed(object sender, FormClosedEventArgs e) // این متد در زمان بسته شدن فرم اجرا می شود
{
ثبت رخداد // Class_tblLogs LogReg = new Class_tblLogs(this.Text + " بسته شد.");
LogReg.UDF_SaveLogToDb(); // با استفاده از این متد رخداد ارسال شده به کلاس در پایگاه داده ثبت ممی شود
}
private void btnAdd_Click(object sender, EventArgs e) // رخداد کلیک
{
Txt_AssetUnit.Text = String.Empty; // حذف مقادیر متنی
btnAdd.SendToBack(); // نمایش کلید در پشت سایر آبجکتها
Btn_Save.BringToFront();// نمایش کلید در بالای سایر آبجکتها
مایش پیغام // MessageBox.Show("لطفا اطلاعات را وارد نمایید");
}
private void UDF_GrdFill() // توسط این متد اطلاعات فراخوانی شده در گرید ویو نمایش داده می شود
{
LSC_RestuRantDataContext db = new LSC_RestuRantDataContext(); // ایجاد شئ از کلاس لینک جهت اتصال به پایگاه داده
var Query = from Row in db.tblFoodUnits
orderby Row.FoodUnitID descending
select new
{
Row.FoodUnitID,
Row.FoodUnitDescription
};
dataGridView1.DataSource = Query; // تخصیص منبع داده جهت نمایش اطلاعات در گرید ویو
}
private void Btn_Save_Click(object sender, EventArgs e) // رخداد کلیک
{
if (Txt_AssetUnit.Text == "") // بررسی اینکه آیا فیلد متنی خالیست یا خیر
{
مایش پیغام // MessageBox.Show("ورود عنوان الزامی می باشد");
return; // خروج از متد
}
LSC_RestuRantDataContext db = new LSC_RestuRantDataContext(); // ایجاد شئ از کلاس لینک جهت اتصال به پایگاه داده
tblFoodUnit FoodUnt = new tblFoodUnit();
FoodUnt.FoodUnitDescription = Txt_AssetUnit.Text.Trim();
db.tblFoodUnits.InsertOnSubmit(FoodUnt);
db.SubmitChanges(); // ثبت تغییرات در پایگاه داده
UDF_GrdFill(); // فراخوانی متد نمایش رکوردها در گرید ویو
Txt_UnitID.Text = "";
Txt_AssetUnit.Text = "";
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)//این متد در هنگام کلیک بر روی سطرهای گرید ویو انجام می شود و مقادیر مربوط به محتویات هر سلول را بر می گرداند
{
Int32 selectedCellCount = dataGridView1.GetCellCount(DataGridViewElementStates.Selected);
if (selectedCellCount > 0)
{
if (dataGridView1.AreAllCellsSelected(true))
{
مایش پیغام // MessageBox.Show("All cells are selected", "Selected Cells");
}
else
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
for (int i = 0; i < selectedCellCount; i++)
{
Txt_UnitID.Text = dataGridView1.Rows[int.Parse(dataGridView1.SelectedCells[i].RowIndex.ToString())].Cells[0].Value.ToString();
Txt_AssetUnit.Text = dataGridView1.Rows[int.Parse(dataGridView1.SelectedCells[i].RowIndex.ToString())].Cells[1].Value.ToString();
}
}
}
}
private void Btn_Edit_Click(object sender, EventArgs e) // رخداد کلیک
{
if (Txt_UnitID.Text == "" || Txt_AssetUnit.Text == "") // بررسی اینکه آیا فیلد متنی خالیست یا خیر
{
مایش پیغام // MessageBox.Show("لطفا عنوان را انتخاب");
return; // خروج از متد
}
DialogResult dr = مایش پیغام // MessageBox.Show("آیا نسبت به عمل ویرایش رکورد اطمینان دارید", "اخطار ویرایش", مایش پیغام // MessageBoxButtons.OKCancel, مایش پیغام // MessageBoxIcon.Warning);
if (dr == DialogResult.OK)
{
LSC_RestuRantDataContext db = new LSC_RestuRantDataContext(); // ایجاد شئ از کلاس لینک جهت اتصال به پایگاه داده
tblFoodUnit FoodUnt = db.tblFoodUnits.Single(n => n.FoodUnitID == int.Parse(Txt_UnitID.Text.Trim()));
FoodUnt.FoodUnitDescription = Txt_AssetUnit.Text.Trim();
db.SubmitChanges(); // ثبت تغییرات در پایگاه داده
ثبت رخداد // Class_tblLogs LogReg = new Class_tblLogs(this.Text + " رکورد " + Txt_AssetUnit.Text.Trim() + " -ID= " + Txt_UnitID.Text.Trim() + "ویرایش");
LogReg.UDF_SaveLogToDb(); // با استفاده از این متد رخداد ارسال شده به کلاس در پایگاه داده ثبت ممی شود
UDF_GrdFill(); // فراخوانی متد نمایش رکوردها در گرید ویو
Txt_UnitID.Text = "";
Txt_AssetUnit.Text = "";
}
}
private void Btn_Delete_Click(object sender, EventArgs e) // رخداد کلیک
{
if (Txt_UnitID.Text == "" || Txt_AssetUnit.Text == "") // بررسی اینکه آیا فیلد متنی خالیست یا خیر
{
مایش پیغام // MessageBox.Show("لطفا عنوان را انتخاب");
return; // خروج از متد
}
DialogResult dr = مایش پیغام // MessageBox.Show("آیا نسبت به عمل حذف رکورد اطمینان دارید", "اخطار حذف", مایش پیغام // MessageBoxButtons.OKCancel, مایش پیغام // MessageBoxIcon.Warning);
if (dr == DialogResult.OK)
{
ثبت رخداد // Class_tblLogs LogReg = new Class_tblLogs(this.Text + " رکورد " + Txt_AssetUnit.Text.Trim() + " -ID= " + Txt_UnitID.Text.Trim() + "حذف");
LogReg.UDF_SaveLogToDb(); // با استفاده از این متد رخداد ارسال شده به کلاس در پایگاه داده ثبت ممی شود
LSC_RestuRantDataContext db = new LSC_RestuRantDataContext(); // ایجاد شئ از کلاس لینک جهت اتصال به پایگاه داده
tblFoodUnit FoodUnt = db.tblFoodUnits.Single(n => n.FoodUnitID == int.Parse(Txt_UnitID.Text.Trim()));
db.tblFoodUnits.DeleteOnSubmit(FoodUnt);
db.SubmitChanges(); // ثبت تغییرات در پایگاه داده
UDF_GrdFill(); // فراخوانی متد نمایش رکوردها در گرید ویو
}
Txt_UnitID.Text = "";
Txt_AssetUnit.Text = "";
}
private void Btn_Search_Click(object sender, EventArgs e) // رخداد کلیک
{
if (Txt_AssetUnit.Text == "") // بررسی اینکه آیا فیلد متنی خالیست یا خیر
{
مایش پیغام // MessageBox.Show("لطفا عنوان یا بخشی از عنوان را برای جستجو وارد نمائید.");
return; // خروج از متد
}
LSC_RestuRantDataContext db = new LSC_RestuRantDataContext(); // ایجاد شئ از کلاس لینک جهت اتصال به پایگاه داده
var Query = from Row in db.tblFoodUnits
where SqlMethods.Like(Row.FoodUnitDescription, "%" + Txt_AssetUnit.Text.Trim() + "%")
select new
{
Row.FoodUnitID,
Row.FoodUnitDescription
};
dataGridView1.DataSource = Query; // تخصیص منبع داده جهت نمایش اطلاعات در گرید ویو
ثبت رخداد // Class_tblLogs LogReg = new Class_tblLogs(this.Text + " - عملیات جستجو");
LogReg.UDF_SaveLogToDb(); // با استفاده از این متد رخداد ارسال شده به کلاس در پایگاه داده ثبت ممی شود
if (Query.Count() <= 0)
{
Txt_AssetUnit.Text = "";
Btn_Refresh.BringToFront();// نمایش کلید در بالای سایر آبجکتها
Btn_Search.SendToBack(); // نمایش کلید در پشت سایر آبجکتها
مایش پیغام // MessageBox.Show("رکوردی یافته نشد");
}
}
private void Btn_Refresh_Click(object sender, EventArgs e) // رخداد کلیک
{
UDF_GrdFill(); // فراخوانی متد نمایش رکوردها در گرید ویو
Btn_Refresh.SendToBack(); // نمایش کلید در پشت سایر آبجکتها
Btn_Search.BringToFront();// نمایش کلید در بالای سایر آبجکتها
}
}
}
برنامه مدیریت رستوران با استفاده از سی شارپ ویندوز اپلیکیشن دارای بخشهای متنوع و دارای چندین فرم دارای بخش مدیریتی به همراه پایگاه داده SQL Server و دارای پشتیبانی. این برنامه کاملا متن باز Open Source بوده و بر روی Server نیز قابل نصب و اجرا می باشد.
عنوان جداول طراحی شده در برنامه مدیریت رستوران
معرفی جدول های پایگاه داده
tblUserTypes
tblLogs
tblFoodCategury
tblFoodUnits
tblFoodsDescription
tblCustomer
tblUsers
tblMojodi
tblFactorID
tblFactorDetails
معرفی ویو های پایگاه داده
xtblMandehGaza
xtblFactorRpt
xtblDropFactors
xtblTotalSaleRates
xtblFoodSelect
xtblMizaneForoosh
امکانات برنامه
فرم ورود به سیستم
فرم اصلی سیستم رستوران
فرم ثبت دسته بندی غذا
فرم ثبت واحد شمارش غذا
فرم تعریف عنوان غذا
فرم ثبت موجودی غذا
فرم ثبت مشخصات مشتری
فرم ثبت فاکتور فروش
فرم ثبت کاربران سیستم
برچسبها: