物业管理系统C语言
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
#include<windows.h>
#include<time.h>
#include<malloc.h>
//以上包含必须的头文件
typedef struct people
{
char name[10]; //姓名
char sex[10]; //性别
char IDnumber[20];//身份证号
char phone[15]; // 手机号
int building; //楼号
int roomID; //房号
float roomarea; //住房面积
float areamoney; //每平方米物业费
int owemoney; //拖欠的物业费的月数
}people; //定义别名people
void MM_pass();//密码判定函数
void UI_show();//进入界面 UI 实现
void NEW_in(); //新用户信息添加
void OLD_adjust();//修改住户信息的功能
void OLD_delete(); //删除住户信息的功能
void OLD_putmoney();//缴费功能,计算住户的物业费
void OLD_showmoney();//排序功能,按拖欠款项多少,对所有用户信息进
int NEW_oj();//判断文件是否为空
void EXIT();// 退出
void UI_show1();
void UI_show2();
void UI_show3();
void UI_show4();
void UI_show5();
int main()
{
system("mode con cols=80 lines=25");//设置窗口大小 cols 行
system("color D7");//设置颜色
int pan, p;
MM_pass();// 调用 密码程序 输入3次密码错误 程序锁定
while (1)
{
p = NEW_oj();//判断用户文件是否为空
if (p == 0)
{
printf("\n\n查询文件中未存在用户信息,请先进行用户信息录入!!!");
printf("\n请按回车键,进入用户信息添加系统.....");
getchar();
NEW_in();
}
system("cls"); //清屏
UI_show(); //调用 界面UI 显示
scanf("%d", &pan);
switch (pan)
{
case 1:NEW_in(); break;//新用户信息添加
case 2:OLD_adjust(); break;//修改住户信息的功能
case 3:OLD_delete(); break;//删除住户信息的功能
case 4:OLD_putmoney(); break;//缴费功能,计算住户的物业费
case 5:OLD_showmoney(); break;//排序功能,按拖欠款项多少,对所有用户信息进行排序
case 6:EXIT(); break;//退出
default:printf("\n\t\t\t输入错误! 按回车键返回重新选择");//按键错误反馈
}
getchar();
getchar();
system("cls");//清屏
}
system("pause");
return 0;
}
//================================================================================
int NEW_oj()//判断文件是否为空
{
FILE *fp;
fp = fopen("output.xls", " r");
if (fp == NULL)
{
fp = fopen("output.xls", " w");
}
if (fgetc(fp) == EOF)
{
fclose(fp);
return 0;
}
else
{
//这里有bug
return 1;
fclose(fp);
}
}
//=======================================================================
//进入界面 UI 实现
void UI_show()
{
int i, j;
//--------------------------------------------------------------------
printf("\n");
for (i = 0; i < 75; i++) //数字 控制 上方 = 数量
{
printf("=");
}
printf("\n");
for (i = 0; i < 30; i++)
{
printf(" ");
}
printf("欢迎进入物业费管理系统");
for (i = 0; i < 30; i++)
{
printf(" ");
}
printf("\n");
for (i = 0; i < 75; i++) //数字 控制 上方 = 数量
{
printf("=");
}
//实现上方欢迎界面
//--------------------------------------------------------------------
printf("\n\n\n");
for (i = 0; i < 33; i++) //以下实现 菜单界面功能选择
{
printf(" ");
}
printf("请选择以下功能:\n");
for (i = 0; i < 33; i++)
{
printf(" ");
}
printf("1、添加新住户信息\n");
for (i = 0; i < 33; i++)
{
printf(" ");
}
printf("2、修改旧住户信息\n");
for (i = 0; i < 33; i++)
{
printf(" ");
}
printf("3、删除住户信息\n");
for (i = 0; i < 33; i++)
{
printf(" ");
}
printf("4、缴费功能\n");
for (i = 0; i < 33; i++)
{
printf(" ");
}
printf("5、排序功能\n");
for (i = 0; i < 33; i++)
{
printf(" ");
}
printf("6、退出系统\n");
printf("\n\n");
for (i = 0; i < 75; i++) //数字 控制 上方 = 数量
{
printf("=");
}
printf("\n\n");
for (i = 0; i < 33; i++)
{
printf(" ");
}
printf("请选择:");
//实现界面UI
}
//=======================================================================
//密码判定函数
void MM_pass()
{
//首先进行用户名判断,当存在此用户名后 再进行与该用户名 匹配的密码 判断 。当密码输入3次错误时 退出程序
int count = 0, a, i;
char MM[10] = { "passkey" }, MI[10]; //密码存放
char UW[10] = { "hello" }, UU[10]; //用户名存放
//-------------------------------------------------------------
for (i = 0; i<8; i++) //UI欢迎界面
{
printf("\n");
}
for (i = 0; i<30; i++)
{
printf(" ");
}
printf("欢迎进入物业管理系统\n");
//-------------------------------------------------------------------------------
while (1) //进入循环 //判断用户名是否存在
{
for (i = 0; i<30; i++)
{
printf(" ");
}
printf("请输入用户名:"); //提示输入用户名
gets(UU); //键盘得到 用户名
if (strcmp(UW, UU) == 0) //如果用户名存在 则判断密码是否正确
{
for (i = 0; i<30; i++)
{
printf(" ");
}
printf("请输入密码:");
for (count = 0; count<3; count++) //判断密码是否正确
{
gets(MI);
a = strcmp(MM, MI);
if (a == 0) // 如果比对 成功
{
system("cls");
return; //返回值,结束此函数
}
if (count == 0 || count == 1) //比对不成功
{
for (i = 0; i<30; i++)
{
printf(" ");
}
printf("请输入密码:"); //提示重新输入密码
}
}
//由于执行过count++ 则count为3
if (count >= 3) //密码输错3次 程序锁定 错误判定
{
for (i = 0; i<25; i++)
{
printf(" ");
}
printf("密码3输入错误,程序锁定,退出重试。\n");
getchar();
exit(0);
}
}
else
{
for (i = 0; i<30; i++)
{
printf(" ");
}
printf("查无此用户!\n");
}
}
}
//=======================================================================
//新用户信息添加 1、
void NEW_in()
{
FILE *fp = NULL; //定义文件指针 C:\Users\Administrator\Desktop
fp = fopen("output.xls", "a");//以追加的方式打开 文件
if (fp == NULL)
{
printf("\n出现未知错误!按任意键退出.....\n");
exit(0);
}
int build, room, ownmonth;
float area, money;
char numcn[10], numcs[12], id[22], phone[15];
char ch;
system("cls"); //清屏
UI_show1(); // 界面显示
while (1) //进入循环体,直到接收到用户 跳出循环
{
printf("请输入姓名:");
scanf("%s", numcn);
printf("请输入性别:");
scanf("%s", numcs);
printf("请输入身份证号:");
scanf("%s", id);
printf("请输入联系电话:");
scanf("%s", phone);
printf("请输入楼号:");
scanf("%d", &build);
printf("请输入房号:");
scanf("%d", &room);
printf("请输入住房面积:");
scanf("%f", &area);
printf("请输入每平方米物业费:");
scanf("%f", &money);
printf("请输入用户本月之前所拖欠物业费的月份(0代表不拖欠):");
scanf("%d", &ownmonth);
//缓冲区保存到文件
fprintf(fp, "%s\t%s\t%s\t%s\t%d\t%d\t%f\t%f\t%d\n", numcn, numcs, id, phone, build, room, area, money, ownmonth);
do // 接收字符 判断是否 继续录入用户信息
{
printf("是否继续录入?请选择(Y/N)");
getchar(); //接收 回车键
scanf("%c", &ch);
} while ((ch != 'Y') && (ch != 'y') && (ch != 'n') && (ch != 'N'));
if ((ch == 'n') || (ch == 'N'))
{
fclose(fp); //如果用户 输入N 则保存 并退出程序
break;
}
}
}
//=========================================================================
void OLD_adjust() //修改住户信息的功能 2、
// 先将硬盘文件中数据 保存到 内存缓冲区中,找到要修改的用户信息,修改后 重新写入文档
{
system("cls"); //清屏
people peopleI[10000];//建立结构体 数组
int number = 0, sign = 0, i = 1, a, test;
char name[10], ch;
FILE *fp = NULL; //文件指针
UI_show2(); //UI调用
fp = fopen("output.xls", "r+"); //以读写的方式打开文件
if (fp == NULL) // 错误检测
{
printf("文件打开失败!请先添加用户信息!\n");
return;
// exit(0);
}
printf("请输入要修改的住户姓名:");
scanf("%s", name);
while (!feof(fp)) //从文件中读取
{
fscanf(fp, "%s%s%s%s%d%d%f%f%d", peopleI[i].name, peopleI[i].sex, peopleI[i].IDnumber, peopleI[i].phone, &peopleI[i].building, &peopleI[i].roomID, &peopleI[i].roomarea, &peopleI[i].areamoney, &peopleI[i].owemoney);
// fread(&peopleI[i],sizeof(struct people),1,fp);
//数据每次 读取一行
i++; //记录行的个数
}
///-----------------------------------
//printf("%f\n", peopleI[1].owemoney);
printf("\n");
i--;
test = i; //保存 数据的行数
for (; i >= 0; i--)
{
a = strcmp(name, peopleI[i].name); //比较 输入的用户名 和文件中的用户名
if (a == 0)
{
sign = 1; //判断 赋值1 代表找到 该数据
printf("姓名%s,性别%s,身份证号%s,联系方式%s,楼号%d,房号%d,住房面积%f,每平物业费%f\n拖欠的物业费的月数%d\n", peopleI[i].name, peopleI[i].sex, peopleI[i].IDnumber, peopleI[i].phone, peopleI[i].building, peopleI[i].roomID, peopleI[i].roomarea, peopleI[i].areamoney, peopleI[i].owemoney);
do // 友情提示 选择
{
printf("你确定要修改该用户的信息吗?(Y/N):");
getchar();
scanf("%c", &ch);
} while ((ch != 'Y') && (ch != 'y') && (ch != 'n') && (ch != 'N'));
if ((ch == 'y') || (ch == 'Y')) //如果 选y则 录入信息
{
printf("请输入姓名:");
scanf("%s", &peopleI[i].name);
printf("请输入性别:");
scanf("%s", &peopleI[i].sex);
printf("请输入身份证号:");
scanf("%s", &peopleI[i].IDnumber);
printf("请输入联系电话:");
scanf("%s", &peopleI[i].phone);
printf("请输入楼号:");
scanf("%d", &peopleI[i].building);
printf("请输入房号:");
scanf("%d", &peopleI[i].roomID);
printf("请输入住房面积:");
scanf("%f", &peopleI[i].roomarea);
printf("请输入每平方米物业费:");
scanf("%f", &peopleI[i].areamoney);
printf("请输入用户本月之前所拖欠物业费的月份(0代表不拖欠):");
scanf("%d", &peopleI[i].owemoney);
printf("修改成功!");
fclose(fp); //关闭文件
fp = fopen("output.xls", "w");
for (i = 1; i < test; i++) //将内存中 修改过的信息 重新写入文件
{
fprintf(fp, "%s %s %s %s %d %d %f %f %d\n", peopleI[i].name, peopleI[i].sex, peopleI[i].IDnumber, peopleI[i].phone, peopleI[i].building, peopleI[i].roomID, peopleI[i].roomarea, peopleI[i].areamoney, peopleI[i].owemoney);
}
fclose(fp);
break; //跳出 for循环
}
else //假如不修改信息 再次写入文件
{
//for (i = 1; i < test; i++) //将内存中 修改过的信息 重新写入文件
//{
// fprintf(fp, "%s %s %s %s %d %d %f %f %d\n", peopleI[i].name, peopleI[i].sex, peopleI[i].IDnumber, peopleI[i].phone, peopleI[i].building, peopleI[i].roomID, peopleI[i].roomarea, peopleI[i].areamoney, peopleI[i].owemoney);
//}
fclose(fp);
break;
}
}
}
if (sign == 0)
{
printf("没找到该用户!\n请按任意键继续....");
getchar();
}
}
//===============================================================================
//删除住户信息的功能 3、
void OLD_delete()
{
// 先将硬盘文件中数据 保存到 内存缓冲区中,找到要删除的用户信息,删除后 重新写入文档
system("cls"); //清屏
people peopleI[10000];//建立结构体 数组
int number = 0, len = 0, sign = 0, i = 1, a, test, j, p;
char name[10], ch, newname[10];
FILE *fp = NULL; //文件指针
UI_show3();
fp = fopen("output.xls", "r");
if (fp == NULL)
{
printf("未找到文件!");
return; //返回 main函数
}
printf("请输入要删除的住户姓名:");
scanf("%s", name);
while (!feof(fp)) //从文件中读取,文件中数据转移到内存数组中区
{ //!feof(fp)只要文件不到末尾 就一直读下去
fscanf(fp, "%s%s%s%s%d%d%f%f%d", peopleI[i].name, peopleI[i].sex, &peopleI[i].IDnumber, &peopleI[i].phone, &peopleI[i].building, &peopleI[i].roomID, &peopleI[i].roomarea, &peopleI[i].areamoney, &peopleI[i].owemoney);
i++;
}
///------------------------------------
fclose(fp); //保存文件
printf("\n");
i--;
test = i; //保存 行数
for (; i >= 0; i--)
{
a = strcmp(name, peopleI[i].name); //比较 输入的用户名 和文件中的用户名
if (a == 0) //找到相应位置
{
sign = 1; // 标志 是否找到 数据
printf("姓名%s,性别%s,身份证号%s,联系方式%s,楼号%d,房号%d,住房面积%f,每平物业费%f,拖欠的物业费的月数%d\n", peopleI[i].name, peopleI[i].sex, peopleI[i].IDnumber, peopleI[i].phone, peopleI[i].building, peopleI[i].roomID, peopleI[i].roomarea, peopleI[i].areamoney, peopleI[i].owemoney);
//显示出要修改的信息
do
{
printf("你确定要删除该用户的信息吗?(Y/N):");
getchar();
scanf("%c", &ch);
} while ((ch != 'Y') && (ch != 'y') && (ch != 'n') && (ch != 'N'));
if ((ch == 'y') || (ch == 'Y')) //假如 确定
{
printf("删除成功!");
fp = fopen("output.xls", "w"); //以写的方式打开,源文件被清除
for (j = 1; j <test; j++) //重新写入文件
{
if (j == i) // 不写入 第i个数据
{
//操作为空
}
else //否则 写入文件
fprintf(fp, "%s %s %s %s %d %d %f %f %d\n", peopleI[j].name, peopleI[j].sex, peopleI[j].IDnumber, peopleI[j].phone, peopleI[j].building, peopleI[j].roomID, peopleI[j].roomarea, peopleI[j].areamoney, peopleI[j].owemoney);
}
fclose(fp); //关闭 保存缓冲区 文件
}
else //假如不修改信息 再次写入文件
{
fp = fopen("output.xls", "w"); //以写的方式打开,源文件被清除
for (i = 1; i < test; i++) //将内存中 修改过的信息 重新写入文件
{
fprintf(fp, "%s %s %s %s %d %d %f %f %d\n", peopleI[i].name, peopleI[i].sex, peopleI[i].IDnumber, peopleI[i].phone, peopleI[i].building, peopleI[i].roomID, peopleI[i].roomarea, peopleI[i].areamoney, peopleI[i].owemoney);
}
fclose(fp);
}
}
}
if (sign == 0) //判断为未找到用户
{
printf("没找到该用户!\n请按回车键返回菜单选项.....");
getchar();
}
}
//================================================================================================
//缴费功能,计算住户的物业费 4、
void OLD_putmoney()
{
// 先将硬盘文件中数据 保存到 内存缓冲区中,找到要缴费的用户信息,判断是否 要缴纳费用
// 如果要缴纳费用 则 显示 应收费用=住房面积*每平方米物业费+ 拖欠的物业费的月数*住房面积*每平方米物业费
// 读取 实际收取的费用。 则 修改文件中 拖欠物业费的月数, 拖欠物业费的月数=-1 代表本月已经缴纳了物业费用
system("cls"); //清屏
people peopleI[10000];//建立结构体 数组
int sign = 0, i = 1, a, test;
// float aa;
char name[10], ch;
UI_show4();
FILE *fp = NULL; //文件指针
fp = fopen("output.xls", "r"); //读取信息
if (fp == NULL)
{
printf("\n出现未知错误!按任意键退出.....\n");
getchar();
exit(0);
}
printf("请输入要缴费的住户姓名:");
scanf("%s", name);
while (!feof(fp)) //从文件中读取,文件中数据转移到内存数组中区
{ //!feof(fp)只要文件不到末尾 就一直读下去
fscanf(fp, "%s%s%s%s%d%d%f%f%d", peopleI[i].name, peopleI[i].sex, &peopleI[i].IDnumber, &peopleI[i].phone, &peopleI[i].building, &peopleI[i].roomID, &peopleI[i].roomarea, &peopleI[i].areamoney, &peopleI[i].owemoney);
i++;
}
printf("\n");
i--;
test = i;
for (; i >= 1; i--) // 查找
{
a = strcmp(name, peopleI[i].name); //比较 输入的用户名 和文件中的用户名
if (a == 0) //找到相应位置
{
sign = 1; // 标志 是否找到 数据
printf("请您核对缴费人的信息:\n\n");
if (peopleI[i].owemoney == -1)
{
printf("姓名%s,性别%s,身份证号%s,联系方式%s,楼号%d,房号%d,住房面积%f,每平物业费%f\n本月之前拖欠物业费的月数0\n", peopleI[i].name, peopleI[i].sex, peopleI[i].IDnumber, peopleI[i].phone, peopleI[i].building, peopleI[i].roomID, peopleI[i].roomarea, peopleI[i].areamoney, peopleI[i].owemoney);
printf("\n");
printf("\n用户该月已经缴纳物业费用!\n请按回车键返回菜单选项.....");
getchar();
return;
}
else
{
printf("姓名%s,性别%s,身份证号%s,联系方式%s,楼号%d,房号%d\n住房面积%f,每平物业费%f,本月之前拖欠物业费的月数%d\n", peopleI[i].name, peopleI[i].sex, peopleI[i].IDnumber, peopleI[i].phone, peopleI[i].building, peopleI[i].roomID, peopleI[i].roomarea, peopleI[i].areamoney, peopleI[i].owemoney);
printf("\n");
printf("\n该用户应该缴纳的物业费为:%f 元\n", (peopleI[i].owemoney + 1)*(peopleI[i].roomarea*peopleI[i].areamoney));
}
//显示出信息
/*if (peopleI[i].owemoney == -1)
{
}*/
// printf("\n该用户应该缴纳的物业费为:%f 元\n",(peopleI[i].owemoney+1)*(peopleI[i].roomarea*peopleI[i].areamoney));
do
{
printf("是否为该用户缴费?(Y/N):");
getchar();
scanf("%c", &ch);
} while ((ch != 'Y') && (ch != 'y') && (ch != 'n') && (ch != 'N'));
if ((ch == 'y') || (ch == 'Y'))
{
//计算 并 修改 用户所拖欠的月数
peopleI[i].owemoney = -1;
printf("缴费成功!\n请按回车键返回菜单选项.....");
fclose(fp); //先关闭 文件 再以写的权限打开 清空源文件
fp = fopen("output.xls", "w");
for (i = 1; i < test; i++) //重新写入
{
fprintf(fp, "%s %s %s %s %d %d %f %f %d\n", peopleI[i].name, peopleI[i].sex, peopleI[i].IDnumber, peopleI[i].phone, peopleI[i].building, peopleI[i].roomID, peopleI[i].roomarea, peopleI[i].areamoney, peopleI[i].owemoney);
}
fclose(fp);
getchar();
return;
}
}
}
if (sign == 0) //判断为未找到用户
{
printf("没找到该用户!\n请按回车键返回菜单选项.....");
getchar();
getchar();
}
}
//========================================================================================
void OLD_showmoney()//排序功能,按拖欠款项多少,对所有用户信息进大到小排序 5、
{
//读取到内存缓冲区 对peopleI[i].owemoney 用户所欠费用 的数据进行冒泡排序 并从大到小打印到屏幕中
system("cls"); //清屏
people peopleI[10000];//建立结构体 数组
people tt[1]; //临时变量 交换整个 用户的信息
//comper *p;
int number = 0, len = 0, sign = 0, i = 1, a, test, j, p, money[1000], t;
char name[10], ch, newname[10];
UI_show5();
FILE *fp = NULL; //文件指针
fp = fopen("output.xls", "r+");
while (!feof(fp)) //从文件中读取,文件中数据转移到内存数组中区
{ //!feof(fp)只要文件不到末尾 就一直读下去
fscanf(fp, "%s%s%s%s%d%d%f%f%d", peopleI[i].name, peopleI[i].sex, &peopleI[i].IDnumber, &peopleI[i].phone, &peopleI[i].building, &peopleI[i].roomID, &peopleI[i].roomarea, &peopleI[i].areamoney, &peopleI[i].owemoney);
i++;
}
printf("\n");
i--;
test = i;
//对owemoney 的大小进行 经典冒泡排序
for (i = 1; i<test; i++)
for (j = 1; j < test - i; j++)
{
if (peopleI[j].owemoney < peopleI[j + 1].owemoney)
{
tt[0] = peopleI[j];
peopleI[j] = peopleI[j + 1];
peopleI[j + 1] = tt[0];
}
}
for (i = 1; i < test; i++) //将信息 从大到小 打印到屏幕
{
if (peopleI[i].owemoney == -1)
{
printf("姓名%s,性别%s,身份证号%s,联系方式%s,楼号%d,房号%d,住房面积%f,每平物业费%f\n本月之前拖欠物业费的月数0,现在拖欠的物业费用0\n", peopleI[i].name, peopleI[i].sex, peopleI[i].IDnumber, peopleI[i].phone, peopleI[i].building, peopleI[i].roomID, peopleI[i].roomarea, peopleI[i].areamoney, peopleI[i].owemoney);
printf("\n");
}
else
{
printf("姓名%s,性别%s,身份证号%s,联系方式%s,楼号%d,房号%d,住房面积%f,每平物业费%f\n本月之前拖欠物业费的月数%d,现在拖欠的物业费用%f\n", peopleI[i].name, peopleI[i].sex, peopleI[i].IDnumber, peopleI[i].phone, peopleI[i].building, peopleI[i].roomID, peopleI[i].roomarea, peopleI[i].areamoney, peopleI[i].owemoney, (peopleI[i].owemoney + 1)*(peopleI[i].roomarea*peopleI[i].areamoney));
printf("\n");
}
}
printf("请按任意键返回菜单选项......\n");
}
//================================================================================
void EXIT() // 退出
{
char ch;
do
{
printf("你确定退出吗?(Y/N):");
getchar();
scanf("%c", &ch);
} while ((ch != 'Y') && (ch != 'y') && (ch != 'n') && (ch != 'N'));
if ((ch == 'y') || (ch == 'Y'))
{
exit(0);
}
}
//===================================================================================
// 各种UI
void UI_show1()
{
int i;
for (i = 0; i < 75; i++) //数字 控制 上方 = 数量
{
printf("=");
}
printf("\n");
for (i = 0; i < 15; i++)
{
printf(" ");
}
printf("你正在添加用户信息,请根据提示输入用户信息。\n");
for (i = 0; i < 75; i++) //数字 控制 上方 = 数量
{
printf("=");
}
printf("\n");
}
void UI_show2()
{
int i;
for (i = 0; i < 75; i++) //数字 控制 上方 = 数量
{
printf("=");
}
printf("\n");
for (i = 0; i < 15; i++)
{
printf(" ");
}
printf("你正在修改用户信息,请根据提示输入用户信息。\n");
for (i = 0; i < 75; i++) //数字 控制 上方 = 数量
{
printf("=");
}
printf("\n");
}
void UI_show3()
{
int i;
for (i = 0; i < 75; i++) //数字 控制 上方 = 数量
{
printf("=");
}
printf("\n");
for (i = 0; i < 15; i++)
{
printf(" ");
}
printf("你正在删除用户信息,请根据提示输入用户信息。\n");
for (i = 0; i < 75; i++) //数字 控制 上方 = 数量
{
printf("=");
}
printf("\n");
}
void UI_show4()
{
int i;
for (i = 0; i < 75; i++) //数字 控制 上方 = 数量
{
printf("=");
}
printf("\n");
for (i = 0; i < 15; i++)
{
printf(" ");
}
printf("你正在使用缴费功能,请根据提示输入用户信息。\n");
for (i = 0; i < 75; i++) //数字 控制 上方 = 数量
{
printf("=");
}
printf("\n");
}
void UI_show5()
{
int i;
for (i = 0; i < 75; i++) //数字 控制 上方 = 数量
{
printf("=");
}
printf("\n");
for (i = 0; i < 15; i++)
{
printf(" ");
}
printf("你正在使用排序功能。\n");
for (i = 0; i < 75; i++) //数字 控制 上方 = 数量
{
printf("=");
}
printf("\n");
}