目录
前言
1 设计项目.............................................1 2.总体设计.............................................1 2.1 流程图..........................................1 2.2 模块功能说明....................................1 2.3 主要函数之间的调用关系及各自功能................1 2.4 流程图..........................................2 3.程序运行效果截图.....................................3 3.1 主菜单..........................................3 3.2 输入账单........................................3 3.3 查看账单........................................3 3.4 查询账单........................................4 3.5 账单统计........................................4 3.6 修改账单........................................4 3.7 解决方案........................................5 4.源代码...............................................6 5.个人总结............................................13
前言
针对现在高校很多学生都进行记账的现状,采用Java和SQL SERVER2000工具,设计并开发了个人帐本管理系统,该系统能帮助用户进行日常理财。用户通过使用该系统,可以方便的进行日常的收入支出统计和查询。
该系统界面友好,功能完善,简单实用。
1 设计项目:会计记账管理系统 2 总体设计:
2.1流程图
会计记账管理系统
查查统输
看计询入
账账账账
单 单 单 单
修改账单 解决方案 2.2模块功能说明:
1 输入功能:输入时期,科目及金额摘要。 2 查看功能:输出时间,科目及金额。 3 查询功能:通过时间查询账单的具体内容。
4 统计功能:统计总收入,总支出,平均收入,平均支出,损益。
5 修改功能:通过输入时间修改指定账单的错误信息。 6 解决方案:通过损益的判断得出解决方案。
2.3主要函数之间的调用关系及各自功能:
void input(void); void look(void); void search(void); void statistic(void);
1
void modify(void); void solution(void); void menu(void);
2.3.1 在菜单界面输入1,调用函数input()实现输入账单。 2.3.2 在菜单界面输入2,调用函数look()实现账单收入,支出的高低。
2.3.3 在菜单界面输入3,调用函数search()实现通过输入时间查询账单。
2.3.4 在菜单界面输入4,调用函数statistic()实现账单总收入,总支出,平均收入,平均支出,损益。
2.3.5 在菜单界面输入5,调用函数modify()实现输入时间,修改该时间下账单的内容。
2.3.6 在菜单界面输入6,调用函数solution()实现输出本期该解决的方案。
2.3.7 在菜单界面输入7,实现程序退出。
2.4 流程图:
开始 输入指令1~ 7 1 2 3 4 5 6 7 输 显修解查账入 示改决询单账 账账方账统 单 单 单 2 计 单 案 退出
3 程序运行效果截图
3.1主菜单
3.2输入账单
3.3查看账单
3
3.4查询账单
3.5账单统计
4
3.6修改账单
3.7解决方案
5
4 源代码:
#include typedef struct account { char date[20]; char summary[30]; char subject[30]; float borrow; float loan; }STU; STU stu[N]; void input(void); 6 void look(void); void search(void); void statistic(void); void modify(void); void solution(void); void menu(void); void main() { } void menu(void) 7 int mulu=0; menu(); do{mulu=1; switch(getch()) { } printf(\"请按下任意键返回主菜单\\n\"); getch(); menu(); }while(mulu==1); case '1':input();break; /*输入账单*/ case '2':look();break; /*查看账单*/ case '3':search();break; /*查询账单*/ case '4':statistic();break; /*统计账单*/ case '5':modify();break; /*修改账单*/ case '6':solution();break; /*解决方案*/ case '7':exit(0); /*退出程序*/ default:printf(\"您输入的数字有误\"); { } /*输入账单的信息*/ void input(void) { int i; system(\"cls\"); printf(\"请输入账单的数量:\\n\"); scanf(\"%d\system(\"cls\"); printf(\"\\n\"); printf(\"********************会计记账管理系统 ********************\\n\"); \\n\"); printf(\"输入账单---------------------------------------------- 1\\n\"); printf(\"-------查看收入,支出账单的高低顺序------------------- printf(\"--------------查询账单-------------------------------- 3\\n\"); printf(\"---------------------账单统计------------------------- 4\\n\"); printf(\"----------------------------修改账单------------------ 5\\n\"); printf(\"-----------------------------------解决方案----------- 6\\n\"); printf(\"------------------------------------------退出程序---- 7\\n\"); printf(\"***********************************************printf(\"请根据目录选择需要执行的内容\\n\"); printf(\" 菜单 2\\n\"); *********\\n\"); printf(\"若无摘要,填'无';若无借\\\\贷金额填'0'\\n\"); 8 } printf(\"输入日期时请按照xxxx-xx-xx(年-月-日)的形式\\n\"); for(i=0;i 额:\\n\ scanf(\"%s%s%s%f%f\} printf(\"输入成功\\n\"); stu[i].borrow,&stu[i].loan); /*查看账单借贷金额的大小,对账单进行排序*/ void look(void) { int i,j,k; STU t; system(\"cls\"); /*通过借方金额排比顺序*/ for(i=0;i printf(\"名次\时期\\科目\\借方金额\\n\"); for(i=0;i 9 for(k=i,j=i+1;j row); n); } /*通过输入日期查找账单*/ void search(void) { printf(\"\\n\");} /*通过贷方金额排比顺序*/ for(i=0;i printf(\"名次\时期\\科目\\贷方金额\\n\"); for(i=0;i for(k=i,j=i+1;j if(k!=j) {t=stu[k];stu[k]=stu[i];stu[i]=t;} char a[20]; int i; system(\"cls\"); printf(\"请输入需要查询账单的时期,提示;输入日期时请按照scanf(\"%s\for(i=0;i 10 xxxx-xx-xx(年-月-日)的形式\\n\"); } { printf(\"时期\\摘要\科目\\借方金额\\贷方金额 \\n\"); printf(\"%s\%s\%s\\%f\%f\ } else } printf(\"未找到该时期下的账单\\n\"); printf(\"\\n\"); break; bject,stu[i].borrow,stu[i].loan); /*统计总收入,总支出,平均收入,平均支出,损益*/ void statistic(void) { int i; float sum1=0,sum2=0,aver1=0,aver2=0,benefit=0; system(\"cls\"); for(i=0;i printf(\"总收入:%f\\n总支出:%f\\n平均收入:%f\\n平均支出:%f\\n sum1+=stu[i].borrow; sum2+=stu[i].loan; 损益:%f\\n\ 11 } /*修改账单*/ void modify(void) { char a[20]; int i; system(\"cls\"); printf(\"输入要修改账单的日期,提示;输入日期时请按照scanf(\"%s\for(i=0;i scanf(\"%s%s%s%f%f\ } else 12 xxxx-xx-xx(年-月-日)的形式\\n\"); if(strcmp(a,stu[i].date)==0) { printf(\"时期\摘要\科目\借方金额\贷方金额\\n\"); bject,stu[i].borrow,stu[i].loan); printf(\"\\n\"); printf(\"请重新输入日期 摘要 科目 借方金额 贷方金printf(\"\\n\"); 额\"); stu[i].borrow,&stu[i].loan); printf(\"已经修改成功\\n\"); } } printf(\"未找到该时期下的账单\\n\"); /*解决方案*/ void solution(void) { int i; float sum1=0,sum2=0,benefit=0; system(\"cls\"); for(i=0;i if(benefit>0) printf(\"分析本期盈利的原因,并坚持此营销战略,if(benefit==0) printf(\"分析本期收入的情况,并从中选取好的策 sum1+=stu[i].borrow; sum2+=stu[i].loan; 使盈利更大化。\\n\"); 略保留,分析本期支出的情况,从中找出支出过多的原因,总结出更好的营销方法,获取更多利润。\\n\"); } if(benefit<0) printf(\"改变营销方案,增加或减少相应的营销市场,尝试新的保守的策略,来改变以后损益。\\n\"); 5 个人总结 整个程式运用了书上的知识,以及一些没学到过的内容,通过for循环,循环输入会计账户,时间,摘要,科目类型,借贷金额。在借贷金额排序中运用选择法,还有不足之处。 13
因篇幅问题不能全部显示,请点此查看更多更全内容