用C++写一个合同管理系统,合同的基本信息包括:合同编号、合同签订甲方、合同签订乙方、合同内容、合同有效期限(开始 时间)、合同有效期限(结束时间)、金额、签订日期 功能要求:
时间: 2023-10-06 20:09:28 浏览: 53
好的,我可以给您提供一些思路和指导。
首先,您可以定义一个结构体来表示合同的基本信息,如下所示:
```c
struct Contract {
char number[20]; // 合同编号
char partyA[50]; // 合同签订甲方
char partyB[50]; // 合同签订乙方
char content[100]; // 合同内容
char startDate[20]; // 合同有效期限(开始时间)
char endDate[20]; // 合同有效期限(结束时间)
double amount; // 金额
char signDate[20]; // 签订日期
};
```
然后,您可以设计一个菜单界面,让用户能够进行相关操作,如添加合同、删除合同、修改合同、查询合同等。
接下来,我会给您提供一些关于各种功能的实现思路:
1. 添加合同
用户输入合同的基本信息,程序将其保存到一个文件中。
```c
void addContract() {
struct Contract contract;
printf("请输入合同编号:");
scanf("%s", contract.number);
printf("请输入合同签订甲方:");
scanf("%s", contract.partyA);
printf("请输入合同签订乙方:");
scanf("%s", contract.partyB);
printf("请输入合同内容:");
scanf("%s", contract.content);
printf("请输入合同有效期限(开始时间):");
scanf("%s", contract.startDate);
printf("请输入合同有效期限(结束时间):");
scanf("%s", contract.endDate);
printf("请输入金额:");
scanf("%lf", &contract.amount);
printf("请输入签订日期:");
scanf("%s", contract.signDate);
FILE *fp;
fp = fopen("contracts.txt", "a");
fprintf(fp, "%s %s %s %s %s %s %lf %s\n", contract.number, contract.partyA, contract.partyB, contract.content,
contract.startDate, contract.endDate, contract.amount, contract.signDate);
fclose(fp);
printf("添加成功!\n");
}
```
2. 删除合同
用户输入合同编号,程序在文件中查找该合同并删除。
```c
void deleteContract() {
char number[20];
printf("请输入要删除的合同编号:");
scanf("%s", number);
FILE *fp1, *fp2;
fp1 = fopen("contracts.txt", "r");
fp2 = fopen("temp.txt", "w");
struct Contract contract;
int found = 0;
while (fscanf(fp1, "%s %s %s %s %s %s %lf %s", contract.number, contract.partyA, contract.partyB,
contract.content, contract.startDate, contract.endDate, &contract.amount,
contract.signDate) != EOF) {
if (strcmp(contract.number, number) != 0) {
fprintf(fp2, "%s %s %s %s %s %s %lf %s\n", contract.number, contract.partyA, contract.partyB,
contract.content, contract.startDate, contract.endDate, contract.amount,
contract.signDate);
} else {
found = 1;
}
}
fclose(fp1);
fclose(fp2);
if (found) {
remove("contracts.txt");
rename("temp.txt", "contracts.txt");
printf("删除成功!\n");
} else {
remove("temp.txt");
printf("找不到该合同!\n");
}
}
```
3. 修改合同
用户输入合同编号和要修改的信息,程序在文件中查找该合同并修改。
```c
void modifyContract() {
char number[20];
printf("请输入要修改的合同编号:");
scanf("%s", number);
FILE *fp1, *fp2;
fp1 = fopen("contracts.txt", "r");
fp2 = fopen("temp.txt", "w");
struct Contract contract;
int found = 0;
while (fscanf(fp1, "%s %s %s %s %s %s %lf %s", contract.number, contract.partyA, contract.partyB,
contract.content, contract.startDate, contract.endDate, &contract.amount,
contract.signDate) != EOF) {
if (strcmp(contract.number, number) != 0) {
fprintf(fp2, "%s %s %s %s %s %s %lf %s\n", contract.number, contract.partyA, contract.partyB,
contract.content, contract.startDate, contract.endDate, contract.amount,
contract.signDate);
} else {
found = 1;
printf("请输入新的合同签订甲方:");
scanf("%s", contract.partyA);
printf("请输入新的合同签订乙方:");
scanf("%s", contract.partyB);
printf("请输入新的合同内容:");
scanf("%s", contract.content);
printf("请输入新的合同有效期限(开始时间):");
scanf("%s", contract.startDate);
printf("请输入新的合同有效期限(结束时间):");
scanf("%s", contract.endDate);
printf("请输入新的金额:");
scanf("%lf", &contract.amount);
printf("请输入新的签订日期:");
scanf("%s", contract.signDate);
fprintf(fp2, "%s %s %s %s %s %s %lf %s\n", contract.number, contract.partyA, contract.partyB,
contract.content, contract.startDate, contract.endDate, contract.amount,
contract.signDate);
}
}
fclose(fp1);
fclose(fp2);
if (found) {
remove("contracts.txt");
rename("temp.txt", "contracts.txt");
printf("修改成功!\n");
} else {
remove("temp.txt");
printf("找不到该合同!\n");
}
}
```
4. 查询合同
用户输入要查询的合同编号,程序在文件中查找该合同并输出。
```c
void searchContract() {
char number[20];
printf("请输入要查询的合同编号:");
scanf("%s", number);
FILE *fp;
fp = fopen("contracts.txt", "r");
struct Contract contract;
int found = 0;
while (fscanf(fp, "%s %s %s %s %s %s %lf %s", contract.number, contract.partyA, contract.partyB,
contract.content, contract.startDate, contract.endDate, &contract.amount,
contract.signDate) != EOF) {
if (strcmp(contract.number, number) == 0) {
found = 1;
printf("合同编号:%s\n", contract.number);
printf("合同签订甲方:%s\n", contract.partyA);
printf("合同签订乙方:%s\n", contract.partyB);
printf("合同内容:%s\n", contract.content);
printf("合同有效期限(开始时间):%s\n", contract.startDate);
printf("合同有效期限(结束时间):%s\n", contract.endDate);
printf("金额:%lf\n", contract.amount);
printf("签订日期:%s\n", contract.signDate);
break;
}
}
fclose(fp);
if (!found) {
printf("找不到该合同!\n");
}
}
```
以上是一个简单的合同管理系统的实现思路。当然,您可以根据实际需求进行更改和完善。
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)