内蒙古科技大学个人记账软件系统设计报告.docx
- 文档编号:18513617
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:32
- 大小:236.02KB
内蒙古科技大学个人记账软件系统设计报告.docx
《内蒙古科技大学个人记账软件系统设计报告.docx》由会员分享,可在线阅读,更多相关《内蒙古科技大学个人记账软件系统设计报告.docx(32页珍藏版)》请在冰点文库上搜索。
内蒙古科技大学个人记账软件系统设计报告
《C++程序设计》
课程设计说明书
题目
个人记账软件系统
学号
姓名
班级
电信10-2班
指导教师
兰孝文
日期
2012-6-15
内蒙古科技大学课程设计任务书
课程名称
C++语言课程设计
设计题目
个人记账软件的设计
指导教师
兰孝文
时间
2011-2012春学期第17、18周
一、教学要求
1.巩固和加深学生对C++语言课程的基本知识的理解和掌握
2.掌握C++语言编程和程序调试的基本技能
3.利用C++语言进行基本的软件设计
4.掌握书写程序设计说明文档的能力
5.提高运用C++语言解决实际问题的能力
二、设计资料及参数
用C++设计一个系统,能提供下列服务:
(1)录入消费和支出信息,格式为:
日期
金额
操作类型
消费类别
备注
2011-11-2
25
支出
食
购买水果
2011-11-10
40
收入
食
副食补贴
其中操作类型包括收入和支出,消费类别为衣,食,住,行和其他。
(2)查询功能。
查询某一天的消费和支出记录,并能进行修改;
(3)统计功能。
统计某个区间的消费和支出,例如11月份,则输入时间段2011-11-1到2011-11-30统计总的支出和收入。
按照消费类别统计某个时间段内的消费记录,如统计11月份买衣服的支出共有多少?
三、设计要求及成果
根据系统功能要求,可以将问题解决分为以下步骤:
(1)分析系统中的各个实体之间的关系及其属性和行为;
(2)根据问题描述,设计系统的类层次;
(3)完成类层次中各个类的描述(包括属性和方法);
(4)完成类中各个成员函数的定义;
(5)完成系统的应用模块;
(6)功能调试;
(7)提交课程设计报告:
完成系统总结报告以及系统使用说明书
目录
第1章需求分析1
第2章总体设计2
第3章类的设计3
3.1Book类的设计3
第4章详细设计4
4.1工程视图4
4.2类图视图4
4.3函数的调用关系4
4.4主程序流程图5
4.5主要算法的流程图6
第5章测试8
第6章总结11
参考文献:
12
附录:
程序代码13
需求分析
以文件的操作为基础,完成对数据信息的操作。
要求设计类(或类模板)来描述集合,包含必要的构造函数和析构函数,以及其他能够完成如下功能的成员函数:
文件的输入和输出
查询文件中的元素、数据
对文件中进行插入、删除元素
实现文件元素的并、交、差运算
并设计主函数测试该类。
设计要求及成果
根据系统功能要求,可以将问题解决分为以下步骤:
(1)分析系统中的各个实体之间的关系及其属性和行为;
(2)根据问题描述,设计系统的类层次;
(3)完成类层次中各个类的描述(包括属性和方法);
(4)完成类中各个成员函数的定义;
(5)完成系统的应用模块;
(6)功能调试;
(7)提交课程设计报告:
完成系统总结报告以及系统使用说明书
随着计算机技术的飞速发展,它不仅改变了世界,同时也改变了人类的生活。
作为新世纪的大学生,应当站在时代发展的前列,掌握现代科学技术知识,调整自己的知识结构和能力结构,以适应社会发展的要求。
在信息时代,采用传统的算盘和计算器记帐已经显得十分的落后,而且效率低下,尤其在查询和计算方面,效率低且误差大。
为了适应现代化的环境,许多的管理事务都由电脑来管理,从而提高了管理的速率和效率。
本文对个人记账管理系统设计进行了初步的分析解释,对各个功能模块做了图形示意,包括功能分析、功能模块图、系统流程图、系统程序模块、系统测试等。
总体设计
系统的功能结构如图所示:
图2-1系统功能图
主要功能有:
输入密码,有关账目的输入、删除、查寻修改和统计等。
(1)账目的输入:
可按提示输入日期(注意格式),金额,操作类型,消费类别,备注信息。
(2)账目的删除:
进入删除功能,例如我们输入2012-06-01,系统会列出所有这天的交易信息,并且标有序号,我们可对某一项进行删除。
(3)账目的查询修改:
进入查询功能,我们可以看到某一天的信息。
如果有信息不对,可对信息进行修改,修改选择“1”,不修改选择“0”,修改按照提示信息修改即可。
(4)账目的统计:
账目统计功能,可以统计出某一时间段的交易信息,总的支出和总的输入。
也可按照提示输入消费类别(衣食住行其它),按类型统计收入和支出。
类的设计
Book类的设计
Classbook{
数据成员:
private:
stringjydate;//日期
floatmoney;//交易金额
stringjylx;//操作类型
stringxflb;//消费类别
stringbeizhu;//备注
函数成员:
public:
book();//构造函数数据成员的初始化
~book(){}//析构函数
charinter_face();//首页输出显示首页界面返回char型
voidadd_xinxi();//添加数据输入交易信息进行保存
voiddel_xinxi();//删除数据对文件进行整理(提取覆盖)
voidshow_xinxi();//显示指定数据打开文件显示
voidtongji();//统计输入要统计的日期
voidsave_new();//保存新增加的数据
};
详细设计
工程视图
源代码文件:
Personalsystemofaccounting.cpp
图4-1工程视图
类图视图
文件包含的类和函数:
图4-2类图视图
函数的调用关系
首先显示首页的信息,然后选择各自功能的代号,选择执行函数。
如下图:
图4-3函数调用关系
主程序流程图
否
是
图4-4整体流程图
主要算法的流程图
是
否
算法:
将不需要删除的部分保存到文
件中,然后覆盖原文件。
图4-5删除信息流程图
是
否
算法:
添加新数据,删除元数据,
完成修改功能。
图4-6查询与修改账目流程图
否
是
算法:
将收入支出信息
列出,统计加
和。
图4-7统计账目流程图
测试
具体调试过程:
(1)双击Personalsystemofaccounting.exe,进入系统,显示如下:
图5-1主界面
(2)新增账目:
按提示输入日期(注意格式),金额,操作类型,消费类别,备注,不要输入与提示不符的字符,以防统计时遗漏。
下图为填写完成图示,并且已经保存。
图5-2新增账目
(3)删除数据:
进入删除功能,例如我们输入2012-06-01,系统会列出所有这天的交易信息,并且标有序号。
此时我们可以选择删除相应的序号内容,也可回到原始界面(这样就成了查询功能)。
图5-3删除数据
(4)账目查询:
进入查询功能,我们可以看到某一天的信息。
如果有信息不对,可对信息进行修改,修改选择“1”,不修改选择“0”,修改按照提示信息修改即可。
图5-4账目查询
(5)账目统计:
账目统计功能,可以统计出某一时间段的交易信息,总的支出和总的输入。
也可按照提示输入消费类别(衣食住行其它),按类型统计收入和支出。
图5-5账目统计
总结
在期末课程设计中,我们所选择的是设计个人记账系统,这对我们来说是一次尝试与创新的过程,也可以说是一个挑战的过程,毕竟以前没有作过,缺少经验。
现在利用自己学到的知识设计并制作一个图书管理系统,这本身就是一个知识转化为生产力的过程,所以大家都很兴奋,不同程度的投入了很高的热情与努力。
虽然有的同学没能帮上忙,但也在默默的给我们加油。
在具体的设计与实施中,我们看到并感受到了一个管理系统从无到有的过程,对具体的设计步骤、思路、方法、技巧都有了进一步的了解,并感受深刻。
在设计中我们基本能按照规范的方法和步骤进行,首先对现有的系统进行调查,并查阅有关资料,最后确定设计方案,然后设计并制作,实施过程中我们深刻的认识到认真执行管理系统软件标准的重要性,我们由于对管理系统软件相关的标准和规范不太了解,缺少行为操作准则,所以在设计中手法比较生硬,主与次也没能很好把握住,这些方面通过这次我们都要加强了解。
通过这次的课程设计,让我充分感觉到了自己对C++程序了解的不足,以及学习好c++是多么的重要,自己看书的例子觉得好像也没那么难,自己以上级实际操作就出现了许多问题,这次课程设计,感觉自己还是老样子,程序写的还是很不漂亮,比如这个个人记账系统,我写的时候只是注重程序的功能实现,而忘了多写一些子函数,这让我的程序中类函数总是很长,读起来会降低了可读性,我以后会注意这方面的问题,一定要吸取这次教训,吧只是学懂学透,真正的为我所用,这样走上社会我才能真正地发挥所长。
参考文献:
【1】吴敏、杨国林C++面向对象程序设计,内蒙古大学出版社,2006.7
【2】郝长胜、段军、郑惠生C语言程序设计,内蒙古大学出版社,2006.1
附录:
程序代码
#include
#include
#include
#include
#include
#include
usingnamespacestd;//标准命名空间防止与全局标示符重名
classbook
{
public:
book();//默认构造函数
~book(){}//析构函数
charinter_face();//首页
voidadd_xinxi();//添加数据
voiddel_xinxi();//删除数据
voidshow_xinxi();//显示指定数据
voidtongji();//统计
voidsave_new();//保存新增加的数据
private:
stringjydate;//日期
floatmoney;//交易金额
stringjylx;//操作类型
stringxflb;//消费类别
stringbeizhu;//备注
};
book:
:
book()//构造函数初始化
{
jydate="\0";
money=0;
jylx="\0";
xflb="\0";
beizhu="\0";
}
charbook:
:
inter_face()
{
system("cls");//清除屏幕
cout< cout<<"\t\t★★★★★★★★★★★★★★★★★★★★★★★★"< <<"\t\t※个人记账系统※"< <<"\t\t★★★★★★★★★★★★★★★★★★★★★★★★"< <<"\t\t※※"< <<"\t\t※1.新增账目4.账目统计※"< <<"\t\t※※"< <<"\t\t※2.删除数据5.退出※"< <<"\t\t※※"< <<"\t\t※3.账目查询时间: "< "< <<"\t\t★★★★★★★★★★★★★★★★★★★★★"< <<"\t\t\t请选择: "; charchoose; cin>>choose; fflush(stdin);//清缓存 returnchoose; } voidbook: : add_xinxi() { cout< 2012-06-06): "; cin>>jydate; fflush(stdin); cout<<"金额: "; cin>>money; fflush(stdin); cout<<"操作类型(支出和收入): "; cin>>jylx; fflush(stdin); cout<<"消费类别(衣食住行其它): "; cin>>xflb; fflush(stdin); cout<<"备注: "; cin>>beizhu; fflush(stdin); save_new();//保存信息函数 cout< ! ! ! ! "< system("pause");//等待按任意键继续 } voidbook: : del_xinxi() { ofstreamouttemp1("temp1.txt",ios: : out);//写操作输出方式打开 ofstreamoutData("temp.txt",ios: : out); ifstreamindata("Personalsystemofaccounting.txt",ios: : in);//读操作输入方式打开 if(! outData||! indata) { cout< ! ! ! 找不到文件! ! ! ! "< system("pause"); return; } stringsign; cout< "; cin>>sign; boolflag=true; stringstr1,str2; stringstr[200]; inta=1,b; while(indata>>jydate) { getline(indata,str[a]);//按行读取 if(sign==jydate) { if(flag) {
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 内蒙古 科技大学 个人 记账 软件 系统 设计 报告