User Tag List

+ Trả lời chủ đề
Hiện kết quả từ 1 tới 3 của 3

Chủ đề: lập trình C++

  1. #1
    svBK's Newbie Avatar của littlegirl
    Tham gia ngày
    Dec 2011
    Bài gửi
    5

    Icon5 lập trình C++

    e k biết viết code của đề sắp xếp danh sách sinh viên theo họ và tên, ai giúp e với ạ

  2. #2
    Điều hành viên Avatar của iexplore
    Tham gia ngày
    Sep 2010
    Bài gửi
    208

    Mặc định Re: lập trình C++

    Bài dưới gồm nhiều hàm, trong đó có cả hàm daoXau() và xepTen() mà bạn cần
    PHP Code:
    #include <stdio.h>
    #include <conio.h>
    #include <string.h>
    int n;
    struct {
       
    char hoten[30], lop[10];
       
    int d;
    hs[100], tg;

    void nhap();
    void ktHo();
    void locDiem(float);
    void xepDiem();
    void xepTen();
    void daoXau(char s[]);
    int main()
    {
       
    float x;
       
    nhap();
       
    ktHo();
       
    printf("\nNhap mot so thuc: "); 
       
       
    scanf("%f", &x);
       
    locDiem(x);
       
        
    xepDiem();
       
    xepTen();
       
    getch();
    }

    void nhap()
    {
       
    int i;
       
    printf("Nhap so luong sinh vien n = ");
       
    scanf("%d", &n);
       for (
    i=0i<ni++)
       {
          
    printf("-------------------------\n");
          
    printf("Nhap thong tin sinh vien thu %d\n"i);
          
    printf("Ho va ten: ");
          
    fflush(stdin); 
          
    fgets(hs[i].hoten30stdin);
          
    printf("Lop: "); 
          
    fgets(hs[i].lop10stdin);
          
    hs[i].11;
          while (
    hs[i].d<|| hs[i].d>10)
          {
             
    printf("Diem thi tin dai cuong: "); 
             
    scanf("%d", &hs[i].d);
             if (
    hs[i].d<|| hs[i].d>10)
                
    printf("Co loi! Hay nhap lai diem thi. \n");
          }
       }
          
    printf("---------------------------------------\n");
    }

    void ktHo()
    {
       
    char ho[6], t[6];
       
    int ij;
       
    fflush(stdin);
       
    printf("\nNhap mot ho: "); 
       
    gets(ho);
       
    printf("Nhung nguoi co ho ' %s 'la: \n"ho);
       for (
    i=0i<ni++)
       {
          if (
    strncmp(hohs[i].hotenstrlen(ho))==0)
             
    printf("%s\n"hs[i].hoten);
       }
       
    printf("---------------------------------------");
    }

    void locDiem(float x)
    {
       
    int i;
       
    printf("\nNhung nguoi co diem nho hon %.2f la: \n"x);
       for (
    i=0i<ni++)
          if (
    hs[i].d<x)
             
    printf("%s\n"hs[i].hoten);
       
    printf("---------------------------------------\n");
    }

    void xepDiem()
    {
       
    int ij;
       
    printf("\nSap xep sinh vien theo chieu giam dan cua diem thi Tin dai cuong: \n");
       for (
    j=n-1j>0j--)
          for (
    i=0i<ji++)
             if (
    hs[i].d<hs[i+1].d)
             {
                
    tg hs[i];
                
    hs[i] = hs[i+1];
                
    hs[i+1] = tg;
             }
       for (
    i=0i<ni++)
          
    printf("%s\n"hs[i].hoten);
       
    printf("---------------------------------------\n");
    }

    void daoXau(char s[])
    {
        
    /*Chuong trinh dao nguoc xau:
        Vi du:
            Toi ten la Khanh -> Khanh la ten Toi
        */
        
    char s1[50]=" "t[50], s2[50];
        
    int ij=0k=0a[10], m;
        
    strcat(s," ");
        
    strcat(s1,s);// s = " Toi ten la Khanh "
        
    for (i=strlen(s1)-1i>=0i--)
           if (
    s1[i]==' ')
           {
                
    a[k] = i;
                
    k++;
          }
        
    // k = so dau cach trong xau
        // Dao nguoc xau
        
    for (i=0i<k-1i++)
        {
            for (
    m=a[i+1]+1m<=a[i]; m++) 
            {    
                
    t[j]=s1[m];
                
    j++;
            }
        }
       
    strncpy(s2tstrlen(s));
       
    strcpy(ss2);
    }

    void xepTen()
    {
       
    int ij;
       
    char str1[30], str2[30];
       for (
    i=n-1i>0i--)
          for (
    j=0j<ij++)
          {
             
    strcpy(str1hs[j].hoten);
             
    strcpy(str2hs[j+1].hoten);
             
    daoXau(str1);
             
    daoXau(str2);
             if (
    strcmp(str1str2)>0)
             {
                
    tg hs[j];
                
    hs[j] = hs[j+1];
                
    hs[j+1] = tg;
             }
          }
       
    printf("Danh sach sinh vien voi ho ten sap xep theo bang chu cai: \n");
       for (
    i=0i<ni++)
          
    printf("%s\n"hs[i].hoten);
       
    printf("---------------------------------------\n");


  3. #3
    Chia sẻ Tri thức Avatar của Francisco
    Tham gia ngày
    Sep 2010
    Bài gửi
    90

    Mặc định Re: lập trình C++

    Mình có đoạn code này: áp dụng cho tên tối đa ba chữ cái( Họ- đệm- Tên), riêng phần đệm nếu có tối đa 2 chữ hay k chữ thì thêm k lần đoạn code sau:
    PHP Code:
    else if(p=strchr(sv[i].ten,' ')){p=p+k;
                                              
    strcpy(sinvie[dem].ten,p);dem++;} 
    Sắp xếp danh sách sinh viên theo bảng chữ cái:
    PHP Code:
    #include<conio.h>
    #include<stdio.h>
    #include<string.h>
    struct ho_ten
    {
           
    char ten[25];
    };
    int main()
    {
        
    struct ho_ten sv[10];
        
    struct ho_ten sinvie[10];
        
    int n,i,dem=0;
        
    char *p;
        do
        {
              
    printf("\nNhap vao so sinh vien khong qua 10, n = ");
              
    scanf("%d",&n);
        }
        while(
    n<1||n>10);
        
    printf("\nNhap danh sach cac sinh vien:");
        for(
    i=0;i<n;i++)
        {
                        
    printf("\nSinh vien thu %d",i+1);fflush(stdin);
                        
    gets(sv[i].ten);
                        if(
    strchr(sv[i].ten,' ')==NULL){
                                              
    strcpy(sinvie[dem].ten,sv[i].ten);dem++;
                                              }
                        else if(
    p=strchr(sv[i].ten,' ')){p=p+1;
                                              
    strcpy(sinvie[dem].ten,p);dem++;}
                        else
                        {
                            
    p=strrchr(sv[i].ten,' ');p=p+1;
                            
    strcpy(sinvie[dem].ten,p);dem++;
                        };
        }
        
    struct ho_ten tmp;
        
    int j;
        for(
    i=0;i<n-1;i++)
        {
                        for(
    j=i+1;j<n;j++)
                        {
                                        if(
    strcmp(sinvie[i].ten,sinvie[j].ten)>0)
                                        {
                                                                                   
    tmp=sv[i];sv[i]=sv[j];sv[j]=tmp;
                                                                                   
    tmp=sinvie[i];sinvie[i]=sinvie[j];sinvie[j]=tmp;
                                                                                   
                                        }
                        }
        }
        
    printf("\nDanh sach lop xep theo thu tu chu cai: \n");
        for(
    i=0;i<n;i++)
        
    puts(sv[i].ten);
        
    getch();
        return 
    0;

    ~/http://sonkimdinhhust.wordpress.com/
    Franicso
    >_


+ Trả lời chủ đề

Thông tin chủ đề

Users Browsing this Thread

Hiện có 1 người đọc bài này. (0 thành viên và 1 khách)

Từ khóa (Tag) của chủ đề này

Quyền viết bài

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


About svBK.VN

    Bách Khoa Forum - Diễn đàn thảo luận chung của sinh viên ĐH Bách Khoa Hà Nội. Nơi giao lưu giữa sinh viên - cựu sinh viên - giảng viên của trường.

Follow us on

Twitter Facebook youtube