物业费管理系统
1.1 使用链表文件
1.2 新户信息的添加。(户主姓名、性别、身份证号、联系电话、楼号、单元号、
房号、平米数、每平米物业价格、应缴纳物业费,备注信息) 1.3 修改住户信息的功能 1.4 删除住户信息的功能
1.5 应缴物业费自动生成。每月1号,自动生成本月份的物业费。如果该住户
之前的物业费未交清,则本月物业费与之前拖欠费用进行累加,为该用户应缴纳的物业费
1.6 缴费功能。根据用户缴纳金额,修改“应缴纳物业费” 1.7 能够按楼号 分类统计所有未交清物业费的记录 1.8 能够按拖欠款项多少,对所有用户信息进行从大到小排序 1.9 用菜单进行管理
1.10 只有正确输入用户名密码才能使用此系统
1.11 所有内容能够保存到文件中。下次进入系统是从文件中读取原有信息
2 源代码
pp
录入信息\"); gotoxy(10, 7);
printf(\"2. 浏览信息\"); gotoxy(10, 9);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_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. 缴费功能\"); gotoxy(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); gotoxy(10, 21);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
printf(\"9. 退出程序\");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE); gotoxy(10, 23);
printf(\"10. 自动计算物业费\"); gotoxy(35, 20);
printf(\"请输入你的选择: \"); gotoxy(50, 20); scanf(\"%s\ return n = atoi(str); }
int menu2(void) {
char str[10]; 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;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE); gotoxy(30, 10);
printf(\"输入的数据保存完毕\\n\"); for(i = 5; i > 0; i --) {
gotoxy(30,12);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN); printf(\"保存成功%d秒后返回!\
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_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:\\\\\ if (fp == NULL) {
gotoxy(20, 8);
printf(\"这个文件不存在!\\n\"); for(i = 1; i > 0;i --) {
gotoxy(30,11);
printf(\"%d秒后自动退出!\ _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 DeleatName[10], DeleatID[10]; int i;
OWNER *p, *DeleatNode; OWNER *temp; 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秒后返回!\
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE); _sleep(1000); } } else {
printf(\"请输入你想删除业主的名字和身份证号:\\n\"); scanf(\"%s %s\
while(strlen(DeleatName) > 9 || strlen(DeleatID) != 9) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);
printf(\"输入有误请重新输入!长度应该小于9!\\n\");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE); scanf(\"%s %s\ }
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 = DeleatNode->next; free(DeleatNode); continue; }
p = p->next; }
if (flag == 0) {
for(i = 5; i > 0;i --) {
gotoxy(36,11);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);
printf(\"没有这个业主%d秒后返回!\
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE); _sleep(1000); }
return Head; } }
Head = temp->next; Save(Head);
for(i = 5; i > 0;i --) {
gotoxy(36,11);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE); printf(\"删除成功%d秒后返回!\
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE); _sleep(1000); }
return Head; }
OWNER *Change(OWNER *Head) {
int Choice, i; char ChangeOwner[10]; 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秒后返回!\
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE); _sleep(1000); }
return Head; } else {
printf(\"请输入你想要修改业主的名字:\"); scanf(\"%s\ while (p != NULL) {
if (strcmp(p->name, ChangeOwner) == 0) {
Choice = menu2();
//////////////////////////////////////////////////////////////////////////
while(Choice != 5) {
switch (Choice) { case 1:
{ CLC;
gotoxy(30, 11);
printf(\"请输入业主的名字\"); scanf(\"%s\ while(strlen(p->name) > 9 ) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);
printf(\"输入的信息不符合规范,请重新输入!\\n\\n\");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE); gotoxy(30, 11);
printf(\"请输入业主名字:\"); scanf(\"%s\ } } break; case 2:
{ CLC;
gotoxy(30, 11);
printf(\"请输入业主的性别:\"); scanf(\"%d\
while(p->sex != 1 || p->sex != 0) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);
printf(\"输入的信息不符合规范,请重新输入!\\n\\n\");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE); gotoxy(30, 11);
printf(\"请输入业主性别\\n:\"); scanf(\"%d\ } } break; case 3:
{ CLC;
gotoxy(30, 11);
printf(\"请输入业主的电话号码 :\"); scanf(\"%s\ while(strlen(p->phonenumber) > 9 ) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);
printf(\"输入的信息不符合规范,请重新输入!\\n\\n\");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE); gotoxy(30, 11);
printf(\"请输入业主名字:\"); scanf(\"%s\ } } break; case 4:
{ CLC;
gotoxy(30, 11);
printf(\"请输入备注:\"); scanf(\"%s\ } 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 PayName[10], PayID[10]; int i, flag = 0; float PayMoney = 0; 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秒后返回!\
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE); _sleep(1000); } } else {
printf(\"请输入想要缴费的业主名字:\"); scanf(\"%s\
printf(\"\\n请输入想要缴费的业主ID:\"); scanf(\"%s\ while(p != NULL) {
if ((strcmp(p->name, PayName) == 0) && (strcmp(p->ID, PayID) == 0)) {
gotoxy(30, 11);
printf(\"该业主应缴物业费为:%\ if (p->charge == 0) {
gotoxy(30, 18);
printf(\"此业主不用缴费!\");
for (i = 2; i > 0; i --) {
gotoxy(10, 11);
printf(\"%d秒后返回!\ Sleep(1000); }
return Head; }
gotoxy(30, 13);
printf(\"业主缴费为:\"); scanf(\"%f\
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秒后返回!\ Sleep(1000); } }
return Head; }
OWNER *NumberList(OWNER *Head) {
OWNER *ConNode; OWNER *p; OWNER *p1, *p2; int i; CLC;
if (Head == NULL)//判断头指针是否为空 {
gotoxy(30, 10);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED); printf(\"没有任何保存的用户信息!\\n\");
SetConsoleTextAttribute(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秒后返回!\
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE); _sleep(1000); }
} else {
gotoxy(31, 3);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_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 = p1;
for (ConNode = NULL; ConNode != Head; ConNode = p) {
for (p = p1 = Head; p1->next->next != ConNode; p1 = p1->next)
{ if
(p1->next->building_num
<
p1->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; 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),FOREGROUND_INTENSITY|FOREGROUND_RED); printf(\"没有任何保存的用户信息!\\n\");
SetConsoleTextAttribute(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秒后返回!\
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE); _sleep(1000); } } else {
gotoxy(31, 3);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_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 = p1;
for (ConNode = NULL; ConNode != Head; ConNode = p) {
for (p = p1 = Head; p1->next->next != ConNode; p1 = p1->next) {
if (p1->next->charge < p1->next->next->charge) {
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; 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 = localtime(&tt);
Getyear = t->tm_year + 1900; Getmonth = t->tm_mon + 1; Getday = t->tm_mday; fp = fopen(\"F:\\\\\ if (fp == NULL)
{ CLC;
gotoxy(30, 10);
printf(\"获取时间信息失败!\\n\"); for(i = 1; i > 0;i --) {
gotoxy(10,11);
printf(\"%d秒后退出!\ _sleep(1000); } exit(1); }
fscanf(fp,
\"%d
%d
%d\
&JudgeYear,
&JudgeMonth,
&JudgeDay);//获取保存的时间
if (JudgeMonth == Getmonth || Getyear == JudgeYear) { CLC;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED); for (i = 5; i > 0; i --) {
gotoxy(30, 10);
printf(\"不用计算费用%d秒后返回!\ Sleep(1000); }
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE);
return Head;//如果满足上面的这个条件,就直接返回,不再执行下面的代码,时间没有到一个月,不用计算物业费。 }
if ((Getyear < JudgeYear) || (Getyear == JudgeYear && Getmonth < JudgeMonth) || (Getyear == JudgeYear && Getmonth == JudgeMonth || Getday < JudgeDay)) { CLC;
gotoxy(30, 11);
printf(\"您的电脑时期设置有误,请设置正确的时间,否者无法进行物业费的自动生成!\"); return Head; }
if (p == NULL)//判断头指针是否为空 {
gotoxy(30, 10);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED); printf(\"没有任何保存的用户信息!\\n\");
SetConsoleTextAttribute(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秒后返回!\
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE); _sleep(1000); } } else
{
while(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(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);
printf(\"物业费计算成功!%d秒后返回!\
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE); _sleep(1000); }
Getday = 1;
fprintf(fp, \"%d %d %d\只有当程序正常运行到这里的时候就能保存这个月的一号 return 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:\\\\\ if (fp == NULL) {
fp = fopen(\"F:\\\\\
fprintf(fp, \"%d %d %d\ }
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:\\\\\
if (fp == NULL) {
head = CreatNode(head); } else {
head = GetData(fp); fclose(fp); fp = NULL;
head = CreatNode(head); } } break; case 2: {
fp = fopen(\"F:\\\\\ head = GetData(fp); if (head == NULL) { CLC;
gotoxy(30, 10);
printf(\"没有保存任何数据!稍后程序即将推出!\\n\");
for(i = 1; i > 0;i --) {
gotoxy(10,11);
printf(\"%d秒后退出!\ _sleep(1000); } exit(1); }
Display(head); fclose(fp); break; } case 3: {
fp = fopen(\"F:\\\\\ head = GetData(fp); if (head == NULL) { CLC;
gotoxy(30,10);
printf(\"没有任何数据可以提供操作!稍后程序即将自动结束\\n\");
for (i = 1; i > 0; i ++) {
gotoxy(10, 11);
printf(\"%d秒后退出!\ Sleep(1000); } exit(1); }
Deleat(head); break; } case 4: {
fp = fopen(\"F:\\\\\ head = GetData(fp); if (head == NULL) { CLC;
gotoxy(30,10);
printf(\"没有任何数据可以提供操作!稍后程序即将自动结束\\n\");
for (i = 1; i > 0; i ++)
{
gotoxy(10, 11);
printf(\"%d秒后退出!\ Sleep(1000); } exit(1); }
head = Change(head); break; } case 5: {
fp = fopen(\"F:\\\\\ head = GetData(fp); if (head == NULL) { CLC;
gotoxy(30, 10);
printf(\"没有任何业主信息,不用开启此功能! for (i = 1; i > 0; i ++) {
gotoxy(10, 11);
\"); printf(\"%d秒后返回!\ Sleep(1000); } }
head = Pay(head); break; } case 6: {
fp = fopen(\"F:\\\\\ head = GetData(fp); if (head == NULL) { CLC;
gotoxy(30, 10);
printf(\"没有任何业主信息,不能使用使用!\\n\"); for (i = 1; i > 0; i --) {
gotoxy(10, 11);
printf(\"%d秒后返回!\ Sleep(1000); }
}
head = NumberList(head); break; } case 7: {
fp = fopen(\"F:\\\\\ head = GetData(fp); if (head == NULL) { CLC;
gotoxy(30, 10);
printf(\"没有任何业主信息,不能使用使用!\\n\"); for (i = 1; i > 0; i --) {
gotoxy(10, 11);
printf(\"%d秒后返回!\ Sleep(1000); } }
head = UnChargeList(head); break;
} case 8:
xiugaimima(); break; case 9: {
printf(\"谢谢使用本系统!\"); exit(1); break; } case 10: {
fp = fopen(\"F:\\\\\ head = GetData(fp); if (head == NULL) { CLC;
gotoxy(30, 10);
printf(\"没有任何业主信息,不用开启此功能! for (i = 1; i > 0; i ++) {
gotoxy(10, 11);
\"); printf(\"%d秒后返回!\ Sleep(1000); } }
head = AutoChargeAdd(head); break; } }
choice = menu(); }
fclose(fp); return 0; }
因篇幅问题不能全部显示,请点此查看更多更全内容