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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

个人账簿管理系统计划书.docx

1、个人账簿管理系统计划书课 程 设 计题 目个人账簿管理系统教 学 院计算机学院专 业计算机科学与技术班 级姓 名指导教师课程设计任务书 2009 2010 学年第 2 学期学生姓名: 专业班级: 指导教师: 工作部门: 计算机学院 一、课程设计题目: 个人账簿管理系统二、课程设计内容(含技术指标)个人帐簿管理系统记录某人每月的全部收入及各项开支情况,包括食品消费,房租,子女教育费用,水电费,医疗费,储蓄等。该系统采用了Windows XP操作系统结合Visual C+ 6.0,TC 2.0等软件开发,可以输入和修改某月的收支情况,可以对每月的开支从小到大进行排序,可以根据输入的月份查询每月的收

2、支情况。三、进度安排1. 系统设计,确定函数功能及其实现过程;2. 根据前面的结果,编写程序清单,进行调试;3. 经过反复的编译,调试,测试,程序运行成功;4. 撰写课程设计报告,完成整个论文报告的工作,并打印;课题答辩。四、基本要求1. 初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2. 完成最低要求:建立一个文件,包括某人5个月的收支情况,能对文件中的信息进行扩充(追加),修改和删除;3. 进一步要求:完成对每月的开支排序,以及完成系统查询功能;4. 应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观。 教研室主任签名: 年 月 日 目 录 课程任务

3、书.11问题描述 31.1 个人账簿管理系统问题描述 31.2 C+文件流 32系统分析 7 2.1系统流程 73系统设计 83.1系统功能 83.2主要数据结构 83.3主要函数说明 104 使用说明 125 系统评价 126 心得体会 127 源程序 138 测试数据 28 附录C参考文献 . 311问题描述1.1个人账簿管理系统问题描述个人帐簿管理系统记录某人每月的全部收入及各项开支情况,包括食品消费,房租,子女教育费用,水电费,医疗费,储蓄等。进入系统后可以输入和修改某月的收支情况,可以对每月的开支从小到大进行排序,可以根据输入的月份查询每月的收支情况。实现要求: 1 初步完成总体设计

4、,搭好框架,确定人机对话的界面,确定函数个数; 2 完成最低要求:建立一个文件,包括某人5个月的收支情况,能对文件中的信息进行扩充(追加),修改和删除; 3 进一步要求:完成对每月的开支排序,以及完成系统查询功能。有兴趣的同学可以自己扩充系统功能。1.2 C+简述 编写此类程序,最主要的是灵活对文件的使用。在C+中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符: 1、插入器() 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,coutWrite Stdout) 从流中

5、输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,所以,cinx;就表示从标准输入流中读取一个指定类型(即变量x的类型)的数据。 在C+中,对文件的操作是通过stream的子类fstream(file stream)来实现的,所以,要用这种方式操作文件,就必须加入头文件fstream.h。下面就把此类的文件操作过程一一道来。 一、打开文件 在fstream类中,有一个成员函数open(),就是用来打开文件的,其原型是: void open(const char* filename,int mode,int access); 参数: filename: 要打开的文件名

6、 mode: 要打开文件的方式 access: 打开文件的属性 / 注:现在C+标准库不支持nocreate和noreplace,以前的旧版本可以用.打开文件的属性取值是: 0:普通文件,打开访问 1:只读文件 2:隐含文件 4:系统文件 可以用“或”或者“+”把以上属性连接起来 ,如3或1|2就是以只读和隐含属性打开文件。 如果open函数只有文件名一个参数,则是以读/写普通文件打开,即: file1.open(c:config.sys);file1.open(c:config.sys,ios:in|ios:out,0); 另外,fstream还有和open()一样的构造函数,对于上例,在定

