苏惠荣课程设计报告.docx

上传人:b****7 文档编号:9583683 上传时间:2023-02-05 格式:DOCX 页数:16 大小:68.28KB
下载 相关 举报
苏惠荣课程设计报告.docx_第1页
第1页 / 共16页
苏惠荣课程设计报告.docx_第2页
第2页 / 共16页
苏惠荣课程设计报告.docx_第3页
第3页 / 共16页
苏惠荣课程设计报告.docx_第4页
第4页 / 共16页
苏惠荣课程设计报告.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

苏惠荣课程设计报告.docx

《苏惠荣课程设计报告.docx》由会员分享,可在线阅读,更多相关《苏惠荣课程设计报告.docx(16页珍藏版)》请在冰豆网上搜索。

苏惠荣课程设计报告.docx

苏惠荣课程设计报告

长治学院

课程设计报告

课程名称:

数据结构

 

设计题目:

学生缴费管理系统

系别:

计算机系

专业:

计算机科学与技术

组别:

27

学生姓名:

苏惠荣学号:

09407122

起止日期:

2011年3月20日~2011年5月25日

指导教师:

孙俊杰

目录

 

第一章需求分析---------------------------------------------------------------------------3

1.1课程设计题目---------------------------------------------------------------3

1.2课程设计任务及要求------------------------------------------------------3

1.3课程设计思想---------------------------------------------------------------3

1.4程序运行的环境------------------------------------------------------------3

第二章概要设计-----------------------------------------------------------------------------3

2.1系统目标----------------------------------------------------------------------3

2.2设计出友好的界面----------------------------------------------------------3

2.3系统功能分析----------------------------------------------------------------3

第三章详细设计----------------------------------------------------------------------------------4

3.1课程设计的流程图-----------------------------------------------------------------------4

3.2程序代码-----------------------------------------------------------------------5

3.2.1建立算法-------------------------------------------------------------------5

3.2.2读盘算法-------------------------------------------------------------------7

第四章调试与操作说明--------------------------------------------------------------------------8

第五章课程设计总结与体会------------------------------------------------------------9

致谢--------------------------------------------------------------------------------------------------------11

参考文献-----------------------------------------------------------------11

成绩评定-----------------------------------------------------------------11

 

第一章需求分析

1.1课程设计题目

学生缴费管理系统

1.2课程设计任务及要求

该课程设计要求利用带头结点并且带头尾指针的双向链表(类型定义二)完成一个学生缴费管理系统,算法步骤详细但不繁琐,方便用户更好的使用。

具体要求如下:

结构类型定义包括:

学号、姓名、年龄、性别、缴费时间、四年学费、是否缴费、四年总费。

模块共有八个,包括:

密码启动修改模块,数据保存读入模块,数据录入模块,数据查找模块(按学号查询,姓名(包括模糊)查询),数据插入模块,数据统计模块(分别统计每年交费状况),数据删除模块,数据排序模块。

它实现的功能如下:

1.使用密码启动模块进入界面,并且能修改密码;

2.完成学生的基本资料以及缴费情况的录入;

3.实现学生有关资料的建立,读入,查询,排序,删除,插入以及其它操作

1.3课程设计思想

先分别利用学过的C语言和数据结构双向链表的相关知识编写各个模块,再利用函数调用等方式将这些模块连接起来,然后上机调试最后修改成为符合题目要求的学生缴费管理系统。

1.4程序运行的环境

Turboc2.0软件平台,WindowsXP,记事本等

第二章概要设计

2.1系统目标

开发本系统的目的在于方便学校财务处对学生缴费情况的管理,取代了以前通过人工计算或计算机计算的方式,虽然不是很进步,但是在一定程度上还是很有效的。

2.2设计出友好的界面

界面的友好与否是用户评价一个软件优劣的重要因素,友好的界面可以让用户时刻保持一个良好的心情,有利于工作的顺利进行。

界面可以适当改变格式,这样不至用户对同一个界面感到厌烦,同时有利于分开各个操作功能,有助于提高工作的效率。

2.3系统功能分析

这个程序有八个模块:

1.密码启动修改模块(若密码输入三次错误则退出)

2.数据录入模块(不能输入相同学生学号)

3.数据查找模块(按学号查询,姓名(包括模糊查找)查询)

4.数据插入模块(插入到尾部,插入到任意位置)

5.数据保存和读入模块(保存到文件中)

6.数据统计模块(分别统计每年缴费情况)

7.数据删除模块(按学号、姓名进行删除)

