实验六

实验一:已完成

实验二: 已完成

实验三: 已完成

实验四:

 1 void output(Book x[], int n) {
 2     int i;
 3     printf("ISBN编号\t\t书名\t\t\t\t作者\t\t售价\t\t销售册数\n");
 4     for (i = 0; i < n; i++)
 5         printf("%s\t%s\t\t\t%s\t\t%lf\t\t%d\n",x[i].isbn, x[i].name, x[i].author, x[i].sales_price, x[i].sales_count);
 6 }
 7 
 8 
 9 
10 void sort(Book x[], int n) {
11     Book t;
12     int i, j;
13     for (i=0;i<n-1;i++)
14         for (j=0;j<n-i-1;j++)
15             if (x[j].sales_count < x[j + 1].sales_count) {
16                 t = x[j];
17                 x[j] = x[j + 1];
18                 x[j + 1] = t;
19             }
20 }
21 
22 
23 double sales_amount(Book x[], int n) {
24     int i;
25     double sum = 0;
26     for (i = 0; i < n; i++)
27         sum += x[i].sales_price * x[i].sales_count;
28     return sum;
29 }
View Code

实验五:

 1 void input(Date *pd) {
 2     scanf_s("%d-%d-%d", &pd->year, &pd->month, &pd->day);
 3 }
 4 
 5 
 6 int day_of_year(Date d) {
 7     int sum = 0;
 8     int Feb = 28;
 9     if (d.year % 4 == 0 )Feb = 29;
10     if(d.year % 100 == 0)Feb = 28;
11     if (d.year % 400 == 0)Feb = 29;
12     sum += d.month / 2 * 31 +((d.month-1)/2-1)*30+ d.day;
13     if (d.month > 2)sum += Feb;
14     return sum;
15 }
16 
17 
18 int compare_dates(Date d1, Date d2) {
19     int a, b, c;
20     a = (d1.year > d2.year ? 1 : d1.year == d2.year ?0:-1);
21     b= (d1.month > d2.month ? 1 : d1.month == d2.month ? 0 : -1);
22     c= (d1.day > d2.day ? 1 : d1.day == d2.day ? 0 : -1);
23     if (a)return a;
24     else if (b) return b;
25     else if (c) return c;
26     else return 0;
27 
28 }
View Code

实验六:

 1 void output(Account x[], int n) {
 2     int i;
 3     int k;
 4     for (i = 0; i < n; i++) {
 5         k = strlen(x[i].password);
 6         printf("%s\t\t", x[i].username);
 7         for (k; k >= 0; k--)
 8             printf("*");
 9         printf("  \t\t\t");
10         switch (x[i].type) {
11         case admin:    printf("admin"); break;
12         case student:  printf("student"); break;
13         case teacher:  printf("teacher"); break;
14         }
15             printf("\n");
16     }
17 }
View Code

实验七:

 1 void set_vip_contact(Contact x[], int n, char name[]) {
 2     int i;
 3     for (i = 0; i < n; i++) 
 4         if (strcmp(x[i].name, name)==0)x[i].vip = 1;
 5 }
 6 
 7 void display(Contact x[], int n) {
 8     int i,j;
 9     Contact k;
10     for(i=0;i<n-1;i++)
11         for(j=0;j<n-i-1;j++)
12             if (strcmp(x[j].name, x[j + 1].name)>0) {
13                 k = x[j];
14                 x[j] = x[j + 1];
15                 x[j + 1] = k;
16             }
17     for (i = 0; i < n; i++)
18         if (x[i].vip == 1) printf("%-10s%-15s %5s\n", x[i].name, x[i].phone,"*" );
19     for(i = 0; i < n; i++)
20         if (x[i].vip == 0) printf("%-10s%-15s\n", x[i].name, x[i].phone);
21 }
View Code

 

posted @ 2026-06-10 16:48  郑云翔  阅读(3)  评论(0)    收藏  举报