课程表_C课程设计_第1页
课程表_C课程设计_第2页
课程表_C课程设计_第3页
课程表_C课程设计_第4页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、高校课程表设计1、课程设计的的题目:高校课程表设计2、功能说明:学生课表建立系统是学生日常生活中必不可少的实用型小工具,它对于学生平时的学习生活有着相当重要的帮助作用。便于操作、显示精确、短小实用就是它的明显特点。本次课程设计目的:通过一个课程表建立系统,使学生的学业及其他事物的时间安排更加合理,从而达到提高日常工作、学习效率。使学生掌握一门高级程序设计语言,了解面向对象程序设计的基本概念与方法,进而学会利用 C+语言学会解决一般应用问题,并为后续的专业课程奠定程序设计基础。系统的基本模块:根据系统功能的要求,课程表建立系统可以分为课程信息的输入,课程表的处理及建立等模块。通过分析可以知道该软

2、件主要有以下功能模块:? 学生课程名称显示? 总学周时间显示? 教师显示? 地点显示? 星期显示? 一天中具体时间显示其中本次课程设计实现的档案模块又分为如下子模块:? 登陆界面:主要是增加系统的人性化,使用户舒心? 信息录入:主要是将课程相关信息录入? 信息处理? 显示项目:对学生课程信息进行处理、列表、显示。系统结构图 1 如下:图 1 系统结构图3、类的 . 设计:各类的具体说明及描述kecheng 类的设计为了实现管理系统的各功能首先定义了一个kecheng 类,用来定义各种数据成员,声明这些功能函数。比如:说明为什么要这样设计setvalue(),showke() 等 , 同时声明一

3、些私有成员。class kechengpublic:void setvalue();void showke();string ming16;string jiao16;string di16;int qi16;int jie16;int xing16;int tang16;关键功能的实现( 1)信息的输入setvalue() 函数用来输入相关信息,包括课程名称、教师名称、教室地点、课程起始周、课程结束周、上课的星期、上课的具体时间。输入一次信息之后可选择是否继续添加新的课程。此函数代码如下:1基本信息输入void kecheng:setvalue()for(int i=0;i<16;i+

4、)cout<<"* 请输入课程名称 ( 请简写不要超过 6 个字 )"<<endl;cin>>mingi;cout<<"* 请输入课程教师 "<<endl;cin>>jiaoi;cout<<"* 请输入教室 "<<endl;cin>>dii;cout<<"* 请输入课程的起始周 "<<endl;cin>>qii;2如果输入错误,系统会自检,提示错误cout<<&

5、quot;* 请输入课程的结束周 "<<endl;cin>>jiei;if(jiei>20)cout<<" 输入错误 !请重新输入 "<<endl;cin>>jiei;3程序会对一课程多节课的现象进行处理cout<<"* 请输入课程一周有几天有"<<endl;int s;cin>>s;for(int u=0;u<s;u+)mingi+u=mingi;jiaoi+u=jiaoi;dii+u=dii;qii+u=qii;jiei+u=jiei

6、;cout<<"* 请输入第 "<<u+1<<"次课是星期几 "<<endl;cin>>xingi+u;if(xingi+u>7)cout<<" 输入错误 !请重新输入 "<<endl;cin>>xingi+u;cout<<"* 请输入课程是第几堂 "<<endl;cin>>tangi+u;if(tangi+u>5)cout<<" 输入错误 !请重新输

7、入 "<<endl;cin>>tangi+u;i=i+s;4输完一门课程之后,系统会自动提示是否进行下一课程的输入cout<<"* 请问是否继续下一个课程?(Y/N)"<<endl;char num;cin>>num;if(num='Y'|num='y') continue;else break;( 2)信息的处理与输出showke() 函数,此部分用来实现课程相关信息的排序,包括表格的建立与信息的对应输出,此函数用来显示课程表的界面,用了一些“”号建立表格,在程序重的最后

8、,通过 for 来实现整个程序的循环,并且使用了 switch 选择分支结构,使功能更容易实现。1 基本课表表头的输出此函数代码如下:void kecheng:showke()cout<<"/"<<endl;cout<<"/课程表/"<<endl;cout<<"/"<<endl;cout<<"_"<<endl;cout<<"|一|二|三|四|五|六|日|"<<endl;cout

9、<<"_"<<endl;2 对一天时间 (110 节 ) 的格式输出此函数代码如下:for(int i=1;i<6;i+)int l;switch(i)case 1:cout<<"一(1-2)|"break;case 2:cout<<"二(3-4)|"break;case 3:cout<<"三(5-6)|"break;case 4:cout<<"四(7-8)|"break;case 5:cout<<&quo

10、t;五(9-10) |"break;3 循环输出课程信息,这里采用双循环,用于控制表格位置的对号输出及信息的循环输出此函数代码如下:for(int j=1;j<8;j+)l=0;for(int n=0;n<16;n+)if(tangn=i&&xingn=j)cout<<setw(12)<<mingn<<"|"l=1;if(l=0)cout<<"|"cout<<endl;cout<<"| "cout<<"_

