PDA

View Full Version : به دست آوردن معدل کلاسی هر درس.



jipsi_king
چهارشنبه 18 دی 1387, 21:34 عصر
برنامه اينه که نمره 3 درس 3 تا دانشجو رو ميگيره و اسامی دانشجو ها رو به ترتيب حروف الفبا مرتب ميکنه که تا اينجاش درست کار ميکنه،
ولی معدل گيری هر درس رو بلد نيستم دوستان لطفاً راهنمايی کنيد.ممنون
مثلاً درس ريازی رو بگيد چجور ميشه در آورد


#include<iostream.h>
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
//====================================
const unsigned m=3;
typedef class addr* padr;

//====================================
class addr
{public:
char name[30];
char family[30];
int ryazi;
int electronic;
int programing;
padr p_next;
public:

void setd();};
//=======================================
class llist
{private:
padr s_start,s_old;
public:
padr stor(padr,padr);
void displist(padr);};

//==================================
void addr::setd()
{char ry[10];
char el[10];
char pr[10];
printf("Enter Name: ");cin.getline(name,30);
printf("Enter Family: ");cin.getline(family,30);
printf("Enter ryazi: ");cin.getline(ry,20);
ryazi=atoi(ry);

printf("Enter electronic: ");cin.getline(el,20);electronic=atoi(el);
printf("Enter programing: ");cin.getline(pr,20);programing=atoi(pr);

}
//=====================================
padr llist::stor(padr p_i,padr p_top)
{static padr p_last;
padr p_old,p_begin;
p_begin=p_top;
if(!p_last){p_last=p_i;return p_last;}
p_old=NULL;
while(p_top)

{if(strcmp(p_top -> family,p_i -> family)<0)
{p_old=p_top;p_top=p_top -> p_next;}
else
{if(p_old)
{p_old ->p_next=p_i;
p_i -> p_next=p_top; return p_begin;}
p_i -> p_next =p_top;
return p_i;}
}
p_last -> p_next=p_i;
p_last=p_i;
p_last -> p_next=NULL;
return p_begin;}
//=============================

void llist::displist(padr first)
{s_start=first;
while(s_start)
{cout<<s_start->name<<"\t"<<s_start->family<<"\t"<<s_start->ryazi<<
"\t"<<s_start->electronic<<"\t"<<s_start->programing<<'\n';
s_start=s_start->p_next;}}

//==============================
void main()
{
addr st[m];
llist list1;
padr stp,p_start;
for(int k=0;k<m ;k++)
{
st[k].setd();
stp=&st[k];
stp->p_next=NULL;
if(k==0) p_start=stp;
p_start=list1.stor(stp,p_start);}
list1.displist(p_start);}

obscure
پنج شنبه 19 دی 1387, 09:39 صبح
اولا معدل و نمره هر درس رو باید از نوع float بگیری..نه int..(اعشاری نه عدد صحیح)
بعدشم می تونی یه متغیر float دیگه بگیری و معدل هر درس رو بریزی توش...