PDA

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);
}