版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数计学院课程设计报告书格式
数计学院
课程设计报告书
所属课程名称c语言程序设计
题目___________________
专业班级___________________
学号___________________
学生姓名___________________
指导教师_一
年05月24日
文档仅供参考
新余学院课程设计(论文)任务书
二级学院:
学学生专业(班12级软
方锦
号姓名级)件班
设计
学生选修课程系统设计
题目
设
计
技
术
参
数
假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,
授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如
总学时不得少于270学时或者学分不少于40)自由选课。试设计一选
设修课程系统,使之能提供以下功能:
1、课程信息录入功能(课程信息用文件保存)
计
2、课程信息浏览功能
要3、查询功能:(至少一种查询方式)
3、按学分查询
求4、按课程性质查询
5、学生选修课程
工
作
各功能模块的源代码一份
量
课程设计说明书一份
文档仅供参考
5月20日:熟读项目设计要求,进行需求
分析,画出系统模块图,程序流程图。
5月21日:对各个模块进行详细设计,编
工写代码。
作5月22日:整合各个模块,进行代码调试、
计功能测试。
划5月23日:整理资料,撰写课程设计说明
书。
5月24日:向指导老师作总结报告,指导
教师测评系统优劣。
《C语言程序设计》刘克成编
参
郑莉著《C++语言程序设计》(含实验指
考
导书)。清华大学出版社(结构化程序设
资
计部分)
料
指导
教研室主任
教师签
签字
字
文档仅供参考
说明:此表一式叁份,学生、指导教师、二级
学院各一份。
月日
项目设计功能、模块图、程序流程图
1.系统需求分析
(1)、本系统是针对高校学生的选修课程而设计,经过本系统高校学生能够很方便
地进行自由选课。主要的问题描述是(功能要求):n门课程,每门课程有课程编号,
课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,
学生可按要求(如总学分不得少于60)自由选课。
(2)、主要要求实现的功能如下:
①课程信息录入功能:能根据提示将各课程的相关信息进行输入并保存;
②课程信息浏览功能:能将已经录入并保存的信息进行浏览;
③查询功能:可根据不同的查询方式查询相应的课程信息。其中查询方式
有按学分查询和按课程性质查询两种;
系统流程图如下:
文档仅供参考
文档仅供参考
(3)、输入输出要求:
系统以菜单方式工作。用户根据每一个功能模块输入相应内容,然后进行相
应的操作。如需进行其它操作,可返回主菜单。输出的内容要有一个良好的界面,使
用户看清楚明白。
2.总体设计
(1)、系统功能分析
本系统主要由一个Class类及其五个成员函数组成。课题所要求的功能由各个函
数分别得以实现。首先,在Class类内定义了一些成员变量,用来保存课程编号,课
程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,
还对它的成员变量进行了声明,如:
然后,在类外,经过作用域运算符将类内声明的成员函数定义,以及进行相应的
操作,以实现相应的功能。主要包括功能要求中的五大功能,即信息输入、信息浏览、
按学分查询课程、按课程性质查询课程等。
最后,在主函数中设置目录显示。用switch瓜分不同的功能选项。系统根据用
户输入的符号,调用相应的成员函数,完成功能的实现。
(2)、各个模块之间的关系如下图:
文档仅供参考
学生
CouMai
VVV▼
InputOutpuSearcSearc
3.详细设计
(1)数据库需求分析
该程序主要包含一个Class类和一个main。函数。其中Class类中有
Input(),OutPut(),Search(),SearchByscore(float),SearchByKind(string
)函数来实现各功能。像在Input。信息输入函数中,ofstreamoutfile创立
一个文件输出流对象语句就要用到系统库函数fstream,而conio.h则是
Console(键盘和屏幕)输出输入函数的头文件,con-Console,io—
input,outputo程序中各功能函数如SearchBy(float)按分数查询和
SearchByKind(string)按性质查询,显然是两个独立的函数,但其实现过程
很像似。
(2)数据库概念结构设计(E—R图)
文档仅供参考
(3)数据库逻辑结构设计;
(4)类层次图
课程
课程编号
课程名字
课程性质
总
学时
授课学时
实验或上机学
文档仅供参考
文档仅供参考
程序源代码
主函数:
intmain()
|
CourseExcourse;
while(l)
|
cout«
ft******KT*****2*«**«**
,•rjwrjwrjwrjwrjwrj»rj»rjwrj**J*rj»rj»rj»rj*rj»rj^rj»rj»rj*rj»rjwej>rj»rjwrj»rj»rjwrjw
cout«"*学生选课系统
*\n";
cout«"*请选择操作
*\n";
cout«"*(1).录入课程
信息*\n";
cout«"*(2).浏览课程
信息*\n";
cout«''*(3).查询课程
信息*\n";
cout«''*(0).退出系统
文档仅供参考
*\n";
cout«
f■•£«*1*KI>«X«a1#at><1•<£•«!<•«**»1•«X«•!«<!•<l>
***}«*]wrj»*{«*{«rj«*JwrJ»rf»rjw*J»*J**{«rjwrj»<Jwrjwrj»r{«rj»rjwr1>
K*«»]>•1«<*>»£•»f>•1«•£**£•<*«»1>^L««1«^L>«(•^L>ft
rj*rj*<p»rj*rjwrj»<p»rj*rjwrj»<p»*J»rjwrj»*J»rj、rJ»rjwrJ»rj、rjwrjwrj、rjwrjw**<
cout«endl;
inti;
cin»i;
switch(i)
|
case1:
Excourse.CourseInfoInput();
break;
case2:
Excourse.CourselnfoOutPutQ;
break;
case3:
Excourse.Search();
break;
case0:
exit(O);
)
)
文档仅供参考
return1;
)
菜单函数:
classCourse
{
private:
intcourseNumber;
stringcourseName;
stringcourseKind;
intcoursePeriod;
intschoolPeriod;
intexperimentPeriod;
floatcredithour;
stringcourseterm;
public:
voidCourselnfolnput();〃信息输入
voidCourseInfoOutPut();〃信息输出
voidSearchQ;〃查找信息
voidSearchByCredithour(float);〃按照学
文档仅供参考
分查找
voidSearchByCourseKind(string);〃按照
课程;类型查找
);
源程序如下:
#include<conio.h>
#include<stdlib.h>
#include<iostream>
#include<fstream>
#include<string>
usingnamespacestd;
classCourse
|
private:
intcourseNumber;
stringcourseName;
stringcourseKind;
intcoursePeriod;
intschoolPeriod;
intexperimentPeriod;
文档仅供参考
floatcredithour;
stringcourseterm;
public:
voidCourselnfolnput();〃信息输入
voidCourseInfoOutPut();〃信息输出
voidSearchQ;〃查找信息
voidSearchByCredithour(float);〃按照学
分查找
voidSearchByCourseKind(string);〃按照
课程;类型查找
);
constchar*coursefile=1*C:\\course.txt1;
〃将课程信息定位到C盘下的course.txt
中!!!!!!!!!
voidCourse::Courselnfolnput()
〃课程信息的录入
(
ofstreamoutcoursefile;〃仓U
立一个文件输出流对象
outcoursefile.open(coursefile);〃打开
文件
文档仅供参考
if(!outcoursefile)〃判
断文件是否存在
cout«”文件打开失败!n«endl;
return;
)
while(l)//
无限循环,给出指定条件退出
cout«
,,5^5^课程
信息
¥¥¥**¥¥****¥¥****手¥***¥¥¥***¥芋芋***¥\n;
cout«“
按任意键开始信息录入
\nn;
cout«
输入退出
\nn;
if(getch()==,q,)
break;
文档仅供参考
)
coutvv”请输入课程编号:”;
cin»courseNumber;
cout«”请输入课程名称:“;
cin»courseName;
cout«”请输入课程性质:";
cin»courseKind;
coutvv”请输入总学时:";
cin»coursePeriod;
coutvv”请输入授课学时:”;
cin»schoolPeriod;
coutvv”请输入实验&上机学时:";
cin»experimeiitPeriod;
coutvv”请输入学分:”;
cin»credithour;
coutvv”请输入开课学期:”;
cin»courseterm;
outcoursefile«courseNumber«n
''«courseName«''''«courseKind«''
"«coursePeriod
«n**«schoolPeriod«11
**«experimentPeriod«''''«credithour«''
文档仅供参考
n«endl;
)
outcoursefile.close();
〃关闭输出流文件
)
voidCourse::CourseInfoOutPut()
〃课程信息的浏览
|
ifstreamincoursefile;〃仓ij
立输入流文件对象
incoursefile.open(coursefile);〃打开
if(!incoursefile)〃判断
文件存在
(
cout«”文件读取失败”;
return;
)
cout«”课程编号I课程名称I课程性
质I总学时I授课学时I实验上机学时I学
分I开课学期向';
stringarrcourse[100][100];〃定
文档仅供参考
义一个string类型的二维数组用来保存从文本
内读取的信息
intline=O;
memset(arrcourse,0,sizeof(arrcourse));//
将数组清空
while(!incoursefile.eof())//
文件不为空的条件设置
(
for(intj=0;j<7;j++)
(
incoursefile»arrcourse[line][j];
)
line++;
)
for(inti=O;i<line;i++)
(
for(intj=0;j<7;j++)
(
cout«arrcourse[i][j]«n\tn;
)
文档仅供参考
cout«endl;
)
incoursefile.close();
)
voidCourse::SearchByCredithour(float
tempeh)
(
ifstreamincoursefile;〃仓ij
立输入流文件对象
incoursefile.open(coursefile);〃打开
if(!incoursefile)〃判断
文件存在
(
coutVV”文件读取失败”;
return;
)
stringarrcourse[100][100];〃定
义一个string类型的二维数组用来保存从文本
内读取的信息
intIine=0;
memset(arrcourse,0,sizeof(arrcourse));//
文档仅供参考
将数组清空
while(!incoursefile.eof())//
文件不为空的条件设置
(
incoursefile»arrcourse[line][0]»arrcour
se[line][l]»arrcourse[lme][2]»arrcourse[line]
[3]
»arrcourse[line][4]»arrcourse[line][5]»a
rrcourse[line][6];〃文件流读取数据
line++;
)
cout«”课程编号I课程名称I课程性
质I总学时I授课学时I实验上机学时I学
分I开课学期\暧;
for(inti=0;i<line;i++)
(
if(atof(arrcourse[i][6].c_str())==tempch)
〃比较
(
cout«arrcourse[i][0]«n\t
n«arrcourse[i][l]«n\tn«
文档仅供参考
arrcourse[i][2]«H\tn
«arrcourse[i][3]«H\t"«
arrcourse[i][4]«H\tn
«arrcourse[i][5]«n\t
n«arrcourse[i][6]«**\n......................................
.................................................................n«endl;
)
)
cout«n\n\nn;
incoursefile.close();
)
voidCourse::SearchByCourseKind(string
strtemp)/〃课程类型查询
(
ifstreamincoursefile;〃创
立输入流文件对象
incoursefile.open(coursefile);〃打开
if(!incoursefile)〃判断
文件存在
(
cout«"文件读取失败”;
return;
文档仅供参考
)
stringarrcourse[100][100];
intline=O;
memset(arrcourse,0,sizeof(arrcourse));
while(!incoursefile.eof())
(
incoursefile»arrcourse[line][0]»arrcour
se[line][l]»arrcourse[line][2]»arrcourse[Iine]
[3]
»arrcourse[line][4]»arrcourse[line][5]»a
rrcourse[line][6];
line++;
)
cout«”课程编号I课程名称I课程性
质I总学时I授课学时I实验上机学时I学
分I开课学期加';
for(inti=0;i<line;i++)
(
if(arrcourse[i][2]==strtemp)
(
cout«arrcourse[i][0]«n\t
文档仅供参考
n«arrcourse[i][l]«n\tn«
arrcourse[i][2]«n\t''
«arrcourse[i][3]«**\t"«
arrcourse[i][4]«n\t"
«arrcourse[i][5]«n
\t**«arrcourse[i][6]«*An......................................
....................................................................n«endl;
)
)
cout«n\n\nn;
)
voidCourse::Search()
(
while(l)
(
cout«”选择查询方式:"vvendl;
cout«"⑴.按课程类型查询”vvendl;
cout«”(2).按学分查询"vvendl;
cout«”(0).返回"vvendl;
inti;
cin»i;
文档仅供参考
switch(i)
(
case1:
cout«”请输入课程类型八n”;
charstrtmp[100];
cin»strtmp;
SearchByCourseKind(strtmp);
break;
case2:
cout«"请输入学分:\n";
floatftemp;
cin»ftemp;
SearchByCredithour(ftemp);
break;
)
if(i==0)
(
break;
)
)
)
intmain()
文档仅供参考
CourseExcourse;
while(l)
(
cout«
,f*****«<**<(•<**«*««2<•»*««*««2<•
*,*{w*jwrj»rj、*{w<jwr{—rj>rj»rjwrjwrj>rj»rj»rJwrj»rj>rj»4、rjwrjwrj»rj»rj»rj»rj>rj»rj»rj>rjwrjwr|>rj*rjwrjwrjwr|>
cout«"*学生选课系统
*\n";
cout«"*请选择操作
*\n";
coutvv”*(1).录入课程
信息*\n”;
coutvv"*(2).浏览课程
信息*\n”;
coutvv”*(3).查询课程
信息*\n”;
coutvv"*(0).退出系统
*\n";
cout«
ff«{><!««£«KI»<1•«£>KI»<(•K{><1•«£•&{«<*«K£«
*,rjwrjw*JwrJwrj*rj»rjwrj»*|wrj»rj»rj*rj**{«*{«rj»rj*
•£••£••£««X««£•»£•«*«*X«K*«»£•»£•«*«*(**X««X«***»!•<♦>Vf
*Jw<Jwrj»*Jw<JwrJ»rj»<Jwrj»<Jwrj»<Jwrj»rj»rj**Jwrj»rj»rj*rj»rj»rj、rj**jwrj»rj、rj»*jw**<
文档仅供参考
cout«endl;
inti;
cin»i;
switch(i)
(
case1:
Excourse.CourseInfoInput();
break;
case2:
Excourse.CourseInfoOutPut();
break;
case3:
Excourse.Search();
break;
case0:
exit(O);
)
)
return1;
)
项目运行效果图
文档仅供参考
①、录入函数模块:
首先,创立一个文件输出流对象。utfile,打开文件,判断文件是否存在。
经过while设一个无限循环,当给出指定条件时退出。在循环中,调用cout函
数来提示用户输入相应的信息,如课程编号、名称、课程性质、总学时、授课
学时、实验或上机学时、学分、开课学期等等。将需要的课程输入完毕之后,
可根据提示再输入“f”,即可返回主菜单,重新进行功能的选择。该步骤界面设
计操作图如下:
KC:\Common\MSDev98\Bin\Debug\shixun.exe
篆
美
*************筝f2E*****************
-M--M--M--M-
选
课
*主
择
左
*f操
*¥3作
信
息
*编
1>入S
<课
信
*2息
览
>查
<w
*课
信
息
3>询x
<退E
堂
0出
>弁
<
***F2****打**
-M-
(输入“1”,根据提示输入课程信息:)
文档仅供参考
c'C:\Common\MSDev98\Bin\Debug\shixun.exe
*********FfmEff***************4
M-M--M-
学
课
系
统
生
选
#*——
请
有
、
操
#择*
一
一
—
信
息
入
#>课
<1■煮
信
息
>览
W<2>M
查
信
<3息
询
堂1
*>
<0>
退
>出-M-
>^x
*Xff2*************
-M-M-
JA1
*********
-M--M--M-
lA
口
请
JA课
编l
01
请
课.h
]A名pngl1s
请
野
lA性^Xu
学il
请
时
心>0:
:方5
「
请JA
课
学
;
授
50学
吁
请0
r.,n
JA的
年&J-
请.5
学
卷
JA期
开
请ddy1.
息
y2一『*******
-尸
始
退
M
显示(浏览)函数模块:
该函数首先创立了输入流文件对象infile,使用
语句infile.opeii(file),然后定义一个string类型
的二维数组,用来保存从文本内读取的信息,用
for循环保证保存不止一门课程的信息。最后,
cout输出显示所有保存的信息。操作界面图如
下:
文档仅供参考
c'C:\Common\MSDev98\Bin\Debug\shixun.exe
雨
宽
®百
*
心
自
府
查
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个案护理模式对提升患者满意度的效果分析
- 1-Stearoyl-2-17-S-HDoTE-sn-glycero-3-PE-生命科学试剂-MCE
- 护理心理学应用指南
- 医疗隐私保护国际双边协议的谈判与签署
- 医疗资源整合路径
- 医疗资源优化配置的调度算法研究
- 医疗资源与需求匹配
- 2025年交通安全法律法规培训
- 2026-2028年中国安全检查仪器行业生态全景与战略纵深研究报告:政策、技术、资本与消费四重驱动下的产业重构与机遇地图
- 2025年安全风险识别培训课件
- 林木种质资源精准鉴定-洞察与解读
- 连锁早餐店卫生管理制度
- 2026年七年级数学春季开学第一课
- 集装箱焊接制度规范要求
- 医疗质量安全整顿自查报告及下一步整改措施
- 天赋测评活动策划方案(3篇)
- 第五范式-人工智能驱动的科技创新
- 高标准农田建设工程质量专项整治技术手册(2025年版)
- 乡村和城镇空间结构高中地理人教版必修二
- DB4406∕T 53-2025 老年人陪诊服务规范
- 低压电工特种作业全套教学课件
评论
0/150
提交评论