课程表C++课程设计报告书Word格式文档下载.docx
《课程表C++课程设计报告书Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《课程表C++课程设计报告书Word格式文档下载.docx(18页珍藏版)》请在冰点文库上搜索。
系统结构图1如下:
图1系统结构图
3、类的.设计:
各类的具体说明及描述
kecheng类的设计
为了实现管理系统的各功能首先定义了一个kecheng类,用来定义各种数据成员,声明这些功能函数。
比如:
说明为什么要这样设计
setvalue(),showke()等,同时声明一些私有成员。
classkecheng
{
public:
voidsetvalue();
voidshowke();
stringming[16];
stringjiao[16];
stringdi[16];
intqi[16];
intjie[16];
intxing[16];
inttang[16];
};
关键功能的实现
(1)信息的输入
setvalue()函数用来输入相关信息,包括课程名称、教师名称、教室地点、课程起始周、课程结束周、上课的星期、上课的具体时间。
输入一次信息之后可选择是否继续添加新的课程。
此函数代码如下:
1.基本信息输入
voidkecheng:
:
setvalue()
for(inti=0;
i<
16;
i++)
{
cout<
<
"
*请输入课程名称(请简写不要超过6个字)"
endl;
cin>
>
ming[i];
*请输入课程教师"
jiao[i];
*请输入教室"
di[i];
*请输入课程的起始周"
qi[i];
2.如果输入错误,系统会自检,提示错误
*请输入课程的结束周"
jie[i];
if(jie[i]>
20)
{
cout<
输入错误!
请重新输入"
cin>
}
3.程序会对一课程多节课的现象进行处理
*请输入课程一周有几天有"
ints;
s;
for(intu=0;
u<
u++)
{
ming[i+u]=ming[i];
jiao[i+u]=jiao[i];
di[i+u]=di[i];
qi[i+u]=qi[i];
jie[i+u]=jie[i];
cout<
*请输入第"
u+1<
次课是星期几"
xing[i+u];
if(xing[i+u]>
7)
{
cout<
}
*请输入课程是第几堂"
tang[i+u];
if(tang[i+u]>
5)
}
}
i=i+s;
4.输完一门课程之后,系统会自动提示是否进行下一课程的输入
*请问是否继续下一个课程?
(Y/N)"
charnum;
num;
if(num=='
Y'
||num=='
y'
)continue;
elsebreak;
}
}
(2)信息的处理与输出
showke()函数,此部分用来实现课程相关信息的排序,包括表格的建立与信息的对应输出,此函数用来显示课程表的界面,用了一些“——”号建立表格,
在程序重的最后,通过for来实现整个程序的循环,并且使用了switch选择分支结构,使功能更容易实现。
1.基本课表表头的输出
showke()
cout<
////////////////////////////////"
//课程表//"
_____________________________________________________________________________________________________"
|一|二|三|四|五|六|日|"
2.对一天时间(1~10节)的格式输出
for(inti=1;
6;
intl;
switch(i)
case1:
cout<
一(1-2)|"
;
break;
case2:
二(3-4)|"
case3:
三(5-6)|"
case4:
四(7-8)|"
case5:
五(9-10)|"
3.循环输出课程信息,这里采用双循环,用于控制表格位置的对号输出及信息的循环输出
for(intj=1;
j<
8;
j++)
l=0;
for(intn=0;
n<
n++)
if(tang[n]==i&
&
xing[n]==j)
setw(12)<
ming[n]<
|"
l=1;
if(l==0)
|"
|"
}}
软件测试与调试
进入本程序如图2所示
图2登陆界面
系统会提示输入相关信息,课程是星期几、第几堂是必须输入的,输入一次信息之后可选择是否继续添加新的课程如图3所示。
图3显示输入界面
如果选择不继续系统就会显示结果如图4所示
图4显示输出界面
程序在执行时经常会出现一些违反设计期望的异常情况(如数值过大),一些大型的应用系统的开发人员提出,可以在允许的范围内由应用程序自身来处理一般性的程序运行错误。
C++语言异常处理由三个部分构成。
异常检测的触发、异常检测的捕获和异常检测的处理。
在这里我通过添加检测函数来确保程序的正常运行
代码如下:
if(xing[i+u]>
结束语
经过1周多的设计和开发,学生课程表建立基本开发完毕。
其功能基本符合用户需求,能够完成信息完整输入以及各类报表的打印。
对于数据的一致性的问题也通过程序进行了有效的解决。
但是由于课程设计时间较短,所以该系统还有许多不足之处:
比如系统维护功能,还不能让用户进行数据备份和恢复;
用户界面不够美观;
这些都有待进一步改善。
附录:
要注释
源程序清单
#include<
iostream>
string>
iomanip>
usingnamespacestd;
classkecheng//模块一
//公有数据
//输入函数
//处理、输出函数
//课程名
//教师名
//教室地点
//课程起始周
//课程结束周
//星期
//第几堂
setvalue()//模块二
i++)//for循环控制输入
if(qi[i]>
20)
//错误判断
//重新输入
20)//错误判断
//一门课一周几节的处理
//输入节数
u++)//for循环控制多节输入
//是否继续输入
//继续下一个
//结束输入
showke()//模块三
//课表的页眉
for(inti=1;
//用l来检测此项是否有内容输出
switch(i)//课表的一天节数输出
for(intj=1;
//课名输出
//若没有则输出空格
for(j=1;
setw(10)<
jiao[n]<
//教师输出
//若没有则输出空格
setw(11)<
di[n]<
|"
//地点输出
("
setw
(2)<
qi[n]<
-"
jie[n]<
)周"
//总周数输出
"
intmain()//模块四
***************欢迎使用课程表建立系统^-^***************"
endl<
//系统进入
kechengke;
***************请输入相关课程信息***************"
ke.setvalue();
//若没有则输出空格用
ke.showke();
return0;