C语言编写船舶管理系统
时间: 2023-07-09 12:03:40 浏览: 130
船舶管理系统是一个相对复杂的系统,需要考虑到许多方面,如船舶信息的录入、查询、修改与删除,船员的管理、航行计划的制定、航行日志的记录等等。
以下是一个简单的船舶管理系统的实现思路,可以供您参考:
1. 设计数据结构
首先需要设计船舶和船员的数据结构,可以使用结构体来表示。例如:
```
typedef struct {
char name[50];
char type[50];
int tonnage;
int capacity;
} Ship;
typedef struct {
char name[50];
int age;
char gender[10];
char position[50];
} Crew;
```
2. 实现基本功能
接下来需要实现基本的功能,如船舶信息的录入、查询、修改与删除,船员的管理等。可以使用文件来存储数据,例如:
```
void add_ship() {
FILE *fp;
Ship s;
fp = fopen("ships.dat", "ab");
printf("Enter ship name: ");
scanf("%s", s.name);
printf("Enter ship type: ");
scanf("%s", s.type);
printf("Enter ship tonnage: ");
scanf("%d", &s.tonnage);
printf("Enter ship capacity: ");
scanf("%d", &s.capacity);
fwrite(&s, sizeof(Ship), 1, fp);
fclose(fp);
}
void search_ship() {
FILE *fp;
Ship s;
char name[50];
printf("Enter ship name: ");
scanf("%s", name);
fp = fopen("ships.dat", "rb");
while (fread(&s, sizeof(Ship), 1, fp)) {
if (strcmp(s.name, name) == 0) {
printf("Ship name: %s\n", s.name);
printf("Ship type: %s\n", s.type);
printf("Ship tonnage: %d\n", s.tonnage);
printf("Ship capacity: %d\n", s.capacity);
break;
}
}
fclose(fp);
}
```
3. 实现高级功能
除了基本功能之外,还可以实现一些高级功能,如航行计划的制定、航行日志的记录等。例如:
```
typedef struct {
char start[50];
char destination[50];
char date[20];
} Voyage;
typedef struct {
char ship_name[50];
char crew_name[50];
char date[20];
} Log;
void add_voyage() {
FILE *fp;
Voyage v;
fp = fopen("voyages.dat", "ab");
printf("Enter start port: ");
scanf("%s", v.start);
printf("Enter destination port: ");
scanf("%s", v.destination);
printf("Enter date: ");
scanf("%s", v.date);
fwrite(&v, sizeof(Voyage), 1, fp);
fclose(fp);
}
void add_log() {
FILE *fp;
Log l;
fp = fopen("logs.dat", "ab");
printf("Enter ship name: ");
scanf("%s", l.ship_name);
printf("Enter crew name: ");
scanf("%s", l.crew_name);
printf("Enter date: ");
scanf("%s", l.date);
fwrite(&l, sizeof(Log), 1, fp);
fclose(fp);
}
```
当然,这只是一个简单的示例,实际开发中还需要考虑到很多细节问题,如数据校验、数据关联、用户权限管理等等。
阅读全文