学生选课管理系统.docx

上传人:b****4 文档编号:3131008 上传时间:2022-11-17 格式:DOCX 页数:19 大小:199.30KB
下载 相关 举报
学生选课管理系统.docx_第1页
第1页 / 共19页
学生选课管理系统.docx_第2页
第2页 / 共19页
学生选课管理系统.docx_第3页
第3页 / 共19页
学生选课管理系统.docx_第4页
第4页 / 共19页
学生选课管理系统.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

学生选课管理系统.docx

《学生选课管理系统.docx》由会员分享,可在线阅读,更多相关《学生选课管理系统.docx(19页珍藏版)》请在冰豆网上搜索。

学生选课管理系统.docx

学生选课管理系统

课程设计报告

课程名称C++面向对象程序设计

课题名称学生选修课程系统

专业信息与计算科学

班级

学号

姓名

指导教师

 

2011年12月25日

湖南工程学院

课程设计任务书

 

课程名称算法与程序设计

课题学生选修课程系统

 

专业班级

学生姓名

学号

指导老师

审批

 

任务书下达日期2011年12月8日

任务完成日期2012年1月7日

 

一、设计内容与设计要求

1.设计内容:

对课程《算法与程序设计》中的相关内容进行综合设计或应用(具体课题题目见后面的供选题目)。

题目1:

学生选修课程系统

(一、)课程设计题目:

学生选修课程系统

(二)、目的与要求:

1、目的:

(1)要求学生达到熟练掌握C++语言的基本知识和技能;

(2)基本掌握面向对象程序设计的基本思路和方法;

