第一章 前 言
本系统使用Microsoft Visual Studio.NET 2005开发工具创建Web应用程序。采Visual C.NET开发语言,使用文件的操作达到个人账簿管理的各种功能。文章详细讨论了该系统的开发、设计环境、实现算法及其具体的实现。
数据结构是一门专业技术基础课。它的教学要求是:学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构,存储结构及其相应的算法,并初步掌握算法的时间分析和空间分析的技术。另一方面,本课程的学习过程也是复杂程序设计的训练过程,要求学生编写的程序结构清楚和正确意读,符合软件工程的规范。如果说高级语言程序设计的训练过程,要进行了结构化的程序设计的初步训练的话,那么数据结构就要培养我们的数据抽象能力
个人账簿管理系统是结合了文件、结构体、函数等操作,运用了数据结构中最基本的一些算法,使程序简单明了,使用了一些最优的算法,从而达到了不浪费内存的目的,同时也加快了程序的运行速度。
第二章 系统功能分析
本程序可以实现个人账簿的按月份插入、输出、修改、查询、删除及按开支排序,其中每一个功能,都分别使用了一个函数,其中程序的主界面简洁明了。可以按主界面的提示完成每一块功能。
2.1个人账簿管理
在程序中定义了一个结构体主要包括(月份,全部的收入,食品开支,房租,水电费,医疗费,储蓄,子女教育费和总体的支出费用)其次定义了6个函数,分别是插入信息,收支情况,修改信息,查询月份信息,删除某月信息,其中每一个程序都能实现相应部分的功能,并且在每一个程序中都使用了相应的文件操作,和结构体数组的操作,通过对数组,结构体,文件的删除、查找、修改及排序使程序都完成了相应的功能。
2.2解决个人账簿管理
2.2.1 概要分析
个人账簿管理通过: void Insert() 插入信息 void Outlin( ) 收支情况 void Modify(int xg) 修改信息 void Search(int yf) 查询月份信息 void Del(int yf) 删除某月信息 void ps() 按收支排序
这六个函数分别完成每一部分功能 ,其中都是从主函数调用相应的函数,完成相应的功能。
2.2.2 流程图
第三章 总体设计
3.1概括
个人账簿管理主要是通过文件的输入、输出、查询、修改、删除、排序来完成程序的主要功能,其中每一个功能都为对应的一个函数,增加程序的可读性,以实现程序的整体功能。
3.2基本思路
1. 首先建立一个结构体,用户输入某个月的数据通过相应的文件操作就把他
追加到文件data.dat中。
2. 输入整体的收支情况就是直接从文件中读出所有的数据然后输出到屏幕
中。
3. 修改信息是建立一个临时的temp.dat的文件,通过fp1,fp2两个文件指
针和一个结构体变量b ,fp1指向data.dat,fp2指向temp.dat。然后把fp1中的数据读到b 中,就通过对比,假如b->month==xg就把x[xg]的地址写入到fp2中,否则就直接把b中的数据写到fp2中,通过循环到!feof(fp1)为止,这个就把所有的修改的数据写入到了fp2,关闭两个文件,最后删除原来的data.dat文件,然后把temp.dat文件换名成为data.dat文件,这样就达到了修改的目的。
4. 查询月份信息是在主函数中输入一个数,然后在查询函数中判断是否月份
相同,假如月份相同就输出来。
5. 删除某月信息是和修改某月信息一样的,只是把其中的一句改成
b->month!=xg就直接写入到fp2中,经过换名就达到了效果。
6. 按收支排序是首先建立一个结构体数组,把所有的数据读到数组中,然后
按收支情况排序,排好序之后就又把他写入到temp.dat的文件中,删除源文件,替换文件名就实现了排序的功能。
第四章 详细设计
4.1程序代码实现
4.1.1程序主界面
void main() {
int k,xg,yf; do{
printf(\ 1.插入某月信息\\n\ printf(\ 2.输出整体收支情况\\n\ printf(\ 3.修改某月信息\\n\ printf(\ 4.查询某月信息\\n\
printf(\ 5.删除某月信息\\n\
printf(\ 6.按开支排序输出结果\\n\
printf(\ 0.退出个人帐簿管理系统\\n\ scanf(\ switch(k) {
case 1:{*插入某月信息* Insert(); }break;
case 2:{*输出所有月份的收支情况* Outlin(); }break;