C语言程序设计课程设计 - (物业管理系统 - 纯C)

2024-03-22 08:30

本文主要是介绍C语言程序设计课程设计 - (物业管理系统 - 纯C),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本套代码分享了我大一C语言实训时最后的 C语言课程设计,第一次接触编程能力还很弱,欢迎拍砖提议。。


额。。。2019.7.7更,最近好多人都在问我代码的问题,大多是大一的,可能C语言语法还不是太熟悉,代码很难复现出来。(看来又到实训期了。。。)

现在做下补充:

1、开发环境:本人大一的时候还是用的visual studio 2015(没在VC++6.0上做测试,咱也不知道。。。咱也不敢问,都9102年了,为何还用VC++6.0。。。)下载visual studio 系列的就好,不用纠结2010 2015 2017的版本。

 2、项目目录结构,num1.h是声明了各种函数还有结构体,Utils.c是各个函数的实现,Main.c是整个程序执行文件(直接运行MainR.c就好了)

 3、文件找不到问题:(请查看Utils.c下所有出现路径的地方,改成正确的路径。ps:output.txt还是要有的哈)

 4、最后考虑到大多是大一的,源码就不挂在GitHub上了,放百度云里了

链接:https://pan.baidu.com/s/1sUd7mhFKR-9eRrpLSwO38A 
提取码:fgtx 
复制这段内容后打开百度网盘手机App,操作更方便哦

 下载后食用方法:

1)依次点击:文件->打开->项目解决方案

2) 找到下载的文件,双击进去,选中Project3.sln,点击打卡就完成了


 

问题描述及设计要求:

住户信息包括:户主姓名、性别、身份证号、联系电话、楼号、单元号、房号、住房面积,每平方米物业费、应缴纳物业费。试设计一物业费管理系统,使之能提供以下功能:

(1)新住户信息的添加(信息不包括应缴纳物业费),可连续添加多名住户的信息;

(2)修改住户信息的功能,输入将修改住户的姓名,读出该住户信息,要求对此进行确认,以决定是否修改,将修改后的信息写到文件中;

(3)删除住户信息的功能,要求同(2);

(4)缴费功能,计算住户的物业费,如果该住户之前的物业费未交清,则本月物业费与之前拖欠费用进行累加,为该用户应缴纳的物业费;根据用户缴纳金额,修改“应缴纳物业费”;

(5)排序功能,按拖欠款项多少,对所有用户信息进行从大到小排序,并输出排序结果;

(6)用菜单进行管理;

(7)只有正确输入用户名密码才能使用此系统;

(8)所有内容能够保存到文件中。下次进入系统是从文件中读取原有信息。

最终效果展示:

完整代码: (按工程文件建立就好一个.h两个.c,includ时修改为自己的文件名)


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;  //定义别名peoplevoid 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();// 退出//各种UI
void UI_show1();
void UI_show2();
void UI_show3();
void UI_show4();
void UI_show5();
#define _CRT_SECURE_NO_WARNINGS 
#include"num1.h"
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
#include<windows.h>
#include<time.h>
#include<malloc.h> // malloc()等//=======================================================================
//密码判定函数
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_s(UU);       //键盘得到 用户名if (strcmp(UW, UU) == 0)    //如果用户名存在 则判断密码是否正确{for (i = 0; i<30; i++){printf(" ");}printf("请输入密码:");for (count = 0; count<3; count++)   //判断密码是否正确{gets_s(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为3if (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");}}}//=======================================================================
//进入界面 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}//=======================================================================
//新用户信息添加  1、
void NEW_in()
{FILE *fp = NULL; //定义文件指针   C:\Users\Administrator\Desktopfp = fopen("C:\\Users\\Administrator\\Desktop\\output.txt", "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  %s  %s  %s  %d  %d  %f  %f  %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("C:\\Users\\Administrator\\Desktop\\output.txt", "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("C:\\Users\\Administrator\\Desktop\\output.txt", "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("C:\\Users\\Administrator\\Desktop\\output.txt", "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("C:\\Users\\Administrator\\Desktop\\output.txt", "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("C:\\Users\\Administrator\\Desktop\\output.txt", "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("C:\\Users\\Administrator\\Desktop\\output.txt", "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("C:\\Users\\Administrator\\Desktop\\output.txt", "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("C:\\Users\\Administrator\\Desktop\\output.txt", "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");
}
//================================================================================
int NEW_oj()//判断文件是否为空
{FILE *fp;fp = fopen("C:\\Users\\Administrator\\Desktop\\output.txt", " r");if (fp == NULL){fp = fopen("C:\\Users\\Administrator\\Desktop\\output.txt", " w");}if (fgetc(fp) == EOF){fclose(fp);return 0;}else{return 1;fclose(fp);}
}//================================================================================
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");
}

 

#define _CRT_SECURE_NO_WARNINGS  //取消安全检查
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
#include<windows.h>
#include<time.h>
#include"num1.h"
//以上包含必须的头文件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;
}


 

这篇关于C语言程序设计课程设计 - (物业管理系统 - 纯C)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/834937

相关文章

什么是cron? Linux系统下Cron定时任务使用指南

《什么是cron?Linux系统下Cron定时任务使用指南》在日常的Linux系统管理和维护中,定时执行任务是非常常见的需求,你可能需要每天执行备份任务、清理系统日志或运行特定的脚本,而不想每天... 在管理 linux 服务器的过程中,总有一些任务需要我们定期或重复执行。就比如备份任务,通常会选在服务器资

C语言线程池的常见实现方式详解

《C语言线程池的常见实现方式详解》本文介绍了如何使用C语言实现一个基本的线程池,线程池的实现包括工作线程、任务队列、任务调度、线程池的初始化、任务添加、销毁等步骤,感兴趣的朋友跟随小编一起看看吧... 目录1. 线程池的基本结构2. 线程池的实现步骤3. 线程池的核心数据结构4. 线程池的详细实现4.1 初

TP-LINK/水星和hasivo交换机怎么选? 三款网管交换机系统功能对比

《TP-LINK/水星和hasivo交换机怎么选?三款网管交换机系统功能对比》今天选了三款都是”8+1″的2.5G网管交换机,分别是TP-LINK水星和hasivo交换机,该怎么选呢?这些交换机功... TP-LINK、水星和hasivo这三台交换机都是”8+1″的2.5G网管交换机,我手里的China编程has

基于Qt实现系统主题感知功能

《基于Qt实现系统主题感知功能》在现代桌面应用程序开发中,系统主题感知是一项重要的功能,它使得应用程序能够根据用户的系统主题设置(如深色模式或浅色模式)自动调整其外观,Qt作为一个跨平台的C++图形用... 目录【正文开始】一、使用效果二、系统主题感知助手类(SystemThemeHelper)三、实现细节

CentOS系统使用yum命令报错问题及解决

《CentOS系统使用yum命令报错问题及解决》文章主要讲述了在CentOS系统中使用yum命令时遇到的错误,并提供了个人解决方法,希望对大家有所帮助,并鼓励大家支持脚本之家... 目录Centos系统使用yum命令报错找到文件替换源文件为总结CentOS系统使用yum命令报错http://www.cppc

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听