Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 14 kết quả

Đề tài: Tạo menu học viên

  1. #1
    Ngày gia nhập
    08 2008
    Bài viết
    5

    Smile Tạo menu học viên

    Code:
    Tạo 1 menu thực hiện các công việc sau:
    a.Nhập danh sách có kiểu học viên vào 1 mảng, mỗi học viên có các thông tin sau:maso(int),hoten(chuỗi tối đa 30 ký tự),phái(NAM/NU), điểm(float),hạng(unsigned char). Quá trình nhập sẽ dừng lại khi mã số nhập vào là 0.
    b.Liệt kê danh sách học viên ra màn hình theo dạng sau:
    Ma so         Ho va ten          phai           diem      hang
    c.Tìm kiếm một học viên trong danh sách theo mã sô,và in ra các thông tin còn lại của học viên đó.
    d.Sắp xếp danh sách học viên theo thứ tự tăng dần
    e.Xếp hạng danh sách học viên theo quy tắc cùng điểm thì cùng hạng, hạng của học viên sau bằng hạng của học viên trước cộng số người của nhóm học viên trước cùng điểm.
    f.Giả sử danh sách học viên đã có thứ tự tăng dần theo điểm; Nhập thêm 1 học viên sao cho sau khi nhập thì danh sách vẫn còn có thứ tự.
    g.Cập nhật sửa lỗi các mẫu tin theo mã số(Nhập mã số, sau đó hiệu chỉnh họ tên,phái , điểm).
    h.Loại bỏ 1 học viên ra khỏi danh sách dựa vào mã số.
    các pác giải dùm mình bài này nha , mình giải rồi nhưng vẫn chưa chạy đc chủ yếu là phần sửa lỗi và xếp hạng học viên. Thanks các pác
    SUDDENLY I WANNA CRY

  2. #2
    Ngày gia nhập
    08 2008
    Bài viết
    5

    PHP Code:
    #include<stdio.h>
    #include<conio.h>
    #include<string.h>
    #include<stdlib.h>
    #define max 100;
    struct hocvien
    {
        
    int maso[10];
        
    char hoten[30];
        
    char phai[5];
        
    float diem[10];
        
    unsigned char hang[10];
    };
    typedef struct hocvien HOCVIEN;
    HOCVIEN danhsach[max];
    int n=0;
    int menu();//menu lam viec thong tin hoc vien 
    {
        
    char c;
        
    printf("+----------menu----------+");
        
    printf("+------------------------+");
        
    printf("\n1.Nhap danh sach");
        
    printf("\n2.Liet ke danh sach");
        
    printf("\n3.Tim kiem hoc vien");
        
    printf("\n4.Sap xep diem danh sach");
        
    printf("\n5.Nhap them 1 hoc vien");
        
    printf("\n6.Sua doi thong tin hv");
        
    printf("\n7.Loai bo 1 hoc vien");
        
    printf("\nChon muc:");
        do{
            
    c=getch();
        }while(
    c<'0'||c>'7')
            return 
    c-'0';
    }
    int kiemtra(int n)
    {
        
    int i;
        if(
    danhsach[n].maso==0)
        {
            --
    n;return 0;
        }
            if(
    n==0) return 1;
            for(
    i=0;i<n;++i)
                if(
    danhsach[i].maso=danhsach[n].maso) return 0;
                return 
    1;
                
    }
    void nhapdanhsach(int maso[],char hoten[30],char phai[],float diem,unsigned char hang[],struct DANHSACH_HV *psv)//nhap danh sach hoc vien
    {    
        
    int i;
        
    int done=0;
        if(
    kiemtra(n)==0)) ;
        do{
            
    printf("\nNhap ho ten hoc vien" );
            
    gets(danhsach[i].hoten);
            if(
    strlen(hoten)==0)
                
    done=1;
            else
            {
                
    strcpy(psv->danhsach[n].hoten,hoten);
                
    printf("\nMa so:");
                
    scanf("%d",&danhsach[n].maso);
                
    printf("\nPhai:");
                
    gets(danhsach[n].phai);
                
    printf("\nDiem:");
                
    printf("\nHang hoc vien:");
                
    gets(danhsach[n].hang);
                
    n++;
            }
        }while(!
    done);
    }
    void lietke()// liet ke danh sach ra mang hinh duoi dang sau
    {
        
    int i=0;
        if(
    n!=0)
        {
            
    printf("\n+-------+-----------------------+-------+------+-------+");
            
    printf("\n| Maso  |       Ho va ten       | Phai  | Diem |  Hang |");
            for(
    i=0;i<n;i++)
            {
                
    //printf("\n%3d",i+1);
                
    printf("|%3d|%-35s|%-7s|%7f|%7f|",psv->danhsach[i].maso,psv->danhsach[i].hoten,psv->danhsach[i].phai
                    
    ,psv->danhsach[i].diem,psv->danhsach[i].hang);
            }
            
    printf("\n+-------+-----------------------+-------+------+-------+");
            
    getch();
        }
    }
    void sapxep(float diem[],int q,int r)//sap xep hoc vien theo diem tang dan
    {    
        
        
    int i=q,j=r;
        
    int temp;
        
    float x=[(q+r)/2];
        do
        {
            while(
    diem[i]<xi++;
            while(
    diem[j]>xj--;
            if(
    i<=j)
            {
                
    temp=diem[i];
                
    diem[i]=diem[j];
                
    diem[j]=temp;
                
    i++;j--;
            }
        }while(
    i<=j);
        if(
    q<j)
        
    sapxep(diem,q,j);
        if(
    i<r)
        
    sapxep(diem,i,r);
    }
    void sapxepdiem(float diem[],int n)// sap xep theo giai thuat quicksort
    {
        
    sapxep(diem,0,n-1);
    }
    int timkiem(int maso[],int x,int n)//tim kiem hoc vien theo ma so
    {
        
    int i=0;
        
    maso[n]=x;
        while(
    a[i]!=xi++
        if(
    i==n)
            return -
    1;
        else 
            return 
    i;
    }
    void inmasotimkiem(int maso[],int n,struct DANHSACH_HV *psv)//in maso tim kiem vua tim dc
    {
        
    int i=0;
        
    int tk;
        
    HOCVIEN danhsach[max];
        
    tk=timkiem(maso,x,n);
        
    printf("\nIn hoc vien vua tim:");
        
    printf("%d",psv->danhsach[i].maso);
    }
    void nhaphocvien(int diem[],int n,int x)//Nhap them 1 hoc vien ma ko thay doi thu tu
    {
        
    int i,j;
        do
        {
            
    sapxepdiem(diem,n);
            {
                for(
    j=n-1;j>=i;j--)
                    
    diem[j+1]=diem[j];
                
    diem[i]=x;
                
    n++;
            }
        }while(
    i>=0&&i<=n)
    }
    void suadoihocvien(int maso[],char hoten[30],char phai[],float diem[])//sua doi thong tin hoc vien
    {
        
    int i=0,done=0,found,dump[max];
        
    char hotentemp[30];
        while(!
    done)
        {
            if(
    n!=0)
            {
                
    printf("\nHo ten hoc vien can sua:");
                
    gets(hoten);
                if(
    strlen(hoten)==0)
                    
    done=1;
                else
                {
                    
    i=found=0;
                    do
                    {
                        
    strcpy(hotentemp,danhsach[i].hoten);
                        if(
    strcmp(strupr(hoten),strupr(hoten))==0)
                        
    dump[found++]=i;
                        
    i++;
                    }while(
    i<n)
                    if(!
    found)
                        
    printf("\nKhong thay hoc vien co ten %s",hoten);
                    else
                    {
                        for(
    i=0;i<found;i++)
                        {
                            
    printf("%3d%-7s%-7s%4f%s",danhsach[i].maso,danhsach[i].hoten,danhsach[i].phai,
                                
    danhsach[i].diem,danhsach[i].hang);
                        }
                        
    printf("\n\nTim thay %d hoc vien ",found);
                        
    printf("\nChon thu tu can muon sua doi(neu muon huy bo thi chon so khong nam trong pham vi");
                        
    scanf("%d%*c",&i);
                        if(
    i>=1&&i<=found)
                        {
                            
    printf("\n%s\nHo ten:",danhsach[dump[i-1]].hoten);
                            
    gets(danhsach[dump[i-1]].hoten);
                            
    printf("\n%d\nMa so:",danhsach[dump[i-1]].maso);
                            
    scanf("%d",&danhsach[dump[i-1]].maso);
                            
    printf("\n%s\nPhai :",danhsach[dump[i-1]].phai);
                            
    gets(danhsach[dump[i-1]].phai);
                            
    printf("\n%f\ndiem:",danhsach[dump[i-1]].diem);
                            
    scanf("%f",&danhsach[dump[i-1]].diem);
                            
    printf("\nDa thay doi");

                        }
                        else
                            
    printf("\nViec thay doi da huy bo");
                    }
                    
    done=1;
                }
                
                
    getch();
            }
            else 
    done=1;
        }
        
    }    
    void loaihocvien(int maso[],int n)//loai 1 hoc vien ra khoi danh sach
    {
        
    int i,j;
        do
        {
            for(
    int j=i;j<n;j++)
                
    maso[j]=maso[j+1];
            
    n--;
        }while(
    i>=0&&i<=n)
    }
    void main()
    {    
    //    int maso[max];
    //    char hoten[30];
    //    char phai[]="NAM/NU";
    //    float diem[max];
    //    unsigned char hang[max];
        
    int chon,done=0;
        do{
            
    chon=menu();
            switch(
    chon)
            {
                case 
    1:nhapdanhsach(maso,hoten,phai,diem,hang);
                    break;
                case 
    2:lietke();
                    break;
                case 
    3:sapxepdiem(diem,n);
                    break;
                case 
    4:inmasotimkiem(maso,x,n);
                    break;
                case 
    5:nhaphocvien(diem,n,x);
                    break;
                case 
    6:suadoihocvien(maso,hoten,phai,diem);
                    break;
                case 
    7:loaihocvien(maso,n);
            }
        }while(!
    done);

    và đây là bải giải của mình . Mong các pác chỉ giúp thêm , bài này em cảm thấy có nhiểu lỗi sai lắm nên ko tài nào sửa
    SUDDENLY I WANNA CRY

  3. #3
    Ngày gia nhập
    09 2007
    Bài viết
    724

    Bó tay với cu này.....
    cái này bạn phải nói rõ là lỗi gì mọi người mới giúp bạn được chứ...
    nói khơi khơi ai biết đâu mà mò....

  4. #4
    Ngày gia nhập
    08 2008
    Bài viết
    5

    ở chỗ là HOCVIEN danhsach[max] hay báo lỗi mong các bạn giúp đỡ
    SUDDENLY I WANNA CRY

  5. #5
    Ngày gia nhập
    08 2008
    Bài viết
    5

    còn câu e hạng của học viên mình nghĩ hoài hong ra ,bạn nào rãnh về C chỉ mình với
    SUDDENLY I WANNA CRY

  6. #6
    Ngày gia nhập
    09 2007
    Bài viết
    724

    Mặc định Tạo menu học viên

    bó tay với bạn thiệt đó:

    build ra 79 error mà toàn là không đâu không ah;

    dùng dấu ";" hết sức là bừa bãi;

    lưu ý:
    - chổ define không dùng dấu chấm phẩy ';'
    - cuối câu lệnh if không dùng dấu chấm phẩy ';'.
    - chú ý dấu (= và dấu ==).

    còn nữa:

    void nhapdanhsach(int maso[],char hoten[30],char phai[],float diem,unsigned char hang[],struct DANHSACH_HV *psv)

    xong rồi sau đó mang psv đi sang các hàm khác xài.


    thực sự bạn chỉ viết code ra rồi quăng lên nhờ người khác sữa những lỗi cú pháp hết sức căn bản ===> lười, ỷ lại người khác.

    đừng có nói với mọi người là bạn chưa biết nhiều về C/C++ nên nhờ. Thực sự đọc và test bài code của bạn mình thấy bạn cũng từng lập trình(ít nhất là 6 tháng nhưng không phải với C/C++).
    Mình có thể quăng bài của mình đã sửa hết lỗi cho bạn nhưng mình không làm như vậy.
    Theo bản thân mình thì cách học lập trình hay nhất là "code rồi tự sửa lỗi".

    Mong rằng bạn sẽ không trách mình không giúp được gì lại còn nói nhiều ......
    Đã được chỉnh sửa lần cuối bởi zkday2686 : 12-08-2008 lúc 02:35 PM.

  7. #7
    Ngày gia nhập
    08 2008
    Nơi ở
    Liên Bang Nga
    Bài viết
    46

    Viết như bạn tôi thấy không hay, không hay ở chỗ là bạn đã học khá kĩ về C/C++ thì không nên ứng dụng mấy cái mảng tĩnh này nữa. Bạn nên viết một bài dùng cấu trúc động, danh sách liên kết sẽ hay hơn nhiều. Đấy là mình nói trên C, còn nếu lập trình băng C++ thì bạn nên viết thành các lớp, sau đó lập một linked list, có phải là hay hơn viết thế này không? Nếu bạn cần dàn bài, mình có thể кинуть cho bạn, nếu bạn cần code, mình cũng có thể vứt cho bạn.
    Желаю тебе удачи!
    Tôi thường thích những cái gì mà tôi không bao giờ có được...

  8. #8
    Ngày gia nhập
    08 2008
    Bài viết
    2

    Mình thì thấy bài này hoàn toàn rất cơ bản, viết lại thành từ hàm nhỏ rồi kiểm tra kĩ chút là xong thôi mà.
    Đã được chỉnh sửa lần cuối bởi mrWid : 14-05-2011 lúc 06:29 AM.

  9. #9
    Ngày gia nhập
    11 2007
    Bài viết
    4

    __________________________________________________ _
    Đã được chỉnh sửa lần cuối bởi ntrongdangkhoa : 02-01-2010 lúc 01:13 AM.

  10. #10
    Ngày gia nhập
    08 2008
    Nơi ở
    Liên Bang Nga
    Bài viết
    46

    Mình xin lỗi, mình không có ý gì cả. Chỉ có điều, một nguyên tắc của mình đó là rất tôn trọng nổ lực bản thân, mình góp ý thế, để bạn ấy suy nghĩ, nếu bạn ấy tự làm được, đó là một điều rất tốt, còn nếu bạn ấy thực sự cần sự giúp đỡ, thì khi đó chúng ta cùng nhau bắt tay giúp bạn ấy. Bạn có công nhận với mình, đọc code do bản thân mình viết, tự thiết kế, có thấy thích hơn đọc bài của người khác không nào? Còn câu cuối cùng, mình viết bằng tiếng Nga Желаю тебе удачи! = Chúc bạn thành công
    Tôi thường thích những cái gì mà tôi không bao giờ có được...

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

  1. Dựng 1 menu Asp.net bằng thẻ <ul> <li> hay Control [ Menu , SiteMap , Repeater , Treeview]
    Gửi bởi teodainhan trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 8
    Bài viết cuối: 30-05-2013, 01:04 PM
  2. Xây dựng class nhập xuất nhân viên theo menu?
    Gửi bởi fuji13 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: 11-05-2011, 08:13 PM
  3. Menu chương trình quản lí sinh viên
    Gửi bởi ohopoo trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 15-04-2010, 12:37 PM
  4. Lập trình C menu struct sắp xếp sinh viên theo tên
    Gửi bởi cute_pro_xxx trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 26-01-2010, 08:21 AM
  5. Bài tập C quản lí sinh viên. Làm sao để quay lại menu lựa chọn?
    Gửi bởi million trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 11
    Bài viết cuối: 24-10-2009, 02:02 PM

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