个人账簿管理系统源代码.docx
《个人账簿管理系统源代码.docx》由会员分享,可在线阅读,更多相关《个人账簿管理系统源代码.docx(23页珍藏版)》请在冰豆网上搜索。
个人账簿管理系统源代码
个人账簿管理系统
源程序(带简要注释)
自定义头文件中内容:
#include
#include
#include
#include
#include
//常量定义
#defineTRUE1
#defineERROR0
#defineNOtFound-1
#defineMAXNAME20//用户名的最大长度
//文件保存路径
#defineFilePath1"userinfo.dat"//所有用户整体信息的二进制文件
#defineFilePath2"userinfo.txt"//所有用户整体信息的文本文件
#defineFilePath3"person.dat"//单个用户信息的二进制文件
#defineFilePath4"person.txt"//单个用户信息的文本文件
#defineFilePath5"month.dat"//单月用户信息的二进制文件
#defineFilePath6"month.txt"//单月用户信息的文本文件
#defineFilePath7"help.txt"//说明文件
//函数返回值类型定义
typedefintStatus;
//账单信息结构体
typedefstructAccountBook
{
intfood;//食品费用
intrent;//房租费用
inteducation;//子女教育费用
intwater;//水电费用
intmedicine;//医疗费用
intTotalExpenses;//当月总消费
intsaving;//当月储蓄
intincome;//当月收入
intmonth;//月份
charusername[MAXNAME+1];//用户名
}Bill;
//查询信息结构体
typedefstruct
{
intno;
intdata;
}Sort;
voidMenu(void);//主菜单
StatusSearchMenu(Bill*q);//查找子菜单,并返回其状态
voidinput(Bill*q);//接收键盘数据输入
voidWriteFile(Bill*q);//将信息读入文件
voidFileOutput(void);//转换为文本文件输出
Statussearch(Bill*q);//查找数据,并返回其结果和状态
voidSearchUser(Bill*q);//按用户查找并将数据保存到文件中并显示
voidSearchMonth(Bill*q);//按月份查找并将数据保存到文件中并显示
voidchange(Bill*q,intmon,char*user);//修改数据后,更新文件中的相应记录并输出
voidremove(intmon);//按月删除数据
voidsort(Bill*q);//数据排序
voidquit(void);//退出系统
voidhelp(void);//说明文件,说明系统功能文件
中内容:
//包含头文件
#include"abms.h"
//主函数
intmain()
{
characcount[20];//登陆用户名
charpassword[20];//登陆密码
inti;
printf("\t\t********欢迎进入个人账簿管理系统********\n\n");
printf("\n\t\t\t请输入用户名和密码进入系统:
\n");
printf("\t\t\t请输入用户名:
");
fflush(stdin);
gets(account);
printf("\t\t\t请输入密码:
");
fflush(stdin);
gets(password);
if((!
strcmp(account,"yss")&&!
strcmp(password,"110"))||
!
strcmp(account,"guest")&&!
strcmp(password,"123"))
{
printf("\n\n\t\t\t您已成功登陆,请稍侯!
\n\n\t\t\t");
//延迟
for(i=0;i<20;i++)
{
printf(".");
Sleep(80);
}
//进入页面时清除登陆界面
system("cls");
while
(1)
{
Menu();
}
}
else
{
printf("\t\t\t\a警告:
您尚未注册,无权使用该系统!
\n");
printf("\t\t\t正在强行退出!
\n\t\t\t");
for(i=0;i<20;i++)
{
printf("!
");
Sleep(80);
}
printf("\n\n");
printf("\t\t\t欢迎您下次使用!
\a\a\a\a\a\a\n\n");
}
getchar();
getchar();
return0;
}
文件中内容:
#include"abms.h"
#include"abms.h"
//初始化主菜单
voidMenu()
{
intchoice;//功能选择
intmon;//按月查询
charuser[MAXNAME+1]="";//按用户查询
intflag=1;
Bill*p;
p=(Bill*)malloc(sizeof(Bill));
do{
printf("\t\t\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\n\n");
printf("\t\t********欢迎进入个人账簿管理系统********\n\n");
printf("\t\t1.录入数据。
\n");
printf("\t\t2.查看数据。
\n");
printf("\t\t3.修改数据。
\n");
printf("\t\t4.查找数据。
\n");
printf("\t\t5.排序数据。
\n");
printf("\t\t6.删除数据。
\n");
printf("\t\t7.说明文件。
\n");
printf("\t\t0.退出系统。
\n");
printf("\t\t*****************************************\n");
printf("请选择要进行的操作:
");
scanf("%d",&choice);
}while((choice<0)||(choice>7));
//功能实现
switch(choice)
{
//退出程序
case0:
quit();
exit
(1);
break;
//录入数据
case1:
input(p);
WriteFile(p);
break;
//查看数据
case2:
FileOutput();
break;
//修改数据
case3:
choice=search(p);
mon=p->month;
strcpy(user,p->username);
if(choice!
=TRUE)
{
printf("没有找到符合条件的记录!
\n");
}
else
{
printf("\n用户名月份食品费房租子女教育费水电费医疗费当月储蓄当月收入月总消费\n");
printf("--------------------------------------------------------------------------------\n");
printf("%s%-5d%-9d%-8d%-10d%-8d%-7d%-7d%-8d%-8d\n",\
p->username,p->month,p->food,p->rent,p->education,p->water,p->medicine,p->saving,p->income,p->TotalExpenses);
input(p);
change(p,mon,user);
}
break;
//查找数据
case4:
while(1==flag)
{
flag=SearchMenu(p);
}
break;
//排序数据
case5:
choice=search(p);
if(choice!
=TRUE)
{
printf("没有找到符合排序条件的记录!
\n");
}
else
{
sort(p);
}
break;
//删除数据
case6:
choice=search(p);
mon=p->month;
if(choice!
=TRUE)
{
printf("没有找到符合条件的记录!
\n");
}
else
{
printf("\n用户名月份食品费房租子女教育费水电费医疗费当月储蓄当月收入月总消费\n");
printf("--------------------------------------------------------------------------------\n");
printf("%s%-5d%-9d%-8d%-10d%-8d%-7d%-7d%-8d%-8d\n",\
p->username,p->month,p->food,p->rent,p->education,p->water,p->medicine,p->saving,p->income,p->TotalExpenses);
remove(mon);//删除数据
}
break;
//说明文件
case7:
help();
break;
default:
break;
}
free(p);//释放内存空间
return;
}
//查找子菜单,并返回其状态
StatusSearchMenu(Bill*q)
{
intchoice;//功能选择
intflag;//状态标志
do{
printf("\t\t************欢