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

相关文章

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

Go语言中三种容器类型的数据结构详解

《Go语言中三种容器类型的数据结构详解》在Go语言中,有三种主要的容器类型用于存储和操作集合数据:本文主要介绍三者的使用与区别,感兴趣的小伙伴可以跟随小编一起学习一下... 目录基本概念1. 数组(Array)2. 切片(Slice)3. 映射(Map)对比总结注意事项基本概念在 Go 语言中,有三种主要

C语言中自动与强制转换全解析

《C语言中自动与强制转换全解析》在编写C程序时,类型转换是确保数据正确性和一致性的关键环节,无论是隐式转换还是显式转换,都各有特点和应用场景,本文将详细探讨C语言中的类型转换机制,帮助您更好地理解并在... 目录类型转换的重要性自动类型转换(隐式转换)强制类型转换(显式转换)常见错误与注意事项总结与建议类型

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

Go语言利用泛型封装常见的Map操作

《Go语言利用泛型封装常见的Map操作》Go语言在1.18版本中引入了泛型,这是Go语言发展的一个重要里程碑,它极大地增强了语言的表达能力和灵活性,本文将通过泛型实现封装常见的Map操作,感... 目录什么是泛型泛型解决了什么问题Go泛型基于泛型的常见Map操作代码合集总结什么是泛型泛型是一种编程范式,允

Android kotlin语言实现删除文件的解决方案

《Androidkotlin语言实现删除文件的解决方案》:本文主要介绍Androidkotlin语言实现删除文件的解决方案,在项目开发过程中,尤其是需要跨平台协作的项目,那么删除用户指定的文件的... 目录一、前言二、适用环境三、模板内容1.权限申请2.Activity中的模板一、前言在项目开发过程中,尤

C语言小项目实战之通讯录功能

《C语言小项目实战之通讯录功能》:本文主要介绍如何设计和实现一个简单的通讯录管理系统,包括联系人信息的存储、增加、删除、查找、修改和排序等功能,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录功能介绍:添加联系人模块显示联系人模块删除联系人模块查找联系人模块修改联系人模块排序联系人模块源代码如下

基于Go语言实现一个压测工具

《基于Go语言实现一个压测工具》这篇文章主要为大家详细介绍了基于Go语言实现一个简单的压测工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录整体架构通用数据处理模块Http请求响应数据处理Curl参数解析处理客户端模块Http客户端处理Grpc客户端处理Websocket客户端

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.