7、义的时候就可以打开文件了: fstream file1(c:config.sys); 特别提出的是,fstream有两个子类:ifstream(input file stream)和ofstream(outpu file stream),ifstream默认以输入方式打开文件,而ofstream默认以输出方式打开文件。 ifstream file2(c:pdos.def);/以输入方式打开文件 ofstream file3(c:x.123);/以输出方式打开文件 所以,在实际应用中,根据需要的不同,选择不同的类来定义:如果想以输入方式打开,就用ifstream来定义;如果想以输出方式打开,就用

8、ofstream来定义;如果想以输入/输出方式来打开,就用fstream来定义。 二、关闭文件 打开的文件使用完成后一定要关闭,fstream提供了成员函数close()来完成此操作,如:file1.close();就把file1相连的文件关闭。 三、读写文件 读写文件分为文本文件和二进制文件的读取,对于文本文件的读取比较简单,用插入器和析取器就可以了;而对于二进制的读取就要复杂些,下要就详细的介绍这两种方式 1、文本文件的读写 文本文件的读写很简单:用插入器()从文件输入。假设file1是以输入方式打开,file2以输出打开。示例如下: file2i;/从文件输入一个整数值。 这种方式还有一

9、种简单的格式化能力,比如可以指定输出为16进制等等,具体的格式有以下一些 操纵符 功能 输入/输出 dec 格式化为十进制数值数据 输入和输出 endl 输出一个换行符并刷新此流 输出 ends 输出一个空字符 输出 hex 格式化为十六进制数值数据 输入和输出 oct 格式化为八进制数值数据 输入和输出 /setpxecision(int p) 设置浮点数的精度位数 输出 setprecision(int p) 设置浮点数的精度位数 输出(setpxecision应该为setprecision,使用时需要包含头文件:#include )/比如要把123当作十六进制输出:file1hex123

10、;要把3.1415926以5位精度输出:file1setpxecision(5)3.1415926。 比如要把123当作十六进制输出:file1hex123;要把3.1415926以5位精度输出:file1setprecision(5)3.1415926。 2、二进制文件的读写 put() put()函数向流写入一个字符,其原型是ofstream &put(char ch),使用也比较简单,如file1.put(c);就是向流写一个字符c。 get() get()函数比较灵活,有3种常用的重载形式: 一种就是和put()对应的形式:ifstream &get(char &ch);功能是从流中读

11、取一个字符,结果保存在引用ch中,如果到文件尾,返回空字符。如file2.get(x);表示从文件中读取一个字符,并把读取的字符保存在x中。 读写数据块 要读写二进制数据块,使用成员函数read()和write()成员函数,它们原型如下: read(unsigned char *buf,int num); write(const unsigned char *buf,int num); read()从文件中读取 num 个字符到 buf 指向的缓存中,如果在还未读入 num 个字符时就到了文件尾,可以用成员函数 int gcount();来取得实际读取的字符数;而 write() 从buf指向

12、的缓存写 num 个字符到文件中,值得注意的是缓存的类型是 unsigned char *,有时可能需要类型转换。 四、文件定位 和C的文件操作方式不同的是,C+ I/O系统管理两个与一个文件相联系的指针。一个是读指针,它说明输入操作在文件中的位置;另一个是写指针,它下次写操作的位置。每次执行输入或输出时,相应的指针自动变化。所以,C+的文件定位分为读位置和写位置的定位,对应的成员函数是 seekg()和 seekp(),seekg()是设置读位置,seekp是设置写位置。它们最通用的形式如下: istream &seekg(streamoff offset,seek_dir origin);

13、 ostream &seekp(streamoff offset,seek_dir origin); streamoff定义于 iostream.h 中,定义有偏移量 offset 所能取得的最大值,seek_dir 表示移动的基准位置,是一个有以下值的枚举: ios:beg: 文件开头 ios:cur: 文件当前位置 ios:end: 文件结尾 2系统分析2.1系统流程 1 2 3 4 5 6 03系统设计3.1系统更能此程序完成了录入数据,查看数据,修改数据,查询数据,排序数据,删除数据。3.2主要数据结构void biangeng(MYBILL bill,int length) /*个人

14、账簿信息修改*/menu3: system(cls); int choice; printf(nnnn *个人账簿管理系统*nn); printf( 1. 删除记录nn); printf( 2. 修改记录nn); printf( 3. 添加记录nn); printf( 0. 返回上一级菜单nn); printf( *n); printf( 请选择(03)n ); scanf(%d,&choice); switch(choice) case 1: length=load(bill); length=delet(bill,length); save(bill,length); printf( 请按

15、任意键返回.n); getch(); break; case 2: length=load(bill); rewrite(bill,length); save(bill,length); printf( 请按任意键返回.n); getch(); break; case 3: length=load(bill); length=add(bill,length); save(bill,length); printf( 请按任意键返回.n); getch(); break; case 0: return; goto menu3;void wenjian(MYBILL bill,int length)

16、 /*账簿信息文件操作*/menu4: system(cls); int choice; printf(nnnn *个人账簿管理系统*nn); printf( 1. 导入文件到内存nn); printf( 2. 把当前文件复制到新文件上nn); printf( 0. 返回上一级菜单nn); printf( *n); printf( 请选择(02)n ); scanf(%d,&choice); switch(choice) case 1: length=load(bill); printf(您已经成功的导入文件到内存!n); printf( 请按任意键返回.n); getch();break;

17、case 2: copy(); printf(复制成功!n); printf( 请按任意键返回.n); getch();break; case 0: return; goto menu4;3.3主要函数说明void main(); /菜单void input(Infor *newI); /接收键盘输入void writeinfor(Infor *newI);/向文件内写入内容void wenjian(MYBILL bill,int length);/将dat格式文件转换为txt文件Status search(Infor *a);/查询函数返回查询的结果及查询的状态void paixu(Info

18、r *a);/对查询据结果排序void biangeng(MYBILL bill,int length);/修改数据void delRecord(int mon);/删除数据4使用说明4.1运行环境:DOS/WIN 7/XP 操作系统,VC+6.0编译系统4.2系统使用说明:必须选择0-6选择自己需要的操作。首先,选择1录入数据,然后根据自己的需要选择1个人账簿录入数据,2个人账簿查看数据,3个人账簿信息修改数据,4个人账簿信息查询数据,5账簿信息及文件操作,6删除数据,0 退出系统。FILE *sfp,*tfp; if(sfp=fopen(mybill.txt,rb)=NULL) print

19、f(对不起,不能打开您所需要的文件!n); exit(1); printf(请输入目标文件名,例如:c:f1mybill.txtn); 在执行账簿文件操作时,应注意文件的存储位置和录入数据是否已经导入内存中void monthsearch(MYBILL t,int n) char s20; int i; printf(请输入您要查找的月份: ); scanf(%s,s); for(i=0;i0) printf(请输入您的个人账单信息n); printf(n 月份 食品消费 房租费用 子女费用 水电费用 医疗费用 储蓄费用 本月收入 n); printf(-n); for(i=0;in;i+)

20、scanf(%s%s%s%s%s%s%s%s,ti.month,ti.spxf,ti.fzfy,ti.znjy, ti.sdfy,ti.ylfy,ti.cxfy,ti.srfy); printf(-n); printf(信息录入成功!); return n; if(n=0) printf(对不起,您输入的月数不正确n);exit(0);void list(MYBILL t,int n) system(cls); int i; printf(n*个人账簿信息*n); printf( 总共有 %d 个月的账单 n,n); printf( 月份 食品消费 房租费用 子女费用 水电费用 医疗费用 储蓄费用 本月收入 n); printf(-n); for(i=0;in;i+) printf(%8s%6s%10s%10s%10s%10s%10s%10sn,ti.month,ti.spxf,ti.fzfy,ti.znjy, ti.sdfy,ti.ylfy,ti.cxfy,ti.srfy); if(i+1)%10=0) printf(请输入任意键继续.

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

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