




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、. . . . 科技学院程序设计基础课程设计报告学 院:_电气与信息工程学院_专业班级: 计科X 学生: XXX 学 号: XX 设计地点(单位)_X_ _设计题目:_ _ 完成日期: 2011 年6月24日指导教师评语: _ _ _ 成绩(五级记分制):_ _ 指导教师(签字):_ _ 摘要 计算教师工作量系统主要用来计算老师工作量,只需要输入某位老师的理论课程门数、每门课的学时数、每门课的学生人数,实践专周的周数、人数,毕业设计的人数和周数,即可计算该老师的总工作量;其中还可以查询,追加信息。本系统利用了C语言与C+知识,其中包括while循环,switch case语句,结构体,函数调用
2、,文件处理等。经过调试后,基本实现开发目标中管理员查找等功能,经过部分完善后,可以应用在实际教师工作量管理中。关键字:C语言 C+ 教师工作量课程设计任务书设计题目:教师工作量计算系统学生课程名称程序设计基础课程设计专业班级计科10地 点I305/I306起止时间6月20日6月24日设计容与要求输入某位老师的理论课程门数、每门课的学时数、每门课的学生人数,实践专周的周数、人数,毕业设计的人数和周数,计算该老师的总工作量。进一步掌握利用C语言进行程序设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图表示算
3、法。根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规,撰写课程设计报告。设计参数(1)系统分析、设计正确。(2)结果以图表方式显示。(3)界面简洁、美观。(4)报告格式规。进度要求周一:明确设计任务,学习相关基础知识周二:熟悉各知识点,进行基础练习周三:根据题目要求,进行设计和实现周四:根据题目要求,进行设计和实现周五:撰写报告,进行答辩参考资料1何钦铭 颜晖.语言程序设计.高等教育.2008年2谭浩强 基温.语言程序设计教程.高等教育.2006年其它说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写容较多可另纸附后。3.一题多名学
4、生共用的,在设计容、参数、要求等方面应有所区别。教研室主任: 指导教师:伍建全/向毅/应祖/忠/奎 2011年 6 月 2 4 日目录摘要1课程设计任务书2第一章 软件需求分析说明书4 1.1 软件功能需求41.2 模块分析4第二章 系统分析与设计52.1 软件界面设计52.2 软件的数据(结构)设计82.3 软件的算法设计9第三章 软件的实现11第四章 软件使用说明书13致16附加:程序代码17第一章 软件需求分析说明书1.1 软件功能需求教师工作量计算系统包括以下模块:界面显示设计,建立数据库,查找教师工作量,添加教师工作量。1.2 模块分析(1) 界显示设计 该模块可提示用户的操作方法,
5、课显示用户的录入信息,显示用户所需要的信息。屏幕最开始显示: “欢迎使用教师工作量计算系统”,“数据录入按1 查询请按2 退出请按3”。在运行期间会显示不同信息,用来提醒用户实际操作。 如要退出系统,界面最后将显示“退出系统”字样。 (2)建立数据库该模块为初建数据库,只需输入某位老师的理论课程门数、每门课的学时数、每门课的学生人数,实践专周的周数、人数,毕业设计的人数和周数,计算该老师的总工作量。系统就会将总工作量算出来并且存如文件中。(3) 查找教师工作量信息该模块可查找所需教师工作量信息,并显示在屏幕上。(4) 添加教师工作量该模块课添加工作量信息,当输入教师信息后,系统会自动计算教师工
6、作量,并存入文件中。 第二章 系统分析与设计2.1 软件界面设计(1)初建数据库图1.输入初始信息如图1.输入相应信息即可计算并存入教师工作量信息。注:上图略去清屏操作,实际操作根据系统提示进行。(2) 追加数据图2.图3.数据追加如图2,图3根据屏幕显示操作,即可追加信息。(3) 查询信息图4. 查询存在信息图5.查询不存在信息如图4,5 查询时可分别出信息存在与否而显示不同信息。(4) 退出系统图6.退出系统如图6 为退出系统的显示。2.2 软件的数据(结构)设计该教师工作量计算系统主要以C+文件输出流ofstream将键盘读入的信息放入相应文本文件teacher.txt中, 然后又以输入
7、流ifstream将teacher.txt中的信息读出文件放入相应空间中,调用函数即可将信息在屏幕上输出。文件的输入一输出均运用的是文本文档的输入输出,所以在相应的文件teacher.txt中也可以看见老师的信息,不过就没有在屏幕上输出的信息明显。2.3 软件的算法设计模块图如下图:封面1. 数据录入2. 查询信息3. 退出系统键入选择数据录入1.初始建库2.追加信息3.退出程序 1 2 3查找数据 键入选择 1 2初始建库追加信息退出系统 模块流程图:开始(1) 数据录入数据录入初始建库判断 1 2打开文件追加信息输入信息打开文件输入信息关闭文件结束关闭文件结束(2)信息查询开始查询信息打开
8、文件输入XX输出教师信息判断 flag 为 1关闭文件 Flag为0输出“无该XX教师”结束结束第三章 软件的实现(1)数据录入1.初始建库当界面显示菜单功能时,选择1即可进入数据录入,其次再选择1即可进入到初始建库的功能下。该功能调用了两个子函数:inoput输入信息,fouput写入文件。input函数运用了switch case语句,if循环语句,C+中的标准输入输出;foutput函数运用的是C+的文件输出流。2. 追加信息当界面显示菜单功能时,选择1即可进入数据录入,过后选择2即可进入到追加信息的功能。该功能用到的函数:finputMore和foutput,input函数,前者运用f
9、or循环,vector向量的push_back()函数来叠加文,调用函数input输入信息,然后调用fouput函数将输入的信息放入文件中。(2) 查找信息 当界面显示菜单功能时,选择2即可进入查找信息功能。 该功能调用了finput函数,output函数,运用string,运用输出流ifstream将文件的信息放入存中,定义一个string类型的nm,判断名字name是否和nm相等,若相等就令flag = 1,若不相等就为0。;最后根据情况看是否调用函数ouput。第四章 软件测试对每一个函数、与组装以后的函数、写出测试用例。1. double getPro( teacher* t );/专
10、业课课时用例:input 40(人数),20(学时) output 26(专业课工作量)2. double getBasic( teacher *t );/基础学时数用例:input 40, 20 output 22(基础课工作量)3. double exWork( teacher *t );/实践课学时量用例:input 40(人数), 10(周数) output 264(实践课工作量)4.double gradWork( teacher *t );/毕业设计学时量用例:input 40(人数), 10(周数) output 400(毕业设计工作量)5. void fouput( teach
11、er *t );/输入到文件用例:input cyx(名字) 1000(工作量) ouput cyx 10006. void finput( teacher *t );/从文件中读出用例: input Ay(名字) 1000(工作量) Ouput Ay 10007.void input( teacher* t );/从键盘输入 void output( teacher *t );/从屏幕输出用例:input 1,1,100,20,120,15,120,10 output 教师的名字:sss 该教师的工作量是:3022.18.void finputMore();/增加教师工作量用例:input
12、1,1,2,120,10,100,15,100,5 output 教师的名字:aa 该教师的工作量是:26469.void queryByName( teacher *t );/按查询用例:input aa output 教师的名字:aa 该教师的工作量是:2646第四章 软件使用说明书 1.数据录入图1.选择功能图2.选择不同功能根据自己不同的需要选择数据录入下的不同功能,在系统分析与设计中有详细的介绍。2. 信息查询 (在图1的菜单中选择2.)图3.输入要查询教师信息图4.信息输出 根据系统显示的数字功能,就可以完成对该系统的简单操作。致本次课程设计与论文完成过程中,我遇见的很多我不懂得问
13、题;可是在这些问题面前,我并没有认输,而是努力克服我所遇到的问题。在这期间中,当我在写程序的时候,帮我最多的就是老师,在我不懂得时候,老师总是很有耐心的给我讲解,而且在写程序的期间,也是很有耐心的等待我写完,然后仔细的帮我纠正错误。在写论文期间,给我最大帮助的就是我的同学们和朋友们,他们总是很有心的帮我写论文,在看见错误的地方也会提醒我。总之,这次课程设计并不是只是靠我才完成的,我的成功完成是离不开老师和同学,朋友的帮忙,在这里,我忠心感帮助我的人。岑余霞 2011年6月24日参考文献1 黄维通. Visual C+面向对象与可视化程序设计. .清华大学.2000.2 (美)戴特尔(Deite
14、l,H.M.),(美)戴特尔(Deitel,P.J.) 著C程序设计经典教程,清华大学,2006附加:程序代码#include< iostream >#include< fstream >#include< string >#include< vector >using namespace std;typedef struct _teacherstring name;int num;/理论课程门数double basicTime;/理论课学时double basicNumber;/理论课人数double proTime;/专业课学时double
15、proNumber;/专业课人数double theoryWork;double exWeek;/实践专周周数double exNumber;/实践人数double exWork;double gradWeek;/毕业设计周数double gradNumber;/毕业设计人数double gradWork; double all;teacher;double getPro( teacher* t );/专业课课时double getBasic( teacher *t );/基础学时数double exWork( teacher *t );/实践课学时量double gradWork( teac
16、her *t );/毕业设计学时量void fouput( teacher *t );/输入到文件void finput( teacher *t );/从文件中读出void output( teacher *t );/从屏幕输出void input( teacher* t );/从键盘输入void finputMore();/增加教师工作量void queryByName( teacher *t );/按查询int main()teacher t;int m, n;cout<<"数据录入按1 查询请按2 退出请按3"<<endl;cin>>
17、;m;while( m != 4 )while( m = 1 )system("cls");cout<<"初始建库请按1 追加数据请按2 退出请按3"<<endl;cin>>n;if( n = 4 )m = 4;while(n = 1)/数据建立int x;double basicWork = 0, proWork = 0;/基础理论课工作量,专业理论课工作量cout<<"请输入老师名:"cin>>;cout<<"请输入该教师的理论课程门数:
18、"cin>>t.num;for( int i = 0; i < t.num; i+ )system( "cls" );cout<<"基础课请选择 1 专业理论课请按 2 "<<endl;cin>>x;system("cls");switch(x)case 1:cout<<"请输入基础课,专业课人数和学时:"<<endl;cin>>t.basicNumber;cin>>t.basicTime;basicWo
19、rk += getBasic(&t);break;case 2: cout<<"请输入专业课人数和课时:"<<endl;cin>>Time>>Number;proWork += getPro(&t);break;t.theoryWork = basicWork + proWork;/理论课工作量system( "cls" );cout<<"请输入实践课人数和周数:"<<endl;cin>>t.exNumber>
20、>t.exWeek;system( "cls" );cout<<"请输入毕业设计人数和周数:"<<endl;cin>>t.gradNumber>>t.gradWeek;t.exWork = exWork(&t);t.gradWork = gradWork(&t);t.all = t.theoryWork + t.exWork + t.gradWork ;fouput(&t);system("cls");cout<<"数据录入按1 查询请
21、按2 退出请按3"<<endl;cin>>m;n = 3;while(n = 2)/数据追加 finputMore();system("cls");cout<<"数据录入按1 查询请按2 退出请按3"<<endl;cin>>m;n = 3;while(n = 3)system("cls");cout<<"数据录入按1 查询请按2 退出请按3"<<endl;break;while(m = 2)/查找system("
22、cls");queryByName(&t);cout<<"数据录入按1 查询请按2 退出请按3"<<endl;cin>>m;while(m = 3)m = 4;break;return 0;void finputMore()teacher t; vector<teacher> te;int n;cout<<"请输入你所要追加的教师个数:"cin>>n;system("cls");for(int i = 0; i< n; i+ )input(
23、&t);te.push_back(t);fouput(&t);double getBasic( teacher *t )/计算基础学时数double xs;double basicWork;if( t->basicNumber < 41 )xs = 1.0; basicWork = t->basicTime * xs * 1.1;if( t->basicNumber > 40 && t->basicNumber < 91 )xs = 1 + ( t->basicNumber - 40 ) * 1.0 / 100;b
24、asicWork = t->basicTime * xs * 1.1;if( t->basicNumber > 90 && t->basicNumber < 141 )xs = 1.5 + ( t->basicNumber - 90 ) * 0.5 / 100;basicWork = t->basicTime * xs * 1.1;if( t->basicNumber > 140 )xs = 1.9;basicWork = t->basicTime * xs * 1.1;return basicWork;double
25、getPro( teacher* t )/专业课课时double xs;double proWork;if( t->proNumber < 41 )xs = 1.0; proWork = t->proTime * xs * 1.3;if( t->proNumber > 40 && t->proNumber < 91 )xs = 1 + ( t->proNumber - 40 ) * 1.0 / 100; proWork = t->proTime * xs * 1.3;if( t->proNumber > 90 &
26、amp;& t->proNumber < 141 )xs = 1.5 + ( t->proNumber - 90 ) * 0.5 / 100;proWork = t->proTime * xs * 1.3;if( t->proNumber > 140 )xs = 1.9;proWork = t->proTime * xs * 1.3;return proWork;double exWork( teacher *t )/实践专周(课程设计、实习、技能考核等)教学工作量为0.66学时/人.周return t->exWeek * t->e
27、xNumber * 0.66;double gradWork( teacher *t )/毕业实习、毕业设计、毕业专题实验 教学工作量为1学时/人o周return t->exWeek * t->exNumber * 1;void fouput( teacher *t )ofstream fout("teacher.txt");fout<<t->name<<"t"fout<<t->all<<"t"void finput( teacher *t )ifstream f
28、in( "teacher.txt" );fin>>t->name;fin>>t->all;void output( teacher *t )cout<<"教师的名字:"cout<<t->name<<endl;cout<<"该教师的总工作量是:"cout<<t->all<<endl;void queryByName( teacher *t )/按查询ifstream fin("teacher.txt"
29、;);finput(t);string nm;int flag = 0;cout<<"请输入你要查找的教师:"cin>>nm;while( fin>>t->name )if( nm = t->name ) flag = 1;break;if( flag = 1 )output(t);cout<<endl;elsecout<<"无该的教师!"<<endl;cout<<endl;void input(teacher* t)/从键盘输入int x;double basicWork = 0, proWork = 0;/基础理论课工作量,专业理论课工作量co
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2019年辽宁省铁岭、抚顺、本溪、葫芦岛四市中考历史试题(解析)
- 高效团队协作策略制定计划方案
- 酒店店长个人述职报告
- 四年级数学(四则混合运算带括号)计算题专项练习与答案
- 预防感冒有妙招
- 加强联系:提升沟通与协作效率
- 广西2024-2025学年高二下学期开学检测英语试题(原卷版+解析版)
- 2025年浙江省普通高校招生选考科目考试生物测评卷(二)(原卷版+解析版)
- 职场新人培训指南与教育范文集
- 借款合同是不是是实践性合同
- 介绍家乡山西太原
- 2025届湖北省孝感市八校教学联盟高三第二次模拟考试数学试卷含解析
- 土木工程CAD-终结性考核-国开(SC)-参考资料
- 放射性皮肤损伤的护理-中华护理学会团体标准
- (新版)浙江省地方执法证考试题库及答案
- 糖尿病-运动课件
- 科技大篷车进校园方案
- 【课件】往复式压缩机课件
- 2024-2030年中国铌行业市场发展趋势与前景展望战略分析报告
- GB/T 2428-2024成年人头面部尺寸
- 2024年锅炉运行值班员(高级工)理论考试题库-上(单选、多选题)含答案
评论
0/150
提交评论