ImageVerifierCode 换一换
格式:DOCX , 页数:60 ,大小:913.83KB ,
资源ID:4811858      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4811858.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(程序设计个人账本管理系统.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

程序设计个人账本管理系统.docx

1、程序设计个人账本管理系统程序设计报告(2014/2015学年 第一学期)题 目:个人账本管理系统 专 业 组长 学号姓名 组员 学号姓名 指 导 教 师 指 导 单 位 日 期 成员分工组长()负责实现新增帐务明细条目、帐务数据查找、修改当前所有帐务数据列表等功能,以及对组员进行程序原理的讲解、报告的撰写和原创程序部分的编写。组员()负责实现帐务收支统计、保存帐务数据到文件中、从文件中读入帐务数据等功能,以及在网络上和图书馆查找资料。组员()负责实现删除帐务明细数据、帐务数据排序、显示帐务明细条目等功能,以及程序的后期调试、细节完善与应用。评分细则评分项优秀良好中等差遵守机房规章制度上机时的表

2、现学习态度程序准备情况程序设计能力团队合作精神课题功能实现情况算法设计合理性用户界面设计报告书写认真程度内容详实程度文字表达熟练程度回答问题准确度简短评语 教师签名: 年 月 日评分等级备注评分等级共五种:优秀、良好、中等、及格、不及格个人账本管理系统一、课题内容和要求该系统要求实现一个简单、实用的个人帐本管理程序,主要功能包括帐务收支明细数据的录入、查找、修改、删除、统计、排序等。所有帐务数据都要利用文件系统保存,以备系统下次运行时使用。通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些基本算法思想的应用。(1)个人帐务数据由帐务明细条目构成,包括:序号,日期(年、月、日),收支项名称

3、,收支类型(收入/支出),收支金额(正/负数表示收支),备注等。(2)需要实现的功能1)新增帐务明细数据。2)查找帐务数据(可按序号、日期(年、月、日)、名称、金额等查找)。3)修改帐务明细条目(先查找,再修改。若查找出多个条目,则进一步提示用户选择条目的序号,再修改)。4)删除帐务明细条目(请参考上面修改的处理)。5)对帐务数据排序(可按日期、名称、金额等排序。要求排序后,记录的序号也要重新编排)。6)显示当前所有帐务数据列表。7)帐务统计(根据日期范围,可分别按年、月或日统计收、支、结余总金额,并显示)。8)保存帐务数据到文件中、从文件中读入帐务数据。(3)界面友好,输入信息符合逻辑。二、

4、需求分析个人账本管理系统的功能框架图如图1所示。图1 功能框架图在当今整个大数据时代的背景下,电子科技越来越多的占据了人们的生活,它们为人们的生活提供了便利。而人们的生活中总是不能缺少与钱打交道的机会的,无论是支出还是收入,交易多了总会出现账目混乱的情况,这种时候,大数据时代,一个简单的“个人账目系统”就很容易帮人们解决这样的问题。再简单的程序也要有可以实现的功能,来达到最初编程的目的。这个程序要实现的基本功能首先包括:新增帐务明细数据:提供提示,引导用户录入账目的年、月、日、名称、金额等基本数据。查找帐务数据:分为按序号、按日期、按名称、按金额查询四种查询方式,形式较为多样化最大限度的提供方

5、便。修改帐务明细条目:提示用户先查找到所要修改的信息条目,直接录入所要修改的数据内容,系统自动调整存储数据;若查找到多个条目,则需提示用户在录入条目的序号更改信息。删除帐务明细条目:首先提示用户查找到要删除的信息条目将后一个数据的信息自动赋值给要删除的内容,依次将后一个数据的信息条目赋值给前一个,最后删除最后一个信息条目,从而实现删除一条信息的删除。对帐务数据排序:分为按金额、按日期、按名称三种排序方式。按金额排序,遵循金额大的序号在前的顺序排列;日期则按照时间发生越晚序号在前的原则;名称排序是按照项目类型的名称ASCLL码从大到小排列。显示当前所有帐务数据列表:使数据信息条目按照序号、年、月

6、、日、名称、收入(正)/支出(负)、备注的顺序显示,每个项目之间间距相同,一组数据占一行,排列规整,显示清晰。帐务统计(根据日期范围,可分别按年、月或日统计收、支、结余总金额,并显示):首先,程序会自动调用日期排序函数进行排序,然后提示用户选择统计方式,按照用户选择进入选项功能。按年统计首先判断是否为同一年,对同一年份的数据进行加和统计,并按照支出金额、收入金额以及余额分别统计。按月统计按日统计同理。昨晚上述内容后,才是进行时间段内总体的支出金额、收入金额和余额的计算。保存帐务数据到文件中、从文件中读入帐务数据:每实现一个功能,涉及到新增信息、数据更改等功能,均提示用户是否保存,利用文件输入输

