1、个人账簿管理系统源代码个人账簿管理系统源程序(带简要注释)自定义头文件中内容:#include #include #include #include #include /常量定义#define TRUE 1#define ERROR 0#define NOtFound -1#define MAXNAME 20 /用户名的最大长度/文件保存路径#define FilePath1 userinfo.dat /所有用户整体信息的二进制文件#define FilePath2 userinfo.txt /所有用户整体信息的文本文件#define FilePath3 person.dat /单个用户信息的
2、二进制文件#define FilePath4 person.txt /单个用户信息的文本文件#define FilePath5 month.dat /单月用户信息的二进制文件#define FilePath6 month.txt /单月用户信息的文本文件#define FilePath7 help.txt /说明文件/函数返回值类型定义typedef int Status;/账单信息结构体typedef struct AccountBook int food; /食品费用 int rent; /房租费用 int education; /子女教育费用 int water; /水电费用 int m
3、edicine; /医疗费用 int TotalExpenses; /当月总消费 int saving; /当月储蓄 int income; /当月收入 int month; /月份 char usernameMAXNAME+1; /用户名Bill;/查询信息结构体typedef struct int no; int data;Sort;void Menu(void); /主菜单Status SearchMenu(Bill *q); /查找子菜单,并返回其状态void input(Bill *q); /接收键盘数据输入void WriteFile(Bill *q); /将信息读入文件void
4、FileOutput(void); /转换为文本文件输出Status search(Bill *q); /查找数据,并返回其结果和状态void SearchUser(Bill *q); /按用户查找并将数据保存到文件中并显示void SearchMonth(Bill *q); /按月份查找并将数据保存到文件中并显示void change(Bill *q,int mon,char *user); /修改数据后,更新文件中的相应记录并输出void remove(int mon); /按月删除数据void sort(Bill *q); /数据排序void quit(void); /退出系统void
5、help(void); /说明文件,说明系统功能文件中内容:/包含头文件#include abms.h/主函数int main() char account20; /登陆用户名 char password20; /登陆密码 int i; printf(tt*欢迎进入个人账簿管理系统*nn); printf(nttt请输入用户名和密码进入系统: n); printf(ttt请输入用户名: ); fflush(stdin); gets(account); printf(ttt请输入密码: ); fflush(stdin); gets(password); if(!strcmp(account,ys
6、s) & !strcmp(password,110) | !strcmp(account,guest) & !strcmp(password,123) printf(nnttt您已成功登陆,请稍侯!nnttt); / 延迟 for(i = 0; i 20; i+) printf(.); Sleep(80); /进入页面时清除登陆界面 system(cls); while(1) Menu(); else printf(ttta警告:您尚未注册,无权使用该系统!n); printf(ttt正在强行退出!nttt); for(i = 0; i 20; i+) printf(!); Sleep(80)
7、; printf(nn); printf(ttt欢 迎 您 下 次 使 用 !aaaaaann); getchar(); getchar(); return 0;文件中内容:#include abms.h#include abms.h/初始化主菜单void Menu() int choice; /功能选择 int mon; /按月查询 char userMAXNAME+1 = ; /按用户查询 int flag = 1; Bill *p; p = (Bill *)malloc(sizeof(Bill); do printf(tt111111111111111111111111111111111
8、1111111nn); printf(tt*欢迎进入个人账簿管理系统*nn); printf(tt 1.录入数据。 n); printf(tt 2.查看数据。 n); printf(tt 3.修改数据。 n); printf(tt 4.查找数据。 n); printf(tt 5.排序数据。 n); printf(tt 6.删除数据。 n); printf(tt 7.说明文件。 n); printf(tt 0.退出系统。 n); printf(tt*n); printf(请选择要进行的操作:); scanf(%d,&choice); while(choice 7); /功能实现 switch(c
9、hoice) /退出程序 case 0: quit(); exit(1); break; /录入数据 case 1: input(p); WriteFile(p); break; /查看数据 case 2: FileOutput(); break; /修改数据 case 3: choice = search(p); mon = p-month; strcpy(user,p-username); if(choice != TRUE) printf(没有找到符合条件的记录!n); else printf(n用户名 月份 食品费 房租 子女教育费 水电费 医疗费 当月储蓄 当月收入 月总消费n);
10、printf(-n); printf(%s %-5d%-9d%-8d%-10d%-8d%-7d%-7d%-8d%-8dn, 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; /查找数据 case 4: while(1 = flag) flag = SearchMenu(p); break; /排序数据 case 5: choice = search(p); if(choic
11、e != TRUE) printf(没有找到符合排序条件的记录!n); else sort(p); break; /删除数据 case 6: 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%-8dn, p-username,p-month,p-food,p-rent,p-education,p-water,p-medicine,p-saving,p-income,p-TotalExpenses); remove(mon); /删除数据 break; /说明文件 case 7: help(); break; default: break; free(p); /释放内存空间 return;/查找子菜单,并返回其状态Status SearchMenu(Bill *q) int choice; /功能选择 int flag; /状态标志 do printf(tt*欢
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1