




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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源代码PP录入信息);gotoxy(10, 7);printf(2.浏览信息);gotoxy(10, 9);OREGROUND_INTENSITY|FOREGROUND_BLUE);printf(3.删除信息”);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE);gotoxy(10, 11);printf(4.更改信息”);gotoxy(10, 13);printf(5.缴费功能”);g
3、otoxy(10, 15);printf(6.未缴费查询(楼号);gotoxy(10, 17);printf(7,未缴费查询(欠款);gotoxy(10, 19);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);printf(8,修改密码”);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE);got
4、oxy(10, 21);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);printf(9.退出程序”);OREGROUND_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(v
5、oid)char str10;int n;system(cls);toutiao;修改用户名”);gotoxy(10, 7);printf(2.修改性别);gotoxy(10, 9);printf(3.修改电话号码);gotoxy(10, 11);printf(4,修改备注”);gotoxy(10, 13);printf(5.停止修改”);n);getchar();system(cls);break;system(cls);temp = p;p = (OWNER *)malloc(sizeof(OWNER);temp-next = p;Save(Head);CLC;SetConsoleText
6、Attribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);gotoxy(30, 10);printf(输入的数据保存完毕n);for(i = 5; i 0; i -)gotoxy(30,12);OREGROUND_INTENSITY|FOREGROUND_GREEN);printf(保存成功%d秒后返回!”,i);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN|FOREGROUND_RED|FO
7、REGROUND_BLUE);_sleep(1000);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE);return Head;void Display(OWNER *Head) n);getchar();system(cls);void Save(OWNER *Head)FILE *fp;OWNER *p;int i;CLC;fp = fopen(F:, w+);if (fp = NULL)gotoxy(20, 8);printf(
8、这个文件不存在!n);for(i = 1; i 0;i -)gotoxy(30,11);printf(%d秒后自动退出!,i);_sleep(1000);exit(0);p = Head;while (p != NULL)fwrite(p, sizeof(OWNER), 1, fp);p = p-next;fclose(fp);OWNER *Deleat(OWNER *Head)int flag = 0;char DeleatName10, DeleatID10;int i;OWNER *p, *DeleatNode;OWNER *temp;CLC;toutiao;if (Head = NUL
9、L)/判断头指针是否为空gotoxy(30, 10);printf(-没有任何保存的用户信息! n);for(i = 5; i 0;i -)gotoxy(36,11);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);printf(%d 秒后返回!,i);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE
10、);_sleep(1000);elseprintf(-请输入你想删除业主的名字和身份证号:n);scanf(%s %s”, DeleatName, DeleatID);while(strlen(DeleatName) 9 | strlen(DeleatlD) != 9) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),F OREGROUND_INTENSITY|FOREGROUND_BLUE);printf(输入有误请重新输入!长度应该小于9!n);SetConsoleTextAttribute(GetStdHandle(STD_
11、OUTPUT_HANDLE),F OREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE);scanf(%s %s, DeleatName, DeleatID);temp = (OWNER *)malloc(sizeof(OWNER);temp-next = Head;p = temp;while (p-next != NULL)if (strcmp(p-next-name, DeleatName) = 0) & (strcmp(p-next-ID, DeleatID) = 0)DeleatNode = p-next;flag = 1;p-next = D
12、eleatNode-next;free(DeleatNode);continue;p = p-next;if (flag = 0)for(i = 5; i 0;i -)gotoxy(36,11);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),F OREGROUND_INTENSITY|FOREGROUND_BLUE);printf(没有这个业%d秒后返回!”,i);FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE);_sleep(1000);return Head;Head = te
13、mp-next;Save(Head);for(i = 5; i 0;i -)gotoxy(36,11);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);printf(删除成功%d秒后返回!,i);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE);_sleep(1000);return Head;OW
14、NER *Change(OWNER *Head)int Choice, i;char ChangeOwner10;OWNER *p = Head;CLC;toutiao;if (Head = NULL)/判断头指针是否为空gotoxy(30, 10);printf(-没有任何保存的用户信息可以进行修改!n);for(i = 5; i 0;i -)gotoxy(36,11);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);printf(%d 秒后返回!,i)
15、;SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE);_sleep(1000);return Head;elseprintf (-请输入你想要修改业主的名字:);scanf(%s”, ChangeOwner);while (p != NULL)if (strcmp(p-name, ChangeOwner) = 0)Choice = menu2();/while(Choice != 5)switch (Choice) case 1:CLC;
16、gotoxy(30, 11);printf(请输入业主的名字”); scanf(%s”, p-name);while(strlen(p-name) 9 ) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),F OREGROUND_INTENSITY|FOREGROUND_BLUE);printf(输入的信息不符合规范,请重新输 入!nn);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),F OREGROUND_GREEN|FOREGROUND_RED|FOREGROUN
17、D_BLUE);gotoxy(30, 11);printf(请输入业主名字:”); scanf(%s”, p-name);break;case 2:CLC;gotoxy(30, 11);printf(请输入业主的性别:”);scanf(%d”, &p-sex);while(p-sex != 1 | p-sex != 0)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),F OREGROUND_INTENSITY|FOREGROUND_BLUE);printf(输入的信息不符合规范,请重新输 入!nn);SetConsoleTextA
18、ttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE);gotoxy(30, 11);printf(请输入业主性别n:);scanf(%d”, p-name);break;case 3:CLC;gotoxy(30, 11);printf(请输入业主的电话号码:”); scanf(%s”, p-phonenumber);while(strlen(p-phonenumber) 9 )SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT
19、_HANDLE),F OREGROUND_INTENSITY|FOREGROUND_BLUE);printf(输入的信息不符合规范,请重新输 入!nn);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),F OREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE);gotoxy(30, 11);printf(请输入业主名字:”); scanf(%s”, p-phonenumber);break;case 4:CLC;gotoxy(30, 11);printf(请输入备注:”); scanf(%s
20、”, p-remarks);break;default:CLC;gotoxy(30, 11);printf(输入有误”);break;Choice = menu2();p = p-next;Save(Head);return Head;OWNER *Pay(OWNER *Head)OWNER *p = Head;char PayName10, PayID10;int i, flag = 0;float PayMoney = 0;CLC;toutiao;if (Head = NULL)/判断头指针是否为空gotoxy(30, 10);printf(-没有任何保存的用户信息! n);for(i =
21、 5; i 0;i -)gotoxy(36,11);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);printf(%d 秒后返回!,i);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE);_sleep(1000);elseprintf(请输入想要缴费的业主名字:”);scanf(%s”, PayNa
22、me);printf(n请输入想要缴费的业主ID:);scanf(%s”, PayID);while(p != NULL)if (strcmp(p-name, PayName) = 0) & (strcmp(p-ID,PayID) = 0)gotoxy(30, 11);printf(该业主应缴物业费为:%, p-charge);if (p-charge = 0)gotoxy(30, 18);printf(此业主不用缴费!”);for (i = 2; i 0; i -)gotoxy(10, 11);printf(%d 秒后返回!, i);Sleep(1000);return Head;gotox
23、y(30, 13);printf(业主缴费为:”);scanf(%f”, &PayMoney);p-charge = p-charge - PayMoney;break;p = p-next;if (p = NULL)gotoxy(30, 13);printf(-没有这个业主!);Sleep(3000);Save(Head);if (flag = 1)gotoxy(30, 15);printf(此业主缴费成功!”); for(i = 3; i 0; i -) gotoxy(30, 18);printf(%d 秒后返回!, i);Sleep(1000);return Head;OWNER *Nu
24、mberList(OWNER *Head)OWNER *ConNode;OWNER *p;OWNER *p1, *p2;int i;CLC;if (Head = NULL)/判断头指针是否为空gotoxy(30, 10);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),F OREGROUND_INTENSITY|FOREGROUND_RED);printf(-没有任何保存的用户信息! n);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GRE
25、EN|FOREGROUND_RED|FOREGROUND_BLUE);for(i = 5; i 0;i -)gotoxy(36,13);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),F OREGROUND_INTENSITY|FOREGROUND_BLUE);printf(%d 秒后返回! ,i);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE);_sleep(1000
26、);elsegotoxy(31, 3);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),F OREGROUND_INTENSITY|FOREGROUND_BLUE);printf(结果如下:n);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE);/ /p1 = (OWNER *)malloc(sizeof(OWNER);直接插入排序p1-next = Head;Head
27、= p1;for (ConNode = NULL; ConNode != Head; ConNode = p)for (p = p1 = Head; p1-next-next != ConNode; p1 =p1-next)if(p1-next-building_numif(p1-next-building_nump1-next-next-building_num)p2 = p1-next-next;p1-next-next = p2-next;p2-next = p1-next;p1-next = p2;p = p1-next-next;p1 = Head;Head = Head-next;
28、free(p1);p1 = NULL;Display(Head);return Head;OWNER *UnChargeList(OWNER *Head)OWNER *ConNode;OWNER *p;OWNER *p1, *p2;int i;CLC;if (Head = NULL)/判断头指针是否为空gotoxy(30, 10);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),F OREGROUND_INTENSITY|FOREGROUND_RED);printf(-没有任何保存的用户信息! n);SetConsoleTextA
29、ttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE);for(i = 5; i 0;i -)gotoxy(36,13);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);printf(%d 秒后返回!,i);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGR
30、OUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE);_sleep(1000);elsegotoxy(31, 3);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),F OREGROUND_INTENSITY|FOREGROUND_BLUE);printf(结果如下:n);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE);/ /p1 = (O
31、WNER *)malloc(sizeof(OWNER);直接插入排序p1-next = Head;Head = pl;for (ConNode = NULL; ConNode != Head; ConNode = p)for (p = pl = Head; p1-next-next != ConNode; pl = p1-next)if (p1-next-charge next-next-charge)p2 = p1-next-next;p1-next-next = p2-next;p2-next = p1-next;p1-next = p2;p = p1-next-next;p1 = Hea
32、d;Head = Head-next;free(p1);p1 = NULL;Display(Head);return Head;OWNER *AutoChargeAdd(OWNER *Head)/物业费自动生成函数按月结算 int Getyear = 0, Getmonth = 0, Getday = 0;/ 从系统获取的时 间int JudgeYear = 0, JudgeMonth = 0, JudgeDay = 0; / 从保存 的文件中获取时间来进行判断int i;OWNER*p=Head;/FILE *fp;struct tm *t;time_t tt;time(&tt);t = l
33、ocaltime(&tt);Getyear = t-tm_year + 1900;Getmonth = t-tm_mon + 1;Getday = t-tm_mday;fp = fopen(F:, r);if (fp = NULL)CLC;gotoxy(30, 10);printf(获取时间信息失败!n);for(i = 1; i 0;i -)gotoxy(10,11);printf(%d 秒后退出!,i);_sleep(1000);exit(1);fscanf(fp, %d %d %d, &JudgeYear, &JudgeMonth,&JudgeDay);/获取保存的时间if (Judge
34、Month = Getmonth | Getyear = JudgeYear)CLC;SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);for (i = 5; i 0; i -) printf(-不用计算费用%d秒后返回!, i);Sleep(1000);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE
35、);return Head;/如果满足上面的这个条件,就直接返回,不再执 行下面的代码,时间没有到一个月,不用计算物业费。if (Getyear JudgeYear) | (Getyear = JudgeYear & Getmonth JudgeMonth) | (Getyear = JudgeYear & Getmonth =JudgeMonth | Getday 0;i -)gotoxy(36,13);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),F OREGROUND_INTENSITY|FOREGROUND_BLUE);
36、printf(%d 秒后返回! ,i);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE);_sleep(1000);elsewhile(p != NULL)p-charge = (float)(p-area * p-unit_price) + p-charge;p = p-next;Save(Head);for(i = 5; i 0;i -)gotoxy(36,13);SetConsoleTextAttribute(GetStdHan
37、dle(STD_OUTPUT_HANDLE),F OREGROUND_INTENSITY|FOREGROUND_BLUE);printf(物业费计算成功! %d秒后返回!”,i);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE);_sleep(1000);Getday = 1;fprintf(fp, %d %d %d, Getyear, Getmonth, Getday);/ 只有 当程序正常运行到这里的时候就能保存这个月的一号ret
38、urn Head;void TimeInitialValueSet(void)FILE *fp;int Getyear = 0, Getmonth = 0, Getday = 1;struct tm *t;time_t tt;time(&tt);t = localtime(&tt);Getyear = t-tm_year + 1900;Getmonth = t-tm_mon + 1;Getday = 1;fp = fopen(F:, r”);if (fp = NULL)fp = fopen(F:, w”);fprintf(fp, %d %d %d, Getyear, Getmonth, Get
39、day);fclose(fp);主函数int main(void)主函数FILE *fp;int i = 0;OWNER *head = NULL;int choice;SetConsoleTitle(-成都信息工程学院 计算机学院 计算机科学 与技术专业xxx班xxx工程实践1);denglu();system(cls);jiance();TimeInitialValueSet();这个函数只在程序第一次运行的时候完成对日期的初始化choice = menu();while (choice != 9)switch (choice)case 1:fp = fopen(F:, r);if (fp
40、 = NULL)head = CreatNode(head);elsehead = GetData(fp);fclose(fp);fp = NULL;head = CreatNode(head);break;case 2:fp = fopen(F:, r”);head = GetData(fp);if (head = NULL)CLC;gotoxy(30, 10);printf(-没有保存任何数据!稍后程序即将推出!n);for(i = 1; i 0;i -)gotoxy(10,11);printf(%d 秒后退出! ,i);_sleep(1000);exit(1);Display(head);fclose(fp);break;case 3:f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年09月河南荥阳市招聘特岗全科医生4人笔试历年专业考点(难、易错点)附带答案详解
- 《深海探险研究小組》课件
- 2025太阳能发电承包合同的示例文本
- 动漫视频制作服务合同(2篇)
- 2025年技术与产品的许可使用和补偿贸易合作生产合同
- 《电路》课件理想变压器及三相电路
- 橡胶零件的热塑性弹性体应用考核试卷
- 2024年09月江苏南通市崇川区卫生健康委员会所属部分医疗卫生事业单位招聘52人笔试历年专业考点(难、易错点)附带答案详解
- 2025药店租赁合同书范本
- 2024年09月广西北海市银海区银滩镇中心卫生院后勤人员招聘1人笔试历年专业考点(难、易错点)附带答案详解
- GB/T 12939-2002工业车辆轮辋规格系列
- 送元二使安西公开课课件
- 资源昆虫学-传粉昆虫
- 压花艺术课件
- DB32T4220-2022消防设施物联网系统技术规范-(高清版)
- 儿童抑郁量表CDI
- 生物化学-脂类课件
- Q∕SY 02098-2018 施工作业用野营房
- DB62∕T 3176-2019 建筑节能与结构一体化墙体保温系统应用技术规程
- 八大特殊危险作业危险告知牌
- 半桥LLC谐振变换器设计与仿真
评论
0/150
提交评论