Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: Bài tập C | Bài tập Quản Lý Sinh VIên

  1. #1
    Ngày gia nhập
    04 2009
    Bài viết
    9

    Mặc định Bài tập C | Bài tập Quản Lý Sinh VIên

    Hix, tình hình là mình còn 1 bài tập C hơi dài 1 chút , nhưn mình ko rành về phần mảng nên anh em giúp mình nhé , thanks nhiều lắm :

    * Tổ chức dữ liệu để quản lý sinh viên bằng một mảng N phần tử, mỗi phần tử có cấu trúc như sau:
    - Mã sinh viên
    - Tên
    - Điểm toán, lý , hóa
    - Điểm trung bình = ( điểm toán + điểm lý + điểm hoá ) /3
    Viết chương trình thực hiện các công việc sau:
    + Nhập danh sách các sinh viên cho một lớp học
    + Xuất danh sách sinh viên ra màn hình
    + Tìm sinh viên có điểm trung bình cao nhất
    + Sắp xếp danh sách lớp theo thứ tự tăng dần của điểm iên có điểm trung btrung bình
    + Tìm kiếm và in ra các sinh vình >5
    + Nhập vào tên của sinh viên. Tìm và in ra các thông tin liên quan đến sinh viên đó ( nếu có )
    Đề bài như za , có gì thì giải đáp giùm mình nha.

  2. #2
    Ngày gia nhập
    08 2008
    Nơi ở
    ha noi
    Bài viết
    79

    thì làm nó như 1 cấu trúc bình thường thôi có gì đâu bạn code rồi post lên sai mình và mọi người trong diễn đàn sẽ sửa cho bạn
    u never know

  3. #3
    Ngày gia nhập
    04 2009
    Bài viết
    9

    Code:
    #include<stdio.h>
    #include<conio.h>
    #include<string.h>
    struct date
    {
    int ngay ;
    int thang;
    int nam;
    };
    struct hocvien
    {
    char mssv[5];
    char hoten[30];
    date ngaysinh;
    char phai[3];
    char diachi[40];
    float diemtb;
    } ;
    void nhap(hocvien hv[],int n)
    {
    float diem;
    for(int i=0;i<n;i++)
    	{
    	printf("Nhap mssv thu %d",i);
    		gets(hv[i].mssv);
    	printf("Nhap ngay sinh :");
    	printf("\n\t ngay :");
    		scanf("%d",&hv[i].ngaysinh.ngay);
    	printf("\n\t thang");
    		  scanf("%d",&hv[i].ngaysinh.thang);
    	printf("\n\t nam");
    		  scanf("%d",&hv[i].ngaysinh.nam);
    	fflush(stdin);
    	printf("nhap phai :);
    	gets(hv[i].phai);
    	printf("Nhap dia chi: ");
    	gets(hv[i].diachi);
    	printf("Nhap diem trung binh :");
    	scanf("%f",&diem);
    	hv[i].diemtb=diem;
    	fflush(stdin);
    	}
    }
    void indanhsach(hocvien hv[],int n)
    {
    printf("\n--------------------THONG TIN HOC VIEN-----------------------");
    printf(" MSSV | HoTen | Ngay Sinh | Phai | Dia Chi | Diem TB ");
    for(int i=0;i<n;i++)
    printf("4s%| -5s%| -20s% | -2d% |-2d% | -4d% |-55s% | -22s% |42f% \n",hv[i].mssv , hv[i].ngaysinh.nam,hv[i].phai,hv[i].hv[i].diachi,hv[i].diemtb);
    }
    void sapxepten(hocvien hv[],int n)
    {
    for(int i=0;i<n;i++)
    for(int j=i+1;j<n;j++)
    	if(strcmp(hv[i].hoten,hv[i].hoten)>0)
    	{
    		hocvien tmp;
    		memcpy(&tmp,&hv[i],sizeof(hocvien)     ;
    		memcpy(&hv[i],&hv[j])       ;
    		memcpy(&hv[j],&tmp,sizeof(hocvien))   ;
    	}
    }
    void main()
    {
    int n;
    clrscr();
    hocvien hv[100] ;
    printf(" Nhap so hoc vien ");
    scanf("%d",&n);
    fflush(stdin);
    nhap(hv,n);
    indanhsach(hv,n);
    getch();
    }
    Đây là bài mình làm nhưng thiếu mấy câu nữa , bài nầy vẫn còn lỗi , ai bổ sung giùm mình với nha

  4. #4
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Đã sửa cái code trên cho nó chạy.
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #include<string.h>
    4.  
    5. struct date
    6. {
    7. int ngay ;
    8. int thang;
    9. int nam;
    10. };
    11.  
    12. struct hocvien
    13. {
    14. char mssv[5];
    15. char hoten[30];
    16. date ngaysinh;
    17. char phai[3];
    18. char diachi[40];
    19. float diemtb;
    20. };
    21.  
    22. void nhap(hocvien hv[],int n)
    23. {
    24.     float diem;
    25.     for(int i=0;i<n;i++)
    26.     {
    27.         printf("Nhap mssv thu %d",i);
    28.         fflush(stdin);
    29.         gets(hv[i].mssv);
    30.  
    31.         printf("Nhap ngay sinh :\n");
    32.         printf("\t ngay :");
    33.         scanf("%d",&hv[i].ngaysinh.ngay);
    34.         printf("\t thang");
    35.         scanf("%d",&hv[i].ngaysinh.thang);
    36.         printf("\t nam");
    37.         scanf("%d",&hv[i].ngaysinh.nam);
    38.  
    39.         printf("nhap phai :");
    40.         fflush(stdin);
    41.         gets(hv[i].phai);
    42.         printf("Nhap dia chi: ");
    43.         fflush(stdin);
    44.         gets(hv[i].diachi);
    45.  
    46.         printf("Nhap diem trung binh :");
    47.         scanf("%f",&diem);
    48.         hv[i].diemtb=diem;
    49.     }
    50. }
    51.  
    52. void indanhsach(hocvien hv[],int n)
    53. {
    54. printf("\n--------------------THONG TIN HOC VIEN-----------------------\n");
    55. printf(" MSSV | HoTen | Ngay Sinh | Phai | Dia Chi | Diem TB \n");
    56. for(int i=0;i<n;i++)
    57. printf("%4s| %-5s| %-20s | %-2d |%-2d | %-4d |%-55s | %-22s |%42f \n",hv[i].mssv , hv[i].ngaysinh.nam,hv[i].phai,hv[i].diachi,hv[i].diemtb);
    58. }
    59.  
    60. void sapxepten(hocvien hv[],int n)
    61. {
    62. for(int i=0;i<n-1;i++)
    63. for(int j=i+1;j<n;j++)
    64.     if(strcmp(hv[i].hoten,hv[j].hoten)>0) ////
    65.     {
    66.         hocvien tmp;
    67.         memcpy(&tmp,&hv[i],sizeof(hocvien));
    68.         memcpy(&hv[i],&hv[j],sizeof(hocvien));
    69.         memcpy(&hv[j],&tmp,sizeof(hocvien));
    70.     }
    71. }
    72.  
    73. int main()
    74. {
    75.     int n;
    76.     //clrscr();
    77.     hocvien hv[100] ;
    78.     printf(" Nhap so hoc vien ");
    79.     scanf("%d",&n);
    80.     nhap(hv,n);
    81.     indanhsach(hv,n);
    82.     getch();
    83. }
    Bạn mắc rất nhiều các lỗi cơ bản về cú pháp khiến mình thắc mắc, tại sao bạn làm bài này khi kiến thức cơ bản sơ đẳng nhập xuất còn mắc lỗi?
    Cách trình bày bài "chán".

  5. #5
    Ngày gia nhập
    04 2009
    Bài viết
    9

    hix , nhận xét 1 câu khiến mình suy nghĩ nhiều quá. Các bạn bổ sung giùm mình thêm mấy câu này nhé :
    + Tìm sinh viên có điểm trung bình cao nhất
    + Sắp xếp danh sách lớp theo thứ tự tăng dần của điểm iên có điểm trung btrung bình
    + Tìm kiếm và in ra các sinh viên có điểm tb >5
    + Nhập vào tên của sinh viên. Tìm và in ra các thông tin liên quan đến sinh viên đó ( nếu có )
    Thanks anh em

  6. #6
    Ngày gia nhập
    08 2008
    Nơi ở
    ha noi
    Bài viết
    79

    Mặc định Bài tập C | Bài tập Quản Lý Sinh VIên

    câu 1:
    Code:
    int tam=0;
    for(i=0;i<n;i++)
    if(hv[i].diemtb>tam) tam=hv[i].dtb
    câu 2

    Code:
    int temp;
    for(i=0;i<n-1;i++)
    			for(j=i+1;j<n;j++)
    				if(hv[i].diemtb>hv[j].diemtb)
    					{
    						temp=hv[i].diemtb;
    						hv[i].diemtb=sv[j].diemtb;
    						hv[j].diemtb=temp;
    					}
    câu 3:

    Code:
    for(i=0;i<n;i++)
    			if(sv[i].dtb>=5) thì in ra
    câu 4

    Code:
    char tim[90000000];
    
    nhập vào tên
    
    for(i=0;i<n;i++)
    if(strcmp(hv[i].hoten,tim)==0) thì tin ra thông tin
    u never know

Các đề tài tương tự

  1. Quản lí sinh viên bằng stack dùng danh sách liên kết. Làm sao để nhập nhiều sinh viên?
    Gửi bởi hoainamken trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 24-08-2011, 10:34 AM
  2. Bài tập quản lý sinh viên trong lập trình C#. Tìm kiếm sinh viên in ra cả danh sách?
    Gửi bởi anhduc12c5 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 24-08-2011, 08:32 AM
  3. Chương trình quản lí sinh viên viết trong visual c++ 2010. Lỗi không chạy khi in danh sách sinh viên theo năm
    Gửi bởi hikaru1015 trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 9
    Bài viết cuối: 03-06-2011, 09:31 AM
  4. Kỹ thuật C code bài tập về quản lý sinh viên. Không hiển thị đc tên với mã số sinh viên?
    Gửi bởi seudaudokt trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 06-09-2010, 12:18 AM
  5. Chương trình quản lý sinh viên viết bằng C. Làm sao tìm kiếm sinh viên theo tên và sắp xếp?
    Gửi bởi linhdong24 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 24-06-2009, 12:53 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn