Nhờ Diễn đàn giải cứu giúp mình C++

  • Khởi xướng tendangky
  • Ngày gửi
T

tendangky

Guest
em xin trích đoạn một phần bài tập C++ mà thầy ra như sau, xin nhờ anh em diễn đàn giúp đỡ em đang cần gấp lắm, thank mấy anh trước:
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <string.h>
typedef struct HS
{
char HoTen[50];
float DTB;
char MAHS[30];
}HS;
void SapXep(HS a[],int n);
void HoanVi(HS &a,HS &b);
void Xuat(HS a[],int n);
void Nhap(HS a[],int n);
void Xuat(HS a);
HS Nhap();
void main ()
{
HS a[100];
int n=3;
Nhap(a,n);
SapXep(a,n);
Xuat(a,n);
getch();
}
void SapXep(HS a[],int n)
{
int i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strcmp(a[j].HoTen,a.HoTen)<0)
}
void HoanVi(HS &a,HS &b)
{
HS tam=a;a=b;b=tam;
}

void Xuat(HS a[],int n)
{
for(int i=0;i<n;i++)
Xuat(a,);
}
void Nhap(HS a[],int n)
{
for(int i=0;i<n;i++
{
printf("Nhap hoc sinh thu%d:\n",i);
a=Nhap();
}

}
void Xuat(HS a)
{
printf("%-10s%-20%-15%.2f\n",a.MAHS,a.HoTen,a,DTB);
}
HS Nhap()
{
HS a;
printf("\tMa:"); fflush(stdin); gets (a. MAHS);
printf("\tHo va Ten:"); fflush(stdin); gets (a. HoTen);
printf("\tDTB:"); scanf("%f",%a.DTB);
return a;
}

đề tài thầy ra như sau:
bài tập phát triển thêm :
1. Thêm vào danh sách học sinh.
2. Xóa trong danh sách học sinh.
a. Xóa 1 học sinh.
b. Xóa tất cả các học sinh.
3. Sửa danh sách học sinh.
4. Lưu danh sách học sinh (Lưu xuống file -> gõ tên tập tin để lưu)
5. Xem danh sách học sinh
a. Xem toàn bộ theo thứ tự trong tập tin
b. Sắp xếp theo họ tên, mã.
c. Xem học sinh theo điểm trung bình, giới tính....
6. Mở danh sách có sẵn trên máy (gõ vào tên tập tin)
xin anh em giúp giùm
 

vuhoangr3

Thành viên mới
Tham gia
10/9/14
Bài viết
3
Điểm thành tích
1
bạn thử làm câu 1,2 trước chứ,làm không được câu căn bản không lập trình được đâu.post nguyên bài,sao giúp được
 

sumofsquare21

Thành viên có triển vọng
Tham gia
30/5/10
Bài viết
7
Điểm thành tích
3
bạn có thể tham khảo hàm sắp xếp qsort
void f_quicksort(int Arr[],int l,int r)
{
if(l>=r) return;
int i=l;
int j=r;
int x=Arr[(l+r)/2];//x=A[random(l-r)]
while(i<=j)
{
while(Arr<x) i++;
while(Arr[j]>x) j--;
if(i<=j)
{
int temp=Arr;Arr=Arr[j];Arr[j]=temp;
i++;j--;
}
}


f_quicksort(Arr,l,j);
f_quicksort(Arr,i,r);

}

hoặc cách khác như sau :

struct st
{
CString MSHS;
CString HoTen;
CString DTB;
CString sapxep; // trường muốn sắp xếp


};

int operator >> ( const st &t, const st &u ) // dinh nghia phep toan "*"
{
if (t.sapxep < u.sapxep) return -1; //sap xep tang dan theo ten
if (t.sapxep == u.sapxep) return 0;
if (t.sapxep > u.sapxep) return 1;
}


int compare_AZ (const void * a, const void * b)
{
return (*(st*)a >> *(st*)b);

}

Câu lệnh sắp xếp : qsort(arr,n,sizeof(st),compare_AZ);

---------------------
Còn các vấn đề xuất nhập dữ liệu bạn nên đọc lại giáo trình :D
Gửi bạn tài liệu C++ tham khảo :
 

File đính kèm

  • CCC.pdf
    4,4 MB · Đọc: 176
  • NNLTC.pdf
    1,2 MB · Đọc: 222

Tải bộ cài phần mềm Dự toán GXD, Đấu thầu GXD, Thanh Quyết toán GXD, Quản lý chất lượng GXD. Dành cho người mua bản quyền
Kích để xem khóa học Dự toán công trình
Kích để xem khóa học Dự toán công trình
Phần mềm quản lý chất lượng công trình QLCL GXD
Tìm hiểu khóa học Thanh Quyết toán GXD

Các bài viết mới

Top