付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、长治学院课程设计报告课程名称:数据结构课程设计设计题目:学生缴费管理系统系别:计算机专业:计算机科学与技术(软件技术方向)组别:第十六组学生姓名:sss学号:000000000起止日期:起14年9月29日2015年1月10日指导教师:孙俊杰目录第一章需求分析-21.1 课程设计题目21.2 课程设计思想21.3 课程设计任务及要求-21.4 软硬件运行环境及开发工具3第二章概要设计-32.1 系统目标-32.2 设计出友好的界面32.3 系统功能分析42.4 设计流程图5第三章详细设计-63.1 硬件设计与软件设计-63.2 计算公式及过程63.3 程序代码-63.3.1 建立算法程序63.3
2、.2 从磁盘读入算法程序8第四章调试与操作说明10第五章课程设计总结与体会10参考文献:12附录13第1页共13页学生缴费管理系统第一章需求分析1.1 课程设计题目学生缴费管理系统(采用无头结点带头尾指针的双循环链表类型定义一)1.2 课程设计思想数据的链接存储方式就是用一组任意的存储单元来存放数据,这组存储单元可以是连续的也可以是不连续的(即可以动态分配的)。此处就是运用单链表的基本结构类型,综合运用各种运算对学生缴费系统进行各种操作以完成设计的任务及要求。1.3 课程设计任务及要求编写学生缴费管理系统:基本结构:学生证号、姓名、年龄、性别、缴费时间、四年学费、确定是否缴费、四年总缴费函数模
3、块:1密码启动修改模块2数据保存读入模块3数据录入模块4数据查找模块(按学号查询,姓名(包括模糊查询)查询)5数据插入模块6数据统计模块(分别统计每年缴费情况)7数据删除模块8数据排序模块第2页共13页学生缴费管理系统要求:(1)由算法显示某学期是否缴费或欠费及总缴费(2)当系统中存在一个数据库时,不能重新建立新数据库或不能从磁盘中读取新的数据库(3)将统计的结果用文件输出(4)(采用无头结点并且带头尾指针的双循环链表利用类型定义一)1.4 软硬件运行环境及开发工具MicrosoftVisualC+6.0WindowsXP和Windows7第二章概要设计2.1 系统目标开发本系统的目的是为了学
4、生缴费管理在一定程度上得到改善,使学校类人员更方便进行数据的处理。2.2 设计出友好的界面界面的友好与否是用户评价一个软件优劣的重要因素,友好的界面可以让用户时刻保持一个良好的心情,有利于工作的顺利进行。界面可以适当改变格式,这样不至用户对同一个界面感到厌烦,同时有利于分开各个操作功能,有助于提高工作的效率。第3页共13页学生缴费管理系统2.3 系统功能分析*学生缴费的建立模块:用户根据学生信息录入数据,当录入学生证号已存在时,需换另一学生证号,但相同姓名可以录入多次。* 学生缴费的显示模块:当用户需要时,可以详细显示出学生的缴费信息* 学生缴费的查找模块:当用户需要时,可以根据已经录入的数据
5、来查找自己所需要的数据,查找时可以根据学生证号来查找,也可以根据学生姓名来查找。* 学生缴费的插入模块:当在管理需要时,用户可以根据需要,在已建立的数据的任意位置或是数据序列的末尾插入的数据。* 学生缴费的删除模块:用户可以根据需要,按学生证号或是学生姓名删除所要删除的数据。* 学生缴费的修改模块:当在管理需要时,用户可以根据需要,修改已存在的学生缴费信息。* 学生缴费的统计模块:当在管理需要时,用户可以根据需要,将学生缴费信息中欠费的学生按不同学年依次输出。* 学生缴费的排序模块:当在管理需要时,用户可以根据需要,按要求对学生缴费信息进行整理排序。第4页共13页学生缴费管理系统2.4设计流程
6、图图1系统流程图按姓名删除插在尾部退出按学号删除模糊查找修改操作存盘操作第5页共13页学生缴费管理系统第三章详细设计3.1 硬件设计与软件设计系统设计是把需求转化为软件系统的最重要的环节,系统设计的优劣在于在根本上决定的软件系统的质量,良好的数据结构设计,可以提高数据信息的存储效率,保证数据信息的完整性和一致性。同时,一个合理的数据结构有利于程序的实现。3.2 计算公式及过程设四个学年的缴费依次为:a,b,c,d四年总缴费为w=a+b+c+d3.3 程序代码3.3.1 建立算法程序LNode*setlink(Link*head,LNode*tail)/(采用后插法)建立双循环链表charnum
7、str15,ch;LNode*q,*p,*r;inti,j;printf("是否录入数据?(y/n)");scanf("%c%*c",&ch);if(ch='y')printf("输入学生证号姓名,年龄,性别,学杂费,教材费住宿费,缴费年度nn");q=(Link)malloc(sizeof(LNode);q->next=q;q->pre=q;*head=q;tail=q;p=q;while(ch='y')printf("输入学生证号:");gets(numstr
8、);while(!strlen(numstr)|!flagint(numstr)printf("输入学生证号:");gets(numstr);第6页共13页学生缴费管理系统)r=(*head)->next;while(r!=(*head)&&!(strcmp(r->numb,numstr)=0)r=r->next;if(strcmp(r->numb,numstr)=0)printf("学生证号以经存在!是否重新录入数据?(y/n):");scanf("%c%*c",&ch);if(ch=
9、'y')continue;elsebreak;)strcpy(q->numb,numstr);q->yzzf=0;for(i=0;i<4;i+)strcpy(q->timsi,"末缴");strcpy(q->timfi,"");/*日期数组初始化清空*/for(j=0;j<5;j+)q->yesfij=0;/*实型数组初始化清零*/)strcpy(q->numb,numstr);printf("输入姓名:");gets(q->name);while(!strlen(
10、q->name)printf("输入姓名:");gets(q->name);)printf("输入年龄:");gets(numstr);while(!strlen(numstr)|!flagint(numstr)printf("输入年龄:");gets(numstr);)q->age=atoi(numstr);printf("输入性别(t/f):");gets(q->sex);while(1)if(strcmp("t”,q->sex)=0|strcmp("f'
11、;,q->sex)=0)break;printf("输入性别(t/f):");gets(q->sex);)q=scandata(q);/*调用缴费函数*/第7页共13页学生缴费管理系统if(q!=p)(q->next=*head;/链接后继指针p->next=q;q->pre=p;p=q;tail=p;(*head)->pre=tail;)printf("是否继续录入数据?(y/n):");scanf("%c%*c",&ch);if(ch='y'|ch='Y'
12、)q=(Link)malloc(sizeof(LNode);)returntail;)3.2.2从磁盘读入算法程序voidload(Link*head,Linktail)/在当前目录中打开任意名字的文件Linkp,q;charstr30;FILE*fp;inti=0;printf("n");printf("n");printf("printf("printf("printf("printf("printf("printf("printf("printf("n&quo
13、t;);printf("n");printf("gets(str);*5);*n");*n");* 课程设计单链表文件载入窗口*n");* *n");* *n");* *n");* *n,);输入载入磁盘文件名(可带路径):")while(!strlen(str)printf("gets(str);)重新输入载入磁盘文件名何带路径):");fp=fopen(str,"rb");while(fp=NULL)第8页共13页学生缴费管理系统i+;if(i=3)p
14、rintf("n");printf("n");printf("n");printf("n");printf("*n,);printf("*n");printf("*n");printf("*请建立新链表后存盘保存*n");printf("*n");printf("*选择新磁盘文彳t载入*n")printf("*n");printf("*肝);scanf("%*c&qu
15、ot;);exit(0);)printf("磁盘文件%s/、存在!n",str);printf("输入载入磁盘文件名(口带路径):");gets(str);while(!strlen(str)printf("重新输入载入磁盘文件名何带路径):");gets(str);)fp=fopen(str,"rb");)*head=inilink(*head);*head=(Link)malloc(sizeof(LNode);(*head)->next=(*head);(*head)->pre=(*head);p=
16、*head;while(!feof(fp)q=(Link)malloc(sizeof(LNode);if(fread(q,sizeof(LNode),1,fp)!=1)break;q->next=p->next;p->next=q;q->pre=p;p=q;)tail=p;p=*head;第9页共13页学生缴费管理系统*head=(*head)->next;(*head)->pre=tail;tail->next=*head;free(p);fclose(fp);printf("n磁盘文件%s装入内存成功!n",str);print
17、f("nn");printf("按任意键返回到主窗口!");scanf("%*c");printf("%s%8s%6d%6s%9s%9s%9s%9s%10.2fn",tail->numb,tail->name,tail->age,tail->sex,tail->tims0,tail->tims1,tail->tims2,tail->tims3,tail->yzzf);第四章调试与操作说明在系统的制作过程中,不免我们会遇到很多的问题。当遇到问题时,系统会提示出是哪
18、一个地方出现了问题,我可以根据提示做出相应的改进。仔细检查代码,有错误时会无法进入界面进行相应的操作。当然由于我的经验还不足,该程序还不是特别的完美。第五章课程设计总结与体会经过这段期间对数据结构和C语言的学习,让我对计算机这门专业有了进一步的了解,通过对课程设计的完成,也让我对我所学习过的知识有了更深的理解。也让我知道有时候只靠自己是远远不够的,只有相互沟通与合作才能达到我们的要求,共赢才是做好的目标。在本次课程设计结束后也使我们认识到数据结构的主要内容为常用的数据结构的存储结构和核心操作的算法设计与实现,不仅是计算机程序设计的重要理论技术基础,也是计算机学科的核心课程,该课程的学习效果不仅
19、关系到许多后续专业课的学习,也关系到软件设计水平的提高和专业素质的培养。在刚开始知道要编写课程设计时,觉得有些难以置信,一千多行的程序对于涉足未深的我们有些不大可能,但随着期末的临近,每一部分程序逐渐的形成,渐渐地课程设计接近了完成,当然在这过程中也面临着许多困难和挑战,但当最后解决了,又有一种难以抑制的高兴和发自内心的成就感。每当调试程序的时候都觉得很繁琐,但这就是要求我们拥有足够的耐心和细心,如果我们将来要涉足编程这一行,基本素养就要从现在培训起来。凡事欲速则不达,编写课程设计就要将模板依次检查,而这就需要我们平时注重习惯的培养和坚持。课程设计是将我们所学的知识和现实问题相结合而形成的运行
20、的程序,这对于理论联系实际有很大的帮助。正如孙老师说的那样,如果我们能真正做好课程设计,就会对考研起到很大的帮助。这并不是大话,它能让我们构想到现实问题中应该会、可能会发生的各种事件,让我们的思维更加全面,见识更加第10页共13页学生缴费管理系统广阔。除此之外,我认为这次做课程设计让我们也更加了解我们的生活,不论是购房贷款还是图书管理还是学生缴费,都和我们的生活息息相关,通过此次课程设计让我更加了解了,我们平日里没咋在意过的学生缴费原来是可以通过程序的设计让其简单、方便。我自小就认为“态度决定一切”,所以每做一件事不论是大是小都应该怀着严谨仔细的态度对待,每次打开电脑,编写程序时,机器没有思维
21、,它只能认识正确的算法,因此我们编程时决不能想着偷懒,这是我们自己的事情,我们对它不负责就是对自己不负责。更何况这样也得不到正确的答案,对自己没有意义,对事情没有意义,这是得不偿失的,我们应该深刻注意到这个问题。与此同时,我觉得在做什么事的时候先做容易的会比较容易上手,再做难的复杂的就会相对没那么难下手。所以在修改课程问题的时候,我一般从较为简单的模块来修改,有时仅仅是一个定义的问题或是参数调用的错误就会导致全篇的错误。但有时我会一下子从复杂模块入手,找不出问题就会觉得头疼,进而耽搁了当天的任务。随着编程任务的进行,我也发现了这一点,所以每次都从简单的开始抽丝剥茧,即使麻烦却感到有条有理,比以
22、前更有耐心和信心。每个任务的完成过程就像思维的一个旅行,中途会有很多路的选择来到达目的地,我们可以选择捷径来提早到达,也可以选择观赏路途风景在到达。做课程设计也是如此,我们可以拿他人做好的程序稍加修改就完事,也可以选择自己一步一步来编程。毋庸置疑,是后者更有意义。我们虽然都能完成目标,但是选择后者会让我们获益匪浅。我的课程设计题目是学生缴费,要求的是无头结点带头尾指针的双循环链表类型定义一。这必须要求自己有坚实的功底。我必须回顾以前的知识并学习将要用到的新知识。编程就像等阶梯一样,刚开始很容易,但随着高度的增加和问题的隐蔽性增强,编程的难度愈来愈难,这也就需要我时刻保持思路的清晰,这样才能成功
23、解决问题。老实说在临近交作业的前几天我才知道我的课程设计的题要用到二级指针才能完成题目,当时有些担心,因为这一部分学的时候不是很扎实,但在复习了以前的笔记和同学的讲解下,我对这一部分的知识有了更好的掌握。除此之外,学生缴费系统,主要实现学生缴费系统的管理,要求能进行资料的输入和管理,并且每个模块要实现自己的功能。起初不能急于编程,首先是在自己的脑中思考每个模块要干什么,要实现哪些功能,联系所学知识,并画出模板图形,便着手开始编程序。刚开始的时候总会觉得无从下手,但既然自己画出了模板图形,就要利用它相信它。当编有些程序的时候,总会努力复习以前的知识,而且多是自己进行程序推算,虽然很费劲,但总归是
24、收获不少。有时自以为以前的功课还算可以,但碰壁的次数多的超出自己的意料,不得不说自己是真正的半瓶子醋。刚开始做的是自己的程序要有一个大的环境,因为我是根据已有模板改的,所以大的环境是有的。本来以为改别人的会比较简单一些,但是在改的过程中也出现了很多问题,不断的修正就是不断的学习过程,当我们全身心的投入其中时,实际上是一件很有乐趣的事情。我个人感觉,所有模块中插入模块、删除模块和排序模块是比较难的,在这些模块中几乎用到了所有学过的知识。在这个过程中我完成了新旧知识的一次完整的学习与复习而且将它们融合。从中我也知道,我们所学的知识是相互关联的,以前我们在学习交流中总是觉得所学知识的连贯性差,但事实
25、并如此,是我们没有真正理解知识,到用的时候又觉得没有接触过。病症所在就是每当我们学完一第11页共13页学生缴费管理系统个专业课后就将它的内容抛之脑后,并没有想到他是为我们以后的学习打基础,到我们学习新的知识时才觉得有所欠缺。任何事情的作法都在遵循同样的道理和规律,做课程设计是这样,做其它事情也是如此。万事都要善始善终,不能虎头蛇尾更不能置之不理。老师对我们的要求怎样都不为过,因为这些都是我们作为计算机专业应当掌握的知识,如果我们连这点基本素养都没有就难以在IT行业中有立足之地。有些事情是牵一发而动全身的,我们在执行任务时要小心谨慎,不可敷衍交代,敷衍任务就是敷衍自己。与此同时,这次课程设计的完成是我们几个同学共
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年秋季英语专业开学第一课 专业素养与核心竞争力课件
- 2026年秋季开学幼儿园会操表演训练课件
- 2026年秋季开学高中秋分节气文化课件
- 2026新高二数学暑假专题:复习(2):平面向量及其应用
- 基于区块链的供应链可视化与韧性提升研究
- 家族办公室在耐心资本领域的投资实践研究
- 区块链技术赋能供应链透明度提升与韧性增强的机制研究
- 人工智能驱动的企业数字化转型机制与策略研究
- 基于大数据的盈利能力智能诊断模型构建
- 产业园区运营负责人如何借助产业大脑实现企业供需精准对接
- 湖北武汉(边检)2026年警务辅助人员招聘考试试卷(含答案解析)
- 2026湖北黄石市阳新县事业单位统一招聘107人考试参考题库及答案详解
- 2026年审计(内部审计)试题及答案
- 2026年广西高考物理真题含答案
- 2026年新疆事业单位招聘考试《职业能力倾向测验》真题
- 2026年新疆中考语文卷试题真题及答案详解(精校打印)
- 2026年天津卷高考语文作文全新真题解读及五篇范文
- 消化内科炎症性肠病诊疗指南技术操作规范
- 采煤工作面技术管理培训课件
- 2026国有企业管理岗竞聘笔试题及答案
- 2026年高考全国1卷语文高考真题含答案
评论
0/150
提交评论