700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 房屋销售/楼盘管理信息系统(c课设/大作业)

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

时间:2021-10-27 19:10:49

相关推荐

房屋销售/楼盘管理信息系统(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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。