11、"<<endl;软件测试与调试进入本程序如图2 所示图 2 登陆界面系统会提示输入相关信息,课程是星期几、第几堂是必须输入的,输入一次信息之后可选择是否继续添加新的课程如图3 所示。图 3 显示输入界面如果选择不继续系统就会显示结果如图4 所示图 4 显示输出界面程序在执行时经常会出现一些违反设计期望的异常情况(如数值过大),一些大型的应用系统的开发人员提出,可以在允许的范围内由应用程序自身来处理一般性的程序运行错误。 C+语言异常处理由三个部分构成。异常检测的触发、异常检测的捕获和异常检测的处理。在这里我通过添加检测函数来确保程序的正常运行代码如下 :if(xingi+

12、u>7)cout<<" 输入错误 !请重新输入 "<<endl;cin>>xingi+u;结束语经过 1 周多的设计和开发,学生课程表建立基本开发完毕。其功能基本符合用户需求,能够完成信息完整输入以及各类报表的打印。对于数据的一致性的问题也通过程序进行了有效的解决。但是由于课程设计时间较短,所以该系统还有许多不足之处:比如 系统维护功能 , 还不能让用户进行数据备份和恢复;用户界面不够美观;这些都有待进一步改善。附录 :要注释源程序清单#include<iostream>#include<string>#in

13、clude<iomanip>using namespace std;class kecheng/模块一public:/公有数据void setvalue();/输入函数void showke();/处理、输出函数string ming16;/课程名string jiao16;/教师名string di16;/教室地点int qi16;/课程起始周int jie16;/课程结束周int xing16;/星期int tang16;/第几堂;void kecheng:setvalue() /模块二for(int i=0;i<16;i+)/for循环控制输入cout<<&

14、quot;* 请输入课程名称 ( 请简写不要超过 6 个字 )"<<endl;cin>>mingi;cout<<"* 请输入课程教师 "<<endl;cin>>jiaoi;cout<<"* 请输入教室 "<<endl;cin>>dii;cout<<"* 请输入课程的起始周 "<<endl;cin>>qii;if(qii>20)cout<<" 输入错误 !请重新输入 &

15、quot;<<endl;/错误判断cin>>qii;/重新输入cout<<"* 请输入课程的结束周 "<<endl;cin>>jiei;if(jiei>20)/错误判断cout<<" 输入错误 !请重新输入 "<<endl;cin>>jiei;/重新输入cout<<"* 请输入课程一周有几天有"<<endl; /一门课一周几节的处理int s;cin>>s;/输入节数for(int u=0;u<

16、;s;u+)/for循环控制多节输入mingi+u=mingi;jiaoi+u=jiaoi;dii+u=dii;qii+u=qii;jiei+u=jiei;cout<<"* 请输入第 "<<u+1<<"次课是星期几 "<<endl;cin>>xingi+u;if(xingi+u>7)cout<<" 输入错误 !请重新输入 "<<endl;cin>>xingi+u;cout<<"* 请输入课程是第几堂 "

17、<<endl;cin>>tangi+u;if(tangi+u>5)cout<<" 输入错误 !请重新输入 "<<endl;cin>>tangi+u;i=i+s;cout<<"* 请问是否继续下一个课程?(Y/N)"<<endl;/是否继续输入char num;cin>>num;if(num='Y'|num='y') continue;/继续下一个else break;/结束输入voidkecheng:showke()/模块

18、三cout<<"/"<<endl;/ 课表的页眉cout<<"/课程表/"<<endl;cout<<"/"<<endl;cout<<"_"<<endl;cout<<"|一|二|三|四|五|六|日|"<<endl;cout<<"_"<<endl;for(int i=1;i<6;i+)int l;/用 l 来检测此项是否有内容输出s

19、witch(i)/课表的一天节数输出case 1:cout<<"一(1-2)|"break;case 2:cout<<"二(3-4)|"break;case 3:cout<<"三(5-6)|"break;case 4:cout<<"四(7-8)|"break;case 5:cout<<"五(9-10) |"break;for(int j=1;j<8;j+)l=0;for(int n=0;n<16;n+)if(tangn=i&

20、amp;&xingn=j)cout<<setw(12)<<mingn<<"|" /课名输出l=1;if(l=0)cout<<"cout<<endl;cout<<"| "for( j=1;j<8;j+)l=0;for(int n=0;n<16;n+)if(tangn=i&&xingn=j)|"/若没有则输出空格cout<<setw(10)<<jiaon<<" | "l=1;/教师输出if(l=0)cout<<"cout<<endl;cout<<"| "for( j=1;j<8;j+)l=0;for(int n=0;n<16;n+)if(tangn=i&&xingn=j)| "/若没有则输出空格cout<<setw(11)<<

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论