1)制作info.c,main.c,score.c,show.c源代码文件以及相应的头文件。 2)main.c文件中仅有main函数,main函数仅调用show函数实现个人信息以及上学期各门课程平均分打印输出。 3)show.c文件中仅有show函数实现。 4)info.c文件中仅有info函数,调用printf打印输出学号,调用puts打印输出姓名,班级。 5)score.c文件中仅有score函数,计算学生本人上学期各门课程的平均分。 6)制作info.o,score.o,show.o文件,分别制作静态库libinformation.a以及动态库libinformation.so 7)分别使用静态库以及动态库编译运行main.c
时间: 2023-06-18 09:06:10 浏览: 48
以下是相应的代码和步骤:
1. info.c
```c
#include <stdio.h>
void info() {
printf("学号:2021000000\n");
puts("姓名:张三");
puts("班级:计算机科学与技术");
}
```
2. score.c
```c
double score[] = {85.5, 90.0, 92.5, 88.0, 95.5, 80.0};
double get_average() {
double sum = 0.0;
for (int i = 0; i < 6; i++) {
sum += score[i];
}
return sum / 6;
}
```
3. show.c
```c
#include "info.h"
#include "score.h"
void show() {
info();
printf("上学期各门课程平均分为:%.2lf\n", get_average());
}
```
4. info.h
```c
#ifndef _INFO_H_
#define _INFO_H_
void info();
#endif
```
5. score.h
```c
#ifndef _SCORE_H_
#define _SCORE_H_
double get_average();
#endif
```
6. main.c
```c
#include "show.h"
int main() {
show();
return 0;
}
```
7. 编译生成静态库和动态库
```shell
gcc -c info.c -o info.o
gcc -c score.c -o score.o
gcc -c show.c -o show.o
ar rcs libinformation.a info.o score.o show.o
gcc main.c -L. -linformation -o main_static
gcc -shared -o libinformation.so info.o score.o show.o
gcc main.c -L. -linformation -o main_dynamic
```
8. 运行
```shell
./main_static
./main_dynamic
```
以上代码实现了一个简单的信息显示和成绩计算程序,并生成了静态库和动态库供主程序调用。