View Full Version : سئوال لیست پیوندی
  
oggiii
چهارشنبه 14 تیر 1391, 11:32 صبح
سلام لطفا هرکی مدیونه کمک کنه 
یک لیست پیوندی میخوام که شامل اطلاعات کارمندان از جمله نام و نام خانوادگی _کد پرسنلی و حقوق دریافتی باشد و اگر حقوق بالای 500 هزار تومن بود 10 درصد مالیات بزند و برای تمامی حقوق ها 7 درصد بیمه کسر کند.
hajizadeh.m
چهارشنبه 14 تیر 1391, 11:52 صبح
خب سوالت الان چیه؟!!
لیت پیوندیت باید توی استراکچر خودش این اطلاعات رو نگه داره
oggiii
چهارشنبه 14 تیر 1391, 15:06 عصر
اره ولی من اصن نمی تونم پیاده سازیش کنم ! باید با استفاده از linked list نوشته بشه
 ممنون میشم کمکم کنید :((((((((
hajizadeh.m
چهارشنبه 14 تیر 1391, 17:16 عصر
خب مثلا یه همچین استراکچری میتونه داشته باشه:
struct List{
	string name;
	string famil;
	int code_perseneli;
	double hoghugh;
	double bime;
	double maliat;
	List *next;
};
و زمان اضافه کردن افراد به لیستت باید حساب کنی که مالیات و بیمه شون طبق قانونی که خودت گفتی چقدر باشن
oggiii
چهارشنبه 14 تیر 1391, 18:29 عصر
ممنون از راهنماییت ! من هیچی از سی پلاس پلاس بلد نیستم  برای یادگیری میخوام  و فکر می کنم این میتونه خیلی کمک کنه بهم
ممنون میشم یه مثال بزنید و بگید که چطوری می تونم استفاده کنم ازش
oggiii
پنج شنبه 15 تیر 1391, 11:47 صبح
این کد تویه ویژوال استادیو 2010 نوشته شده اون using namespace std; که میزارم  cout رو مشناسه ولی متغیر های end رو که تعریف کردم ارور میگیره 
 #include <conio.h>
#include<iostream>
#include<ios>
#include <string>
#include <stdio.h>
#include<stdlib.h>
struct link_list {
    char *name;
    char *family;
    int id;
    link_list *next;
}*start=NULL,*end;
link_list *new_node()
{
    link_list *node = new link_list;
    node->next=NULL;
    return node;
}
void add_list(link_list *node)
{
    if (start==NULL)
    {
        start=node;
        start->next=NULL;
        end=start;
    } else {
        end->next=node;
        end=node;
        end->next=NULL;
    }
}
int delete_item(int key)
{
    link_list *node = start;
    if (start->id==key)
    {
        start=start->next;
        return 1;
    }
    while(node->next!=NULL)
    {
        if (node->next->id==key)
        {
            if (node->next==end)
            {
                end=node;
                end->next=NULL;
                return 1;
            }
            node->next=node->next->next;
            return 1;
        }
        node=node->next;
    }
    return 0;
}
void view_list()
{
    link_list *node = start;
    system("cls");
    //clrscr();
    cout<<"\nShow All List:\n\n";
    while(node!=NULL)
    {
        cout<<'\t'<<node->name<<'\t'<<node->family<<'\t'<<node->id<<'\n';
        node=node->next;
    }
    cout<<"\n\nEnter any kay...";
    getch();
}
void main()
{
    link_list *myNode;
    link_list *node=NULL;
    int item=0,ID=0;
    do {
        system("cls");
        cout<<"1- Add to list\n2- Show list\n3- Delete item\n4- Search\n0- Exit\n\nEnter your item: ";
        cin>>item;
        switch(item)
        {
            case 1:
                myNode = new_node();
                cout<<"\n\nEnter Name: ";
                cin>>myNode->name;
                cout<<"Enter Family: ";
                cin>>myNode->family;
                cout<<"Enter ID: ";
                cin>>myNode->id;
                add_list(myNode);
                break;
            case 2:
                view_list();
                break;
            case 3:
                cout<<"\n\nEnter ID: ";
                cin>>ID;
                if (delete_item(ID)==1)
                {
                    cout<<"\nDelete your item";
                    getch();
                } else {
                    cout<<"\nNot found!";
                    getch();
                }
                break;
        }
    }while(item!=0);
}
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.