وب سایت مهندسی نرم افزار

انجمن علمی دانشجویی مهندسی کامپیوتر دانشگاه شهید چمران اهواز


نویسنده: jafar
بازدید: 3438

مثال Structure در زبان c


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

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

Structure ها در زبان c اجازه ی تعریف متغیر های جدیدی را به ما میدهند که خودشون متغیر های دیگر ساخته شده اند.

سینتکس:

struct [structure name] {

   member definition;
   member definition;
   ...
   member definition;
} [Optional - one or more structure variables];  

 

 

مثال: structure ای که نام، معدل و سال ثبت نام در دانشگاه دانشجو را ذخیره کند.

struct Student{
        char name[255];
        double avg;
        int regYear;
} st1, st2, sts[100];

متغیر های st2,st1 و آرایه sts به صورت اختیاری تعریف شدن و میشه در برنامه اون هارو تعریف کرد.

structure هارو میشه هم داخل تابع main و هم خارج از اون تعریف کرد.

 

برای دسترسی به عضو های هر structure از علامت '.' استفاده میکنیم.

چون structure چیزه خاصی نداره فقط یه مثال میزنم خودتون کد رو بررسی کنید، اگه سوالی داشتین تو گوگل سرچ کنید و اگه به نتیجه نرسیدید اینا نظر بزارین.

 

#include<string.h>

struct Student{
        char name[255];
        double avg;
        int regYear;
}   st1,st2,sts[100];


void printStudent(struct Student st){
    printf("\n--------\nName: %s\nAverage: %.2f\nRegster Year: %d",st.name,st.avg,st.regYear);
}


int main(){
    //init
    int i;
    srand(time(NULL));

    strcpy(st1.name,"Ali");
    st1.avg = 13.5;
    st1.regYear = 1394;

    printf("\nName: %s\nAverage: %f\nRegster Year: %d\n",st1.name,st1.avg,st1.regYear); //Print members of st1

    st2 = st1; // st2 is now equal to s2

    printStudent(st2); // Pass structure to function for printing

    for(i=0;i<100;i++){
        strcpy(sts[i].name, "Student" );
        sts[i].avg = 17.1;
        sts[i].regYear = 1394;
    }

    printStudent(sts[srand()%100]); // print random student


    struct Student st3;
    strcpy(st3.name, "Student3" );
    st3.avg = 12.1;
    st3.regYear = 1392;

    printStudent(st3);


    struct Student st4 = {"Student4", 16.8, 1390}; // set default values
    printStudent(st4);


    return 0;
}

خروجی:

Name: Ali
Average: 13.500000
Regster Year: 1394

--------
Name: Ali
Average: 13.50
Regster Year: 1394
--------
Name: Student
Average: 17.10
Regster Year: 1394
--------
Name: Student3
Average: 12.10
Regster Year: 1392
--------
Name: Student4
Average: 16.80
Regster Year: 1390
Process returned 0 (0x0)   execution time : 0.009 s
Press any key to continue.

 

 برای تحقیق بیشتر، راجع به تعریف structure در structure سرچ کنید.

jafar
1393 عضو از سال

درباره نویسنده:


جعفر آخوندعلی در حال حاضر در دوره ی کارشناسی رشته ی نرم افزار مشغول تحصیل در دانشگاه شهید چمران است.
برای تماس با او میتونید از طریق ایمیل jafar.akhondali@yahoo.com اقدام کنید.
برای نظر دادن باید وارد شوید،
عضو نیستید؟ از اینجا در کمتر از 20 ثانیه ثبت نام کنید :)