PDA

View Full Version : لطفا کمک کنید ( خواهش می کنم ) فوری



nasrin2007
یک شنبه 13 خرداد 1386, 14:23 عصر
سلام
من یه مشکل دارم
(خیلی هم عجله دارم) خواهش می کنم کمک کنید:بوس:
من یه پروژه دانشجویی دارم به زبان سی
خودم نوشتم اما یه مشکل دارم:افسرده:

شرح برنامه :
برنامه ایی بنویسید که کد دانشجو - نام - نام خانوادگی - تاریخ تولد - دانشجو را دریافت کند و به صورت صعودی ردیف کند

خودم تا اینجا نوشتم که کد دانشجو رو بگیره و به صورت صعودی نمایش بده اما نمی دونم چطور نام و ... رو همراه با کد بگیره




#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXLINES 1000
int get_lines(char *SID[]);
void sort(char *p[],int n);
void print_string(char *p[],int n);
char *SID[MAXLINES];
char *FName[MAXLINES];
main()
{
int number_of_lines;
number_of_lines = get_lines(SID);
if (number_of_lines < 0)
{
puts("Memory allocation error");
exit(-1);
}

sort(SID,number_of_lines);
print_string(SID,number_of_lines);
return (0);
}
int get_lines(char *lines[])
{
int n=0;
char buffer[250];
puts("enter on line at time;enter a blank when done.\n");
printf("ID:");
while ((n< MAXLINES) && (gets(buffer)!=0) && (buffer[0] != '\0'))
{
if ((SID[n]=(char *) malloc(strlen(buffer)+1)) == NULL)
return -1;{
printf("ID:");
strcpy(SID[n++],buffer);
}
}
printf("\n------------------\n");
return n;
}

void sort(char *p[],int n)
{
int a,b;
char *x;
for (a = 1; a < n ; a++)
{
for (b = 0 ; b < n-1 ; b++)
{
if (strcmp(p[b],p[b+1]) > 0)
{
x= p[b];
p[b]=p[b+1];
p[b+1]=x;
}
}
}
}

void print_string(char *p[],int n)
{
int count;
for (count = 0 ; count < n ; count ++){
printf("\n%s",p[count]);
}
printf("\n\n");
}




خواهش می کنم کمک کنید
از کمک شما متشکرم:بوس:

emad_67
یک شنبه 13 خرداد 1386, 20:21 عصر
برای اینکه همه این موارد رو که گفتی از ورودی بگیری بهتره از کلاس یا struct استفاده کنی

nasrin2007
یک شنبه 13 خرداد 1386, 20:56 عصر
آقایی خیلی ممنون که راهنمایی کردین . اگه میشه کد رو اون شکلی که میگین تغییر بدین
آخه من دانشجوی ترم 2 هستم (همین قدر بلد بودم .همین کد رو هم 2 هفته کار کردم) چون وقت زیاد ندارم (خواهش می کنم یکی کد منو اصلاح کنه ) ممنون میشم:قلب:

emad_67
یک شنبه 13 خرداد 1386, 22:05 عصر
منم والا ترم 2 هستم
میتئنی داخل برنامت یه struct به این شکل تعریف کنی


struct student
{
char fname[10],lname[10];
int id,year;
};

من تو فقط برای سال تولد رو در نظر گرفتم خودت میتونی ماه و روز رو هم اگه خواستی اضافه کنی
توی main هم باید ایجوری بنویسی


void main()
{
student st;
cout<<"enter your first name:";
cin>>st.fname;
....
}

در واقع struct نوع داده تعریف شده توسط کاربر هستش و st هم یک متغییر از نوع داده student هست که آرگمان های تعریف شده در student را در بر میگیره ولی چون شما می خوای که sort انجام بدی بهتره که یک آرایه از نوع student تعریف کنی و مقادیر رو تو یه حلقه for وارد آرایه کنی بعد آرایه رو به تابعی برای sort بفرستی

nasrin2007
یک شنبه 13 خرداد 1386, 22:10 عصر
آقا جون دمت گرم (:قلب: ) خیلی کمک کردی
من رفتم فکر کردم یکم برنامه رو عوض کردم
اما ارور می ده :عصبانی++: (خدا بگم استادمون رو چیکار کنه :ناراحت: )
این سورس رو ببین




