房屋销售/楼盘管理信息系统(c课设/大作业)

// 全部代码请咨询qq 3233963554
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_N 40                    //系统所能存储数据的最大值:可根据需要修改 

//楼盘销售结构体 
struct building {
	char bNumber[10];                   //楼编号 
	char uNumber[10];                   //单元号
	char fNumber[10];                   //房间号
	char orientation[10];               //朝向
	char houseType[10];                 //户型
	double unitPrice;                   //单价
	double area;                        //面积
	double totalPrice;                  //总价 
	double successPrice;                //成交额 
	char soldStatus[10];                //售出状态
	char salesMan[10];                  //业务员 
};

//全局变量定义
struct building b[MAX_N];         //楼盘销售结构体数组 
int n;                            //系统当前存储数据的值

//函数声明
void read();                     //外部读入
void write();                    //外部写出
void insert();                   //录入
void del();                      //删除
void update();                   //修改
void display();                  //显示
void selectMenu();               //查询菜单
void selectByOrientation();      //通过朝向、户型进行查询 
void selectByArea();             //通过建筑面积范围进行查询 
void selectByNoSell();           //通过未售出房源进行查询 
void mainMenu();                 //主菜单

int main() {
	mainMenu();
	return 0;
} 

void read() {
	FILE *fp = fopen("building.txt", "r");  //文件打开
	//判断文件打开是否正确 
	if (!fp) {
		printf("文件打开错误!\n");
		exit(1);
	}
	int cnt = 0;
	//从头到位读入文件内容 
	while (!feof(fp)) {
		fscanf(fp, "%s%s%s%s%s%lf%lf%lf%lf%s%s", b[cnt].bNumber, b[cnt].uNumber, b[cnt].fNumber, b[cnt].orientation, 
		b[cnt].houseType, &b[cnt].unitPrice, &b[cnt].area, &b[cnt].totalPrice, &b[cnt].successPrice, b[cnt].soldStatus, 
		b[cnt].salesMan);
		cnt++;
	}
	n = cnt;
	fclose(fp);	
}
void write() {
	FILE *fp = fopen("building.txt", "w");
	if (!fp) {
		printf("文件打开错误!\n");
		exit(1);
	}
	//将内部数据写出到文件 
	for (int i = 0; i < n; i++) {
		if (i == n - 1) {
			fprintf(fp, "%s\t%s\t%s\t%s\t%s\t%.1f\t%.1f\t%.1f\t%.1f\t%s\t%s", b[i].bNumber, b[i].uNumber, b[i].fNumber, b[i].orientation, 
			b[i].houseType, b[i].unitPrice, b[i].area, b[i].totalPrice, b[i].successPrice, b[i].soldStatus, b[i].salesMan);
		} else {
			fprintf(fp, "%s\t%s\t%s\t%s\t%s\t%.1f\t%.1f\t%.1f\t%.1f\t%s\t%s\n", b[i].bNumber, b[i].uNumber, b[i].fNumber, b[i].orientation, 
			b[i].houseType, b[i].unitPrice, b[i].area, b[i].totalPrice, b[i].successPrice, b[i].soldStatus, b[i].salesMan);
		}
	}
	fclose(fp);
}
void insert() {
	int choice;           //是否继续输入的标志 
	FILE *fp = fopen("building.txt", "a");
	if (!fp) {
		printf("文件打开错误!\n");
		exit(1);
	}
	while (1) { 
		printf("输入格式: 楼编号 单元号 房间号 朝向 户型 单价 面积 成交额 售出状态 业务员<enter>\n");
		scanf("%s%s%s%s%s%lf%lf%lf%s%s", b[n].bNumber, b[n].uNumber, b[n].fNumber, b[n].orientation, b[n].houseType, 
		&b[n].unitPrice, &b[n].area, &b[n].successPrice, b[n].soldStatus, b[n].salesMan);
		b[n].totalPrice = b[n].unitPrice * b[n].area;
		fprintf(fp, "\n%s\t%s\t%s\t%s\t%s\t%.1f\t%.1f\t%.1f\t%.1f\t%s\t%s", b[n].bNumber, b[n].uNumber, b[n].fNumber, b[n].orientation, 
		b[n].houseType, b[n].unitPrice, b[n].area, b[n].totalPrice, b[n].successPrice, b[n].soldStatus, b[n].salesMan);
		n++;
		printf("是否继续输入(1.YES 2.NO)?: ");
		scanf("%d", &choice);
		if (choice == 1) {
			continue ;
		}
		break;
	}
	fclose(fp);

}
void del() {
	char delBNumber[10] = {"\0"};        //待输入的楼编号
	char delUNumber[10] = {"\0"};        //待输入的单元号
	char delFNumber[10] = {"\0"};        //待输入的房间号
	int flag = 0;                        //是否找到查询数据的标志
	printf("输入格式: 楼编号 单元号 房间号<enter>\n");
	scanf("%s%s%s", delBNumber, delUNumber, delFNumber);
	for (int i = 0; i < n; i++) {
		if ((!strcmp(b[i].bNumber, delBNumber)) && (!strcmp(b[i].uNumber, delUNumber)) && (!strcmp(b[i].fNumber, delFNumber))) {
			//找到数据,执行删除操作
			for (int j = i; j < n - 1; j++) {
				b[j] = b[j + 1];
			} 
			flag = 1;
		}
	}
	if (flag) {
		n--;
		printf("删除成功!\n");
	} else {
		printf("未找到待删除数据,请检查输入!\n");
	}
}
void update() {
	char updateBNumber[10] = {"\0"};        //待输入的楼编号
	char updateUNumber[10] = {"\0"};        //待输入的单元号
	char updateFNumber[10] = {"\0"};        //待输入的房间号
	int flag = 0;                        //是否找到查询数据的标志
	printf("输入格式: 楼编号 单元号 房间号<enter>\n");
	scanf("%s%s%s", updateBNumber, updateUNumber, updateFNumber);
	for (int i = 0; i < n; i++) {
		if ((!strcmp(b[i].bNumber, updateBNumber)) && (!strcmp(b[i].uNumber, updateUNumber)) && (!strcmp(b[i].fNumber, updateFNumber))) {
			//找到数据,执行修改操作 
			printf("请输入新的对应数据: \n");
			printf("输入格式: 楼编号 单元号 房间号 朝向 户型 单价 面积 成交额 售出状态 业务员<enter>\n");
			scanf("%s%s%s%s%s%lf%lf%lf%s%s", b[i].bNumber, b[i].uNumber, b[i].fNumber, b[i].orientation, b[i].houseType, 
			&b[i].unitPrice, &b[i].area, &b[i].successPrice, b[i].soldStatus, b[i].salesMan);
			b[i].totalPrice = b[i].unitPrice * b[i].area;
			flag = 1;
		}
	}
	if (flag) {
		printf("修改成功!\n");
	} else {
		printf("未找到待删除数据,请检查输入!\n");
	}
}
void display() {
	//判断当前系统是否有数据 
	if (!n) {
		printf("暂无数据!\n");
		return ;
	} else {
		printf("%-10s %-10s %-10s %-10s %-10s %-10s %-10s %-10s %-10s %-10s\n", "楼编号", "单元号", "房间号", "朝向", "户型", "单价", 
		"面积", "总价", "售出状态", "业务员");
	}
	//遍历数组,输出信息 
	for (int i = 0; i < n; i++) {
		printf("%-10s %-10s %-10s %-10s %-10s %-10.1f %-10.1f %-10.1f %-10s %-10s\n", b[i].bNumber, b[i].uNumber, b[i].fNumber, b[i].orientation, 
		b[i].houseType, b[i].unitPrice, b[i].area, b[i].totalPrice, b[i].soldStatus, b[i].salesMan);
	}
}
void selectByOrientation() {
	char str1[10] = {"\0"};           //待查询的朝向
	char str2[20] = {"\0"};           //待查询的户型 
	printf("请输入朝向: ");
	scanf("%s", str1);
	printf("%-10s %-10s %-10s %-10s %-10s %-10s %-10s %-10s %-10s %-10s\n", "楼编号", "单元号", "房间号", "朝向", "户型", "单价", 
	"面积", "总价", "售出状态", "业务员");
	for (int i = 0; i < n; i++) {
		if (!strcmp(str1, b[i].orientation)) {
			//找到,输出相关数据 
			printf("%-10s %-10s %-10s %-10s %-10s %-10.1f %-10.1f %-10.1f %-10s %-10s\n", b[i].bNumber, b[i].uNumber, b[i].fNumber, b[i].orientation, 
			b[i].houseType, b[i].unitPrice, b[i].area, b[i].totalPrice, b[i].soldStatus, b[i].salesMan);
			
		}
	}
	//条件动态添加 
	int choice;
	printf("请选择是否输入户型继续查询(1.是 2.退出): ");
	scanf("%d", &choice);
	if (choice == 1) {
		printf("请输入户型: ");
		scanf("%s", str2);
		for (int i = 0; i < n; i++) {
			if ((!strcmp(str1, b[i].orient

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,楼盘销售管理系统通常包括以下功能: 1. 用户管理:包括用户注册、登录、修改密码等功能。 2. 楼盘管理:包括楼盘信息管理楼盘图片管理楼盘户型管理等。 3. 客户管理:包括客户信息管理、客户跟进记录、客户购房记录等。 4. 销售管理:包括销售计划、销售报表、销售提成等。 5. 合同管理:包括合同信息管理、合同审核、合同签订等。 6. 财务管理:包括收款、付款、财务报表等。 7. 系统置:包括系统基础信息置、权限管理、操作日志等。 以下是一个C语言实现的简单楼盘销售管理系统的示例代码: ``` #include <stdio.h> #include <stdlib.h> #include <string.h> // 用户结构体 struct User { char username[20]; // 用户名 char password[20]; // 密码 }; // 楼盘结构体 struct Building { char name[50]; // 楼盘名称 char address[50]; // 楼盘地址 char image[50]; // 楼盘图片路径 int area; // 楼盘面积 int price; // 楼盘价格 }; // 客户结构体 struct Customer { char name[20]; // 客户姓名 char phone[20]; // 客户电话 char email[50]; // 客户电子邮件 char building[50]; // 购房楼盘 int area; // 购房面积 int price; // 购房价格 }; // 全局变量 struct User users[10]; struct Building buildings[10]; struct Customer customers[10]; int user_count = 0; int building_count = 0; int customer_count = 0; // 登录函数 int login() { char username[20]; char password[20]; printf("请输入用户名:"); scanf("%s", username); printf("请输入密码:"); scanf("%s", password); for (int i = 0; i < user_count; i++) { if (strcmp(username, users[i].username) == 0 && strcmp(password, users[i].password) == 0) { printf("登录成功!\n"); return i; // 返回用户编号 } } printf("用户名或密码错误!\n"); return -1; // 返回错误代码 } // 注册函数 void register_user() { char username[20]; char password[20]; printf("请输入用户名:"); scanf("%s", username); printf("请输入密码:"); scanf("%s", password); strcpy(users[user_count].username, username); strcpy(users[user_count].password, password); user_count++; printf("注册成功!\n"); } // 添加楼盘函数 void add_building() { char name[50]; char address[50]; char image[50]; int area; int price; printf("请输入楼盘名称:"); scanf("%s", name); printf("请输入楼盘地址:"); scanf("%s", address); printf("请输入楼盘图片路径:"); scanf("%s", image); printf("请输入楼盘面积:"); scanf("%d", &area); printf("请输入楼盘价格:"); scanf("%d", &price); strcpy(buildings[building_count].name, name); strcpy(buildings[building_count].address, address); strcpy(buildings[building_count].image, image); buildings[building_count].area = area; buildings[building_count].price = price; building_count++; printf("添加楼盘成功!\n"); } // 添加客户函数 void add_customer() { char name[20]; char phone[20]; char email[50]; char building[50]; int area; int price; printf("请输入客户姓名:"); scanf("%s", name); printf("请输入客户电话:"); scanf("%s", phone); printf("请输入客户电子邮件:"); scanf("%s", email); printf("请输入购房楼盘:"); scanf("%s", building); printf("请输入购房面积:"); scanf("%d", &area); printf("请输入购房价格:"); scanf("%d", &price); strcpy(customers[customer_count].name, name); strcpy(customers[customer_count].phone, phone); strcpy(customers[customer_count].email, email); strcpy(customers[customer_count].building, building); customers[customer_count].area = area; customers[customer_count].price = price; customer_count++; printf("添加客户成功!\n"); } // 显示楼盘函数 void show_buildings() { printf("楼盘名称\t楼盘地址\t楼盘图片路径\t楼盘面积\t楼盘价格\n"); for (int i = 0; i < building_count; i++) { printf("%s\t%s\t%s\t%d\t%d\n", buildings[i].name, buildings[i].address, buildings[i].image, buildings[i].area, buildings[i].price); } } // 显示客户函数 void show_customers() { printf("客户姓名\t客户电话\t客户电子邮件\t购房楼盘\t购房面积\t购房价格\n"); for (int i = 0; i < customer_count; i++) { printf("%s\t%s\t%s\t%s\t%d\t%d\n", customers[i].name, customers[i].phone, customers[i].email, customers[i].building, customers[i].area, customers[i].price); } } int main() { int choice; int user_id; while (1) { printf("1. 登录\n"); printf("2. 注册\n"); printf("3. 添加楼盘\n"); printf("4. 添加客户\n"); printf("5. 显示楼盘\n"); printf("6. 显示客户\n"); printf("7. 退出\n"); printf("请选择:"); scanf("%d", &choice); switch (choice) { case 1: user_id = login(); break; case 2: register_user(); break; case 3: add_building(); break; case 4: add_customer(); break; case 5: show_buildings(); break; case 6: show_customers(); break; case 7: exit(0); default: printf("无效选择!\n"); break; } } return 0; } ``` 以上是一个简单的楼盘销售管理系统的示例代码,您可以根据实际需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五弦奏南风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值