(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。

2、基本要求:

(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;

(2)要求在设计的过程中,建立清晰的类层次;

(4)在系统的设计中,至少要用到面向对象的一种机制。

3、创新要求:

在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。

4、写出设计说明书

(三、)设计方法和基本原理:

1、问题描述(功能要求):

假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。

试设计一选修课程系统,使之能提供以下功能:

(1)系统以菜单方式工作

(2)课程信息录入功能(课程信息用文件保存)--输入

(3)课程信息浏览功能--输出

(4)查询功能:

(至少一种查询方式)--算法

ⅰ按学分查询

ⅱ按课程性质查询

(5)学生选修课程(可选项)

2、问题的解决方案:

根据系统功能要求,可以将问题解决分为以下步骤:

(1)分析系统中的各个实体之间的关系及其属性和行为;

(2)根据问题描述,设计系统的类层次;

(3)完成类层次中各个类的描述(包括属性和方法);

(4)完成类中各个成员函数的定义;

(5)完成系统的应用模块;

(6)功能调试;

(7)完成系统总结报告以及系统使用说明书。

设计要求:

●课程设计报告正文内容

(包括系统设计要求,设计思路,系统功能模块图,系统流程图,类的层次图(包括类成员列表),调试过程,关键程序代码,总结,参考书目等)。

(一)需求分析

系统设计目的与意义

系统功能需求(系统流程图);

输入输出的要求;

(二)总体设计

系统功能分析;

系统功能模块划分与设计(系统功能模块图)。

(三)详细设计

数据库需求分析

数据库概念结构设计(E-R图);

数据库逻辑结构设计。

类层次图

(四)界面设计与各功能模块实现

(五)系统调试

调试问题出现的主要问题:

编译语法错误及修改,重点是运行逻辑问题修改和调整

(六)使用说明及编程体会

说明如何使用你编写的程序,详细列出每一步的操作步骤。

(7)关键源程序(带注释)

●书写格式

a.要求用A4纸打印成册

b.正文格式:

一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。

c.正文的内容:

正文总字数要求在3000字左右(不含程序原代码)。

d.封面格式如下页。

●考核方式

指导老师负责验收程序的运行结果,并结合学生的工作态度、实际动手能力、创新精神和设计报告等进行综合考评,并按优秀、良好、中等、及格和不及格五个等级给出每位同学的课程设计成绩。

具体考核标准包含以下几个部分:

a.平时出勤(占10%)

b.系统需求分析、功能设计、数据结构设计及程序总体结构合理与否(占10%)

c.程序能否完整、准确地运行,个人能否独立、熟练地调试程序(占40%)

d.设计报告(占30%)

注意:

不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。

e.独立完成情况(占10%)。

●课程验收要求

a.判定算法设计的合理性,运行相关程序,获得正确的数值结果。

b.回答有关问题。

c.提交课程设计报告。

d.提交软盘(源程序、设计报告文档)。

e.依内容的创新程度,完善程序情况及对程序讲解情况打分。

三、 教材及参考书

朱战立等著,C++面向对象程序设计,人民邮电出版社;

郑莉著,C++语言程序设计(含实验指导书)。

清华大学出版社(结构化程序设计部分)

钱能主编,C++程序设计教程,清华大学出版社,2000.11

戴锋编著,VisualC++程序设计基础,清华大学出版社,2001.4

吕日著,C++程序设计教程,清华大学出版社,

C++大学教程,美国HarveyM.Deitel等

四、进度安排

1、班级:

信息与计算科学:

1001、1002、1003

2、主讲教师:

王祝君

3、辅导教师:

王祝君、聂存云

4、时间安排:

第16-17周星期二8时:

00分——11时:

30分

星期二14时:

00分——17时:

30分

星期六8时:

30分——11时:

30分

星期六14时:

30分——17时:

30分

 

目录

 

1系统需求分析

2总体设计

3详细设计

4界面设计与各功能模块实现

5系统调试

6实验心得体会

7附:

源程序

1系统需求分析

(1)、本系统是针对高校学生的选修课程而设计,通过本系统高校学生可以很方便地进行自由选课。

主要的问题描述是(功能要求):

n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。

(2)、主要要求实现的功能如下:

① 课程信息录入功能:

能根据提示将各课程的相关信息进行输入并保存;

②课程信息浏览功能:

能将已经录入并保存的信息进行浏览;

③ 查询功能:

可根据不同的查询方式查询相应的课程信息。

其中查询方式有按学分查询和按课程性质查询两种;

(3)、输入输出要求:

系统以菜单方式工作。

用户根据每一个功能模块输入相应内容,然后进行相应的操作。

如需进行其他操作,可返回主菜单。

输出的内容要有一个良好的界面,使用户看清楚明白。

2总体设计

(1)、系统功能分析

本系统主要由一个Class类及其五个成员函数组成。

课题所要求的功能由各个函数分别得以实现。

首先,在Class类内定义了一些成员变量,用来保存课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,还对它的成员变量进行了声明,如:

然后,在类外,通过作用域运算符将类内声明的成员函数定义,以及进行相应的操作,以实现相应的功能。

主要包括功能要求中的五大功能,即信息输入、信息浏览、按学分查询课程、按课程性质查询课程等。

最后,在主函数中设置目录显示。

用switch瓜分不同的功能选项。

系统根据用户输入的符号,调用相应的成员函数,完成功能的实现。

(2)、各个模块之间的关系如下图:

 

3详细设计

(1)数据库需求分析

该程序主要包含一个Class类和一个main()函数。

其中Class类中有Input(),OutPut(),Search(),SearchByscore(float),SearchByKind(string)函数来实现各功能。

像在Input()信息输入函数中,ofstreamoutfile创建一个文件输出流对象语句就要用到系统库函数fstream,而conio.h则是Console(键盘和屏幕)输出输入函数的头文件,con-Console,io--input,output。

程序中各功能函数如SearchBy(float)按分数查询和SearchByKind(string)按性质查询,显然是两个独立的函数,但其实现过程很像似。

(2)类层次图

4界面设计与各功能模块实现

(1)、功能实现的文件模块:

在主函数中设置目录显示。

设计一个友好、漂亮的界面,通过switch语句进行选择进入相应的功能模块,建立一个class类的对象a,用对象名调用class类的功能函数,恰当的使用清屏函数。

通过对象a调用相应的成员函数,如a.Input()、a.OutPut()、a.Search()等等,这些公有函数成员就是这个系统要求设计的功能模块。

各个功能函数的具体实现如下:

1、录入函数模块:

首先,创建一个文件输出流对象outfile,打开文件,判断文件是否存在。

通过while设一个无限循环,当给出指定条件时退出。

在循环中,调用cout函数来提示用户输入相应的信息,如课程编号、名称、课程性质、总学时、授课学时、实验或上机学时、学分、开课学期等等。

将需要的课程输入完毕之后,可根据提示再输入“q”,即可返回主菜单,重新进行功能的选择。

该步骤界面设计操作图如下:

显示(浏览)函数模块:

该函数首先创建了输入流文件对象infile,使用语句infile.open(file),然后定义一个string类型的二维数组,用来保存从文本内读取的信息,用for循环保证保存不止一门课程的信息。

最后,cout输出显示所有保存的信息。

操作界面图如下:

查找功能,即按学分查找和按课程性质查找,具体的实现如下:

按课程性质查找:

创建输入流文件对象infile,然后定义一个string类型的二维数组,用来保存从文本内读取的信息,比较用户输入的字符和保存的信息中那些课程的性质相对应,将相应的课程信息进行输出显示,界面设计操作图如下:

5系统调试

(1)在查找功能函数当中,我一直被循环语句所困扰,这一直是我的薄弱,但看了其他高手的程序后,才有所突破,可输出正确的结果。

(2)进行程序调试时,事先函数中没有用到清屏,导致界面繁琐不清晰。

后来在头文件中加了#include,又在程序中适当地添加了system("cls")语句,这才使得界面友好清晰。

6实验心得体会

心得

关于这两周的课程设计,感悟颇多。

学海无涯呀!

终于完成了这课程设计,想起老师当初布置这课题的时候,感觉非常棘手,因为大一学C语言的时候,还没学通,而今又要完成对于我们如此艰难地任务。

于是自己就在网站下了与之类似的程序参考,又跑去图书馆借了书籍去翻阅,自己一步一步的在电脑面前练习,直至编译毫无差错,运行结果无误。

回忆起当时为了一个错误而郁闷的情景,真是无法说出。

程序就只一个类,一些成员变量,几个成员函数,将它们组合起来就OK了。

可是越写下去,便觉得处处是难题。

还是自己练习少了,写程序不仅需要极大的耐心。

还需要认真仔细,否则差之毫厘谬以千里

我只会定义一个类和它的成员变量以及成员函数,但要求是要有N门课程呢,还要能显示你所输入的课程信息,还要按要求将分类不同的信息挑选出来,问了别人,才知要先把信息给保存下来,程序才能得到有效的运行。

上网问了下高人,才弄懂了。

接着我又用多文件的格式把程序做出来,并用上了还没学的输入输出流,感觉应该可以了。

7源程序

//Course.h

#include

#include

#include

#include

#include

usingnamespacestd;

classCourse{p

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

当前位置:首页 > 高等教育 > 院校资料

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

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