#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct entry{
char id[10];
char fname[20];
char lname[20];
char shsh[15];
char bdDate[10];
};
int i,n,j;
char t;
int a,b;
char x[10];
struct entry list[100000];
main(){

printf("Enter the total:");
scanf("%d",&n);
for (i=0;i<n;i++)
{
printf("\nEnter ID:");
scanf("%s",list[i].id);
printf("\nEnter First name:");
scanf("%s",list[i].fname);
printf("\nEnter Last name:");
scanf("%s",list[i].lname);
printf("\nEnter ShSh:");
scanf("%s",list[i].shsh);
printf("\nEnter Birthday Date:");
scanf("%s",list[i].bdDate);
}
printf("\n\n");
printf("----------------\n");
//===============
for (a = 1; a < n ; a++)
{
for (b = 0 ; b < n-1 ; b++)
{
if (strcmp(list[b].id,list[b+1].id) > 0)
{
x= list[b].id;
list[b].id=list[b+1].id;
list[b+1].id=x;
}
}
}
//===============
for (i=0;i<n;i++)
{
printf("\n%s %s %s %s %s",list[i].id,list[i].fname,list[i].lname,list[i].shsh,list[i].bdDate);
}
printf("\n\n");
return 0;
}



اگه کمک کنی هرگز این لطفتون رو فراموش نمی کنم
اگه میشه کد رو که تغییر میدین کد کامل رو بزارین (گیج شدم):اشتباه:

kiani.mehdi
یک شنبه 13 خرداد 1386, 22:32 عصر
خیلی سخت نیست
یکمی روش فکر می کردین فکر کنم خودتون می نوشتین
به هر حال من نوشتم براتون
البته با C++
می تونی راحت به C تبدیلش کنی
مثلا به جای cout ها از printf استفاده کنی
میتونی هم نکنی (البته اگه گفتن با c باید این کار را بکنید چون cout جزء دستورات C++ به حساب میاد )

توضیحات
برنامه ابتدا از کاربر تعداد دانشجویان را میگیره
بعد یه ارایه به صورت داینامیک از استراکچر ی به نام student تولید میکنه به تعدای که کاربر وارد کرده
بعد به ترتیب اطلاعات هر کاربر را میگیره
و بعد هم توسط تابعی به نام sort اونا را بر حسب کد دانشجویی مرتب می کنه
و بعد هم توسط تابعی به نام print اونا را به ترتیب چاپ می کنه

البته خودت میتونی sort هایی هم برحسب نام و .... بذاری

اگه جایی مشکل داشتی بگو




#include<iostream.H>
#include<conio.h>

struct student
{

int id;
char *firstName;
char *lastname;
char *birthDay;


};

void sort(int lenght,student a[]);
void print(int lenght,student a[]);

int main()
{
clrscr();
int count,i;

cout<<"enter the count of student"<<endl;
cin>>count;
student *arrayOfStd =new student[count];
for(i=0;i<count;i++)
{
clrscr();
cout<<"student ( "<<i+1<<" )"<<endl<<endl;
cout<<"enter the student Number"<<endl;
cin>>arrayOfStd[i].id;
cout<<"enter the student firstname"<<endl;
cin>>arrayOfStd[i].firstName;
cout<<"enter the student lastname"<<endl;
cin>>arrayOfStd[i].lastname;
cout<<"enter the student birthday eith this format (yyy/mm/dd)"<<endl;
cin>>arrayOfStd[i].birthDay;





}
clrscr();

sort(count,arrayOfStd);
print(count,arrayOfStd);

getch();


return 0;
}



void sort(int lenght,student a[])
{
int count =lenght;
int i,j =0;
int temp;

for(i=0;i<count-1;i++)
for(j=i+1;j<count;j++)
if(a[j].id <a[i].id)
{

temp =a[j].id;
a[j].id=a[i].id;
a[i].id=temp;


}



}


void print(int lenght,student a[])
{
int i,j;
for(i=0;i<lenght;i++)
{
cout<<"student ( "<<i+1<<" )"<<endl<<endl;
cout<<"student Number is : "<<a[i].id<<endl;
cout<<"student firstname is : "<<a[i].firstName<<endl;
cout<<"student lastname is : "<<a[i].lastname<<endl;
cout<<"student birthday is : "<<a[i].birthDay<<endl<<endl<<endl;


}


}


موفق باشید
مهدی کیانی

