个人账簿管理系统课程设计论文.docx

上传人:b****6 文档编号:13337137 上传时间:2023-06-13 格式:DOCX 页数:22 大小:112.32KB
下载 相关 举报
个人账簿管理系统课程设计论文.docx_第1页
第1页 / 共22页
个人账簿管理系统课程设计论文.docx_第2页
第2页 / 共22页
个人账簿管理系统课程设计论文.docx_第3页
第3页 / 共22页
个人账簿管理系统课程设计论文.docx_第4页
第4页 / 共22页
个人账簿管理系统课程设计论文.docx_第5页
第5页 / 共22页
个人账簿管理系统课程设计论文.docx_第6页
第6页 / 共22页
个人账簿管理系统课程设计论文.docx_第7页
第7页 / 共22页
个人账簿管理系统课程设计论文.docx_第8页
第8页 / 共22页
个人账簿管理系统课程设计论文.docx_第9页
第9页 / 共22页
个人账簿管理系统课程设计论文.docx_第10页
第10页 / 共22页
个人账簿管理系统课程设计论文.docx_第11页
第11页 / 共22页
个人账簿管理系统课程设计论文.docx_第12页
第12页 / 共22页
个人账簿管理系统课程设计论文.docx_第13页
第13页 / 共22页
个人账簿管理系统课程设计论文.docx_第14页
第14页 / 共22页
个人账簿管理系统课程设计论文.docx_第15页
第15页 / 共22页
个人账簿管理系统课程设计论文.docx_第16页
第16页 / 共22页
个人账簿管理系统课程设计论文.docx_第17页
第17页 / 共22页
个人账簿管理系统课程设计论文.docx_第18页
第18页 / 共22页
个人账簿管理系统课程设计论文.docx_第19页
第19页 / 共22页
个人账簿管理系统课程设计论文.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

个人账簿管理系统课程设计论文.docx

《个人账簿管理系统课程设计论文.docx》由会员分享,可在线阅读,更多相关《个人账簿管理系统课程设计论文.docx(22页珍藏版)》请在冰点文库上搜索。

个人账簿管理系统课程设计论文.docx

个人账簿管理系统课程设计论文

课程名称:

数据结构

湖南涉外经济学院

本科学生课程设计(论文)

 

题目个人账簿管理

 

毕业设计(论文)原创性声明和使用授权说明

原创性声明

本人郑重承诺:

所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。

对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作者签名:

     日 期:

     

指导教师签名:

     日  期:

     

使用授权说明

本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:

按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名:

     日 期:

     

摘要

个人账簿管理是根据现实生活中的应用而编写的,主要是用C语言编写,其中运用到了文件的基本操作,结构体数组,宏定义,还有几个主要循环的应用,其功能包括按月份插入、输出、修改、查询、删除及按开支排序,包括了账簿管理的大部分功能,适合于大部分家庭用户。

关键词:

C语言,算法,数据结构,个人账簿管理

第一章前言

本系统使用MicrosoftVisualStudio.NET2005开发工具创建Web应用程序。

采VisualC.NET开发语言,使用文件的操作达到个人账簿管理的各种功能。

文章详细讨论了该系统的开发、设计环境、实现算法及其具体的实现。

数据结构是一门专业技术基础课。

它的教学要求是:

学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构,存储结构及其相应的算法,并初步掌握算法的时间分析和空间分析的技术。

另一方面,本课程的学习过程也是复杂程序设计的训练过程,要求学生编写的程序结构清楚和正确意读,符合软件工程的规范。

如果说高级语言程序设计的训练过程,要进行了结构化的程序设计的初步训练的话,那么数据结构就要培养我们的数据抽象能力

个人账簿管理系统是结合了文件、结构体、函数等操作,运用了数据结构中最基本的一些算法,使程序简单明了,使用了一些最优的算法,从而达到了不浪费内存的目的,同时也加快了程序的运行速度。

 

第二章系统功能分析

本程序可以实现个人账簿的按月份插入、输出、修改、查询、删除及按开支排序,其中每一个功能,都分别使用了一个函数,其中程序的主界面简洁明了。

可以按主界面的提示完成每一块功能。

2.1个人账簿管理

在程序中定义了一个结构体主要包括(月份,全部的收入,食品开支,房租,水电费,医疗费,储蓄,子女教育费和总体的支出费用)其次定义了6个函数,分别是插入信息,收支情况,修改信息,查询月份信息,删除某月信息,其中每一个程序都能实现相应部分的功能,并且在每一个程序中都使用了相应的文件操作,和结构体数组的操作,通过对数组,结构体,文件的删除、查找、修改及排序使程序都完成了相应的功能。

2.2解决个人账簿管理

2.2.1概要分析

个人账簿管理通过:

voidInsert()//插入信息

voidOutlin()//收支情况

voidModify(intxg)//修改信息

