选修课程系统Word格式.docx

上传人:b****3 文档编号:6790304 上传时间:2023-05-07 格式:DOCX 页数:27 大小:319.81KB
下载 相关 举报
选修课程系统Word格式.docx_第1页
第1页 / 共27页
选修课程系统Word格式.docx_第2页
第2页 / 共27页
选修课程系统Word格式.docx_第3页
第3页 / 共27页
选修课程系统Word格式.docx_第4页
第4页 / 共27页
选修课程系统Word格式.docx_第5页
第5页 / 共27页
选修课程系统Word格式.docx_第6页
第6页 / 共27页
选修课程系统Word格式.docx_第7页
第7页 / 共27页
选修课程系统Word格式.docx_第8页
第8页 / 共27页
选修课程系统Word格式.docx_第9页
第9页 / 共27页
选修课程系统Word格式.docx_第10页
第10页 / 共27页
选修课程系统Word格式.docx_第11页
第11页 / 共27页
选修课程系统Word格式.docx_第12页
第12页 / 共27页
选修课程系统Word格式.docx_第13页
第13页 / 共27页
选修课程系统Word格式.docx_第14页
第14页 / 共27页
选修课程系统Word格式.docx_第15页
第15页 / 共27页
选修课程系统Word格式.docx_第16页
第16页 / 共27页
选修课程系统Word格式.docx_第17页
第17页 / 共27页
选修课程系统Word格式.docx_第18页
第18页 / 共27页
选修课程系统Word格式.docx_第19页
第19页 / 共27页
选修课程系统Word格式.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

选修课程系统Word格式.docx

《选修课程系统Word格式.docx》由会员分享,可在线阅读,更多相关《选修课程系统Word格式.docx(27页珍藏版)》请在冰点文库上搜索。

选修课程系统Word格式.docx

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

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

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

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

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

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

(4)查询功能:

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

ⅰ按学分查询ⅱ按课程性质查询

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

2、问题的解决方案:

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

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

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

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

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

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

(6)功能调试;

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

2.设计要求:

●课程设计报告正文内容

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

(一)需求分析

系统设计目的与意义;

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

输入输出的要求;

(二)总体设计

系统功能分析;

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

(三)详细设计

数据库需求分析;

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

数据库逻辑结构设计;

类层次图

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

(五)系统调试

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

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

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

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

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

●书写格式

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++语言与面向对象程序设计,清华大学出版社,1998;

郑阿奇主编,VisualC++实用教程,电子工业出版社,2000;

谭浩强著,C语言程序设计(第三版),清华大学出版社;

BrianOverland著,董梁等译.C++语言命令详解(第二版).北京:

电子工业出版社

四、进度安排

班级:

信息与计算科学:

1001、1002、1003

1、主讲教师:

王祝君

2、辅导教师:

王祝君、聂存云

3、时间安排:

第16-17周星期二8时:

00分——11时:

30分

星期二14时:

00分——17时:

星期六8时:

30分——11时:

星期六14时:

30分——17时:

第一章课题简述

1.1设计内容及设计要求………………………………………………3

1.2系统需求分析………………………………………………………7

第二章设计简介及系统大纲

2.1设计简介

2.1.1学生端设计………………………………………………………8

2.1.2管理端设计………………………………………………………8

2.2系统流程……………………………………………………………9

第二章详细设计

3.1数据库需求分析……………………………………………………9

3.2数据库概念结构设计(E—R图)………………………………10

3.3数据库逻辑结构设计………………………………………………10

3.4类层次图……………………………………………………………10

3.5界面设计与各功能模块的实现……………………………………11

第三章系统调试

4.1调试及修改…………………………………………………………14

总结……………………………………………………………………14

附录完整程序代码………………………………………………15

数理系课程设计评分表………………………..……………….…25

第一章课题简述

系统需求分析

当今时代是飞速发展的信息时代。

在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。

计算机的最大好处在于利用它能够进行信息管理。

使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。

尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。

计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。

本系统就是为了管理好选课信息而设计的。

学校作为一种信息资源的集散地,学生和课程繁多,包含很多的信息数据的管理,现今,有很多的学校都是初步开始使用,甚至尚未使用计算机进行信息管理。

根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于选课情况的统计和查询等往往采用对课程的人工检查进行,对学生的选课权限、以及选课代号等用人工计算、手抄进行。

数据信息处理工作量大,容易出错;

由于数据繁多,容易丢失,且不易查找。

总的来说,缺乏系统,规范的信息管理手段。

尽管学校都有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。

数据处理手工操作,工作量大,出错率高,出错后不易更改。

学校采取手工方式对学生选课情况进行人工管理,由于信息比较多,选课信息的管理工作混乱而又复杂;

一般选课情况是记录在文件上,课程的数目和代号也记录在文件中,学校的工作人员也只是当时对它比较清楚,时间长了,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。

如要对很长时间以前的选课进行更改就更加困难了。

基于这些问题,我认为有必要建立一个学生选课系统。

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

第二章设计简介及系统大纲

2.1设计简介

本系统的实现,全部采用C++文件输入输出流,同时还借鉴了部分C语言的知识以及网上查阅的资料,系统设计主要分为学生端设计和管理端设计。

2.1.1学生端的设计

1---浏览课程信息

voidCourse:

:

CourseInfoOutPut()

2---查询课程信息

Search()

SearchByCredithour

SearchByCourseKind(stringstrtemp)

SearchByCourseName

3---退出系统;

2.1.2管理端的设计

1---录入课程信息

CourseInfoInput()

2---浏览课程信息

3---查询课程信息

4---退出系统

2.2系统流程

图2—2系统流程图

第三章详细设计

(1)数据库需求分析

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

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

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

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

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

(3)类层次图

(4)

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

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

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

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

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

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

1、录入函数模块:

首先,利用switch语句鉴别从键盘上输入的数字,绕后分别执行相应的voidMangers()和voidStudents()函数,分别显示不同的登录界面。

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

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

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

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

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

(输入“1”,根据提示输入课程信息:

(输入“2”,根据提示输入课程信息:

显示(浏览)函数模块:

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

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

操作界面图如下:

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

按课程性质查找:

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

按课程名称查找:

原理同上,如果用户输入的学分与所保存的信息想对应,则将对应的课程信息输出显示。

输入“0”可返回主菜单。

具体程序见源程序清单。

该步骤界面显示如下:

第四章系统调试

4.1调试及修改

(1)、在运行程序时,要注意对应数据所设置的类型,是字符型,还是整形。

在参阅同学的程序之后借鉴了voidecho(char*szStr,intt=50)函数,动态输出结果;

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

后来在头文件中加了#include<

windows.h>

,又在程序中适当地添加了system("

cls"

)语句,这才使得界面颜色可以改变更加友好清晰。

总结

经过一个学期对《C++面向对象程序设计》的学习,我学习到了基本的理论知识,了解到了C++面向对象程序设计的基本知识,这些知识都为我的课程实践和进一步学习打下了坚实的基础。

通过两星期的C++程序设计实习,我从中受益匪浅,并且对C++面向对象程序设计这门课程有了更深一步的认识。

在实习中,我们可以把这学期所学的理论知识和实践联系起来,在所要的课程设计中逐渐成才。

虽然我们对这些C++语言知识运用还不是很熟练,但是我相信我们也能在滴水穿石中成才起来。

发现问题,提出问题,解决问题,使我们从不足之处出发,寻找新的学习方向。

在老师和同学的帮助下,通过自己查阅资料,终于完成了这次的课程设计。

从刚开始的选择程序,理解程序到后来的调试过程以及改进程序这个过程中,我遇到了各种各样的困难和挫折,但最后通过查询资料和向他人的请教,克服重重困难。

由于时间的紧缺和对课本应用的不太熟悉等原因,程序不能做到想象中那样美好,只能设计出一些简单的部分。

通过课程设计的训练,我进一步学习和掌握了对程序的设计和编写,从中体会到了面向对象程序设计的方便和巧妙。

懂得了在编写程序之前,要有明确的目标和整体的设计思想。

另外有些具体细节也是相当的重要,这些宝贵的编程思想和从中摸索到的经验,这些对我们以后的编程都会有很大的帮组。

经过这两周实习,我获得了许多在课堂上听不到的知识,在这里我要谢谢老师给我们安排的课程设计实习,感谢老师对我们热心的指导和帮助。

这次课程设计让我从分认识到了自己的不足,认识到了动手能力的重要性。

我会在以后的学习中更加努力锻炼自己,提高自己,让自己写出更完善的程序,为以的编程打好基础!

附录完整程序代码

#include<

conio.h>

stdlib.h>

iostream>

fstream>

string>

#include<

usingnamespacestd;

classCourse

{private:

intcourseNumber;

stringcourseName;

stringcourseKind;

intcoursePeriod;

intschoolPeriod;

intexperimentPeriod;

floatcredithour;

stringcourseterm;

public:

voidCourseInfoInput();

//信息输入

voidCourseInfoOutPut();

//信息输出

voidSearch();

//查找信息

voidSearchByCredithour(float);

//按照学分查找

voidSearchByCourseKind(string);

//按照课程;

类型查找

voidSearchByCourseName(string);

};

voidecho(char*szStr,intt=50)

{for(inti=0;

i<

strlen(szStr);

i++)

{cout<

<

szStr[i];

Sleep(t);

}}//动态输出结果

constchar*coursefile="

C:

\\course.txt"

;

//将课程信息定位到C盘下的course.txt中

CourseInfoInput()//课程信息的录入

{ofstreamoutcoursefile;

//创建一个文件输出流对象

outcoursefile.open(coursefile);

//打开文件

if(!

outcoursefile)//判断文件是否存在

{cout<

"

文件打开失败!

"

endl;

return;

}

while

(1)//无限循环,给出指定条件退出

{cout<

******************************课程信息*******************"

endl;

cout<

**按任意键开始信息录入**"

**输入q退出**"

cout<

*********************************************************"

if(getch()=='

q'

{break;

请输入课程编号:

cin>

>

courseNumber;

请输入课程名称:

courseName;

请输入课程性质:

courseKind;

请输入总学时:

coursePeriod;

请输入授课学时:

schoolPeriod;

请输入实验&

上机学时:

experimentPeriod;

请输入学分:

credithour;

cout<

请输入开课学期:

courseterm;

outcoursefile<

\t\t\t\t"

courseNumber<

courseName<

courseKind<

coursePeriod<

schoolPeriod<

experimentPeriod<

credithour<

courseterm<

}

outcoursefile.close();

//关闭输出流文件

CourseInfoOutPut()//课程信息的浏览

{ifstreamincoursefile;

//创建输入流文件对象

incoursefile.open(coursefile);

//打开

incoursefile)//判断文件存在

文件读取失败"

cout<

课程编号|课程名称|课程性质|总学时|授课学时|实验上机学时|学分|开课学期\n"

stringarrcourse[100][100];

//定义一个string类型的二维数组,用来保存从文本内读取的信息

intline=0;

memset(arrcourse,0,sizeof(arrcourse));

//将数组清空

while(!

incoursefile.eof())//文件不为空的条件设置

{for(intj=0;

j<

8;

j++)

{incoursefile>

arrcourse[line][j];

line++;

}

for(inti=0;

line;

{cout<

arrcourse[i][j]<

\t"

cout<

incoursefile.close();

SearchByCredithour(floattempch)

{ifstreamincoursefile;

incoursefile.open(coursefile);

return;

{incoursefile>

arrcourse[line][0]>

arrcourse[line][1]>

arrcourse[line][2]>

arrcourse[line][3]>

arrcourse[line][4]>

arrcourse[line][5]>

arrcourse[line][6]>

arrcourse[line][7];

//文件流读取数据

课程编号|课程名称|课程性质|总学时|授课学时|实验上机学时|学分|开课学期\n"

{if(atof(arrcourse[i][6].c_str())==tempch)//比较

arrcourse[i][0]<

\t"

arrcourse[i][1]<

<

arrcourse[i][2]<

arrcourse[i][3]<

\t"

arrcourse[i][4]<

arrcourse[i][5]<

\t\t"

arrcourse[i][6]<

arrcourse[i][7]

<

\n*********************************************************"

endl}}

\n\n"

SearchByCourseKind(stringstrtemp)///课程类型查询

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2