wonder_man
یک شنبه 13 خرداد 1386, 23:00 عصر
من یه سورس کد دفترچه تلفن رو برات می زارم و تو میتونی از اون الگو بگیری

#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <STDLIB.h>
#include <iomanip.h>
#include<string.h>
//struct tell---------------------
struct tell {
char name[15];
char family[30];
char cod[8];
char number[15];
char adres[200];
}; tell et;
FILE *esh;
//->get name-----1------------------
void name()
{ clrscr();
esh= fopen ("\\prg.txt","at (file://\\prg.txt)");
char w;
clrscr();
textbackground(1);
clrscr();
window(1,1,80,25);
textbackground(0);
gotoxy(38,2);
cprintf(" ");
gotoxy(38,4);
cprintf(" ");
gotoxy(38,6);
cprintf(" ");
gotoxy(38,8);
cprintf(" ");
gotoxy(38,10);
cprintf(" ");
while(w!='b')
{
// clrscr();
textbackground(1);
gotoxy(4,2);
cout<<" ¢‏÷î ¢¤گّ گ¤ ی‌ّî ô‘÷ :";
gotoxy(38,2);
cin>>et.name;
//----------------
gotoxy(4,4);
cout<<" ¢‏÷î ¢¤گّ گ¤ üً¢گّ÷‘، ô‘÷ : ";
gotoxy(38,4);
cin>>et.family;
//---------------
gotoxy(4,6);
cout<<" ¢‏÷î ¢¤گّ گ¤ ¤ْھ ¢‹î ù¤‘ُھ : ";
gotoxy(38,6);
cin>>et.cod;
gotoxy(4,8);
cout<<" ¢‏÷î ¢¤گّ گ¤ «،ھ ِêَ— ù¤‘ُھ : ";
gotoxy(38,8);
cin >>et.number;
gotoxy(4,10);
cout<<" ¢‏÷î ¢¤گّ گ¤ ¤¬—،ُ §¤¢گ : ";
gotoxy(38,10);
cin>>et.adres;
cout<<"\n\n\n\n\n ¢‏û¢ ¤‘ھê گ¤ (b)
¢‏َî –ھً¥‘“ üگ¤“ ّ (c) ¢‏َî ùُگ¢گ üگ¤“";
gotoxy(14,16);
cin>> w;
fprintf(esh,"\n%s %s %s %s %s\n
",et.name,et.family,et.cod,et.number,et.adres);
}
fclose(esh);
}
//->search name--2-------------
int sename()
{
clrscr();
textbackground(0);
textcolor(15);
clrscr();
window(1,1,80,25);
textbackground(04);
esh=fopen("\\prg.txt","rt (file://\\prg.txt)");
cprintf("
");
cprintf(" ¢‏÷î ¢¤گّ گ¤ ù¢÷ّھ ّ›—¨›
ô‘÷ ‘›÷‏گ¤¢ ");
cprintf("
");
char esm[15];
cprintf("\n "),
gotoxy(1,5);
scanf("%s",esm);
while(!feof(esh))
{
fscanf(esh,"%s %s %s %s %s
",et.name,et.family,et.cod,et.number,et.adres); //dar inja
bad az akharani %s ye fasele dadam ke ehtemalan hami baes shod
ghaziyeye dota neshan dadane akharin yafte dorostshavad.
if (strcmp(et.name,esm)==0)
printf("\n-------------------------------\nù¢ھ –ê‘‏ ¢¤ُّ \n
%s %s\n ِêَ— ù¤‘ُھ: %s %s\n §¤¢گ : %s",
et.name,et.family,et.cod,et.number,et.adres);
}
fclose(esh);
getch();
return 0;
}
//->yad dasht----3-------------
void yad()
{
textbackground(0);
clrscr();
window(1,1,80,25);
textbackground(6);
cprintf("
");
cprintf(" ¢‏÷î ¢¤گّ ’‏—¤— ù“ گ¤ ¢¤ّ، –ھگ¢¢‘‏ ّ ‏¤‘—
");
cprintf("
");
cprintf(" (( ¢‏÷‘¨¤“ ِ‘‏‘• ù“ گ¤ ¢ّ، ِ—ُ ¤—÷‏گ ¢‏َî ِ¢¤ھê ‘“ ِ—ُ ِ—ھّ÷ ¥گ ¢م“ ))
");
gotoxy(35,6);
cprintf("13 ");
char tar[9],not[160];
gotoxy(37,6);
scanf("%s",tar);
FILE *m;
m=fopen("\\noting.txt","at (file://\\noting.txt)");
scanf("%s",not);
fprintf(m,"%s %s\n\n",tar,not);
fclose(m);
}
//->search yaddasht---4-------
int seyad()
{
textbackground(0);
textcolor(15);
clrscr();
window(1,1,80,25);
textbackground(5);
cprintf("
");
cprintf(" ¢‏÷î ¢¤گّ گ¤ ِگ ‏¤‘— –ھگ¢¢‘‏ üّ›—¨› üگ¤“
");
cprintf("
");
FILE *m;
m=fopen("\\noting.txt","rt (file://\\noting.txt)");
char tar[15],var[15],kar[160];
gotoxy(35,6);
cprintf("13 ");
gotoxy(37,6);
scanf("%s",tar);
while(feof(m)==0)
{
fscanf(m," %s %s ",var,kar);
if(strcmp(tar,var)==0)
printf("______________________________________________"),
printf(" ù¢ھ –ê‘‏¢¤ُّ\n ‏¤‘—: %s\n ِ—ُ: %s\n",var,kar);
}
getch();
fclose(m);
return 0;
}
//->main----------------------
void main()
{
short int n=0;
while(n!=5)
{
textbackground(0);
textcolor(15);
clrscr();
window(1,1,80,25);
textbackground(01);
cprintf("
");
cprintf(" üî‏÷ّ¤—îَگ ù‌¤—ê¢
");
cprintf("
");
cout<<" ِ‘‏ّ‏¢ ٌ‏ىن ¢÷ّ¤‏‘“ ¢ُںُ ";
cout<<"\n---------------------------------------------------
-----------------------------";
cout<<"\n";
cout<<"\n";
cout<<"\n";
cout<<"\n";
cout<<" ِêَ— ّ ü¢¤ê –‘ن‘َ¯گ ِ¢¤î
¢¤گّ .1\n ô‘÷ §‘¨
گ¤“ ّ›—¨› .2\n ‏¤‘— ‘“ ی‌ّî ü‘ْ—ھگ¢
¢‘‏ ù¤‏،£ .3\n ‏¤‘— §‘¨گ ¤“ –
ھگ¢¢‘‏ üّ›—¨› .4\n
ڑّ¤، .5\n";
cout<<"\n\n\n ¢‏÷î ¢¤گّ گ¤ ¤à÷ ¢¤ُّ ù¤‘ُھ ";
gotoxy(14,18);
cin >>n;
switch (n)
{
case 1:
name();
break;
case 2:
sename();
break;
case 3:
yad();
break;
case 4:
seyad();
break;
case 5:
break;
default:
gotoxy(22,23);
cprintf ("==> –¨گ ù‘“—ھگ ù¢¤گّ ù¤‘ُھ <==\a");
getch();
break;
}
}
clrscr();
textbackground(0);
clrscr();
gotoxy(12,13);


cout<<"\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~";
getch();
exit(0);
}

wonder_man
یک شنبه 13 خرداد 1386, 23:04 عصر
االبته برای خودن پغامهای نمایش داده شده باید یه فارسی ساز نصب کنید ویا اینکه اگه خیلی عجله داری کد برام بفرست تا ردیف کنم . به این آدرس:
wonder_man59@yahoo.com

kiani.mehdi
یک شنبه 13 خرداد 1386, 23:31 عصر
خیلی خوبه که خودتون تونستید تا حدی بنویسید
میتونید برنامتون را با برنامه من مقایسه کنید تا اشکالاتتون را متوجه بشید
مثلا اولین اشکالتون اینه که برای id نباید از کاراکتر استفاده کنید
چون توی بخش مرتب سازی میخواین این مقادیر را با هم مقایسه کنید تابع strcmp مقدار نادرست بر میگردنه
مثلا به کد زیر دقت کن
می تونی اجراش کنی



#include<iostream.h>
#include<conio.h>
#include<string.h>
int main()
{

clrscr();
char a[10]="100";
char b[10]="20";
if(strcmp(a,b)>0)
cout<<"g"<<endl;
else
cout<<"l"<<endl;

getch();
return 0;
}



اگه برناکه فوق را اجرا کنی میبینی که خروجی همیشه L هست به معنای Less یعنی کوچکتر در صورتی که کفدار A برابر با 100 و مقدار b برابر با 20 است
پس a بزرگتر از b هست و باید g چاپ بشه

این یک قاعده کلی هست که هر جا میخوای از متغیری استفاده کنی که میخوای اونا را تو برنا مه های محاسباتی به کار ببری یعنی اعمال جمع و ضرب و کوچکتر و یزرگتر و غیره را بکار ببری حتما متغیرت از نوع عدد باشه

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

بقیه اشکالاتت را هم میتونی با مقایسه کد من متوجه بش

موفق باشی
مهدی کیانی

kiani.mehdi
یک شنبه 13 خرداد 1386, 23:41 عصر
این هم فایل اصلی برنامه

farzaneh_k
یک شنبه 27 خرداد 1386, 22:35 عصر
سلام من همین برنامه رو با کار با فایل ها می خوام با تشکر

janelnaz
دوشنبه 28 خرداد 1386, 20:12 عصر
سلام من همین برنامه رو با کار با فایل ها می خوام با تشکر
سلام من یک برنامه میخواهم به زبان سی که ابتدامنوی زیر نمایش داده شود
1ورود اطلاعات(درس _دانشجو)2ثبت نام3چاپ4خروج
اطلاعات دانشجو شامل(نام_نام خانوادگی_شمارهدانشجویی_ادر س)
اطلاعات درسی شامل(نام درس _شمارهدرس_نوع درس _ تعدادواحددرس)
ثبت نام شامل (شماره درس _سال _ترم_نمره _شماره دانشجویی)
چاپ(هر دانشجو چه درسی راگرفته)

janelnaz
دوشنبه 28 خرداد 1386, 20:20 عصر
سلام من یک برنامه میخواهم به زبان سی که ابتدامنوی زیر نمایش داده شود
1ورود اطلاعات(درس _دانشجو)2ثبت نام3چاپ4خروج
اطلاعات دانشجو شامل(نام_نام خانوادگی_شماره دانشجویی_آدرس)
اطلاعات درسی شامل(نام درس _شمارهدرس_نوع درس _ تعدادواحددرس)
ثبت نام شامل (شماره درس _سال _ترم_نمره _شماره دانشجویی)
چاپ(هر دانشجو چه درسی راگرفته

janelnaz
دوشنبه 28 خرداد 1386, 20:24 عصر
سلام من یک برنامه میخواهم به زبان سی که ابتدامنوی زیر نمایش داده شود
1ورود اطلاعات(درس _دانشجو)2ثبت نام3چاپ4خروج
اطلاعات دانشجو شامل(نام_نام خانوادگی_شماره دانشجویی_آدرس)
اطلاعات درسی شامل(نام درس _شمارهدرس_نوع درس _ تعدادواحددرس)
ثبت نام شامل (شماره درس _سال _ترم_نمره _شماره دانشجویی)
چاپ(هر دانشجو چه درسی راگرفته

janelnaz
دوشنبه 28 خرداد 1386, 22:24 عصر
با سلام من یه برنامه به زبان سی میخوام که شامل منوهای زیر باشد

1)ورود اطلاعات 2)ثبت نام 3)چاپ 4)خروج
ورود اطلاعات شامل {دانشجو(نام _نامخانوادگی_شماره دانشجویی_آدرس)_
درس(نام درس_شماره درس_واحددرس_نوع درس)}
ثبت نام شامل(شماره درس _سال_ترم_نمره_شماره دانشجویی)
چاپ(چه دانشجویی چه درسی راگرفته)



از لطف شما متشکرم

someCoder
دوشنبه 28 خرداد 1386, 23:21 عصر
کمک کنید در راه خدااینجا کجاست من اومدم؟! همون فروم برنامه نویسه؟!

american_iran2006
دوشنبه 28 خرداد 1386, 23:53 عصر
سلام ::: شما ها که میگید ترم 2 هستید فکر نمیکنید این سوال ها یکم ضایست!!!!

ببینید مشکل شما در کد نوشتن نیست :: شما باید الگوریتم نویسی یکم تمرین کنید این جوری بهتره


سورس هایی که دوستان میزارن چیزه عجیبی نیست :: فقط به خودشون این زحمته تمرین کردنو میدن ونمیان بگن این سورسو بزار بد خودشون برن سر وقته کارهایه دیگشون

این سایت قبلنا برای رفع ایراد به بچه ها کمک میکرد :: اما امروز به حل تمرین !! چه جلب:چشمک: