PDA

مشاهده نسخه کامل : راهنمایی در نوشتن برنامه حقوق دستمزد در زبان #C



M3RS4D 50062
31-12-14, 01:59
سلام یه برنامه حقوق دستمزد هست که گروهی باید انجام بدیم ,همه انجام دادن آخرش رسیده به من :Love-ssa~! (1): (از اونجایی هم که کلا 2 جلسه تو ترم بیشتر نرفتم سر کلاس ,هیچی بلد نیستم.:1. (28):

باید یه همچین حرکتی بزنم

از کاربر پرسیده شود چند نفر را وارد می نماید بر حسب تعداد نفرات درخواستی اطلاعات افراد را دریافت کنه و مطابق با نوع استخدام آنها حقوقهای آنها را محاسبه کنه و در پایین فرم , به صورت متن یک lable اطلاعات محاسبه شده هر فرد را نمایش بده

اینم کداش
فقط کدها باشه ,طراحیش رو خودم انجام میدم .(البته میدونم چیزی نیستا ولی خوب مهم کد هاش هست که اگر لطف کنید ممنون میشم.)


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication3
{

enum Skills
{
AdobeSuite,
VisualStudio,
SQLServer,
RationalRose
}

enum EmployeeType
{
PartTime,
FullTitme

}

struct Person
{
public long ID;
public string Gender;
public string Name;

public EmployeeType Employee;
public string Skills;

public float WorkingTime;
public int HourPrice;
public double Salary;


}

public partial class frmSalary : Form
{

public frmSalary()
{
InitializeComponent();
}

private void frmSalary_Load(object sender, EventArgs e)
{
//با استفاده از خط زیر کمبوباکس مربوط به نوع همکاری از روی متغیر شمارشی پر می شود
cboEmployee.DataSource = Enum.GetValues(typeof(EmployeeType));


}

private void ClearForm()
{
txtID.Text = string.Empty;
txtName.Text = string.Empty;

rdoMale.Checked = false;
rdoFemale.Checked = false;

chkAdobe.Checked = false;
//...
cboEmployee.SelectedIndex = -1;
//...
txtWorkingTime.Text = string.Empty;
txtHourPrice.Text = string.Empty;
textBoxSalary.Text = string.Empty;
groupBox1.Enabled = true;
groupBox2.Enabled = true;

}



private void txtID_KeyDown(object sender, KeyEventArgs e)
{
if (!((e.KeyValue >= 48 & e.KeyValue <= 59) | (e.KeyValue == 190) | (e.KeyCode == Keys.Back) | (e.KeyCode == Keys.OemMinus) | (e.KeyCode == Keys.Return) | (e.KeyCode == Keys.Left) | (e.KeyCode == Keys.OemQuestion & e.KeyCode == Keys.ShiftKey)))// وبک اسپیس و منفی اعداد0تا9 فعال شدند
{

e.SuppressKeyPress = true;
}
}

private void OkButton_Click(object sender, EventArgs e)
{
Person p = new Person();


if (txtID.Text == string.Empty)
{
txtID.Focus();
errFinance.SetError(txtID, "شناسه یک فیلد اجباری می باشد.");
return;
}
else
{ errFinance.SetError(txtID, ""); }

if (!((rdoMale.Checked == true) || (rdoFemale.Checked == true)))
{
errFinance.SetError(rdoFemale, "انتخاب جنسیت اجباری می باشد.");
return;
}
else
{ errFinance.SetError(rdoFemale, ""); }

if (txtWorkingTime.Text == string.Empty)
{
txtID.Focus();
errFinance.SetError(txtWorkingTime, "مبلغ یک فیلد اجباری می باشد.");
return;
}
else
{ errFinance.SetError(txtWorkingTime, ""); }
if (txtHourPrice.Text == string.Empty)
{
txtID.Focus();
errFinance.SetError(txtHourPrice, " کارکرد یک فیلد اجباری می باشد.");
return;
}
else
{ errFinance.SetError(txtHourPrice, ""); }


p.ID = long.Parse(txtID.Text.Trim());

if (rdoMale.Checked == true)
{
p.Gender = rdoMale.Name.ToString();
}
if (rdoFemale.Checked == true)
{
p.Gender = rdoFemale.Name.ToString();
}


p.Gender = rdoFemale.Name;
p.Name = txtName.Text.Trim();


p.Employee = (EmployeeType)cboEmployee.SelectedItem;

p.Skills = chkAdobe.Text;


p.WorkingTime = float.Parse(txtWorkingTime.Text.Trim());
p.HourPrice = int.Parse(txtHourPrice.Text.Trim());


switch (p.Employee)
{
case EmployeeType.FullTitme:
{
p.Salary = p.WorkingTime * p.HourPrice * 1000;
textBoxSalary.Text = p.Salary.ToString();

break;
}

case EmployeeType.PartTime:
{
p.Salary = p.WorkingTime * p.HourPrice * 2000;
textBoxSalary.Text = p.Salary.ToString();

break;
}

default:
{
MessageBox.Show("not valid");
break;
}

}



groupBox1.Enabled = false;
groupBox2.Enabled = false;
}



private void CancelBtn_Click(object sender, EventArgs e)
{
ClearForm();
}

private void txtWorkingTime_KeyDown(object sender, KeyEventArgs e)
{
if (!((e.KeyValue >= 48 & e.KeyValue <= 59) | (e.KeyValue == 190) | (e.KeyCode == Keys.Back) | (e.KeyCode == Keys.OemMinus) | (e.KeyCode == Keys.Return) | (e.KeyCode == Keys.Left) | (e.KeyCode == Keys.OemQuestion & e.KeyCode == Keys.ShiftKey)))// وبک اسپیس و منفی اعداد0تا9 فعال شدند
{

e.SuppressKeyPress = true;
}
}

private void txtHourPrice_KeyDown(object sender, KeyEventArgs e)
{
if (!((e.KeyValue >= 48 & e.KeyValue <= 59) | (e.KeyValue == 190) | (e.KeyCode == Keys.Back) | (e.KeyCode == Keys.OemMinus) | (e.KeyCode == Keys.Return) | (e.KeyCode == Keys.Left) | (e.KeyCode == Keys.OemQuestion & e.KeyCode == Keys.ShiftKey)))// وبک اسپیس و منفی اعداد0تا9 فعال شدند
{

e.SuppressKeyPress = true;
}
}

private void cboEmployee_SelectedIndexChanged(object sender, EventArgs e)
{

}

}
}

M3RS4D 50062
31-12-14, 23:13
upppppppppppppp

ravegoat
01-01-15, 15:20
با سلام!

دوست گرامی، دقیقا" با نوشتن کدوم بخشش مشکل دارید؟ امکان تحلیل تمامی کد های قرار داده شده و تکمیل اون به نحوی که شما درخواست کردید برای بنده مقدور نیست.

M3RS4D 50062
01-01-15, 15:23
با سلام!

دوست گرامی، دقیقا" با نوشتن کدوم بخشش مشکل دارید؟ امکان تحلیل تمامی کد های قرار داده شده و تکمیل اون به نحوی که شما درخواست کردید برای بنده مقدور نیست.



ممنون از توجهتون.
فقط این کد هارو بهم بدید ,ردیفش میکنم.:great:

از کاربر پرسیده شود چند نفر را وارد می نماید بر حسب تعداد نفرات درخواستی اطلاعات افراد را دریافت کنه و مطابق با نوع استخدام آنها حقوقهای آنها را محاسبه کنه و در پایین فرم , به صورت متن یک lable اطلاعات محاسبه شده هر فرد را نمایش بده

ravegoat
01-01-15, 15:44
ممنون از توجهتون.
فقط این کد هارو بهم بدید ,ردیفش میکنم.:great:

از کاربر پرسیده شود چند نفر را وارد می نماید بر حسب تعداد نفرات درخواستی اطلاعات افراد را دریافت کنه و مطابق با نوع استخدام آنها حقوقهای آنها را محاسبه کنه و در پایین فرم , به صورت متن یک lable اطلاعات محاسبه شده هر فرد را نمایش بده
دوست گرامی بنده نمی تونم کل پروژه رو براتون کد نویسی کنم. برای شروع کار می تونید از طریق یک جعبه متنی تعداد کاربران را دریافت کنید و سپس برحسب مقدار وارد شده در اون یک حلقه تشکیل دهید تا به تعداد مقدار وارد شده نام کاربران، ساعت کاری و نوع استخدام آن ها را از طریق inputbox های مجزا دریافت کند. سپس این مقادیر را در سه آرایه مجزا ذخیره کنید. برای محاسبه حقوق شما کافیه ساعت کار رو در دستمزد ساعت برای اون نوع خاص از استخدام ضرب کنید. دستمزد ساعتی برحسب نوع استخدام توسط یک ساختار Switch Case قابل پیاده سازیه. در نهایت با به کارگیری فرمان String.Format و یک حلقه، حقوق محاسبه شده رو در کنار نام کاربر وارد یک برچسب کنید.

در صورتی که روند بالا رو خودتون پیاده کردید و در جاییش به مشکل برخوردید بنده در خدمتم.

موفق باشید
آرمین:give_rose:

M3RS4D 50062
01-01-15, 15:54
دوست گرامی بنده نمی تونم کل پروژه رو براتون کد نویسی کنم. برای شروع کار می تونید از طریق یک جعبه متنی تعداد کاربران را دریافت کنید و سپس برحسب مقدار وارد شده در اون یک حلقه تشکیل دهید تا به تعداد مقدار وارد شده نام کاربران، ساعت کاری و نوع استخدام آن ها را از طریق inputbox های مجزا دریافت کند. سپس این مقادیر را در سه آرایه مجزا ذخیره کنید. برای محاسبه حقوق شما کافیه ساعت کار رو در دستمزد ساعت برای اون نوع خاص از استخدام ضرب کنید. دستمزد ساعتی برحسب نوع استخدام توسط یک ساختار Switch Case قابل پیاده سازیه. در نهایت با به کارگیری فرمان String.Format و یک حلقه، حقوق محاسبه شده رو در کنار نام کاربر وارد یک برچسب کنید.

در صورتی که روند بالا رو خودتون پیاده کردید و در جاییش به مشکل برخوردید بنده در خدمتم.

موفق باشید
آرمین:give_rose:

یه سوال
چرا من گزینه Debug رو ندارم؟
F5 هم میزنم run نمیشه!
Only the registered members can see the link

ravegoat
01-01-15, 16:17
یه سوال
چرا من گزینه Debug رو ندارم؟
F5 هم میزنم run نمیشه!
Only the registered members can see the link
فایل cs به تنهایی قابل کامپایل شدن و اشکال زدایی نیست. شما باید فایل sln یا csproj که تمامی اجزا پروژه ی شما رو شامل میشه در ویژوال استادیو بارگذاری کرده و سپس به اشکال زدایی آن بپردازید.

M3RS4D 50062
01-01-15, 16:31
فایل cs به تنهایی قابل کامپایل شدن و اشکال زدایی نیست. شما باید فایل sln یا csproj که تمامی اجزا پروژه ی شما رو شامل میشه در ویژوال استادیو بارگذاری کرده و سپس به اشکال زدایی آن بپردازید.

ممنون.
خوب الان من تو پوشه فایل ها کدوم فایل رو انتخاب کنم تا کامل بیاد بالا و بتونم کارایی که گفتین رو انجام بدم؟
Only the registered members can see the link

ravegoat
01-01-15, 17:52
ممنون.
خوب الان من تو پوشه فایل ها کدوم فایل رو انتخاب کنم تا کامل بیاد بالا و بتونم کارایی که گفتین رو انجام بدم؟
Only the registered members can see the link
خواهش...
اینجا میشه WindowsFormApplication3.csproj یا WindowsFormApplication3.sln . فرقی نمی کنه...هر کدوم رو باز کنید کل پروژه بارگذاری میشه.

M3RS4D 50062
01-01-15, 18:38
خواهش...
اینجا میشه WindowsFormApplication3.csproj یا WindowsFormApplication3.sln . فرقی نمی کنه...هر کدوم رو باز کنید کل پروژه بارگذاری میشه.

با این مشکل بر میخورم

Only the registered members can see the link

ravegoat
01-01-15, 23:31
فایل Salary.resx رو از مسیر پروژه در درایو D:\ کپی کنید و ببنید مشکل حل میشه؟!

M3RS4D 50062
01-01-15, 23:37
فایل Salary.resx رو از مسیر پروژه در درایو D:\ کپی کنید و ببنید مشکل حل میشه؟!

انجام دادم درست شد.



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

این Textbox کجا قرار بدم؟
Only the registered members can see the link


[آقا آرمین ممنون از اینکه راهنمایی میکنید ,واقعا برام با ارزش هست :give_rose::give_rose::give_rose:]

ravegoat
02-01-15, 08:46
می تونید قبل از بالا اومدن این فرم یک سوال از کاربر بپرسید (توسط یک inputbox یا یک فرم جداگانه) که قصد وارد کردن چند کاربر رو داره و بعد به ازای مقدار وارد شده این فرم طراحی شده رو براش نمایش بدید. یا اینکه بالا مشخصات عمومی در همین فرم تعداد پرسنل رو جویا بشید. باقی روند کار مشابه خواهد بود.

M3RS4D 50062
02-01-15, 09:35
می تونید قبل از بالا اومدن این فرم یک سوال از کاربر بپرسید (توسط یک inputbox یا یک فرم جداگانه) که قصد وارد کردن چند کاربر رو داره و بعد به ازای مقدار وارد شده این فرم طراحی شده رو براش نمایش بدید. یا اینکه بالا مشخصات عمومی در همین فرم تعداد پرسنل رو جویا بشید. باقی روند کار مشابه خواهد بود.

من الان که دوباره ویژوال رو باز کزدم که ادیت کنم فرم رو , فرم دیگه نیومد. چی کار کنم؟

ravegoat
02-01-15, 22:18
من الان که دوباره ویژوال رو باز کزدم که ادیت کنم فرم رو , فرم دیگه نیومد. چی کار کنم؟
اگر به خطایی بر خورد می کنید اینجا درج کنید. در غیر این صورت می تونید از پنجره ی Solution Explorer فرم مورد نظر رو باز کنید.