数据结构课程设计Word文档格式.docx
- 文档编号:7179682
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:17
- 大小:56.06KB
数据结构课程设计Word文档格式.docx
《数据结构课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计Word文档格式.docx(17页珍藏版)》请在冰点文库上搜索。
14
参考文献:
附录:
购房贷款管理系统(等额本息)
-----采用不带头结点的单链表利用类型定义二(第一部分)
专业:
计算机科学与技术姓名:
武文超学号:
12407237
孙俊杰
第一章需求分析
1.1课程设计题目
题目:
1.2课程设计任务及要求
任务:
(1)系统结构:
身份证、姓名、工作单位、贷款额、贷款日期、贷款期限、贷款利率、还款形式、还款额,信贷员。
(2)系统内容:
密码启动修改模块,数据录入模块,还款计划模块,数据删除模块,数据统计模块(分别统计贷款人数,贷款总额;
还款人数,还款总额,还款本金,还款利息;
已还本金,已还利息;
欠款人数,欠款总额,欠款本金,欠款利息)。
要求:
(1)系统中不能同时保存两个身份证号一样的人
(2)当系统中存在一个数据库时,不能重新建立新数据库或不能从磁盘中读取新的数据库;
系统中可实现几个库的切换,但内存中只能有一个库。
(3)还款计划可打印成文本文件输出。
(4)界面友好,易于操作。
1.3课程设计思想
链式存储结构中的每个结点都包含数据域和指针域两个部分,它用一组任意的存储单元存储线性表的数据元素,这组存储单元可以是连续的,也可以是不连续的,线性表的逻辑顺序与存储顺序不是始终一致。
每个链表要占用的空间不必事先预定,而可以在需要时申请。
是一种可以灵活实现动态分配和管理的存储结构。
此处运用单链表的基本结构类型,综合运用各种运算,完成课程设计的任务及要求。
1.4软硬件运行环境及开发工具
硬件设备:
计算机一台
操作系统:
Windows7
使用环境:
VisualC++6.0.
第二章概要设计
2.1主要的数据结构
数据采用链式结构存储,每个链表要占用的空间不必事先预定,而可以在需要时申请。
表的增长通过动态存储分配解决,表的收缩通过动态存储释放实现。
2.2流程图
图1程序流程图
2.3所用方法及其原理的简要说明
后插法建立链表、密码启动修改、利用查找删除信息、系统时间提取函数、C语言文件知识、调用库函数以及各个模块之间的相互调用。
第三章详细设计
3.1计算公式及过程
按等额本息还款法:
设贷款额为a,月利率为r,年利率为R,还款月数为m,每月还款额为b,还款利息总和为x,还款总额为y
1:
R=12×
r
2:
x=m×
b-a
3:
第一月还款利息为:
a×
第二月还款利息为:
〔a-(b-a×
r)〕×
r=(a×
r-b)×
(1+r)^1+b
第三月还款利息为:
{a-(b-a×
r)-〔b-(a×
(1+r)^1-b〕}×
r=(a×
(1+r)^2+b
第四月还款利息为:
(a×
(1+r)^3+b.....
第n月还款利息为:
(1+r)^(n-1)+b
求以上和为:
x=(a×
〔(1+r)^n-1〕÷
r+n×
b
4:
以上两项x值相等求得
月均还款:
b=a×
r×
(1+r)^m÷
〔(1+r)^m-1〕
支付利息:
〔(1+r)^m-1〕-a
还款总额:
y=m×
注:
a^b表示a的b次方。
3.2程序代码
3.2.1建立算法程序
voidsetlink(linklist*h)
{/*(采用后插法)建立单链表*/
charnumstr[15],ch;
lNode*q,*p,*r;
doubley;
printf("
是否录入数据?
(y/n)"
);
scanf("
%c%*c"
&
ch);
if(ch=='
y'
)
{
printf("
输入身份证号姓名单位贷款贷款日期期限利率方式总额信贷员\n"
p=(lNode*)malloc(sizeof(lNode));
p->
next=NULL;
h->
head=p;
q=p;
}
while(ch=='
输入身份证号:
"
gets(numstr);
while(!
strlen(numstr)||!
flagint(numstr))
gets(numstr);
r=h->
head;
while(r!
=NULL&
&
!
(strcmp(r->
numb,numstr)==0))r=r->
next;
if(r!
=NULL)
printf("
身份证号已经存在!
是否重新录入数据?
(y/n):
scanf("
if(ch=='
)continue;
elsebreak;
strcpy(p->
numb,numstr);
输入姓名:
gets(p->
name);
strlen(p->
name)||flagint(p->
name))
gets(p->
输入工作单位:
gzdw);
while(!
gzdw))
输入贷款额(元)"
flagints(numstr))
dkee=atof(numstr);
输入贷款日期(2013.11.11):
"
dkrq);
dkrq)||!
flagday(p->
dkrq))
输入贷款期限(年):
flagint(numstr))
dkqx=atoi(numstr);
输入贷款利率(年息):
p->
dkll=atof(numstr);
strcpy(p->
dkxs,"
本息"
y=pow((1+p->
dkll/1200),p->
dkqx*12);
/*计算:
(1+月利率)^还款次数*/
hkje=p->
dkee*p->
dkqx*12*(p->
dkll/1200)*y/(y-1);
输入信贷员:
sidy);
sidy)||flagint(p->
sidy))
输入信贷员:
gets(p->
}
if(p!
=h->
head)
next=q->
q->
next=p;
q=q->
是否继续录入数据?
(y/n)\n"
p=(lNode*)malloc(sizeof(lNode));
}
3.2.2删除算法程序
lNode*delnumb(linklist*h)
{/*按身份证号删除*/
lNode*p,*q;
charnumb[15];
charch,chs='
;
printlink(*h);
\n\n"
while(chs=='
{
请输入要删除记录的身份证号:
gets(numb);
while(!
strlen(numb)||!
flagint(numb))
gets(numb);
p=h->
while(p!
=NULL&
strcmp(p->
numb,numb)!
=0)p=p->
\n\n身份证号姓名单位贷款贷款日期期限利率方式总额信贷员\n"
%s%7s%7s%11.1lf%12s%4d%7.3lf%%本息%10.2lf%7s\n"
p->
numb,p->
name,p->
gzdw,p->
dkee,p->
dkrq,p->
dkqx,p->
dkll,p->
hkje,p->
\n是否删除此条记录?
if(ch=='
if(p==h->
h->
head=h->
head->
q=h->
else{
while(q->
next!
=p)q=q->
q->
next=p->
free(p);
\n此条记录已经被删除!
!
elseprintf("
\n该条记录不存在,无法进行删除操作!
\n是否继续进行删除操作?
scanf("
chs);
returnh->
lNode*delname(linklist*h)
{/*按姓名删除*/
lNode*p,*q;
intfound,i;
charch,chs='
cha,str[15];
printlink(*h);
while(chs=='
请输入要删除记录的姓名:
gets(str);
p=h->
found=1,i=0;
while(p!
found)
if(strcmp(p->
name,str)==0)
i++;
if(p==h->
free(p);
p=h->
else{
q=h->
while(q->
q->
free(p);
p=q->
\n是否继续查找相同姓名的记录?
cha);
if(cha!
='
found=0;
elsep=p->
if(i==0)printf("
\n是否重新进行删除操作?
returnh->
第四章调试与操作说明
4.1运行与测试期间遇到的问题及其解决办法
问题1:
日期卡得不是太严,好几种形式都能进入系统运行程序。
解决方法:
找资料、请教同学。
问题2:
删除记录时,可以按姓名删除原数据库中没有的记录。
修改程序的右括号位置。
问题3:
不知怎样从磁盘读入算法程序。
复习C语言文件知识、请教同学。
4.2说明
有时程序好编,但调试会很繁琐。
程序较长时,可将程序分块,将程序打注释,找到程序中第一个有错误的地方,不断改正,不断调试与改进;
也有可能不提示错误,但运行时出现错误,这时就需要冷静、仔细分析程序,不断改进,以达到预期效果。
第五章课程设计总结与体会
经过一个学期的学习,我对数据结构这门课程有了很大的了解。
这次的课程设计让我对自己的专业也有了更进一步的了解,也使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的。
只有把所学的理论知识与实践相结合起来,从理论中得出结论,从实践中验证理论,从而提高自己的实际动手和独立思考的能力才是成功之道。
当然,在设计的过程中遇到许许多多的问题,也可以说是困难重重,毕竟这是一次课程设计,需要掌握的知识面比较广,同时在设计的过程中也发现了自己的不足之处,对之前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。
在设计中vc++软件使用的也更加的娴熟,也更加深刻的了解作为一名计算机专业的大学生,我们不仅要有过硬专业知识,更重要的是耐心和恒心。
一个看似简单的程序,也许我们只需要短短十几分钟就可以编写完成,但是我们却需要一个小时甚至更长的时间来不断地调试和改进它,让它变得完美。
但就是在这不断地修改中,我们体会到了编程带给我们的乐趣和程序完美运行时的激动快乐。
我相信其他专业的同学们是永远体会不到这样的快乐。
刚刚拿到题目的时候,心里真的是有一点小小的激动,感觉自己距离传说中的程序员更近了一步。
但是当我正式开工的时候,突然觉得很茫然,不知道应该从哪里下手。
但是通过研究学长、学姐们去年的模板,我渐渐有了思路,慢慢知道了如何下手。
我在一次次的错误中仔细研究,在一次次的警告中细心摸索,一个个模块的顺利完成,让我真的体会到了成功的喜悦。
我的课程设计内容是购房贷款管理系统,采用无头结点,单链表定义二。
系统内分为数据录入、查找、修改、插入、删除模块,还有还款情况,还款计划等模块,还具有建立数据库、调用数据库和数据库之间的切换的功能,十分方便用户使用。
每一个模块都经过了很多次的修改、完善,争取做到完美。
可是最后还是有一部分模块出现了一些小问题,没能达到完美的效果,但是我会继续努力修改,将我人生中的第一个大型编程任务换上一个圆满的句号!
这并不是一个结束,反而是另一个新的开始,是我成为一名合格的程序员的开始!
通过这次课程设计使我进一步达到理论与实际相结合,提高了自己组织数据及编写程序的能力,培养良好的程序设计技能,掌握设计程序的思路,学会用计算机语言编写程序,以实现所需处理的任务,锻炼自己的动脑能力,学会用自己的思路解决现实中的问题,虽然一开始也走了一些弯路,不过在同学和老师的帮助下顺利完成了这次课程设计任务。
这次课程设计中遇到了很多问题。
比如在编写删除模块的时候,一开始没有考虑到重名的情况,再敲完程序之后运行的时候才发现了这个严重的设计错误,而且很多模块之间还有联系,一个模块出错很多模块就需要跟着修改,所以无奈的还得从头修改。
我在调试过程中,还发生了许多小细节上的问题,它们提醒了我要在以后编程的时候注意细节,即使是一个分号的遗漏或者一个字符的误写都会造成大量的错误,浪费许多时间去寻找并修改,所以当我们编写程序的时候,一定要仔细、认真、专注,千万不能三心二意,马马虎虎。
我还有一个很深的体会就是格式和注释,由于平时不注意格式和注释这方面的要求,导致有的时候在检查和调试的时候很不方便。
有的时候甚至刚刚完成一部分的编辑,结果一不注意,就忘记了这一部分程序的功能。
修改的时候也有不小心误删的情况出现。
如果注意格式风格,并且养成随手加注释的习惯,就能减少这些不必要的反复和波折。
还有一点,就是在修改的时候,要注意修改前后的不同点在哪里,改后调试结果要在原有的基础上更加精确。
回顾这次的课程设计,令我仍感慨颇多。
从拿到题目到完成整个编程,从理论到实践,在整整两个星期的日子里,我学到了很多的东西,不仅巩固了以前所学过的知识加深了对编程知识的认识,而且学到了很多在书本上所没有学到过的知识,尤其是那些从书本里学不到的经验。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能真正的学好一门课。
这次的课程设计虽然完成了,但是我的编程之路才刚刚开始。
我要以此次课程设计为起点,不断的锻炼自己,加强自己的编程能力,了解更多的计算机知识,在学习中不断提高自己,完善自己。
为以后考研,找工作打下坚实的基础。
这次课程设计真的很锻炼人,让我学习到很多做人的道理:
做什么事情都要认真仔细、有恒心、有耐心,要善始善终,把每一件事情都尽自己最大的努力去完成,这样在回忆这件事的时候才不会后悔自责!
我很感谢在做课程设计过程同学们对我的帮助,让我体会到团队力量的强大!
致谢:
最后我很感谢在我完成课程设计过程中孙俊杰老师我的帮助。
没有您的帮助不可能这么快、这么好的完成此次课程设计。
是您在我迷茫时是给予我帮助,真的很感谢您!
【1】《C程序设计(第四版)》,谭浩强编著,清华大学出版社,2010
【2】《C程序设计(第四版)学习辅导》,谭浩强编著,清华大学出版社,2010
【3】《数据结构(C语言版)》,严蔚敏,吴伟民著,清华大学出版社,2007
暂无。
指导教师评语:
指导教师签名:
年月日
成绩评定
项目
权重
成绩
1、设计过程中出勤、学习态度等方面
0.1
2、设计技术水平
0.4
3、编程风格
0.2
4、设计报告书写及图纸规范程度
0.3
总成绩
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计