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

Đề tài: String và mảng song song (parallel arrays)

  1. #1
    Ngày gia nhập
    03 2023
    Bài viết
    0

    Mặc định String và mảng song song (parallel arrays)

    Số liệu về nhân viên: Mã số (kiểu char 8), tên (kiểu char 20), mức lương (kiểu double), phụ cấp (kiểu double)
    • Phát triển một chương trình C cho phép người sử dụng:
    - Thêm một nhân viên mới
    - Tìm dữ liệu về nhân viên sử dụng tên được nhập.
    - Loại bỏ một nhân viên dựa trên một mã được nhập vào
    - In danh sách theo thứ tự giảm dần theo mức lương + phụ cấp.
    C++ Code:
    1. #include<stdio.h>
    2. #include<stdlib.h>
    3. #include<string.h>
    4. #define MAXN 50
    5.  
    6. void add (char codes [] [9], char names [][21], double salaries[], double allowances[], int *pn) {
    7.     if ((*pn)==MAXN) puts ("Array is full!!!");
    8.     else {
    9.         char id[9]; char emp[21];
    10.         int s; int a;
    11.         printf ("Adding a new employ code: ");
    12.         fflush (stdin);
    13.         scanf ("%8[^\n]", id);
    14.         printf ("Adding a new employee: ");
    15.         fflush (stdin);
    16.         scanf ("%20[^\n]", emp);
    17.         printf ("Enter the salary: ");
    18.         scanf ("%d", &s);
    19.         printf ("Enter the allowance: ");
    20.         scanf ("%d", &a);
    21.         strcpy (codes[*pn], id);
    22.         strcpy (names[*pn], emp);
    23.         salaries[*pn] =s; allowances[*pn] =a;
    24.         (*pn)++;    
    25. }
    26. int find ( char code, char codes [] [9], int n ) {
    27.     int i;
    28.     for (i=0; i<n; i++) if (codes[i]==codes) return i;
    29. }
    30. void removeOne (int pos, char code[], char codes [] [9], char names [][21], double salaries[], double allowances[], int *pn ) {
    31.     if (pos<0 || pos >=*pn) return 0;
    32.     int i;
    33.     for (i=pos; i<*pn-1; i++) codes[i]==codes[i+1];
    34.     (*pn)--;
    35. }
    36. void sort (char codes [] [9], char names [][21], double salaries[], double allowances[], int n) {
    37.         int i, j;
    38.     for (i=0; i<n-1; i++)
    39.         for (j=n-1; j>i; j--) {
    40.             int cc= strcmp (codes[j], codes [j-1]);
    41.             int cn= strcmp (names[j], names [j-1]);
    42.                 if (salaries[j] + allowances[j]< salaries[j-1] + allowances[j-1])  
    43.                  {
    44.                     char c[9];
    45.                     strcpy (c, codes[j]);
    46.                     strcpy(codes [j], codes[j-1]);
    47.                     strcpy(codes[j-1], c);
    48.                     char m[21];
    49.                     strcpy (m, names[j]);
    50.                     strcpy(names [j], names[j-1]);
    51.                     strcpy(names[j-1], m);
    52.                    
    53.                     double sa = salaries[j];
    54.                     salaries[j]= salaries[j-1];
    55.                     salaries[j-1]=sa;
    56.                     double al = allowances[j];
    57.                     allowances[j]= allowances[j-1];
    58.                     allowances[j-1]=al;        
    59.                 }  
    60.         }
    61. }
    62. void print (char codes [] [9], char names [][21], double salaries[], double allowances[], int n) {
    63.     int i;
    64.     for (i=0; i<n; i++)
    65.         printf ("%-8s,%-20s, %10.2lf,%10.2lf\n", codes[i], names[i], salaries[i], allowances[i]);
    66. }
    67. int main () {
    68.     char code[MAXN] [9];
    69.     char names[MAXN][21];
    70.     double salaries[MAXN];
    71.     double allowances[MAXN];
    72.     int x;
    73.     int n=0;
    74.     int i=0;
    75.     printf ("The number of employee is: ");
    76.     scanf ("%d", &x);
    77.     for (i=1; i<=x; i++) add(codes, names, salaries, allowances, &n);
    78.     sort(codes, names, salaries, allowances, n);
    79.     print (codes, names, salaries, allowances, n);
    80.     system ("pause");
    81.     return 0;
    82. }
    Đã được chỉnh sửa lần cuối bởi MHoang : 13-03-2023 lúc 09:32 AM. Lý do: Chỉnh khung mã

  2. #2
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    663

    Trích dẫn Nguyên bản được gửi bởi Neyut24 Xem bài viết
    Số liệu về nhân viên: Mã số (kiểu char 8), tên (kiểu char 20), mức lương (kiểu double), phụ cấp (kiểu double)
    • Phát triển một chương trình C cho phép người sử dụng:
    - Thêm một nhân viên mới
    - Tìm dữ liệu về nhân viên sử dụng tên được nhập.
    - Loại bỏ một nhân viên dựa trên một mã được nhập vào
    - In danh sách theo thứ tự giảm dần theo mức lương + phụ cấp.
    C++ Code:
    1. #include<stdio.h>
    2. #include<stdlib.h>
    3. #include<string.h>
    4. #define MAXN 50
    5.  
    6. void add (char codes [] [9], char names [][21], double salaries[], double allowances[], int *pn) {
    7.     if ((*pn)==MAXN) puts ("Array is full!!!");
    8.     else {
    9.         char id[9]; char emp[21];
    10.         int s; int a;
    11.         printf ("Adding a new employ code: ");
    12.         fflush (stdin);
    13.         scanf ("%8[^\n]", id);
    14.         printf ("Adding a new employee: ");
    15.         fflush (stdin);
    16.         scanf ("%20[^\n]", emp);
    17.         printf ("Enter the salary: ");
    18.         scanf ("%d", &s);
    19.         printf ("Enter the allowance: ");
    20.         scanf ("%d", &a);
    21.         strcpy (codes[*pn], id);
    22.         strcpy (names[*pn], emp);
    23.         salaries[*pn] =s; allowances[*pn] =a;
    24.         (*pn)++;    
    25. }
    26. int find ( char code, char codes [] [9], int n ) {
    27.     int i;
    28.     for (i=0; i<n; i++) if (codes[i]==codes) return i;
    29. }
    30. void removeOne (int pos, char code[], char codes [] [9], char names [][21], double salaries[], double allowances[], int *pn ) {
    31.     if (pos<0 || pos >=*pn) return 0;
    32.     int i;
    33.     for (i=pos; i<*pn-1; i++) codes[i]==codes[i+1];
    34.     (*pn)--;
    35. }
    36. void sort (char codes [] [9], char names [][21], double salaries[], double allowances[], int n) {
    37.         int i, j;
    38.     for (i=0; i<n-1; i++)
    39.         for (j=n-1; j>i; j--) {
    40.             int cc= strcmp (codes[j], codes [j-1]);
    41.             int cn= strcmp (names[j], names [j-1]);
    42.                 if (salaries[j] + allowances[j]< salaries[j-1] + allowances[j-1])  
    43.                  {
    44.                     char c[9];
    45.                     strcpy (c, codes[j]);
    46.                     strcpy(codes [j], codes[j-1]);
    47.                     strcpy(codes[j-1], c);
    48.                     char m[21];
    49.                     strcpy (m, names[j]);
    50.                     strcpy(names [j], names[j-1]);
    51.                     strcpy(names[j-1], m);
    52.                    
    53.                     double sa = salaries[j];
    54.                     salaries[j]= salaries[j-1];
    55.                     salaries[j-1]=sa;
    56.                     double al = allowances[j];
    57.                     allowances[j]= allowances[j-1];
    58.                     allowances[j-1]=al;        
    59.                 }  
    60.         }
    61. }
    62. void print (char codes [] [9], char names [][21], double salaries[], double allowances[], int n) {
    63.     int i;
    64.     for (i=0; i<n; i++)
    65.         printf ("%-8s,%-20s, %10.2lf,%10.2lf\n", codes[i], names[i], salaries[i], allowances[i]);
    66. }
    67. int main () {
    68.     char code[MAXN] [9];
    69.     char names[MAXN][21];
    70.     double salaries[MAXN];
    71.     double allowances[MAXN];
    72.     int x;
    73.     int n=0;
    74.     int i=0;
    75.     printf ("The number of employee is: ");
    76.     scanf ("%d", &x);
    77.     for (i=1; i<=x; i++) add(codes, names, salaries, allowances, &n);
    78.     sort(codes, names, salaries, allowances, n);
    79.     print (codes, names, salaries, allowances, n);
    80.     system ("pause");
    81.     return 0;
    82. }
    Hàm removeOne để làm gì vậy?

Tags của đề tài này

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