本科生课程设计(实践)任务书、设计报告(C+程序设计_第1页
本科生课程设计(实践)任务书、设计报告(C+程序设计_第2页
本科生课程设计(实践)任务书、设计报告(C+程序设计_第3页
本科生课程设计(实践)任务书、设计报告(C+程序设计_第4页
本科生课程设计(实践)任务书、设计报告(C+程序设计_第5页
已阅读5页,还剩2页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、南大学本科生课程设计(实践)任务书、设计报告(C+程序设计)图书管理系统学生姓名 指导教师专业班级 学生学号计算机基础教学实验中心2009年5月30日图书管理信息系统摘要:此次我们们所设计的学生考试成绩管理系统主要是完成对学生 成绩的管理,包括添加、修改、删除,查询、保存等方面的功能。同 时系统可以完成对所输入的各类信息的浏览、查询等方面功能。我们设计的系统的核心是添加、 修改和删除三者之间的联系。 查 询功能也是系统的核心之一, 在系统中主要根据学生姓名、 学号和班 级进行查询,为操作者提供了方便。接下来我们的论文主要介绍了本系统的开发思想, 所能完成的系 统功能及系统设计介绍,以及自己在此

2、次开发设计中感想。关键词: 面向对象的程序设计 类 链表 指针 函数 学生成绩1 学生考试成绩管理系统开发设计思想这次课程设计我们选择 “学生考试成绩管理系统” 作为我们的设 计对象。此系统最主要的思想就是 “面向对象的程序设计和面向过程 的程序设计”。 “面向对象的程序设计”总结起来可以用一个等式来 表达:面向对象二对象+类+继承+通信。其核心思想是:、发现、 归纳、清晰定义对系统有意义的对象及对象关系;、在的基础上 挖掘并清晰定义业务逻辑;、以、为基础进行需求清晰、边界 明了的设计工作。而“面向过程的程序设计” 用一个公式可以表示 为:程序=算法+数据结构。其中算法就是为解题而编写程序的方

3、法 和步骤;而在程序结构和方法中需要使用不同的数据结构 : 链表、变量、数组、记录等。从而用不同数据结构将解决问题的算法模型转换 为程序模型的能力。具体来说, 制作学生考试成绩管理系统, 最主要的是体现在链表 的使用方面,因为只有这样编写出来的程序才能够使计算机对相关信 息即我们们所输入的各种有关学生成绩的数据进行动态操作。链表是最简单也是最常用的一种动态数据结构。通过前面对 C+理论课的学习我们知道了链表的结点一般可以选用结构体或类。 在此 次我们所编写的学生考试成绩管理系统的程序中。 我们选择了最能代 表与体现C+特点的类作为此程序链表的结点。在编写程序时, 我们对学生的各种信息, 可以看

4、作为学生对象的 各种属性。 所以根据需要我们建立了一个 student 类。将学生的各种 信息以数据成员函数的形式封装在这个类中, 将这个学生考试成绩管 理系统的最基本的输入输出操作下的成员函数封装在其中。同时,作为一个需要重复操作的系统。 为了提高系统的通用性和 可重复利用性,我们将建立链表、删除、修改、添加、查询、排序等 常规操作封装在另一个 cla 类中。至此,一个链表的结点及其相应操 作基本完成。只需在主函数 main ()中定义一个cla类的对象,即 可实现链表的相关操作。2 学生考试成绩管理系统功能及系统设计介绍我们制作的学生考试成绩管理系统的功能是对学生相关信息的 输入、修改、删

5、除、查询,上述三种不同方式的排序,对我们操作时 所输入的班级整体平均分的计算和对以上各种信息的保存及读取。 上述操作我们均将其封装在 cla 类中。分别为该类的 14 个成员函数。分别如下:void sadd(); / 添加 , void sremove(); / 删除 , void samend();/ 修改, void ssearch(); / 查询, void classsearch();/ 班级查询,void staxisO; II排序,void classaaa();/安班级统计学科总分和平均分 ,void ssave(); /保存 , void sload(); /读取, void

6、pxh(); void pjsj(); void phx(); void pwl(); void pAA();其中最后四个成员函数为排序函数,分别是按学号、计算机(C+、化学、物理、总分的排序。另外,在系统的编写过程中我们设置的对全体数据的动态管理则是通过链表来完成,其中最核心的操作则均是由前面C+理论课所学的指针来实现的。下面我们将对各种功能进行详细介绍。 (由于程序都太长,所以我们所列举的例子都有省略,用“表示)既然是编写程序则首先必须进行声明。 所以在编写学生考试成绩管理系统的时候我们首先对包含文件进行了声明,声明区如下:#include #include #include#includ

7、e using namespace std; #define max 100;正如前面所说的那样, 要实现信息的动态管理则需要定义类。 所以我们分别定义了两个类student 类和 cla 类。其定义形式如下所示:class student public: student *next;public:int clas; /班级void sload(); /读取void pxh();private:student *stu; /头接点 ;其中“ private: student *stu;”中 *stu 是指向 student 的指针,也是进入链表的第一个指针, Student 为私有的数据成员。

8、之所 以将其定义为私有成员, 最主要是实现其私密性及封装性, 使数据得 到保护。接下来我们对在 cla 类中声明的 14 个成员函数进行了成员函数 的类外定义,即类外使用部分。由于内容太多,在此就不一一列出, 仅举一例来说明, 其他的可去查看我们的源程序。 例如对 void samend () 函数进行类外定义 :void cla:samend()/修改 system(cls);long num1;coutn* 修改学生信息 *n;if(p1!=NULL) coutvv 学号是vvnumivv的学生的信息endl;cout 姓名 name 班级clasvvC+vvp1-x化学y物理 zendl

9、;else / 未找到接点cout 未找到 !n; 其中p1!=NULL是指头指针的初值为空,表示链表中没有节点, 是一空指针。同时在类的使用部分, 我们还使用到了函数的调用, 其程序如下 ;switch (c) case 1:pxh(); break;case 6:return; 在最后我们定义了主函数 main (),其程序主要如下:void main() char c;cla a;docoutn学 生 考 试 成 绩 管 理 系 统 n;case 1: a.sadd();break;case 9: a.sload();break; while(c!=0); 在这个主函数 main() 中

10、我们通过在其中定义一个 cla 类的对象, 实现了链表的相关操作。 从而最终完成程序, 实现了计算机对全体数 据等的动态管理,使学生的各种信息能够最直接的表示出来。3 学生考试成绩管理系统开发的体会通过完成本次C+课程设计的任务,使我们熟练和掌握了这学期 所学的有关 visual C+ 中的一些主要知识点和应用点,如类的定义, 类的实现,对象的定义,类的继承等等。总起来可以说是学有所用, 不至于自己所学知识由于没有经历可用过程,而放弃对它的兴趣。此次设计学生考试成绩管理系统的过程中, 经历了平时在课堂中 和平常练习中决不会有的重重困难和问题。 而这些问题, 又都是课本 上很少提到的、更深一层的知识领域和应用领域。这些问题,并不是 我们们平时只靠课本,就可以轻易解决的。所以,锻炼了我们们面对 难题,自己思索,自己探索,自己查资料发现问题、解决问题的独断 能力。当然,此次任务的完成,也体现出同学之间的互助精神。在设计 程序过程中所遇到的种种难以解决的问题, 大家都会把它当作共同遇到的问题,在一起共同探讨,共同发挥自己所学

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论