PDA

View Full Version : سوال: کمک برای رفع مشکل در سورس برنامه



behxam
پنج شنبه 09 خرداد 1392, 00:08 صبح
سلام دوستان عنوان برنامه نویسیم اینه( برنامه ای بنویسید که اطلاعات 10 دانشجو شامل نام نام خانوادگی و شماره دانشجویی و معدل را دریافت کند.
1-امکان حذف اطلاعات دانشجو
2-امکان نمایش اطلاعات تمامی دانشجویان
3-ویرایش مشخصات دانشجو
سورس برنامرو میذارم (من تو برنامه چند تا ارور میبینم میخوام برام تست کنید و عیباشو بگید بهم ممنون)(عکس خطا هارو هو پیوست کردم)(امروزم باید تحویل بدم به استاد)


#include<stdio.h>
#include<string.h>
struct student
{
int std_no;
char name[21];
char l.name;
float avg;
}std[10];
int td;
void sort()
{
student tmp;
for(int i=0;i<td-1;i++)
for(int j=i+1;j<td;j++)
{
if(strcmp(std[i].name,std[j].name)>0)
{
tmp=std[i];
std[i]=std[j];
std[j]=tmp;
}
else if(strcmp(std[i].name,std[j].name)==0)
{
if(std[i].std_no>std[j].std_no)
{
tmp=std[i];
std[i]=std[j];
std[j]=tmp;
}
}
}
}
void insert(student newstd)
{
std[td].avg=newstd.avg;
std[td].l.name=newstd.l.name;
std[td].std_no=newstd.std_no;
strcpy(std[td].name,newstd.name);
td++;
}
void remove(int stdno)
{
for(int i=0;i<td;i++)
if(std[i].std_no==stdno)
{
for(int j=i+1;j<td;j++)
std[j-1]=std[j];
}
td--;
}
main()
{
student tmp;
int stdno;
for(td=0;scanf("%d%s%d%f",&std[td].std_no,std[td].name,&std[td].l.name,&std[td].avg)!=EOF;td++);
sort();
scanf("%d%s%d%f",&tmp.std_no,tmp.name,&tmp.ent_yea r,&tmp.avg);
insert(tmp);
scanf("%d",&stdno);
remove(stdno);
}

parvizwpf
پنج شنبه 09 خرداد 1392, 00:20 صبح
دو تای اول ارور هستند اولی به زبون بی زبونی میگه یه جایی تو اون خط 56 یه آکولاد کم یا زیاد داری یا چیزی رو درست نبستی.
دومی میگه فیلدی بنام ent_yea توی استراکچر student نداری این اسمو اشتباه نوشتی.
ظاهرا 32 ارور دارید:گیج:

behxam
پنج شنبه 09 خرداد 1392, 00:23 صبح
دو تای اول ارور هستند اولی به زبون بی زبونی میگه یه جایی تو اون خط 56 یه آکولاد کم یا زیاد داری یا چیزی رو درست نبستی.
دومی میگه فیلدی بنام ent_yea توی استراکچر student نداری این اسمو اشتباه نوشتی.
ظاهرا 32 ارور دارید:گیج:
میشه بیشتر کمک کنی بهم اینو باید مشکلاشو رفع کنم فردا تحویل بدم

parvizwpf
پنج شنبه 09 خرداد 1392, 00:31 صبح
تو چی نوشتی آیا visual studio؟ کد رو بزار

behxam
پنج شنبه 09 خرداد 1392, 00:34 صبح
دو تای اول ارور هستند اولی به زبون بی زبونی میگه یه جایی تو اون خط 56 یه آکولاد کم یا زیاد داری یا چیزی رو درست نبستی.
دومی میگه فیلدی بنام ent_yea توی استراکچر student نداری این اسمو اشتباه نوشتی.
ظاهرا 32 ارور دارید:گیج:


تو چی نوشتی آیا visual studio؟ کد رو بزار

کد که همون بالا هستش

parvizwpf
پنج شنبه 09 خرداد 1392, 00:54 صبح
تمام متغیرهای std رو به studتغییر بده.
بعد اون بالا که نوشتی std[10]
بجاش بنویس

student stud[10]

parvizwpf
پنج شنبه 09 خرداد 1392, 01:12 صبح
#include<stdio.h>
#include<string.h>
#include "stdafx.h"
#include <iostream>
#include <cstring>
using namespace std;
struct student
{
int std_no;
char name[21];
char lname;
float avg;
};
student stud[10];
int td;
void sort()
{
student tmp;
for(int i=0;i<td-1;i++)
for(int j=i+1;j<td;j++)
{
if(strcmp(stud[i].name,stud[j].name)>0)
{
tmp=stud[i];
stud[i]=stud[j];
stud[j]=tmp;
}
else if(strcmp(stud[i].name,stud[j].name)==0)
{
if(stud[i].std_no>stud[j].std_no)
{
tmp=stud[i];
stud[i]=stud[j];
stud[j]=tmp;
}
}
}
}
void insert(student newstd)
{
stud[td].avg=newstd.avg;
stud[td].lname=newstd.lname;
stud[td].std_no=newstd.std_no;
strcpy(stud[td].name,newstd.name);
td++;
}
void remove(int stdno)
{
for(int i=0;i<td;i++)
if(stud[i].std_no==stdno)
{
for(int j=i+1;j<td;j++)
stud[j-1]=stud[j];
}
td--;
}
int _tmain(int argc, _TCHAR* argv[])
{
student tmp;
int stdno;
for(td=0;scanf("%d%s%d%f",&stud[td].std_no,stud[td].name,&stud[td].lname,&stud[td].avg)!=EOF;td++);
sort();
scanf("%d%s%d%f",&tmp.std_no,tmp.name,&tmp.lname,&tmp.avg);
insert(tmp);
scanf("%d",&stdno);
remove(stdno);
}

behxam
پنج شنبه 09 خرداد 1392, 01:19 صبح
الان داره این ارور رو که پیوست کردمو میده بهم(با C free نوشتم )
http://upload.tehran98.com/img1/f805yvel25zlb79qlmy.png

parvizwpf
پنج شنبه 09 خرداد 1392, 01:33 صبح
تابع main رو بدون خروجی همون حالت اول تعریف کن فقط خط مین رو. یعنی مین خالی

behxam
پنج شنبه 09 خرداد 1392, 01:39 صبح
یه خطا دیگه مونده:لبخند:
اینه
http://upload.tehran98.com/img1/j5n6145xik0rndft2oi6.png

parvizwpf
پنج شنبه 09 خرداد 1392, 01:41 صبح
کد stdafx رو که تو اون بالی تو include ها نوشته حذف کن.

behxam
پنج شنبه 09 خرداد 1392, 01:45 صبح
من اینو تو cfree neveshtam
بازم اررور داد فک کنم نمیتونه بازش کنه
http://upload.tehran98.com/img1/ydv7xe7zjhwc9i891d8.jpg

parvizwpf
پنج شنبه 09 خرداد 1392, 01:51 صبح
نوع نوشتن main توی مححیطی که شما کار میکنید با ویژوال استودیو فرق میکنه بهتر اینو بفهمید که چطور تابع مین رو تعریف کنید. من نمیدونم به چه صورته.بهتر سمپل های محیطتون رو بررسی کنید که چطور مینویسه.

behxam
پنج شنبه 09 خرداد 1392, 02:00 صبح
من میخوام این برنامه به زبان C باشه
یعنی بعضی از این تابع هارو نمیشناسه
من میخوام اینو به زبان C تبدیل کنم چیکار کنم؟؟؟؟:افسرده:

parvizwpf
پنج شنبه 09 خرداد 1392, 02:11 صبح
الانم همینه دیگه مگه چیه. اصلا بگو ببینم پروژه چه درسیه. اصلا تو ویندوز میخواد یا تو محیط کامند؟ شما تابعی ننوشتی که کامپایلر سی اونو نشناسه. همه کامپایلرها اونو میشناسن فقط باید ببینی توی محیطی که کار میکنی چطور تابع مین رو بنویسی . دفعه اول که کد رو گذاشتی تابع مینت هیچ خروجی نداره یعنی نوشتی اینجوری :

main()
{
....
}

behxam
پنج شنبه 09 خرداد 1392, 02:17 صبح
الانم همینه دیگه مگه چیه. اصلا بگو ببینم پروژه چه درسیه. اصلا تو ویندوز میخواد یا تو محیط کامند؟ شما تابعی ننوشتی که کامپایلر سی اونو نشناسه. همه کامپایلرها اونو میشناسن فقط باید ببینی توی محیطی که کار میکنی چطور تابع مین رو بنویسی . دفعه اول که کد رو گذاشتی تابع مینت هیچ خروجی نداره یعنی نوشتی اینجوری :

main
{
....
}


برای درس برنامه سازی پیشرفته
تو کامند میخواد یعنی همون جواب اخر تو C free
:افسرده:

parvizwpf
پنج شنبه 09 خرداد 1392, 02:25 صبح
اگه سری به این سایت بزنی سایت برنامه شماست:
http://programarts.com/cfree_en/index.htm
که این عکسو میبینی ببین چطور مین رو نوشته چون ارور شما هم برای مین بود:
http://programarts.com/images/cf5/SmartInput.png

behxam
پنج شنبه 09 خرداد 1392, 02:33 صبح
من میفهمم چی میگه ولی نمیدونم باید چیکار کنم:ناراحت:
شما چیزی میدونی ازش؟

parvizwpf
پنج شنبه 09 خرداد 1392, 02:38 صبح
ببین تو باید اون تابع مین رو مثل اون عکس تعریف کنی یعنی اون خطی که نوشتی main بجاش اون طوری که تو عکس گفته بنویس. ببینم امشب میتونی مارو سکته بدی یا نه.
یعنی بنویسی :

int main(int argc, char *argv[])

بعد آخر بلاک مین هم مثلا بنویسی return 0; تا مثلا صفر برگردونه

parvizwpf
پنج شنبه 09 خرداد 1392, 02:47 صبح
مثه اینکه تا اینو امشب درست نکنی خواب نداری:
ان طوری بنویس اون قسمت مین رو :

int main(int argc, char *argv[]) {
student tmp;
int stdno;
for(td=0;scanf("%d%s%d%f",&stud[td].std_no,stud[td].name,&stud[td].lname,&stud[td].avg)!=EOF;td++);
sort();
scanf("%d%s%d%f",&tmp.std_no,tmp.name,&tmp.lname,& tmp.avg);
insert(tmp);
scanf("%d",&stdno);
remove(stdno);
return 0;

}

behxam
پنج شنبه 09 خرداد 1392, 02:47 صبح
من کوچیکتم بابا سکته چیه دیگه:لبخند::قلب:
الان اجرا میشه ولی هیچ عکس العملی نشون نمیده واسه چیزی که میدم(عکسشو میذارم)http://upload.tehran98.com/img1/i36bqqudz66zjmgmcjv.jpg

یه ارور هم داره
http://upload.tehran98.com/img1/kaazlkiv22zfmf3nnvke.jpg

parvizwpf
پنج شنبه 09 خرداد 1392, 02:51 صبح
ببین شاید خندت بگیره هیچی سر در نمیارم چی نوشتی همش پای خودت اصلا من نمیدونم این کد باید چی کار کنه من فقط مشکل سینتکس رو تا جایی که تونستم برطرف کردم اینکه جواب میده یا نه تو رو خدا منو ببخش دیگه باید بریم بچرتیم.

behxam
پنج شنبه 09 خرداد 1392, 02:55 صبح
باشه داش مرسی شبت خوش شرمنده اذیتت کردم