7、出流将数据内容存入指定文件内。主界面显示功能菜单,根据客户选择运行函数。用户界面的设计简单大方,首先实现清晰便捷的目的,让用户可以方便快速的实现账目管理的不同需求;加入数字的元素,数字与汉字相呼应,更加准确便捷的表达,减去许多繁琐以及不必要的麻烦。三、概要设计 1 主要结构体class account /*用一个类存储账本信息*/public: char a; /是否备注 struct date int year; /年 int month; /月 int day; /日 time; /日期 long double all_time; /日期总数(用于排序) char name20; /收支项

8、名称 int type; /收支类型 long double money; /收支金额 char remarks100; /备注;2 主要函数流程图(1)装载函数:从文本中载入信息,函数流程图如图2所示。图2 装载函数(2)账务新增函数:新增数据并存档,如图3。图3账务新增函数(3)账务查找函数:查询已存档数据,如图4。图4账务查找函数(4)账务修改函数:查询已存档数据,修改并存档,如图5。图5账务修改函数(5)账务删除函数:查询已存档数据,删除并存档,如图6。图6 账务删除函数(6)账务排序函数:查询已存档数据,排序并存档,如图7。图7 账务排序函数(7)账务显示函数:查询已存档数据,删除并

9、存档,如图8。图8 账务显示函数(8)账务统计函数:查询已存档数据,如图9。图9 账本显示函数(9)账务存档函数:将数据存档,如图10。图10 账务存档函数四、源程序代码 #include #include #include #include #include #include #include using namespace std;#define N 500class account /*用一个类存储账本信息*/public: char a; /是否备注 struct date int year; /年 int month; /月 int day; /日 time; /日期 long do

10、uble all_time; /日期总数(用于排序) char name20; /收支项名称 int type; /收支类型 long double money; /收支金额 char remarks100; /备注;void input(account zhangwu,int n);void xinzeng(account zhangwu,int no, int n);void chazhao1(account zhangwu,int i, int n);/按序号查找帐务信息int chazhao2(account zhangwu,int x,int y,int z, int n);/按日期

11、查找帐务信息int chazhao3(account zhangwu,char na, int n);/按名称查找帐务信息int chazhao4(account zhangwu,long double no, int a,int n);/按金额查找帐务信息void xiugai(account zhangwu,int no, int n);int shanchu1(account zhangwu,int no, int n);/按序号删除帐务信息(形参同查找)int shanchu2(account zhangwu,int x,int y,int z, int n);/按日期删除帐务信息(形

12、参同查找)int shanchu3(account zhangwu,char na, int n);/按名称删除帐务信息(形参同查找)void paixu1(account zhangwu,int n);void paixu2(account zhangwu,int n);void paixu3(account zhangwu,int n);void xianshi(account zhangwu,int no,int n);void tongji(account zhangwu,int X,int Y,int Z,int x,int y,int z,int n);int save(accou

13、nt zhangwu, int n);int load(char *filename, account zhangwu);void back();void exit();void zhujiemian() cout 欢迎进入个人帐本管理系统 endl; cout endl; cout 请输入以下选项编号进行下一步操作 endl; cout endl; cout 1.新增账务数据 endl; cout 2.查找账务数据 endl; cout 3.修改账务数据 endl; cout 4.删除账务数据 endl; cout 5.账务数据排序 endl; cout 6.显示所有账务 endl; cou

14、t 7.账务数据统计 endl; cout 0.退出 endl;void xinzeng(account zhangwu,int no, int n) do cout 请输入年 zhangwuno.time.year; while(zhangwuno.time.year2020); do cout 请输入月 zhangwuno.time.month; while(zhangwuno.time.month12 | zhangwuno.time.month0); do cout 请输入日 zhangwuno.time.day; while(zhangwuno.time.day31); zhangw

15、uno.all_time=zhangwuno.time.year*10000 + zhangwuno.time.month*100 + zhangwuno.time.day; do cout 请输入收支类型(1.收入 /2.支出) zhangwuno.type; while(zhangwuno.type!=1&zhangwuno.type!=2); cout 请输入收支项目名称 zhangwuno.name; cout 请输入具体金额 zhangwuno.money; do cout 是否进行备注?(Y/N) zhangwuno.a; while(zhangwuno.a!=y&zhangwun

16、o.a!=n&zhangwuno.a!=Y&zhangwuno.a!=N); if (zhangwuno.a=y|zhangwuno.a=Y) cout 请输入备注: zhangwuno.remarks; save(zhangwu,n);void chazhao1(account zhangwu,int i, int n)/按序号查找帐务信息 int sign=0; cout序号setw(5)年setw(10)月setw(8)日setw(8)名称setw(24)收入(正)/支出(负)setw(6)备注=0 & in) if(zhangwui.type=1) if(zhangwui.a=y) c

