PDA

View Full Version : مبتدی: این چند خط کد چه کاری انجام میدن؟



veniz2008
سه شنبه 09 خرداد 1391, 12:54 عصر
سلام، من تازه برنامه نویسی ++C رو شروع کردم، چند خط کد دارم بعضی خط هاش رو متوجه نمیشم،لطفا بگید هر خط دقیقا چه کاری میکنه،مفهوم کلیش رو میدونم که کار درج یک دانشجو رو انجام میده ولی مثلا اون پارامتر ورودی insert چی هست(منظور از d چیه؟)، یا مثلا ps[n] چی هست،یا چرا داخل تابع personnel فقط نام ها رو خالی کرده؟،یعنی فامیلی و حقوق رو نباید واسه بار اول خالی کرد؟


struct personn
{
char name[25];
char family[30];
int id;
long int salary;
}ps[n],temp;

public:
personnel()
{
for(int i=0;i<n;i++)
ps[i].name[0]='\0';
}
void insert(int &);
void personnel::insert(int & d)
{
clrscr();
cout<<"Enter Name :";
cin>>ps[d].name;
cout<<"Enter Family :";
cin>>ps[d].family;
cout<<"Enter ID Personnel :";
cin>>ps[d].id;
cout<<"Enter Salary :";
cin>>ps[d].salary;
}
int main()
{
personnel k;
int i,c;
for(;;)
{
k.insert(i);
}

r.khodabakhshi
سه شنبه 09 خرداد 1391, 20:56 عصر
سلام.اینطور که من متوجه شدم ps میاد و مثل یک آرایه عمل میکنه یعنی آرایه ای که توی هر خونش به تنهایی یک struct داری و برای استفاده به این صورت باید با آدرس حافظه بهشون
دسترسی داشته باشی که اینجا d همون آدرس هر خونه از آرایه ps است.

jannatmakan
چهارشنبه 10 خرداد 1391, 17:16 عصر
سلام.
البته فکر می کنم نگارش برنامتون یه مقدار زیادی مشکل داشته باشه. و پیام خطا هم بده.مثلاً کلمه ی کلیدی public که نمی تونه خارج از struct تون تعریف بشه ! و .... . ولی در کل هدف برنامتون مشخّصه . برنامتون این گونه عمل می کنه:

- برنامه ای که اطّلاعات لیستی از کارمندان رو توسّط یک ساختار (Struct) که حاوی اطّلاعات اون ها از قبیل نام و نام خانوادگی و شماره کارمندی و حقوق هست رو دریافت و ذخیره می کنه.
- خوب ابتدا یک struct به نام personn تعریف شده که شامل صفات name و family و id و salary هست. که بهتره کلمه ی کلیدی private رو بالای اون ها اضافه کنید.

- می دونید که وقتی ما یک کلاس و یا یک ساختار درست می کنیم، با دو روش می تونیم از نوع اون ساختار شیئی ایجاد کنیم .
1- در پایانِ ساختار و قبل از علامت ; نام شی مون رو تعریف کنیم.
2- جایی دیگر غیر از پایانِ ساختارمون شی مون رو تعریف کنیم.
که در این کد از روش اوّل استفاده شده و یک شی به نام temp و یک آرایه از شی به طول n (یعنی تعداد n شی از نوع ساختارِ personn ) ایجاد شده. که مقدار n بستگی به این داره که ما بخوایم چند کارمند رو ثبت کنیم. و این رو هم می دونیم که هر شئی که از نوع ساختار تعریف می شه، واسه ی خودش name جداگانه ، family جداگانه و... خلاصه همه چیز مخصوص به خودش رو داره.

- متدها یا همون توابع ساختارتون رو هم در قسمتِ public ساختار مشاهده می کنید. که شامل متد insert و احتمالاً تابع سازنده ی ساختار شماست که حرف اول تمام name هاتون رو خالی کرده که به نظر کاری اضافه میاد. یا به قول شما اگر نام خالی شده پس باید فامیل هم خالی بشه و حقوق هم صفر بشه . متد insert هم کارش گرفتن اطّلاعات از کاربره که داخلش مشخصه که اطلاعات شئی مربوط به خودش رو می گیره. و پارامتر d اون هم یک نوع عددیه که مشخص می کنه چندمین کارمند رو باید اطلاعاتشو درج کنه. و این هم که علامت & رو درکنارش می بینید، علّتش اینه که با روش ارجاع (یعنی با استفاده از آدرس متغیّر) مقداردهی می شه.