voidSearch(intyf)//查询月份信息

voidDel(intyf)//删除某月信息

voidps()//按收支排序

这六个函数分别完成每一部分功能,其中都是从主函数调用相应的函数,完成相应的功能。

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中,经过换名就达到了效果。

按收支排序是首先建立一个结构体数组,把所有的数据读到数组中,然后按收支情况排序,排好序之后就又把他写入到temp.dat的文件中,删除源文件,替换文件名就实现了排序的功能。

第四章详细设计

4.1程序代码实现

4.1.1程序主界面

voidmain()

{

intk,xg,yf;

do{

printf("\n------------------------------------------------\n");

printf("\n----------欢迎进入个人帐簿管理系统-------------\n\n");

printf("\n-----------个人帐簿管理系统主菜单--------------\n");

printf("\n1.插入某月信息\n");

printf("\n2.输出整体收支情况\n");

printf("\n3.修改某月信息\n");

printf("\n4.查询某月信息\n");

printf("\n5.删除某月信息\n");

printf("\n6.按开支排序输出结果\n");

printf("\n0.退出个人帐簿管理系统\n");

printf("\n------------------------------------------------\n");/*输出开始界面*/

scanf("%d",&k);

switch(k)

{

case1:

{/*插入某月信息*/

Insert();

}break;

case2:

{/*输出所有月份的收支情况*/

Outlin();

}break;

case3:

{/*修改某月信息*/

printf("请输入需要修改的月份:

\n");

scanf("%d",&xg);

Modify(xg);

}break;

case4:

{/*查询某月信息*/

printf("请输入需要查询的月份:

\n");

scanf("%d",&yf);

Search(yf);

}break;

case5:

{/*删除某月信息*/

printf("请输入需要删除的月份:

\n");

scanf("%d",&yf);

Del(yf);

}break;

case6:

{/*排序*/

ps();

}break;

case0:

exit(0);/*退出个人帐簿管理系统*/

default:

printf("输入错误,请重新输入");

}

}while(k<=6);

}

4.1.2创建结构体

structElemType

{

intmonth;/*月份*/

intincome;/*全部月收入*/

intfood;/*食品开支*/

intrent;/*房租*/

intutilities;/*水电费*/

intmedical;/*医疗费*/

intsavings;/*储蓄*/

inteducation;/*子女教育费*/

intpayment;/*总支出*/

}x[12];/*一个月开支信息*/

4.1.3数据的插入

voidInsert()//插入信息

{

intj,i=1;

FILE*fp;

printf("请依次输入\n月份当月收入食品开支房租水电费医疗费子女教育\n");

scanf("%d%d%d%d%d%d%d",&x[i].month,&x[i].income,&x[i].food,&x[i].rent,&x[i].utilities,&x[i].medical,&x[i].education);

x[i].payment=x[i].food+x[i].rent+x[i].utilities+x[i].medical+x[i].education;

x[i].savings=x[i].income-x[i].payment;

if((fp=fopen("data.dat","ab"))==NULL)

{

printf("cannotopenfile\n");

exit(0);

}

for(j=1;j<=i;j++)

fwrite(&x[j],sizeof(structElemType),1,fp);

fclose(fp);

}

4.1.4数据的删除

voidDel(intyf)//删除某月信息

{

FILE*fp1,*fp2;

ElemType*b;

if((fp1=fopen("data.dat","rb"))==NULL)

{

printf("cannotopenfile\n");

exit(0);

}

if((fp2=fopen("temp.dat","wb"))==NULL)

{

printf("cannotopenfile\n");

exit(0);

}

b=(ElemType*)malloc(sizeof(structElemType));

rewind(fp1);

fread(b,sizeof(structElemType),1,fp1);

while(!

feof(fp1))

{

if(b->month!

=yf)

fwrite(b,sizeof(ElemType),1,fp2);

fread(b,sizeof(ElemType),1,fp1);

}

fclose(fp1);

fclose(fp2);

remove(File);//删除源文件

rename("temp.dat",File);//把临时文件改成源文件名

Outlin();//调用输出函数,输出整体的开支

}

4.1.5数据的排序

voidps()//按收支排序

{

FILE*fp1,*fp2;

ElemTypea[12],h;

inti,j,c=0;

if((fp1=fopen("data.dat","rb"))==NULL)

{

printf("cannotopenfile\n");

exit(0);

}

if((fp2=fopen("temp.dat","wb"))==NULL)

{

printf("cannotopenfile\n");

exit(0);

}

for(j=1;!

feof(fp1);j++,c++)

fread(&a[j],sizeof(structElemType),1,fp1);

for(i=1;i

for(j=1;j

{

if(a[i].payment

{

h=a[i];

a[i]=a[j];

a[j]=h;

}

}

for(i=1;i

fwrite(&a[i],sizeof(structElemType),1,fp2);

fclose(fp1);

fclose(fp2);

remove(File);//删除源文件

rename("temp.dat",File);//把临时文件改成源文件名

Outlin();//调用输出函数,输出整体的开支

}

第五章系统实现

其中程序结果如下:

图5.1程序的主界面

图5.2程序插入月份界面

图5.3程序输出整体收支情况

图5.4修改某月信息(修改3月份的数据)

图5.5查询2月份的数据

图5.5删除3月份的信息

 

图5.6按收支排序

第六章解决的关键问题

本程序主要解决的关键问题如下:

1.文件的读写操作及读写所用的方式

2.文件的修改及删除

3.文件的排序

4.结构体的操作

5.函数的参数传递问题

 

第七章结论

通过这次课程设计使我了解到了:

1.写一个程序首先要有算法,而算法有很多种,使用最优的算法,能节约很多时间和加快系统的速度。

2.在这个程序中,主要还是利用了C语言中文件的操作,其中最主要的就是文件的读写及用的不同种读写的方式,还有查找、修改及删除文件中的数据,其中查找还是比较简单,但修改文件中的数据,要利用一个中间文件。

首先要查找到要删除的数据,假如相同就复制到一个文件中,原文件中不相同的也复制到那个文件中,这样以达到修改的目的,删除也类似,还有就是排序了,也要利用到中间文件。

3.在结构体的操作用,不能直接给结构体变量赋值。

4.这个程序的界面编的虽然不怎么好看,但基本账簿管理的功能都达到了。

所以说还是具有一定的实用性。

 

结束语

8.1编程感想

在这次课程设计中,我学习到了,不管做什么事情还是团队协作,才可以使一件事情办得最后,一个人的力量永远是有限的,不管一个人的能力有多大,总会有一些地方的不足,尤其是我们编程这一行,最主要的还是要团队合作。

其次就是写程序时要用到注释,因为一个程序是由几个人写出来的,假如不写注释的话,就相互都看不懂,也不能实现程序的结合,所以说写程序时注释很重要。

最后,我觉得不管做什么事情必须认认真真的做,要沉得下心来,尤其是写程序,假如沉不下心来做的话,也决对写不出一个好的程序或者实用的程序来。

 

参考文献

[1]谭浩强著.《C语言程序设计(第三版)》.清华大学出版社 

[2]严蔚敏、吴伟民.《数据结构(C语言版)》.清华大学出版社

[3]郑阿奇.《VisualC++实用教程(第三版)》.电子工业出版社.

程序分工

姓名

任务分配

马铁军

程序的插入、输出、删除、排序

梁斌

程序主界面的设计、查找、修改

毕业设计(论文)原创性声明和使用授权说明

原创性声明

本人郑重承诺:

所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。

对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作者签名:

     日 期:

     

指导教师签名:

     日  期:

     

使用授权说明

本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:

按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名:

     日 期:

     

学位论文原创性声明

本人郑重声明:

所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。

除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。

对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。

本人完全意识到本声明的法律后果由本人承担。

作者签名:

日期:

年月日

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。

本人授权    大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

涉密论文按学校规定处理。

作者签名:

日期:

年月日

导师签名:

日期:

年月日

独创声明

本人郑重声明:

所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。

尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。

对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。

本声明的法律后果由本人承担。

 

作者签名:

二〇一〇年九月二十日

 

毕业设计(论文)使用授权声明

本人完全了解**学院关于收集、保存、使用毕业设计(论文)的规定。

本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。

(保密论文在解密后遵守此规定)

 

作者签名:

二〇一〇年九月二十日

基本要求:

写毕业论文主要目的是培养学生综合运用所学知识和技能,理论联系实际,独立分析,解决实际问题的能力,使学生得到从事本专业工作和进行相关的基本训练。

毕业论文应反映出作者能够准确地掌握所学的专业基础知识,基本学会综合运用所学知识进行科学研究的方法,对所研究的题目有一定的心得体会,论文题目的范围不宜过宽,一般选择本学科某一重要问题的一个侧面。

毕业论文的基本教学要求是:

1、培养学生综合运用、巩固与扩展所学的基础理论和专业知识,培养学生独立分析、解决实际问题能力、培养学生处理数据和信息的能力。

2、培养学生正确的理论联系实际的工作作风,严肃认真的科学态度。

3、培养学生进行社会调查研究;文献资料收集、阅读和整理、使用;提出论点、综合论证、总结写作等基本技能。

毕业论文是毕业生总结性的独立作业,是学生运用在校学习的基本知识和基础理论,去分析、解决一两个实际问题的实践锻炼过程,也是学生在校学习期间学习成果的综合性总结,是整个教学活动中不可缺少的重要环节。

撰写毕业论文对于培养学生初步的科学研究能力,提高其综合运用所学知识分析问题、解决问题能力有着重要意义。

毕业论文在进行编写的过程中,需要经过开题报告、论文编写、论文上交评定、论文答辩以及论文评分五个过程,其中开题报告是论文进行的最重要的一个过程,也是论文能否进行的一个重要指标。

撰写意义:

1.撰写毕业论文是检验学生在校学习成果的重要措施,也是提高教学质量的重要环节。

大学生在毕业前都必须完成毕业论文的撰写任务。

申请学位必须提交相应的学位论文,经答辩通过后,方可取得学位。

可以这么说,毕业论文是结束大学学习生活走向社会的一个中介和桥梁。

毕业论文是大学生才华的第一次显露,是向祖国和人民所交的一份有份量的答卷,是投身社会主义现代化建设事业的报到书。

一篇毕业论文虽然不能全面地反映出一个人的才华,也不一定能对社会直接带来巨大的效益,对专业产生开拓性的影响。

但是,实践证明,撰写毕业论文是提高教学质量的重要环节,是保证出好人才的重要措施。

2.通过撰写毕业论文,提高写作水平是干部队伍“四化”建设的需要。

党中央要求,为了适应现代化建设的需要,领导班子成员应当逐步实现“革命化、年轻化、知识化、专业化”。

这个“四化”的要求,也包含了对干部写作能力和写作水平的要求。

3.提高大学生的写作水平是社会主义物质文明和精神文明建设的需要。

在新的历史时期,无论是提高全族的科学文化水平,掌握现代科技知识和科学管理方法,还是培养社会主义新人,都要求我们的干部具有较高的写作能力。

在经济建设中,作为领导人员和机关的办事人员,要写指示、通知、总结、调查报告等应用文;要写说明书、广告、解说词等说明文;还要写科学论文、经济评论等议论文。

在当今信息社会中,信息对于加快经济发展速度,取得良好的经济效益发挥着愈来愈大的作用。

写作是以语言文字为信号,是传达信息的方式。

信息的来源、信息的收集、信息的储存、整理、传播等等都离不开写作。

论文种类:

毕业论文是学术论文的一种形式,为了进一步探讨和掌握毕业论文的写作规律和特点,需要对毕业论文进行分类。

由于毕业论文本身的内容和性质不同,研究领域、对象、方法、表现方式不同,因此,毕业论文就有不同的分类方法。

按内容性质和研究方法的不同可以把毕业论文分为理论性论文、实验性论文、描述性论文和设计性论文。

后三种论文主要是理工科大学生可以选择的论文形式,这里不作介绍。

文科大学生一般写的是理论性论文。

理论性论文具体又可分成两种:

一种是以纯粹的抽象理论为研究对象,研究方法是严密的理论推导和数学运算,有的也涉及实验与观测,用以验证论点的正确性。

另一种是以对客观事物和现象的调查、考察所得观测资料以及有关文献资料数据为研究对象,研究方法是对有关资料进行分析、综合、概括、抽象,通过归纳、演绎、类比,提出某种新的理论和新的见解。

按议论的性质不同可以把毕业论文分为立论文和驳论文。

立论性的毕业论文是指从正面阐述论证自己的观点和主张。

一篇论文侧重于以立论为主,就属于立论性论文。

立论文要求论点鲜明,论据充分,论证严密,以理和事实服人。

驳论性毕业论文是指通过反驳别人的论点来树立自己的论点和主张。

如果毕业论文侧重于以驳论为主,批驳某些错误的观点、见解、理论,就属于驳论性毕业论文。

驳论文除按立论文对论点、论据、论证的要求以外,还要求针锋相对,据理力争。

按研究问题的大小不同可以把毕业论文分为宏观论文和微观论文。

凡届国家全局性、带有普遍性并对局部工作有一定指导意义的论文,称为宏观论文。

它研究的面比较宽广,具有较大范围的影响。

反之,研究局部性、具体问题的论文,是微观论文。

它对具体工作有指导意义,影响的面窄一些。

另外还有一种综合型的分类方法,即把毕业论文分为专题型、论辩型、综述型和综合型四大类:

1.专题型论文。

这是分析前人研究成果的基础上,以直接论述的形式发表见解,从正面提出某学科中某一学术问题的一种论文。

如本书第十二章例文中的《浅析领导者突出工作重点的方法与艺术》一文,从正面论述了突出重点的工作方法的意义、方法和原则,它表明了作者对突出工作重点方法的肯定和理解。

2.论辩型论文。

这是针对他人在某学科中某一学术问题的见解,凭借充分的论据,着重揭露其不足或错误之处,通过论辩形式来发表见解的一种论文。

3.综述型论文。

这是在归纳、总结前人或今人对某学科中某一学术问题已有研究成果的基础上,加以介绍或评论,从而发表自己见解的一种论文。

4

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 自我管理与提升

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2