17、outi+1setw(10)zhangwui.time.yearsetw(8)zhangwui.time.monthsetw(8)zhangwui.time.daysetw(8)zhangwui.namesetw(8)fabs(zhangwui.money)setw(22)zhangwui.remarksendl; else couti+1setw(10)zhangwui.time.yearsetw(8)zhangwui.time.monthsetw(8)zhangwui.time.daysetw(8)zhangwui.namesetw(8)fabs(zhangwui.money)endl;

18、else if(zhangwui.a=y) couti+1setw(10)zhangwui.time.yearsetw(8)zhangwui.time.monthsetw(8)zhangwui.time.daysetw(8)zhangwui.name -fabs(zhangwui.money)setw(22)zhangwui.remarksendl; else couti+1setw(10)zhangwui.time.yearsetw(8)zhangwui.time.monthsetw(8)zhangwui.time.daysetw(8)zhangwui.name -fabs(zhangwui

19、.money)endl; sign+; if(sign=0&i!=-1) cout无此序号endl; int chazhao2(account zhangwu,int x,int y,int z, int n)/按日期查找帐务信息 int array100=0; int i,k,j=0; int sign=0; cout序号setw(5)年setw(10)月setw(8)日setw(8)名称setw(24)收入(正)/支出(负)setw(6)备注endl; for(i=0;in;i+) if(zhangwui.time.year=x & zhangwui.time.month=y & zhan

20、gwui.time.day=z) if(zhangwui.type=1) if(zhangwui.a=y) couti+1setw(10)zhangwui.time.yearsetw(8)zhangwui.time.monthsetw(8)zhangwui.time.daysetw(8)zhangwui.namesetw(8)fabs(zhangwui.money)setw(22)zhangwui.remarksendl; else couti+1setw(10)zhangwui.time.yearsetw(8)zhangwui.time.monthsetw(8)zhangwui.time.d

21、aysetw(8)zhangwui.namesetw(8)fabs(zhangwui.money)endl; else if(zhangwui.a=y) couti+1setw(10)zhangwui.time.yearsetw(8)zhangwui.time.monthsetw(8)zhangwui.time.daysetw(8)zhangwui.name -fabs(zhangwui.money)setw(22)zhangwui.remarksendl; else couti+1setw(10)zhangwui.time.yearsetw(8)zhangwui.time.monthsetw

22、(8)zhangwui.time.daysetw(8)zhangwui.name -fabs(zhangwui.money)endl; sign+; arrayj=i; j+; if(sign=0) cout此日无收支。endl; return -1; if(array1!=0) cout有以上几个相同日期,请进一步选择以下序号:endl; for(i=0;arrayi!=0;i+) coutarrayi+1k; array0=k-1; return array0; back();int chazhao3(account zhangwu,char na, int n)/按名称查找帐务信息 in

23、t i,k,j=0; int array100=0; int sign=0; cout序号setw(5)年setw(10)月setw(8)日setw(8)名称setw(24)收入(正)/支出(负)setw(6)备注endl; for(i=0;in;i+) if(!strcmp(na,zhangwui.name) if(zhangwui.type=1) if(zhangwui.a=y) couti+1setw(10)zhangwui.time.yearsetw(8)zhangwui.time.monthsetw(8)zhangwui.time.daysetw(8)zhangwui.nameset

24、w(8)fabs(zhangwui.money)setw(22)zhangwui.remarksendl; else couti+1setw(10)zhangwui.time.yearsetw(8)zhangwui.time.monthsetw(8)zhangwui.time.daysetw(8)zhangwui.namesetw(8)fabs(zhangwui.money)endl; else if(zhangwui.a=y) couti+1setw(10)zhangwui.time.yearsetw(8)zhangwui.time.monthsetw(8)zhangwui.time.day

25、setw(8)zhangwui.name -fabs(zhangwui.money)setw(22)zhangwui.remarksendl; else couti+1setw(10)zhangwui.time.yearsetw(8)zhangwui.time.monthsetw(8)zhangwui.time.daysetw(8)zhangwui.name -fabs(zhangwui.money)endl; sign+; arrayj=i; j+; if(sign=0) cout无此类收支。endl; return -1; if(array1!=0) cout有以上几个相同名称,请选择序号:endl; for(i=0;arrayi!=0;i+) coutarrayi+1k; array0=k-1; return array0; back();int chazhao4(account zhangwu,long double

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1