编辑: 牛牛小龙人 | 2013-06-10 |
1 . 全局变量int year 在添加收入及添加支出等函数中,用于接受年份 int month ;
//在添加收入及添加支出等函数中,用于接受月份 char name[在添加收入及添加支出等函数中,用于接受家庭成员姓名 float money 用来存储收入或支出金额 char detail[用来存储备注 这些全局变量被放在了头文件finance.h中,能被系统中的函数任意调用 注: 宏定义的常量有: MAX_NAME // 家庭成员姓名最大长度 MAX_DETAIL // 备注最大长度 MENU_COUNT // 菜单选项个数 DATA_FILE //数据文件文件名 六 各功能模块的算法处理流程图及相关说明 图2 家庭财务管理处理流程 void add_income() 首先建立单链表,调用input_info()函数提示用户输入收入信息,并将输入的信息存储到单链表中 输入完成后,返回到主菜单界面. void add_payout() 首先建立单链表,调用input_info()函数提示用户输入支出信息,并将输入的信息存储到单链表中 输入完成后,返回到主菜单界面. void search_data() 提示用户按照指定格式输入要查询的年月 如果用户输入错误,给出提示信息 如果用户输入正确,则在单链表中查找改年月的收入信息 如果查找成功,判断查询结果个数是否小于9,调用函数show_info()心事找到的收入信息;
如果大于9,按空格进行翻页处理 如果没有找到任何信息,系统给出提示信息. 提示用户是否继续查询,如果用户输入 Y 或 y ,则再次进行查询操作;
否则返回主菜单界面 void delete_data() 提示用户输入要删除收入的年月,然后根据用户输入的年月信息在单链表中查找相关信息. 如果查找成功,且查找到的数据小于9,直接调用show_info()函数显示查找到的收入信息 如果查到的数据大于9条信息,则按空格键翻页 最后提示用户输入要删除的收入信息的序号,完成删除的操作 如果查找不成功,给出相应的提示信息 提示用户是否继续删除的操作,如果用户输入 Y 或 y ,则再进行查询操作;
否则,返回主菜单界面. void update_data() 首先提示用户输入要更新收入或支出的年月,然后根据用户输入的年月信息在单链表中查找行管信息. 如果查找成功,且查找到的数据小于9,直接调用show_info()函数显示查找到的收入或支出信息 如果查到的数据大于9条信息,则按空格键翻页 最后提示用户输入要更新的收入或支出信息的序号,调用input_info()函数输入更新的收入或支出信息,完成更新操作 如果查找不成功,则给出相应的信息 提示用户是否继续更新的操作,如果用户输入 Y 或 y ,则再进行查询操作;
否则,返回主菜单界面. 七 改进或增加功能模块说明
1 增加功能:密码功能 int main() { int i,n;
int count=0;
count 为计数器,记录已经登记记录的个数 printf( 请输入密码 :\n );
scanf( %d ,&
n);
if(n==201172) { //显示一个简易菜单 } else printf( 您输入的密码错误,您无权访问该程序\n );
八 程序测试 程序运行后,出现如下界面 依次选择1~8项,可得到如下界面: 选择1进行添加收入信息操作 选择2进行查询收入明细 选择3删除收入信息 选择4修改收入信息 选择
5、
6、
7、8进行支出信息操作与收入类似,例如,支出信息的查询 选择9统计总收入和总支出 九 程序设计过程中遇到的问题及解决过程 (1)刚开始没有打开头文件finance.h,导致程序不能运行,一开始以为是编译系统没有这样的函数库,后来经过仔细看书才发现此文件是需要自己定义的,经过多次尝试,终于能够成功运行. (2)刚开始执行输入函数,按年月顺序输入添加收入的日期,输完后执行家庭姓名的输入,按照函数的功能,在输完姓名和收入金额后,理应出现有输入备注信息提示的界面,但是输完收入金额后,页面直接跳转到主菜单页面.后来调试程序时发现少了一个输入语句,后来加上输入语句后程序可以正常运行. (3)输入太多个财务收支信息时,屏幕显示不能控制为一页一页显示,所以为了方便起见,不要输入太多记录,还好在本程序中对于数据的输入个数进行了限制,最大不会超过九个. (4)再添加一个密码功能时,密码的首位数最好不要为0,否则即使输入正确也会显示,密码输入错误,此密码的功能还拥待改进,也曾尝试用字符串作为密码,但没能运行成功,最后便设置了一组数据. (5)在输入选项时不能输入字母,否则会死循环,建议不要乱输字母. (6)在编写程序是因为要经常进行中英文之间的转换,有时再输入完中文后往往忘记转换成英文模式就继续输入代码,结果程序编写完成后,有一大堆错误,而且调试过程中很难被发现,因此在输入代码时务必把输入格式转换成英文的,否则调试时会很难发现. 十 课程设计心得及体会 经过一个星期的努力我们终于完成了这份课程设计,通过这次课程设计我初步认识到了合作的重要性,在现实的工作中,一个项目通常不是一个人所能完成的,而是通过团队的合作才能完成的,所以学习c程序的我们要学会善于和他人合作,只有学会合作才能完成某些任务,就好象这次课程设计,如果让我自己做的话我会感到工作量繁大,无从下手,但是在我们的共同努力下最终还是完美解决了. 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在.因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的. 回顾起此次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识.通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力.在设计的过程中遇到问题,这毕竟独立做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识重新温故. 在这次课程设计中遇到了很多的问题,但在大家的共同努力下都被克服了,通过这次课程设计我也认识到了只要努力,一切困难都会被克服的,克服困难后所带来的快乐会让你喜欢上与困难斗争的. 这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在谢老师的辛勤指导下,终于游逆而解.同时,在老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有........