账户管理系统课程设计

上传人:shaoy****1971 文档编号:108287120 上传时间:2019-10-23 格式:DOC 页数:22 大小:71KB
返回 下载 相关 举报
账户管理系统课程设计_第1页
第1页 / 共22页
账户管理系统课程设计_第2页
第2页 / 共22页
账户管理系统课程设计_第3页
第3页 / 共22页
账户管理系统课程设计_第4页
第4页 / 共22页
账户管理系统课程设计_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《账户管理系统课程设计》由会员分享,可在线阅读,更多相关《账户管理系统课程设计(22页珍藏版)》请在金锄头文库上搜索。

1、目录第一部分个人帐簿管理系统设计-3 问题描述-3需求分析-3概要设计-3详细设计-8调试分析(算法优劣)-8源程序-9第二部分心得体会-23项目分工-24 一个人帐簿管理系统设计1问题描述 个人帐簿管理系统记录某人每月的全部收入及各项开支情况,包括食品消费,房租,子女教育费用,水电费,医疗费,储蓄等。进入系统后可以输入和修改某月的收支情况,可以对每月的开支从小到大进行排序,可以根据输入的月份查询每月的收支情况。2.需求分析 (1)需要建立一个账户,包括食品消费,房租,教育费用,水电费,医疗费,储蓄等开支情况。(2)对于输入的每个月的开支情况,可以保存并对其查询,修改和对每月的开支从小到大进行

2、排序。(3)友好的用户界面,可以实现用户要求的各项功能。3.概要设计(1)设计思想通过程序建立个人账簿信息(包括各个开支的输入,月份的输入,并能保存新建的个人账簿文件)并且建立查询系统(能查看已有全部个人账簿数据信息,对每月的开支从小到大进行排序,然后确定是否保存修改后的个人账簿信息。能修改用户指定的月份数据信息,并选择是否保存修改的账簿信息。能添加月份的数据信息,并选择是否保存修改的账簿信息)退出系统(2)实现方法通过主程序创建新文件,输入信息并保存,读出已保存文件并进行添加,修改,排序等功能(3)算法流程图2.查询账户主菜单1.建立个人账户 4.退出输入账户保存文件输入项目返回返回数据排序

3、添加新数据修改数据3.删除帐户(4)数据结构定义typedef struct Int accountname;/账户名int month;/ 月份int earning; /收入int food; /食品消费int rent; /房租int children; /子女教育int utilities; / 水电费int medical;/ 医疗费int deposit;/ 储蓄费用account;用于保存每个月份的信息(5)功能模块 CountList.h 头文件,定义数据结构,声明子函数 Count.()主函数,各个功能模块的跳转 int MenuSlect() 主要功能菜单选择 NewCou

4、nt() 新建账户InputData(int m) 输入一个月的账户信息,返回输入的信息一个账户信息 LoadCount(char *name) 登录账户查询个人账户信息(1)LookCount(char *name) 查看账户(2)OutputCount(LinkList countlist)输出账户信息 (3)IsCountExist(char* name)判断输入的账户名对应的账户是否存在添加个人账户信息(4)AddMonthData在账户中添加月份账户信息(5)int IsMonthExist(char *name,int month) 判断账户中输入的月份是否存在(6)ReadCou

5、nt(char *name,LinkList *plist) 把文件中的账户信息读出到链表中(7)LinkList BubbleMonthSort(LinkList head) 把head链表按月份大小排序后返回排序后的head链表 (8)SaveToFile(char *name,LinkList plist) 把链表plist中的数据保存在name文件中修改个人账户信息(9)ResetMonthCount(char *name) 重置输入月份的账户信息(10)IsMonthExist(char *name,int month) 判断输入的月份month在账户中是否存在对每月总支出排序(11

6、)SortCount(char *name)对账户中的总支出排序按月查询账户信息(12)LookMonthCount.() 按输入的月份查看相应的月份账户信息删除某月账户信息(13)DltCount(char *name) 删除账户信息 RmCount()提示用户的输入要删除的账户,如果账户存在就删除,并返回删除成功的信息, 如果账户不存在就返回删除失败信息 AboutIt() 输出本系统的相关介绍3.详细设计(见源程序)4.调试分析(算法优劣)(1)时间复杂度分析本算法的排序功能使用冒泡排序法。若文件初态为正态,则一趟冒泡排序就可完成,排序码比较次数为n-1,且无异动记录,时间复杂度为O(n

7、)。若文件的初态为逆序,则需要n-1次冒泡,每次进行n-i次排序比较,且每次都移动3次,比较和移动次数均达到最大值。C(max)=O(n),M(max)= O(n)(2)算法优缺点:比较的需要的空间较大,算法中增加一个辅助空间temp,辅助空间S(n)=O(1)。冒泡排序法是稳定的。 附 源代码#include #include #include #include #define MONTH 20/*账户开支信息*/struct Countint month; /月份float income; /总收入float outcome; /总支出float food; /食品消费float rent

8、; /房租float education; /子女教育费float water; /水电费float hospital; /医疗费float save; /储蓄float other; /其他;struct Node struct Count acount;struct Node *next; /指向下一个月的信息节点;typedef struct Node *PNode;typedef struct Node *LinkList;typedef struct LinkList *PLinkList;int MenuSlect();int EndWithZero();int IsMonthEx

9、ist(char *name,int month);int IsCountExist(char* name);void AboutIt();void RmCount();void NewCount();void LoadCount(char*);void SortCount(char *);void LookCount(char *);void DltCount(char *name);void LookMonthCount(char *,int);void ResetMonthCount(char *);void AddMonthData(char *name);void ReadCount

10、(char *,LinkList *);void OutputCount(LinkList countlist);void SaveToFile(char *name,LinkList plist);struct Count InputData(int );LinkList BubbleMonthSort(LinkList head);int main() system(color fd);char name16;printf(欢迎使用天才账户管理系统,祝你愉快!n);while(1) out:switch(MenuSlect() case 1:system(cls);NewCount();

11、/新建账户system(cls);break;case 2:system(cls);printf(请输入你的账户名:);while(1) scanf(%s,name);if (!IsCountExist(name) printf(账户不存在,请核对或者选择1新建账户:);goto out;break;LoadCount(name); /登录账户break;case 3:RmCount();break;case 4:system(cls);AboutIt(); /关于我们break;case 0:exit(0); /退出printf(n退出系统!按任意键关闭窗口.);getch();return 0;int MenuSlect() /char ch4;int n;printf(ntttt 主功能菜单 tttt);printf(ntttt1.新建个人账户tttt);printf(ntttt2.登录个人账户tttt);printf(ntttt3.删除个人账户tttt);printf(ntttt4.关于我们 tttt);printf(ntttt0.退出程序 tttt);printf(n根据功能菜单选择相应的操作0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号