学生选课管理系统Word文档下载推荐.docx
《学生选课管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《学生选课管理系统Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。
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时:
星期六8时:
30分——11时:
星期六14时:
30分——17时:
目录
1系统需求分析
2总体设计
3详细设计
4界面设计与各功能模块实现
5系统调试
6实验心得体会
7附:
源程序
1系统需求分析
(1)、本系统是针对高校学生的选修课程而设计,通过本系统高校学生可以很方便地进行自由选课。
主要的问题描述是(功能要求):
n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。
(2)、主要要求实现的功能如下:
①
课程信息录入功能:
能根据提示将各课程的相关信息进行输入并保存;
②课程信息浏览功能:
能将已经录入并保存的信息进行浏览;
③
查询功能:
可根据不同的查询方式查询相应的课程信息。
其中查询方式有按学分查询和按课程性质查询两种;
(3)、输入输出要求:
系统以菜单方式工作。
用户根据每一个功能模块输入相应内容,然后进行相应的操作。
如需进行其他操作,可返回主菜单。
输出的内容要有一个良好的界面,使用户看清楚明白。
2总体设计
(1)、系统功能分析
本系统主要由一个Class类及其五个成员函数组成。
课题所要求的功能由各个函数分别得以实现。
首先,在Class类内定义了一些成员变量,用来保存课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,还对它的成员变量进行了声明,如:
然后,在类外,通过作用域运算符将类内声明的成员函数定义,以及进行相应的操作,以实现相应的功能。
主要包括功能要求中的五大功能,即信息输入、信息浏览、按学分查询课程、按课程性质查询课程等。
最后,在主函数中设置目录显示。
用switch瓜分不同的功能选项。
系统根据用户输入的符号,调用相应的成员函数,完成功能的实现。
(2)、各个模块之间的关系如下图:
(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<
windows.h>
,又在程序中适当地添加了system("
cls"
)语句,这才使得界面友好清晰。
心得
关于这两周的课程设计,感悟颇多。
学海无涯呀!
终于完成了这课程设计,想起老师当初布置这课题的时候,感觉非常棘手,因为大一学C语言的时候,还没学通,而今又要完成对于我们如此艰难地任务。
于是自己就在网站下了与之类似的程序参考,又跑去图书馆借了书籍去翻阅,自己一步一步的在电脑面前练习,直至编译毫无差错,运行结果无误。
回忆起当时为了一个错误而郁闷的情景,真是无法说出。
程序就只一个类,一些成员变量,几个成员函数,将它们组合起来就OK了。
可是越写下去,便觉得处处是难题。
还是自己练习少了,写程序不仅需要极大的耐心。
还需要认真仔细,否则差之毫厘谬以千里
我只会定义一个类和它的成员变量以及成员函数,但要求是要有N门课程呢,还要能显示你所输入的课程信息,还要按要求将分类不同的信息挑选出来,问了别人,才知要先把信息给保存下来,程序才能得到有效的运行。
上网问了下高人,才弄懂了。
接着我又用多文件的格式把程序做出来,并用上了还没学的输入输出流,感觉应该可以了。
7源程序
//Course.h
#include<
conio.h>
stdlib.h>
iostream>
fstream>
string>
usingnamespacestd;
classCourse{p