Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 3 của 3
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Bài tập quản lý không chạy menu và hàm???

    Chào mọi người,

    Mình đang gặp rắc rối với bài tập quản lý ở lớp. Code không báo lỗi nhưng ko chạy và bị dừng ở phần check input và xuất ra màn hình. Mọi người có thể nhìn qua và cho mình ý kiến nên sửa chỗ nào đựoc không? Thanks các bạn rất nhiều vì đã bỏ thời gian đọc code dài này
    Bài tập không quá phức tạp nhưng mình phải tự học hoàn toàn nên nhiều chỗ không rõ ràng lắm, có gì mong các bạn giúp đỡ thêm

    Đề: nhập thông tin cho 5 nhân viên. Tạo menu: thêm, chỉnh sửa, in ra 1, in ra tất cả và thoát chuơng trình. Trong quá trình nhập nv, nếu user nhập -1 thì code cũng tự động thoat.


    Code:

    #include<stdio.h>
    #include<stdlib.h>
    #include<conio.h>
    #include <string.h>
    #define EMPLOYEE 5
    #define NAME 40

    typedef struct employee
    {
    char name[NAME];
    float hours, rate;
    }ep, aem[EMPLOYEE];
    int i;
    //check to see if array is empty
    int check(aem a, int*p, ep n)
    {
    int j;
    for (j = 0; j < *p - 1; j++)
    {
    if (strcmp(a, "") == 0)
    printf("No employee entered yet");
    return j;
    }return j - 1;
    }

    int addemp(aem a, int *p)
    {
    ep empadd;
    printf("Name:
    ");
    scanf_s("%s", empadd.name, 40);
    if (strcmp(empadd.name, "-1") == 0)
    return 0;

    printf("Hours:
    ");

    scanf_s("%f", empadd.hours);
    fflush(stdin);

    if (empadd.hours = -1)
    return 0;

    printf("Rate:
    ");

    scanf_s("%f", empadd.rate);
    fflush(stdin);
    if (empadd.rate = -1)
    return 0;

    a[*p] = empadd;
    *p = *p + 1;

    }
    void menu()
    {
    int menuinput = 0;
    fflush(stdin);
    printf("1. Add Employee:
    2. Edit Employee:
    3. Print Employee:
    4. Print All Employee:
    5. Exit:
    ");

    }



    void printone(aem a, int *p)
    {
    int c = 0;
    ep empchoose = { "\0", 0.0f, 0.0f };
    printf("Choose an employee:
    ");
    do
    {
    c = check(a, p, empchoose);
    if (c != -1)
    menu();
    } while (1);
    {printf("Name: %s\tHours: %d\tRate: %d
    ", a[c].name, a[c].hours, a[c].rate);
    }
    }
    //edit employee
    void edit(aem a, int *p)
    {
    int d;
    ep empedit = { "\0", 0.0f, 0.0f };
    do
    {
    d = check(a, p, empedit);
    if (d != -1)
    break;

    } while (1);
    {
    printf("Name:
    ");
    fflush(stdin);
    scanf_s("%s", empedit.name, NAME);
    printf("Hour:
    ");
    fflush(stdin);
    scanf_s("%f", empedit.hours);
    printf("Rate:");
    fflush(stdin);
    scanf_s("%f", empedit.rate);
    }
    }

    //print all employee
    void printall(aem a, int p)
    {
    int e;
    for (e = 0; e <= p - 1; e++)
    {
    printf("Name: %s\tHours: %d\tRate: %d
    ", a[e].name, a[e].hours, a[e].rate);
    }
    }

    //print one employee

    void main()
    {
    aem m = { "\0", 0.0f, 0.0f };
    int n = 0;
    int input = 0;
    menu();
    printf("Enter option: ");
    scanf_s("%d", &input);
    switch (input)
    {
    case 1:
    addemp(m, &n);
    case 2:
    edit(m, &n);
    break;
    case 3:
    printone(m, &n);
    break;
    case 4:
    printall(m, n);
    break;

    default:
    printf("Not support.
    ");
    break;
    }
    }

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    inbox để mình teamviewer debug cho lẹ !
    skype : locnt1195

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi kusoipro
    inbox để mình teamviewer debug cho lẹ !
    skype : locnt1195
    Thanks bạn nhiều. mình vừa inbox bạn, bạn có thể nhìn lại code cho mình ko? Thanks! [IMG]images/smilies/smile.png[/IMG]

 

 

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
  •