1、物业费管理系统1问题描述1.1使用链表文件1.2新户信息的添加。(户主姓名、性别、身份证号、联系电话、楼号、单元号、房号、平米数、每平米物业价格、应缴纳物业费,备注信息)1.3修改住户信息的功能1.4删除住户信息的功能1.5应缴物业费自动生成。每月1号,自动生成本月份的物业费。如果该住户之前的物业费未交清,则本月物业费与之前拖欠费用进行累加,为该用户应缴纳的物业费1.6缴费功能。根据用户缴纳金额,修改“应缴纳物业费”1.7能够按楼号 分类统计所有未交清物业费的记录1.8能够按拖欠款项多少,对所有用户信息进行从大到小排序1.9用菜单进行管理1.10只有正确输入用户名密码才能使用此系统1.11所有
2、内容能够保存到文件中。下次进入系统是从文件中读取原有信息2源代码/*/物业费管理系统.cpp/计算机学院-计算机科学与技术专业-xxx班xxx/*#include #include #include #include #include #include #define toutiao gotoxy(23,1);printf(-欢迎使用物业费管理系统-n); #define CLC system(cls);toutiao;typedef struct owner /业主结构体包括用户姓名,性别,身份证号和电话号码 char name10; /业主姓名 int sex; /业主性别1代表男性,0代
3、表女性 char ID10; /业主身份证号 char phonenumber10; /业主电话号码 int building_num; /楼号 int unitnumber; /单元号 int housenumber; /房号 float area; /平方数 float unit_price; /物业价格 float charge; /收费 char remarks50; /备注信息 struct owner * next;OWNER;OWNER *CreatNode(OWNER *Head); /创建业主信息的函数建立链表OWNER *GetData(FILE *fp); /程序打开的时
4、候从文件中获取数据的函数void Display(OWNER *Head); /显示所有用户信息void Save(OWNER *Head); /保存数据的函数OWNER *Deleat(OWNER *Head); /删除函数OWNER *Change(OWNER *Head); /修改函数OWNER *Pay(OWNER *Head); /缴费的函数OWNER *NumberList(OWNER *Head); /按照楼号分类统计所有没有交清物业费显示功能OWNER *UnChargeList(OWNER *Head); /能够按照欠款对所有用户的排序OWNER *AutoChargeAdd
5、(OWNER *Head); /物业费自动生成函数void TimeInitialValueSet(void); /第一次运行的时候,加以运算void gotoxy(short x, short y) /gotoxy函数 HANDLE hout; COORD coord; coord.X = x; coord.Y = y; hout = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(hout, coord);void lianxi(void) SetConsoleTextAttribute(GetStdHandle(STD_
6、OUTPUT_HANDLE),BACKGROUND_BLUE|BACKGROUND_RED|BACKGROUND_GREEN); gotoxy(10, 5); printf(相关文件有损坏, 请联系系统开发人员!); gotoxy(10, 6); printf(联系方式:); gotoxy(10, 7); printf(QQ:); gotoxy(10, 8); printf(xxxx); gotoxy(10,9); printf(邮箱:); gotoxy(10, 10); printf(n);void Windows(void) /输入用户名的窗口 gotoxy(35,7); printf()
7、; gotoxy(35,8); printf( ); gotoxy(35,9); printf(); gotoxy(35,10); printf(); gotoxy(35,11); printf( ); gotoxy(35,12); printf();int denglu(void) /登录界面 int choice; gotoxy(23, 1); printf(-欢迎使用物业费管理系统-n); gotoxy(30, 8); printf(1, 登录系统); gotoxy(30, 10); printf(2, 退出系统); gotoxy(40, 14); printf(请输入你的选择:); s
8、canf(%d, &choice); return choice;void jiance(void) /检测函数,用于检测密码,用户名是否正确 int i, flag = 0; int count = 5; int lenth = 0; FILE *fp1, *fp2; char name20; char loading20; char password10; char loadingmima10; toutiao; fp1 = fopen(F:user.dat, r);/打开用户名文件 fp2 = fopen(F:password.dat, r);/打开密码文件 do if (fp1 = N
9、ULL | fp2 = NULL) /当打开文件有错的时候 lianxi(); for(i = 1; i 0;i -) gotoxy(10,11); printf(%d秒后退出!,i); _sleep(1000); exit(1); else toutiao; gotoxy(24, 6); /开始用户名输入 printf(请输入用户名和密码!); gotoxy(25,8); printf(用户名:); gotoxy(25, 11); printf(密 码:); Windows(); /对输入窗口的调用/ gotoxy(37, 8); scanf(%s, name); gotoxy(37, 11
10、); /scanf(%s, password); /完成对密码和用户名的输入 while(lenth 10 & passwordlenth-1 != r) passwordlenth+ = getch(); if (passwordlenth-1 != 8) gotoxy(37+lenth-1, 11); putchar(*); else printf(b b); lenth-=2; if (lenth 0; i -) gotoxy(43, 15); printf(%d秒后将登陆系统!, i); _sleep(1000); flag = 1; else gotoxy(40, 13); coun
11、t-; printf(信息错误!你还有%d次机会重新输入密码!, count); if (count = 0) gotoxy(40, 13); printf(信息错误!程序即将自动结束!); for(i = 5; i 0; i -) gotoxy(43,15); printf(%d秒后结束程序!,i); _sleep(1000); exit(0); gotoxy(40, 15); for(i = 1; i 0; i -) gotoxy(43,15); printf(%d秒后重新输入!,i); _sleep(1000); system(cls); while (flag = 0); fclose
12、(fp1); fclose(fp2);int menu(void)/主菜单 char str10; int n; system(cls); toutiao; gotoxy(10, 5); printf(1. 录入信息); gotoxy(10, 7); printf(2. 浏览信息); gotoxy(10, 9); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE); printf(3. 删除信息); SetConsoleTextAttribute(GetStd
13、Handle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE); gotoxy(10, 11); printf(4. 更改信息); gotoxy(10, 13); printf(5. 缴费功能); gotoxy(10, 15); printf(6. 未缴费查询(楼号)); gotoxy(10, 17); printf(7. 未缴费查询(欠款)); gotoxy(10, 19); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND
14、_INTENSITY|FOREGROUND_BLUE); printf(8. 修改密码); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE); gotoxy(10, 21); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED); printf(9. 退出程序); SetConsoleTextAttribu
15、te(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE); gotoxy(10, 23); printf(10. 自动计算物业费); gotoxy(35, 20); printf(请输入你的选择: ); gotoxy(50, 20); scanf(%s, str); return n = atoi(str);int menu2(void) char str10; int n; system(cls); toutiao;/(23,1) gotoxy(10, 5); printf(1. 修
16、改用户名); gotoxy(10, 7); printf(2. 修改性别); gotoxy(10, 9); printf(3. 修改电话号码); gotoxy(10, 11); printf(4. 修改备注); gotoxy(10, 13); printf(5. 停止修改); / gotoxy(35, 20); printf(请输入你的选择: ); gotoxy(50, 20); scanf(%s, str); return n = atoi(str); void xiugaimima() /修改密码的函数 FILE *fp1, *fp2; int i; /定义一些常量供使用 char Omi
17、ma10, Oname20; char Cmima110, Cmima210; char mimatemp10, yonghumingtemp20; int lenth = 0; int flag = 0; system(cls); toutiao; fp1 = fopen(F:user.dat, r);/打开用户名文件 fp2 = fopen(F:password.dat, r);/打开密码文件 if (fp1 = NULL | fp2 = NULL) lianxi(); gotoxy(30, 5); printf(请输入用户名和密码!); gotoxy(24, 8); printf(原来用
18、户名:); gotoxy(24, 11); printf(原 来密 码:); Windows(); gotoxy(37, 8); scanf(%s, Oname);/ gotoxy(37, 11); /scanf(%s, Omima); while(lenth 10 & Omimalenth-1 != r) Omimalenth+ = getch(); if (Omimalenth-1 != 8) gotoxy(37+lenth-1, 11); putchar(*); else printf(b b); lenth-=2; if (lenth 0) lenth = 0; Omimalenth
19、- 1 = 0; gotoxy(37 + lenth, 11); printf(b b); lenth = 0; fscanf(fp1, %s, yonghumingtemp); fscanf(fp2, %s, mimatemp); if (strcmp(yonghumingtemp, Oname) = 0 & strcmp(mimatemp, Omima) = 0) gotoxy(37, 8); printf(用户名正确!); gotoxy(37, 11); printf(密码正确!); /在验证这个正确之后调用一个延迟 gotoxy(43,13); printf(请输入新密码!); _sl
20、eep(3000); Windows(); gotoxy(18, 8); printf(第一次输入密码 :); gotoxy(18, 11); printf(第二次输入密码 :);/ gotoxy(37, 8); /scanf(%s, Cmima1); while(lenth 10 & Cmima1lenth-1 != r) Cmima1lenth+ = getch(); if (Cmima1lenth-1 != 8) gotoxy(37+lenth-1, 8); putchar(*); else printf(b b); lenth-=2; if (lenth 0) lenth = 0; C
21、mima1lenth - 1 = 0; gotoxy(37 + lenth, 8); printf(b b); lenth = 0;/ gotoxy(37, 11); /scanf(%s, Cmima2); while(lenth 10 & Cmima2lenth-1 != r) Cmima2lenth+ = getch(); if (Cmima2lenth-1 != 8) gotoxy(37+lenth-1, 11); putchar(*); else printf(b b); lenth-=2; if (lenth 0; i -) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED); gotoxy(30, 10); printf(请等待%d秒!, i); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE); Sleep(1000); fflush(stdin); e
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1