8.数据排序模块(按学号排序,按费用排序)

第三章详细设计

3.1课程设计的流程图

3.2程序代码

3.2.1建立算法程序:

voidsetlink(Linklist*h)

{

inta,c,i=0;

longintnumb;

chars;

Linkp,q,r;

{

printf("确定重新建立新的学生缴费资料?

(1-是/2-否):

");

scanf("%d",&a);

if(a==1)

{

destroylink(h);

printf("建立新的学生缴费资料:

");

p=h->head;

printf("输入数据?

(1:

yes2:

no)\n");

scanf("%d",&i);

while(i<1||i>2)

{

printf("输入有误,请重新输入:

\n");

scanf("%d",&i);

}

if(i==1)

{

printf("学号(输入0时退出):

");

scanf("%ld",&numb);

if(numb==0)

{

printf("是否保存?

(1--是;其他--否)");

scanf("%d",&c);

if(c==1)save(h);

elseinterface2(h);

}

while(numb!

=0)

{

r=h->head->next;

while(r!

=NULL)

{

if(r->num==numb)

{

printf("已存在相同的学号,请重新输入!

\n");

getch();

printf("学号(输入0时退出):

");

scanf("%ld",&numb);

if(numb==0)

{

printf("是否保存?

(1--是;其他--否)");

scanf("%d",&c);

if(c==1)save(h);

elseinterface2(h);

}

}

elser=r->next;

}

q=(Link)malloc(sizeof(LNode));

q->num=numb;

printf("姓名:

");

scanf("%s",&q->name);

printf("性别(g-女;b-男):

");

getchar();

gets(q->sex);

printf("年龄:

");

scanf("%d",&q->age);

printf("第一学年缴费时间:

");

scanf("%s",&q->term1);

printf("第一学年学杂费:

");

scanf("%d",&q->fee1);

printf("第二学年缴费时间:

");

scanf("%s",&q->term2);

printf("第二学年学杂费:

");

scanf("%d",&q->fee2);

printf("第三学年缴费时间:

");

scanf("%s",&q->term3);

printf("第三学年学杂费:

");

scanf("%d",&q->fee3);

printf("第四学年缴费时间:

");

scanf("%s",&q->term4);

printf("第四学年学杂费:

");

scanf("%d",&q->fee4);

q->next=p->next;

p->next=q;

q->pre=p;

p=q;

q=(Link)malloc(sizeof(LNode));

printf("学号:

(输入0时退出!

)");

scanf("%ld",&numb);

}

h->tail=p;

if(numb==0)

{

printf("是否保存?

(1--是;其他--否)");

scanf("%d",&c);

if(c==1)save(h);

elseinterface2(h);

}

}

elseinterface2(h);

}

else

interface2(h);

}

printf("是否显示录入情况?

(y/n)");

getchar();

scanf("%c",&s);

switch(s)

{

case'y':

case'Y':

printlink(h);break;

case'n':

case'N':

interface2(h);break;

default:

printf("你的输入有误,请重新输入!

");

getch();

getchar();

}

}

3.2.2从磁盘往出读函数程序:

voidreadinto(Linklist*h)

{

FILE*fp;

Linkp,q;

charfilename[20];

destroylink(h);

initlink(h);

p=((Link)malloc(sizeof(LNode)));

q=h->head;

h->head->next=p;

printf("请输入路径及文件名:

");

scanf("%s",filename);

if((fp=fopen(filename,"rb"))==NULL)

{

printf("打开文件失败!

\n");

exit(0);

getch();

}

else

{

while(q->next!

=NULL)

if(fread(p,sizeof(LNode),1,fp)!

=1)

{

printf("文件读出错误!

");

exit(0);

}

else

{

p->pre=q;

q->next=p;

q=p;

h->tail=q;

if(q!

=NULL)

p=((LNode*)malloc(sizeof(LNode)));

else

{

printf("文件读入成功!

\n");

fclose(fp);

getch();

initlink(h);

}

}

printf("文件读入成功!

\n");

fclose(fp);

getch();

printf("\n");

}

}

第四章调试与操作说明

进入TURBOC2.0系统,运行,先是密码启动,进入界面,再选择相应的编号操作。

例如:

1.建立新的学生资料,在录入的时候,不能录入相同编号的学生资料,否则会提示“已存在相同的学号,请重新输入!

”;

2.插入新的学生资料,进入插入操作界面时,可以选择插入到尾部或插入到任意位置处;

3.选择操作九,将操作结果存盘,以便将来使用学生档案时,直接进行使用;4.选择操作十一,退出程序。

第五章课程设计总结与体会

课程设计结束了,但是体会的事物我想我一辈子都不会忘。

从开始觉得这是一个不可能完成的项目到后来有了点眉目,再到后来基本上编的差不多,一直到最后结束,说是课程设计的完成倒不如说是心灵的历练来的准确,在还没找老师看之前,看着自己努力一个月的劳动成果,真的是一种前所未有的充实,因为只有你付出了,你才能体会到其中的点点滴滴。

上了几节课后,老师正式把课程设计抬到了桌面上来,一开始,老师给我们演示了一下他编写的算法,我觉得很是神奇,虽然自己学的是计算机专业,鉴于软件领域发展前景不错,以后有可能涉足于软件这个行业,但这还是第一次看到软件的原程序代码,并且自己要最后做出这样一个庞大的项目。

一个从没涉及的的方面——这给我了很大的积极性和热情。

虽然说是很亢奋,但也正是这样的亢奋,让我怀疑自己是否有这样的能力。

于是早早就进入了编课程设计的阶段,什么都不会,也是第一次发现大脑竟然真会游离到这种程度,竟然还真是什么都没有。

看笔记,网上查资料,问学长,学姐们,终于知道了学号、姓名、年龄、性别、缴费时间、四年学杂费、是否缴费、四年总费应该写到哪里了,原来它就是结构定义的内容,哎!

不识庐山真面目,只缘身在此山中。

这才是小小的一步,但就是这样小的成果让我开心了好长时间,接下来要解决的任务是编写每个模块的程序。

又是一系列的困难,最头疼的是:

我是类型定义二,子程序中的指针怎么解决,难道用Linklist定义,那就算定义了怎么用也还是个问题啊,好几天的心情总是灰蒙蒙的,有次和同学闲聊,说到这个话题,本是一句无心之话,但就是这样的无心解决了这个问题,真的谢谢这个同学啊,这个解决了后,我赶快进入编写子程序的进程,这个也不容易,因为当时我没电脑,往往是借别人的电脑一用就是一天,饭也没想过要吃,就连晚上我也睡不着,干脆就编程序,一连的通宵啊,我终于知道了计算机系的女生好难活啊,人家都是往脸上扑粉,而我们脸上却积满了辐射的something。

编完子程序代码后,怎么连接啊,一盘散沙,可什么用都没有的!

,自己的人际交往范围在比自己大一届中少之又少啊,所以我就只能是厚着脸皮抓住一个学姐不放,见了人家就问,见不着就去人家宿舍,我估计课程设计这么多天下来,人家再不敢见我了,还有连带她的舍友。

当然每个人又不是神通,只解决了一些问题,剩下的就是和同学交流,最后终于是编的差不多了。

此时大家也都已经编的差不多了,我和同宿舍的同学进行比较,这时候我发现我们的算法还是有很多的不足之处的。

我没有插入到任意位置处,也没有按姓名查找,这是不符合老师的要求的,所以我们开始借鉴舍友的。

很快我的课程设计告一段落了。

看着自己的课程设计,我真是非常的高兴。

因为这是我们努力的结果,我体会到了团队合作的重要性,同时我的编程技巧和编程思路也大大的开阔了。

我想的东西也多了很多。

我想QQ是怎么编写的,它的原代码都是怎么样的。

总而言之,这次课程设计,不仅给我锻炼自己的机会,而且让我学到了很多东西,这是我这次编程获得的最大体会。

老师开始查课程设计了。

我信心满满的去了机房。

我认为我第一次肯定过了,老师查到这,我认真的给老师找我的每一个模块。

但当查到我的建立算法的时候,老师说我的不对。

就这样我的自信心被打击的不复存在。

我又开始修改。

当时我是非常的纳闷,建立怎么会有问题呢,那它为什么可以运行的这么好呢?

当然,我最相信的是我的课堂笔记。

所以我认真的看我的笔记本,但是双链表用类型定义二没有建立的算法,我想单链表不是编的算法多么,肯定可以找到类似的,可是当真正实施的过程中发现,算法很多,但基本上全是类型定义一,而当我仔仔细细检查我的建立算法时,我觉得错误的原因主要是因为类型二这出了问题,找老师之前我想过无数中可能,好的、坏的,为了防止坏的发生,我找已经让老师检查的同学,让他模拟老师的流程走一遍,第一个错误出现了,我编的程序密码必须是六位才能修改成功,而老师要求的是任意位数,接下来就一直在处理这个问题,好不容易解决了,我拜托他再走一遍,这次发现我的删除算法,只有按学号删除,而没有按姓名删除。

查找算法中,每次显示同名者就全显示出来了,而这样是不合理的,假如有一百个学生,那前面的还没有看就过去了,所以正确的应该弄成每次只显示一个,按任意键继续显示。

感觉没什么问题了,但到学校机房,运行几次后发现,课程设计不能统计了,很显然统计模块出问题了,但用记事本打开后看了一遍,没有任何问题,我又找同学看,她也说没有问题,就这样本来想早早给老师检查,但是又耽误了,回宿舍后,我把别人的建立打开一个一个的对,但还是没发现什么问题,我有些慌了,不会花了这么长时间的课程设计,就这样与世无缘吧,过了一天,同学给我打电话说,我问过他后,他回去又检查了一遍,他把可能出现的错误都改了一遍,最后发现是类型定义出问题了,把long改成int就对了,我问他为什么,他说也不知道,自己这时才意识到,做件真是个细活,任何的小错误都演变成一场大灾难,我还是不放心,听说有同学把排序做了两种方法,我也赶快尝试,用姓名排序,我还是没有想明白,所以就换成了用总费用排序,做了这项工作后,我才有勇气让老师检查,我屏住呼吸,特认真按老师的要求走,就害怕自己的手误,最后给错了,可是最后结果是我从没有想到过的,我一直在关注着运行后哪可能出问题,哪不完美,怎么会想到建立这就被卡住了,老师就根本没有查到让我运行哪个模块这里,之前的一切努力再这之后都没有了意义。

调整好心态去上课,老师并没有像我想的那样,他又说起了课程设计,他说,第一遍查完后,他心里已经有数了,哪些人认真编了,哪些人没有认真编。

忽然心很痛,心里一遍遍重复,老师,您是否会知道一个建立都没有过的人私下费了多大的努力,她有多么重视这一次的课程设计,还是如往日一样的忙着弄课程设计的建立算法,只是这一次的心里有了微妙的变化,有点害怕了,又到了上机时间,我终于鼓足勇气,让老师查我的第二遍,不是说我坚强,只是想早死早超生,不想再这样每天下去了。

到了老师那说明了来意,老师说第一遍已经知道你们怎么样了,不必查第二遍了,我有些慌了,说老师我是在建立那出问题了,还没查到模块了,老师还是说不用查了。

我无难的走下来,做到自己的位置上,想了一下,接着又上去了,我告诉老师这个课程设计是自己编的,自己为它费了将近一个月的时间,老师虽然还是说不查,但是他在我那做了个标记,其实我也不知道那有多大的用,但是心理很舒服,毕竟我已经做了一切努力,而且老师也开恩了,呵呵。

通过这次的课程设计,让我明白了有时候一个人的力量真的很不够。

我发现了耐心重要性,发现了合作的重要性,更发现了学习的重要性。

没有什么是不可能的。

这不仅可以用的我的学习生活中,也为我将来的工作提供了一次实践的机会。

让我深刻了解到,我们现在做的是小程序,需要合作,将来我们做大程序,更需要合作。

在刚开始不理解老师为什么要看到我们的错误不指出来,而让我们费那么的劲,再到现在课程设计结束,我终于明白了,如果当初就指出错误,可能我现在就不会学到这么多的东西,在这里谢谢老师的良苦用心。

※谢辞:

该课程设计是我第一次编写程序,一开始真的不知道该怎么做。

为了能更好的完成,我向学长学姐以及同学们请教一些自己不懂的问题。

在此,我要向帮助过我的学长学姐以及同学们表示感谢,感谢你们的支持与帮助。

还要感谢老师的良苦用心,让我学到更多的知识和处事能力。

▲参考文献:

【1】《数据结构使用教程》,徐孝凯编著,清华大学出版社,1999

【2】《C程序设计》(第三版),谭浩强编著,清华大学出版社,2009

【3】《数据结构》(C语言版),严蔚敏,吴伟民编著,清华大学出版社,2010

指导教师评语:

 

指导教师签名:

年月日

 

项目

权重

成绩

1、设计过程中出勤、学习态度等方面

0.1

2、设计技术水平

0.4

3、编程风格

0.2

4、设计报告书写及图纸规范程度

0.3

总成绩

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

当前位置:首页 > 农林牧渔 > 农学

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

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