ITK35Zone
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.
ITK35Zone


 
Trang ChínhTrang Chính  Latest imagesLatest images  Đăng kýĐăng ký  Đăng Nhập  
Chào mừng các bạn đã đến với diễn đàn ITK35Zone - Lớp CNTT K35 Trường Đại học Sư phạm TP.HCM
Hiện diễn đàn đang bị lỗi kĩ thuật, mong mọi người thông cảm. BQT sẽ cố gắng khắc phục trong thời gian sớm nhất...

Share | 


 

 [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Chuyển đến trang : Previous  1, 2
[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 EmptySat May 29, 2010 11:27 pm

Userqphuong07 Người này hiện đang:
Level: IT Pro
Danh vọng:677


IT Pro

qphuong07

IT Pro

Join : 06/11/2009
Bài gửi : 677

Thú cưng
.:

Bài gửiTiêu đề: Re: [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010

 
1 ý tưởng mới cho những bạn ko thích sài con trỏ!!!
kết nhất là cái bảng!!!hehe
thanhks leo!!!



[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 EmptySun May 30, 2010 12:40 am

UserRegulus™ Người này hiện đang:
Level: Tổng điều hành
Danh vọng:758


Tổng điều hành

Regulus™

Tổng điều hành

http://itk35.tk
Join : 06/11/2009
Bài gửi : 758

Thú cưng
.:

Bài gửiTiêu đề: Re: [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010

 
thông báo: bị sai phần điểm ..
khi swap thì điểm chạy lung tung.. ko đúng nữa... bà kon sửa tiếp đí :d



[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 EmptySun May 30, 2010 8:57 am

Userkim_o Người này hiện đang:
Level: Thành Viên Xây Dựng
Danh vọng:148


Thành Viên Xây Dựng

kim_o

Thành Viên Xây Dựng

Join : 12/11/2009
Bài gửi : 148

Bài gửiTiêu đề: Re: [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010

 
cho hỏi: while (*(sv.hoten+i)) //xoa khoang trang thua
if (*(sv.hoten+i)==32&&*(sv.hoten+i+1)==32)
strcpy(sv.hoten+i,sv.hoten+i+1);
else i++;
va một số câu ì, Hình như sau While và Ì là một (bool sta.) sao ko thấy đau hết vậy??? Giải thích giùm cách chạy này,THx nghe



[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 EmptySun May 30, 2010 10:29 am

Usersuperkid Người này hiện đang:
Level: IT Pro
Danh vọng:500


IT Pro

superkid

IT Pro

Join : 06/11/2009
Bài gửi : 500

Thú cưng
.:

Bài gửiTiêu đề: Re: [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010

 
[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 92788mẹ ơi đúng là quỷ đỡ...cái thằng leo này kinh thật pà kon há.à choi tui hỏi chút xíu.tui thì dở về viết mấy cái code nhưng tui xin góp ý cái này xíu.tui tính làm cái phần xóa khoảng trắng và viết hoa chữ cái đầu tiên như sau.mình nhập tên váo 1 mảng.sau đó cho nó chạy từng ô trong mảng.nếu thấy ở đâu kí tự có mã ASCII bằng mã của phím spacebar thì mình delete nó.và cho hàm viết hoa chữ cái ở ô tiếp theo.theo mọi người đây có phải là cách làm tối ưu chưa?
thêm nữa là bài của ông leo sao tui copy về máy cho chạy thì nó báo là 5 lỗi.ông nói là nói chạy dc trên VC6 mà máy tui chạy VC6 nè.sao lỗi dữ thế?
------------------------------------------------------------------------
ông kiểm tra lại xem do code hay do máy dùm tui nhé.hix!



[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 EmptySun May 30, 2010 11:19 am

Userqphuong07 Người này hiện đang:
Level: IT Pro
Danh vọng:677


IT Pro

qphuong07

IT Pro

Join : 06/11/2009
Bài gửi : 677

Thú cưng
.:

Bài gửiTiêu đề: Re: [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010

 
kim_o đã viết:
Trích dẫn :
cho hỏi: while (*(sv.hoten+i)) //xoa khoang trang thua
if (*(sv.hoten+i)==32&&*(sv.hoten+i+1)==32)
strcpy(sv.hoten+i,sv.hoten+i+1);
else i++;
va một số câu if, Hình như sau While và If là một (bool sta.) sao ko thấy đau hết vậy??? Giải thích giùm cách chạy này,THx nghe
cái phần điều kiện ở câu lệnh while là *(sv.hoten+i) nghĩa là phấn tử thứ i khác rỗng còn trong câu if thì *(sv.hoten+i)==32&&(sv.hotten+i+1)==32 là câu điều kiện có nghĩa là hai phần tử thứ i và i+1 đều bằng khoảng cách (mã ASCII của khoảng cách là 32)
cách chạy thì khi mà phần tử thứ i khác rỗng thì kiểm tra tiếp phần tử thứ i có là khoảng cách ko nếu đúng thì kiểm tra tiếp phần thứ i+1 nếu là khoảng trắng thì copy phần tử thứ i+1 vào phần tử thứ i nghĩa là xóa bớt phần tử thứ i+1 còn không thì tăng i lên chỉ dậy thui!!!

rex đã viết:
Trích dẫn :
thông báo: bị sai phần điểm ..
khi swap thì điểm chạy lung tung.. ko đúng nữa... bà kon sửa tiếp đí :d
cái câu lệnh của ông nó bị sai rùi
Code:
if (sv[i].Diem > sv[j].Diem)
                swap(sv[i] , sv[j]);
phải là
Code:
if (sv[i].Diem < sv[j].Diem)
                swap(sv[i] , sv[j]);
mới đúng!!!
@superkid:ý tưởng của ông hay áh nhưng mà trong C++ ko có hàm nào để xóa hết nên khi làm sẽ gặp nhiều phiền phức nên ko thể làm cùng lúc cả hia việc đc!!!còn bài của leo báo lỗi là do C_free nên khi chạy trên VC6 nó báo lỗi linh tinh thui mấy bạn tự sửa đc mà!!!



[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 EmptySun May 30, 2010 1:17 pm

Userblackrose4s Người này hiện đang:
Level: Người Nhà
Danh vọng:312


Người Nhà

blackrose4s

Người Nhà

Join : 10/11/2009
Bài gửi : 312

Thú cưng
.:

Bài gửiTiêu đề: Re: [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010

 
Các bạn đúng là Pro Very Happy

À mà nói thêm với bạn kim_o là :Theo sách cấu trúc của while là "while(expression) statement" ( expression chứ không phải conditional như cấu trúc If, for, do .. while). Do đó , trong dấu ngoặc của while vừa có thể là biểu thức điều kiện hoặc một biểu thức có trị xác định(biểu hiện).



[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 EmptySun May 30, 2010 2:09 pm

Userqphuong07 Người này hiện đang:
Level: IT Pro
Danh vọng:677


IT Pro

qphuong07

IT Pro

Join : 06/11/2009
Bài gửi : 677

Thú cưng
.:

Bài gửiTiêu đề: Re: [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010

 
Code:
#include <iostream>
using namespace std;
#include <cstring>
#include <cstdlib>
#include <iomanip>
struct SinhVien
{
char MaSV[11];
char HoTen[50];
char QueQuan[20];
unsigned int NamSinh;
float Diem;
char XepLoai[30];
};

void  xoa1kitu(char a[], int vitri)
{
    int n= strlen(a);
    for(int j=vitri; j<n;j++)
          a[j]=a[j+1];
          a[n-1]='\0'; 
               
}
void chuanhoa(char chuoi[])
    {
      
      while (chuoi[0]==' ')
      {
         xoa1kitu(chuoi,0);
      }
      
      while (chuoi[strlen(chuoi)-1]==' ')
      {
         xoa1kitu(chuoi,strlen(chuoi)-1);
      }
      for (int i=0;i<strlen(chuoi);i++)
      {
         if ((int)chuoi[i]==32  && (int)chuoi[i+1]==32)
         {
            xoa1kitu(chuoi,i);
            i--;
         }
         
      }

      for (i=0;i<strlen(chuoi);i++)    //Chuyen tat ca thanh chu thuong
         chuoi[i]=tolower(chuoi[i]);

      chuoi[0]=toupper(chuoi[0]);            //In hoa chu cai dau tien
      for ( i=0;i<strlen(chuoi);i++)   
         if (chuoi[i-1]==' ' && chuoi[i]!=' ')
            chuoi[i]=toupper(chuoi[i]);
    }


bool Nhap1SinhVien(SinhVien &sv)
{
   char HoTen[50],QueQuan[20];
   cout<<"\n-------------------------------------------------------------------------\n";
   cout<<"Nhap MSSV              :";
   cin.ignore(255,'\n');
   cin.getline(sv.MaSV,11);
   cout<<"Nhap Ho ten Sinh vien  :";
   cin.getline(HoTen,50);
   chuanhoa(HoTen);
   strcpy(sv.HoTen,HoTen);
   cout<<"Nhap que quan          :";
   cin.getline(QueQuan,20);
   chuanhoa(QueQuan);
   strcpy(sv.QueQuan,QueQuan);
   cout<<"Nhap nam sinh          :";
   cin>>sv.NamSinh;
   cout<<"Nhap Diem :            :";
   cin>>sv.Diem;
   if(sv.Diem>=9) strcpy(sv.XepLoai,"xuat sac");
   else if (sv.Diem>=8) strcpy(sv.XepLoai,"Gioi");
   else if (sv.Diem>=6) strcpy(sv.XepLoai,"Kha");
   else strcpy(sv.XepLoai,"TB");
   int Tuoi=2010-sv.NamSinh;
   if((sv.NamSinh<1950)||(sv.NamSinh>2000))
      return false;
   else if ((sv.Diem<5.0)||(sv.Diem>10.0))
      return false;
   else if  (Tuoi<18 || Tuoi>50 )
      return false;
   else return true;
   
}



void NhapDSSinhVien(SinhVien ds[],int n)
{
   SinhVien tmp;
   int i=0;
   while (i<n)
   {
      if(Nhap1SinhVien(tmp))
      {
         ds[i++]=tmp;
      }
      else
         cout<<"\n !!! Thong tin Sinh Vien vua nhap ko hop le... Vui long nhap lai\n "<<endl;
   }

}

void XuatDS(SinhVien sv[],int n)
{
   // Dong dau tien
   for (int i=1;i<=78;i++)
      cout<<"_";
   cout<<endl;
   cout<<"|  MSSV  |"<<"        Ho Ten      |"<<"  Nam Sinh  |"<<"  Que Quan |"<<"  Diem  |"<<"  Xep Loai |\n";
   for ( i=1;i<=78;i++)
      cout<<"_";
   cout<<endl;
   //Cac dong hien thi du lieu
   for ( i=0;i<n;i++)
   {
      cout<<"|"<<setw(8)<<sv[i].MaSV<<"|"
         <<setw(20)<<sv[i].HoTen<<"|"
         <<setw(13)<<sv[i].NamSinh<<"|"
         <<setw(11)<<sv[i].QueQuan<<"|"
         <<setw(8)<<sv[i].Diem<<"|"
         <<setw(11)<<sv[i].XepLoai<<"|";
      cout<<endl;
      
   }
   
   for ( i=1;i<=78;i++)
      cout<<"_";
      cout<<endl;
   
}

void TimSinhVienTheoHoTen(SinhVien sv[], int n)
{
   char keyword[100] ;
   cout<<"Nhap ten sinh vien can tim :";
   cin.ignore(255,'\n');
   cin.getline(keyword,100);
   chuanhoa(keyword);
   int dem=0;
   for (int i=0;i<n;i++)
      if (strcmp(sv[i].HoTen,keyword)==0)
      {
         dem++;
         cout<<"\n----------------------------------------------\n";
         cout<<"MSSV              :"<<sv[i].MaSV<<endl;
         cout<<"Ho ten            :"<<sv[i].HoTen<<endl;
         cout<<"Nam Sinh          :"<<sv[i].NamSinh<<endl;
         cout<<"Que quan          :"<<sv[i].QueQuan<<endl;
         cout<<"Diem              :" <<sv[i].Diem<<endl;
         cout<<"Xep loai          :" <<sv[i].XepLoai<<endl;
      }
      if (dem>0)
      {
      cout<<"\n----------------------------------------------\n";
      cout<<"Tim thay  " <<dem<<" sinh vien co ten : "<<keyword<<endl;
      }
      else
         cout<<"Ko tim thay !!!";
}
void SapXepTheoDiem(SinhVien sv[], int n)
{
   for (int i=0;i<n;i++)
      for (int j=1;j<n;j++)
      {
         if (sv[i].Diem < sv[j].Diem)
            swap(sv[i] , sv[j]);
         else if (sv[i].Diem == sv[j].Diem)
         {
            if (strcmp(sv[i].MaSV , sv[j].MaSV)==1)
            swap(sv[i] , sv[j]);
         }
      }
}

int main()
{
   SinhVien sv[100];
   
   int n;
   cout<<"Nhap so luong sinh vien :";
   cin>>n;
   NhapDSSinhVien(sv,n);
   SapXepTheoDiem(sv,n);
   system("cls");
   XuatDS(sv,n);
   TimSinhVienTheoHoTen(sv,n);

return 0;   

   }

bài của rex sau khi sửa lại đôi chút giờ có thể chạy tốt trên VC6 rùi đó mấy cái lỗi cũng ko còn và điểm cũng xếp ok và thêm cái xếp loại xuất sắc mà rex còn thiếu ở bài trên!!!



Số lần được cảm ơn : Message reputation : 100% (1 vote)


[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 EmptySun May 30, 2010 2:49 pm

Userluachonmotvisao_56 Người này hiện đang:
Level: Ma Mới
Danh vọng:3


Ma Mới

luachonmotvisao_56

Ma Mới

Join : 30/12/2009
Bài gửi : 3

Bài gửiTiêu đề: Re: [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010

 
sao minh copy hoai ko dc nhi



[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 EmptySun May 30, 2010 4:15 pm

Userblackrose4s Người này hiện đang:
Level: Người Nhà
Danh vọng:312


Người Nhà

blackrose4s

Người Nhà

Join : 10/11/2009
Bài gửi : 312

Thú cưng
.:

Bài gửiTiêu đề: Re: [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010

 
luachonmotvisao_56 đã viết:
sao minh copy hoai ko dc nhi

Mong rằng Chúa sẽ giúp bạn Crying or Very sad



[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 EmptySun May 30, 2010 9:13 pm

Regulus™
UserRegulus™ Người này hiện đang:
Level: Tổng điều hành
Danh vọng:758


Tổng điều hành

Regulus™

Tổng điều hành

http://itk35.tk
Giới tính : Nam
Đến từ : ...
Join : 06/11/2009
Bài gửi : 758
HUMOR : Nghe nhạc.. Computer

Thú cưng
.:

Bài gửiTiêu đề: Re: [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010

 
Code full nè pà kon....
No error... khắc phục lỗi bài của Phương ở trên...


Code:
//  Code by IT K35 Zone ... (c) 2010...  Regulus , QuyPhuong .... F5 club
//  Chuc moi nguoi thi tot... :D :D
#include <iostream>
using namespace std;
#include <cstring>
#include <cstdlib>
#include <iomanip>

struct SinhVien
{
char MaSV[11];
char HoTen[50];
char QueQuan[20];
unsigned int NamSinh;
float Diem;
char XepLoai[30];
};

void  xoa1kitu(char a[], int vitri)
{
    int n= strlen(a);
    for(int j=vitri; j<n;j++)
          a[j]=a[j+1];
          a[n-1]='\0';
             
}
void chuanhoa(char chuoi[])
    {
     
      while (chuoi[0]==' ')
      {
        xoa1kitu(chuoi,0);
      }
     
      while (chuoi[strlen(chuoi)-1]==' ')
      {
        xoa1kitu(chuoi,strlen(chuoi)-1);
      }
      for (int i=0;i<strlen(chuoi);i++)
      {
        if ((int)chuoi[i]==32  && (int)chuoi[i+1]==32)
        {
            xoa1kitu(chuoi,i);
            i--;
        }
       
      }

      for (int i=0;i<strlen(chuoi);i++)    //Chuyen tat ca thanh chu thuong
        chuoi[i]=tolower(chuoi[i]);

      chuoi[0]=toupper(chuoi[0]);            //In hoa chu cai dau tien
      for (int i=0;i<strlen(chuoi);i++) 
        if (chuoi[i-1]==' ' && chuoi[i]!=' ')
            chuoi[i]=toupper(chuoi[i]);
    }


bool Nhap1SinhVien(SinhVien &sv)
{
  char HoTen[50],QueQuan[20];
  cout<<"\n-------------------------------------------------------------------------\n";
  cout<<"Nhap MSSV              :";
  cin.ignore(255,'\n');
  cin.getline(sv.MaSV,11);
  cout<<"Nhap Ho ten Sinh vien  :";
  cin.getline(HoTen,50);
  chuanhoa(HoTen);
  strcpy(sv.HoTen,HoTen);
  cout<<"Nhap que quan          :";
  cin.getline(QueQuan,20);
  chuanhoa(QueQuan);
  strcpy(sv.QueQuan,QueQuan);
  cout<<"Nhap nam sinh          :";
  cin>>sv.NamSinh;
  cout<<"Nhap Diem :            :";
  cin>>sv.Diem;
  if(sv.Diem>=9) strcpy(sv.XepLoai,"Xuat sac");
  else if (sv.Diem>=8) strcpy(sv.XepLoai,"Gioi");
  else if (sv.Diem>=6) strcpy(sv.XepLoai,"Kha");
  else strcpy(sv.XepLoai,"Trung binh");
  int Tuoi=2010-sv.NamSinh;
  if((sv.NamSinh<1950)||(sv.NamSinh>2000))
      return false;
  else if ((sv.Diem<5.0)||(sv.Diem>10.0))
      return false;
  else if  (Tuoi<18 || Tuoi>50 )
      return false;
  else return true;
 
}



void NhapDSSinhVien(SinhVien ds[],int n)
{
  SinhVien tmp;
  int i=0;
  while (i<n)
  {
      if(Nhap1SinhVien(tmp))
      {
        ds[i++]=tmp;
      }
      else
        cout<<"\n !!! Thong tin Sinh Vien vua nhap ko hop le... Vui long nhap lai\n "<<endl;
  }

}

void XuatDS(SinhVien sv[],int n)
{
  // Dong dau tien
  for (int i=1;i<=78;i++)
      cout<<"_";
  cout<<endl;
  cout<<"|  MSSV  |"<<"        Ho Ten      |"<<"  Nam Sinh  |"<<"  Que Quan |"<<"  Diem  |"<<"  Xep Loai |\n";
  for (int i=1;i<=78;i++)
      cout<<"_";
  cout<<endl;
  //Cac dong hien thi du lieu
  for (int i=0;i<n;i++)
  {
      cout<<"|"<<setw(8)<<sv[i].MaSV<<"|"
        <<setw(20)<<sv[i].HoTen<<"|"
        <<setw(13)<<sv[i].NamSinh<<"|"
        <<setw(11)<<sv[i].QueQuan<<"|"
        <<setw(8)<<sv[i].Diem<<"|"
        <<setw(11)<<sv[i].XepLoai<<"|";
      cout<<endl;
     
  }
 
  for (int i=1;i<=78;i++)
      cout<<"_";
      cout<<endl;
 
}

void TimSinhVienTheoHoTen(SinhVien sv[], int n)
{
  char keyword[100] ;
  cout<<"Nhap ten sinh vien can tim :";
  cin.ignore(255,'\n');
  cin.getline(keyword,100);
  chuanhoa(keyword);
  int dem=0;
  for (int i=0;i<n;i++)
      if (strcmp(sv[i].HoTen,keyword)==0)
      {
        dem++;
        cout<<"\n----------------------------------------------\n";
        cout<<"MSSV              :"<<sv[i].MaSV<<endl;
        cout<<"Ho ten            :"<<sv[i].HoTen<<endl;
        cout<<"Nam Sinh          :"<<sv[i].NamSinh<<endl;
        cout<<"Que quan          :"<<sv[i].QueQuan<<endl;
        cout<<"Diem              :" <<sv[i].Diem<<endl;
        cout<<"Xep loai          :" <<sv[i].XepLoai<<endl;
      }
      if (dem>0)
      {
      cout<<"\n----------------------------------------------\n";
      cout<<"Tim thay  " <<dem<<" sinh vien co ten : "<<keyword<<endl;
      }
      else
        cout<<"Ko tim thay !!!";
}
void SapXepTheoDiem(SinhVien sv[], int n)
{
  for (int i=0;i<n;i++)
      for (int j=i;j<n;j++)
      {
        if (sv[i].Diem < sv[j].Diem)
            swap(sv[i] , sv[j]);
        else if (sv[i].Diem == sv[j].Diem)
        {
            if (strcmp(sv[i].MaSV , sv[j].MaSV)==1)
            swap(sv[i] , sv[j]);
        }
      }
}

int main()
{
  SinhVien sv[100];
 
  int n;
  cout<<"Nhap so luong sinh vien :";
  cin>>n;
  NhapDSSinhVien(sv,n);
  SapXepTheoDiem(sv,n);
  system("cls");
  XuatDS(sv,n);
  TimSinhVienTheoHoTen(sv,n);

return 0; 

  }


Chúc các bạn thi tốt

[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 13191



Số lần được cảm ơn : Message reputation : 100% (2 votes)


[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 EmptyMon May 31, 2010 6:42 pm

khuongsps104
Userkhuongsps104 Người này hiện đang:
Level: Thành Viên Xây Dựng
Danh vọng:142


Thành Viên Xây Dựng

khuongsps104

Thành Viên Xây Dựng

Giới tính : Nam
Đến từ : Tiền Giang
Join : 11/12/2009
Bài gửi : 142
HUMOR : đọc sách y học và tìm hiểu văn hóa nghệ thuật

Thú cưng
.:

Bài gửiTiêu đề: Re: [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010

 
Thank Hải nhiều nha, VIP thật hihi.



Số lần được cảm ơn : Message reputation : 100% (1 vote)


[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 EmptyMon May 31, 2010 7:41 pm

kim_o
Userkim_o Người này hiện đang:
Level: Thành Viên Xây Dựng
Danh vọng:148


Thành Viên Xây Dựng

kim_o

Thành Viên Xây Dựng

Giới tính : Nam
Đến từ : An Giang
Join : 12/11/2009
Bài gửi : 148

Bài gửiTiêu đề: Re: [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010

 
cho MÌnh hỏi cái ,trong cái xuất của hàm void TimSinhVienTheoHoTen(SinhVien sv[], int n) khi điều kiện == 0;
minh có thể thay bằng hàm xuất đã khai báo ở trên không, thay vì xuất trực tiếp thì hơi dài hơn chút xí???



[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 EmptyMon May 31, 2010 7:55 pm

qphuong07
Userqphuong07 Người này hiện đang:
Level: IT Pro
Danh vọng:677


IT Pro

qphuong07

IT Pro

Giới tính : Nam
Đến từ : dong nai
Join : 06/11/2009
Bài gửi : 677
HUMOR : Ngủ là ok!!!

Thú cưng
.:

Bài gửiTiêu đề: Re: [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010

 
hỉu ý của kim_o nhưng mà vấn đề ở đây là mình xuất 1 sinh viên chứ ko phải là 1 danh sách sinh viên nên vòng lặp for ko thể sài trong trường hợp này!!!
còn nếu muốn thì ông có thể viết thêm cái hàm xuất 1 sinh viên!!!
nhưng mà tui nghĩ cái chỗ xuất này cũng khá là đơn giản ko có gì hết nên chịu khó 1 chút cũng đâu sao!!!
mà cái phần này trong đề ko yêu cầu nên cũng ko cần wan trọng lắm đâu!!!



[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 EmptyMon May 31, 2010 8:01 pm

blackrose4s
Userblackrose4s Người này hiện đang:
Level: Người Nhà
Danh vọng:312


Người Nhà

blackrose4s

Người Nhà

Giới tính : Nam
Đến từ : không gian
Join : 10/11/2009
Bài gửi : 312
HUMOR : không rõ ràng

Thú cưng
.:

Bài gửiTiêu đề: Re: [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010

 
Cho mình hỏi trong cái cái hàm XuatDS(SinhVien sv[],int n) có sử dụng setw() , mình chưa hiểu cách sử dụng của nó! Ai bik chỉ mình với nó sử dụng để làm gì và đặt thông số bên trong dấu () ra sao không ? [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 542366



[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 EmptyMon May 31, 2010 8:03 pm

Regulus™
UserRegulus™ Người này hiện đang:
Level: Tổng điều hành
Danh vọng:758


Tổng điều hành

Regulus™

Tổng điều hành

http://itk35.tk
Giới tính : Nam
Đến từ : ...
Join : 06/11/2009
Bài gửi : 758
HUMOR : Nghe nhạc.. Computer

Thú cưng
.:

Bài gửiTiêu đề: Re: [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010

 
kim_o đã viết:
cho MÌnh hỏi cái ,trong cái xuất của hàm void TimSinhVienTheoHoTen(SinhVien sv[], int n) khi điều kiện == 0;
minh có thể thay bằng hàm xuất đã khai báo ở trên không, thay vì xuất trực tiếp thì hơi dài hơn chút xí???
ko dc vì các hàm
void XuatDS(SinhVien sv[],int n)

là xuất danh sách của cả mảng, ko xuất danh sách lẻ tẻ dc
[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 168320 [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 168320 [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 168320 [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 168320



[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 EmptyMon May 31, 2010 8:06 pm

qphuong07
Userqphuong07 Người này hiện đang:
Level: IT Pro
Danh vọng:677


IT Pro

qphuong07

IT Pro

Giới tính : Nam
Đến từ : dong nai
Join : 06/11/2009
Bài gửi : 677
HUMOR : Ngủ là ok!!!

Thú cưng
.:

Bài gửiTiêu đề: Re: [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010

 
cái hàm setw() dùng để cách khoảng cách. số ở trong ngoặc là số khoảng cách muốn cách ra có 1 điều đặc biệt nữa là có thể viết đè lên những khoảng cách này.
vd:cout<<setw(5)<<2;
thì chương trình sẽ in ra số 2 đc ghi ở dấu cách thứ 5, có nghĩa là trc số 2 có 4 dấu cách!!!



[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 EmptyMon May 31, 2010 8:25 pm

Regulus™
UserRegulus™ Người này hiện đang:
Level: Tổng điều hành
Danh vọng:758


Tổng điều hành

Regulus™

Tổng điều hành

http://itk35.tk
Giới tính : Nam
Đến từ : ...
Join : 06/11/2009
Bài gửi : 758
HUMOR : Nghe nhạc.. Computer

Thú cưng
.:

Bài gửiTiêu đề: Re: [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010

 
blackrose4s đã viết:
Cho mình hỏi trong cái cái hàm XuatDS(SinhVien sv[],int n) có sử dụng setw() , mình chưa hiểu cách sử dụng của nó! Ai bik chỉ mình với nó sử dụng để làm gì và đặt thông số bên trong dấu () ra sao không ? [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 542366

Hàm setw(n) là tạo ra n khoảng trống cho phần dữ liệu sau nó
ví dụ
cout<<setw(10)<<12.34;
đí
thì nó sẽ tạo cho mình 10 khoảng trống để chứa số 12.34
số sẽ dc lấp đầy từ sau ra trước
nó sẽ in ra
12.34
ở đây mới chỉ có 5 chỗ 12.34
vì vậy ở phía trước sẽ còn 5 chỗ nữa nghĩa là 5 khoảng trống
cái này dc sử dụng trong các phép canh cho đẹp đó

PS:
hàm đó giống như phần tạo thông số printf trong C đó

giống như cái %5d %5f thì cái này là setw(5)



[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 EmptyMon May 31, 2010 9:28 pm

kim_o
Userkim_o Người này hiện đang:
Level: Thành Viên Xây Dựng
Danh vọng:148


Thành Viên Xây Dựng

kim_o

Thành Viên Xây Dựng

Giới tính : Nam
Đến từ : An Giang
Join : 12/11/2009
Bài gửi : 148

Bài gửiTiêu đề: Re: [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010

 
mà cho hỏi luôn nè, trong hàm Void nhapdssinhvien ak, tui thay ham if nhap1sinhvien(tmp), nghĩa là sao vay?? hinh nhu dau phai dieu kien dau pk???



[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 EmptyMon May 31, 2010 9:32 pm

Regulus™
UserRegulus™ Người này hiện đang:
Level: Tổng điều hành
Danh vọng:758


Tổng điều hành

Regulus™

Tổng điều hành

http://itk35.tk
Giới tính : Nam
Đến từ : ...
Join : 06/11/2009
Bài gửi : 758
HUMOR : Nghe nhạc.. Computer

Thú cưng
.:

Bài gửiTiêu đề: Re: [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010

 
tương đương
nhap1sinhvien(tmp)==true



[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 EmptyTue Jun 01, 2010 6:25 am

blackrose4s
Userblackrose4s Người này hiện đang:
Level: Người Nhà
Danh vọng:312


Người Nhà

blackrose4s

Người Nhà

Giới tính : Nam
Đến từ : không gian
Join : 10/11/2009
Bài gửi : 312
HUMOR : không rõ ràng

Thú cưng
.:

Bài gửiTiêu đề: Re: [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010

 
Code:

void SapXepTheoDiem(SinhVien sv[], int n)
{
  for (int i=0;i<n;i++)
      for (int j=i;j<n;j++)
      {
        if (sv[i].Diem < sv[j].Diem)
            swap(sv[i] , sv[j]);
        else if (sv[i].Diem == sv[j].Diem)
        {
            if (strcmp(sv[i].MaSV , sv[j].MaSV)==1)
            swap(sv[i] , sv[j]);
        }
      }
}

Đoạn này hình như bị sai hay sao ấy Hải ơi ! Thuật toán sắp xếp khi điểm i khác điểm j thấy kì kì, đáng lẽ lúc nào nó cũng phải so sánh phần tử ở trước với phần tử ở sau, lúc i = j nó tự so sánh chính nó hả ?

strcmp (string1, string2 ) so sánh 2 xâu, trả về 0 nếu giống nhau và trả về 1 nếu 2 xâu khác nhau, mà mã SV (kiểu char) thì luôn khác nhau vậy chỗ đó lúc nào cũng trả về 1. VD: Phương và Hải cùng 9 điểm, theo vần ABC thì mã SV của Hải có số thứ tự thấp hơn Phương giả sử là 031 và 056. Theo đoạn code trên thì nó so sánh xong đổi thứ tự 2 người lun mất rồi !



[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 EmptyTue Jun 01, 2010 9:51 am

qphuong07
Userqphuong07 Người này hiện đang:
Level: IT Pro
Danh vọng:677


IT Pro

qphuong07

IT Pro

Giới tính : Nam
Đến từ : dong nai
Join : 06/11/2009
Bài gửi : 677
HUMOR : Ngủ là ok!!!

Thú cưng
.:

Bài gửiTiêu đề: Re: [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010

 
blackrose4s đã viết:
Trích dẫn :
Code:

void SapXepTheoDiem(SinhVien sv[], int n)
{
for (int i=0;i<n;i++)
for (int j=i;j<n;j++)
{
if (sv[i].Diem < sv[j].Diem)
swap(sv[i] , sv[j]);
else if (sv[i].Diem == sv[j].Diem)
{
if (strcmp(sv[i].MaSV , sv[j].MaSV)==1)
swap(sv[i] , sv[j]);
}
}
}


Đoạn này hình như bị sai hay sao ấy Hải ơi ! Thuật toán sắp xếp khi điểm i khác điểm j thấy kì kì, đáng lẽ lúc nào nó cũng phải so sánh phần tử ở trước với phần tử ở sau, lúc i = j nó tự so sánh chính nó hả ?

strcmp (string1, string2 ) so sánh 2 xâu, trả về 0 nếu giống nhau và trả về 1 nếu 2 xâu khác nhau, mà mã SV (kiểu char) thì luôn khác nhau vậy chỗ đó lúc nào cũng trả về 1. VD: Phương và Hải cùng 9 điểm, theo vần ABC thì mã SV của Hải có số thứ tự thấp hơn Phương giả sử là 031 và 056. Theo đoạn code trên thì nó so sánh xong đổi thứ tự 2 người lun mất rồi !

code này ko sai đâu bạn ơi tại i=j thì nó so sánh với nhau cũng đâu có sao còn nếu ko muôn thì bạn có thể đổi lại là j=i+1 là đc chứ sao mà bạn nói sai đc!!!
câu lệnh strcmp(s1,s2) sẽ trả về 1 khi s1 lớn hơn s2 chứ ko phải là s1 khác s2 đâu bạn nên khi nhập 031,056 như bạn nói ở trên nó sẽ ko đổi chỗ vì chuỗi 031 nhỏ hơn chuỗi 056!!!bạn có thể test thử!!!



[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 EmptyTue Jun 01, 2010 10:20 am

congtu_ngaitu91
Usercongtu_ngaitu91 Người này hiện đang:
Level: Thành Viên Thường Trực
Danh vọng:68


Thành Viên Thường Trực

congtu_ngaitu91

Thành Viên Thường Trực

Giới tính : Nam
Đến từ : ngãi tứ
Join : 12/12/2009
Bài gửi : 68
HUMOR : mọi thứ

Bài gửiTiêu đề: Re: [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010

 
ko
no bao loi~
ngay bjen i



[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 EmptyTue Jun 01, 2010 10:26 am

congtu_ngaitu91
Usercongtu_ngaitu91 Người này hiện đang:
Level: Thành Viên Thường Trực
Danh vọng:68


Thành Viên Thường Trực

congtu_ngaitu91

Thành Viên Thường Trực

Giới tính : Nam
Đến từ : ngãi tứ
Join : 12/12/2009
Bài gửi : 68
HUMOR : mọi thứ

Bài gửiTiêu đề: Re: [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010

 
no' bao' loi~ o bien t nhieu lem'



[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 EmptyTue Jun 01, 2010 10:28 am

qphuong07
Userqphuong07 Người này hiện đang:
Level: IT Pro
Danh vọng:677


IT Pro

qphuong07

IT Pro

Giới tính : Nam
Đến từ : dong nai
Join : 06/11/2009
Bài gửi : 677
HUMOR : Ngủ là ok!!!

Thú cưng
.:

Bài gửiTiêu đề: Re: [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010

 
cái đó là do khai báo biến i nhiều lần àh. ông chỉ cần xóa chữ int trước biến i mà máy báo lỗi là ok!!!tại cái của Hải viết trên C-free nên nó ko báo lỗi còn trên VC6 thì ko cho khai báo biến i nhiều lần!!!



[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010 - Page 2 Empty

UserSponsored content Người này hiện đang:
Level:
Danh vọng:



Sponsored content

Bài gửiTiêu đề: Re: [HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010

 


 

[HOT] Giải ĐỀ THI MẪU trong đề cương ôn tập C++ 2010

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 2 trong tổng số 2 trangChuyển đến trang : Previous  1, 2

Permissions in this forum:Bạn không có quyền trả lời bài viết
ITK35Zone :: Học tập :: Lưu trữ (năm 1) :: Tin học đại cương-
 
Create a forum on Forumotion | ©phpBB | Free forum support | Báo cáo lạm dụng | Thảo luận mới nhất