计算机操作系统课程设计30168_第1页
计算机操作系统课程设计30168_第2页
计算机操作系统课程设计30168_第3页
计算机操作系统课程设计30168_第4页
计算机操作系统课程设计30168_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、. . . . 1 / 25课 程 设 计 报 告课程名称课程名称 计算机操作系统计算机操作系统 课题名称课题名称 车辆数量统计系统车辆数量统计系统 专专 业业 信息管理与信息系统信息管理与信息系统 班班 级级学学 号号姓姓 名名指导教师指导教师20122012 年年 7 7 月月 9 9 日日工程学院. . . . 2 / 25课 程 设 计 任 务 书课程名称 计算机操作系统 课 题 车辆数量统计系统 专业班级 学生 学 号 指导老师 审 批 任务书下达日期 2012 年 6 月 21 日任务完成日期 2012 年 7 月 9 日一一、设设计计容容与与设设计计要要求求1.1.课程设计目的课

2、程设计目的全面熟悉、掌握计算机系统与系统软件基本知识,增强对不同的问题运用和灵活选择合适的数据结构以与算法描述的本领,熟悉编制和调试程. . . . 3 / 25序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,增强面向对象程序设计概念,熟悉 C+语言编程,养成提供文档资料的习惯和规编程的思想,为后继课程的实验以与课程设计打下较扎实的基础。进一步提高上机动手能力,培养使用计算机解决实际问题的能力,为后继课程(数据结构、数据库和 JAVAC#语言编程等课程)的实验以与课程设计,特别是自学、毕业论文的完成打下扎实的基础。2.2.课题题目课题题目三个计数器统计通过高速公路的汽车数量,三个

3、计数器不能重复计数,独立工作。工作人员从计数器中取出数字。在取出时高速公路封闭,计数器不统计数据。计数器没有数字时工作人员不能取数据。3.3.设计要求:设计要求:主要模块:1、计数器统计进程 具有功能:1、计数器统计计数 2、统计计数互斥 3、统计计数冲突报错 4、友好提示 5、退出本系统2、工作人员取数据具有功能:1、友好提示 2、工作人员取数据 3、取数据为零报错 4、取数据时不能统计计数冲突报错 5、退出本系统要求:1)设计正确,方案合理。2)界面友好,使用方便。3)程序精炼,结构清晰。4)设计报告 5000 字以上,含程序设计说明、系统的功能框图、流程图、源程序清单等。. . . .

4、4 / 255)实际操作过程中遇到的问题与解决方法:设计总结与心得体会.6)上机演示。二、进度安排第 19 周 星期二 晚上 18:00-22:00星期四 晚上 18:00-22:00星期五 上午 8:00-12:00 下午 13:00-17:00第 20 周 星期一 上午 8:00-12:00 星期二 下午 14:00-18:00. . . . 5 / 25目 录1 系统需求分析 12 总体设计 12.1 总体设计图 12.2 系统各功能模块 23 详细设计 23.1 各模块详细设计 23.2 各函数之间的调用关系 54 程序调试中的问题 55 运行结果 75.1 初始界面 75.2 计数统

5、计界面 75.3 计数器录入车辆数量 85.4 结束计数工作 85.5 获取车辆数量界面 95.6 显示车辆数量 105.7 退出获取界面 105.8 友好提示 115.9 系统错误 116 心得体会 137 附录 147.1 源代码 147.2 参考文献 198 评分表 20. . . . 1 / 251 系统需求分析利用 C+语言和相关知识设计与开发一个高速公路车辆统计系统, 三个计数器统计通过高速公路的汽车数量,三个计数器不能重复计数,独立工作。工作人员从计数器中取出数字。在取出时高速公路封闭,计数器不统计数据。计数器没有数字时工作人员不能取数据。2 总体设计2.1 总体设计图如图 2-

6、1 所示:图 2-1 总体设计图主函数统计数据退出菜单输入数据获取数据计算数据友好提示退出菜单友好提示. . . . 2 / 252.2 系统各功能模块int tishi():提示用户操作事项;int shuru(int a,int b,int c,int &x):车辆数据信息的录入;void tuichu(int &g):退出统计界面;int tongji(int a,int b,int c,int &g,int &m):统计车辆数量;void tuichu1(int &g):退出获取数据界面;int jisuan(int &g,int k):

7、计算统计的车辆数量; void huoqu(int &g,int k):工作人员取出数据;int main():主函数。3 详细设计3.1 各模块详细设计(1)统计车辆数量用户选择想要进行的操作,在该界面下选择序号 1,进行统计计数工作。int tongji(int a,int b,int c,int &g,int &m)system(cls);int x=0,k=0;g=1;while(x!=3)cout=计数器统计进程=endl;cout1、计数器统计计数endl;cout2、友好提示endl;cout3、退出endl;cout=x;switch(x)case 1:

8、k=shuru(a,b,c,m);break;case 2:tishi();break;case 3:tuichu(g);break;default:cout输入有误!endl;return k;. . . . 3 / 25(2)友好提示便于用户查询了解必要的操作注意事项,避免不必要的错误。int tishi()system(cls);int i=1;while(i!=0)system(cls);cout1.当进行统计计数进程时,不能进行取数据的进程,必须先关闭统计计数进程,才能进行取数据进程endl;cout2.当进行取数据的进程时,不能进行统计计数进程,必须先关闭数据的进程,才能进行统计计

9、数进程endl;cout3.计数器没有数字时工作人员不能取数据endl;cout4. 三个计数器不能重复计数endl;cout5.系统的初始状态是统计计数状态endlendlendl;cout 返回请输入 0i;return 0;(3)退出统计计数菜单计数器统计进程的界面下,用户选择序号 3,退出统计计数菜单,从而选择继续其它的操作。void tuichu(int &g)system(cls);int i=0,*g1=&g;cout*退出界面*endl;cout1.返回上一界面endl;cout2.退出统计进程i;if(i=2)*g1=0;(4)获取用户可以获得先前统计车辆数量

10、的结果。void huoqu(int &g,int k)if(g=1)cout统计计数冲突报错endl;else. . . . 4 / 25jisuan(g,k);(5)计算车辆数量用户在该界面下选择序号 1,进行取数操作,系统随之报出结果。int jisuan(int &g,int k)system(cls);int j=0,l=0;g=2;while(j!=3)cout=工作人员取数据=endl;cout1、工作人员取数据endl;cout2、友好提示endl;cout3、退出endl;cout=j;switch(j)case 1:if(k=0)cout取数据为零报错end

11、l;else l=k;cout车的数量为:lendl;break;case 2:tishi();break;case 3:tuichu1(g);break;default:cout输入有误!endl;return l;(6)退出计算用户在工作人员取数据的界面下,选择序号 3,退出停止计算车辆数量。void tuichu1(int &g)system(cls);int i=0,*g2=&g;cout*退出界面*endl;cout1.上一界面endl;cout2.退出取数据进程i;if(i=2)*g2=0;. . . . 5 / 253.2 各函数之间的调用关系如图 3-1 所示:

12、图 3-1 各函数的调用关系4 程序调试中的问题(1)程序设计初期没有在程序中添加初始化函数 BOOL CLendOutDlg:OnInitDialog(),因此输入读者编码和书籍编码后,BORROW 表中保存该信息,添加了该函数后就可以了。(2)程序中原来有两个 CLendOutDlg:OnCONFIRM()函数,其中一个是空的,但是删掉后会出现错误,在 Dialog 的 IDD_LENDOUT 中找到“建立类向导” ,删掉其中与对话框按钮名称不同的一个即可。(3) 、CLendOutDlg:OnCONFIRM()函数中原来没有 UpdateData(FALSE); UpdateData(T

13、RUE);就会出现错误,经过老师帮忙找到错误所在,就加上使得程huoqu(int &g,int k)tongji(int a,int b,int c,int &g,int &m)jisuan(int &g,int k)tishi()shuru(int a,int b,int c,int &x)tishi()tuichu1()tuichu()main(). . . . 6 / 25序能正常运行。(4)CLendOutDlg:OnCancel()函数只需一条语句,开始的时候用了很多其他函数,如:DisplayRecord();SetButtonState()

14、;SetTextState();但是会出现没有定义之类的错误,是因为在头文件中根本没有这些函数的定义,所以就会出现这样的错误。(5)在消息映射函数中,本应每个空格和按钮只对应一组ON_BN_CLICKED(IDC_XX, XX),而我的程序全部编完以后,而且 IDC_后面的是BUTTON。虽然是这样乱七八糟,但是程序运行完全没有错误,也没有警告,于是我就把含有 BUTTON 的全部都删掉了;再运行时,就出现了错误。错误原因与解决方法:原因在于画出的“借书”界面上,读者条码和书籍编码的属性中的标题没有改。当把界面上所有空格和按钮属性的改为相对应的时,ON_BN_CLICKED(IDC_XX, X

15、X)只有一组,而且运行无误。(6)刚开始做了结束模块的框图时按“确定” “取消”按扭不会连接到程序中,后来在 ClassWizard 中添加就可以了。然后双击按扭就可以出现了。(7)读者编码,书籍编码要定义成数字型,否则,输入字符,特殊符号都会识别,不符合实际情况。(8)刚开始没有初始化函数 BOOL CLendOutDlg:OnInitDialog(),以至于输入读者编码和书籍编码后,BORROW 表中没有该信息,添加了该函数后就可以了。(9)程序中原来有两个 confirm 函数,其中一个是空函数,但是删掉后又有错误,找过之后从“建立类向导”中删掉一个就可以了。(10)confirm 函数

16、中原来没有 UpdateData(FALSE); UpdateData(TRUE);就会出现错误,经过老师帮忙找到错误之所在,就加上去了。(11)cancel 函数只要一句话 CDialog:OnCancel();就可以了。刚开始用了好多其他函数,如:DisplayRecord();SetButtonState();SetTextState(); 但是会出现没有定义之类的错误,是因为头文件中根本就没有这些函数,所以就会出现这样的错误。. . . . 7 / 255 运行结果5.1 初始界面图 5-1 初始化界面5.2 计数统计界面图 5-2 统计界面. . . . 8 / 255.3 计数器录

17、入车辆数量图 5-3 车辆数量录入界面5.4 结束计数工作图 5-4 结束扫描. . . . 9 / 25图 5-5 退出计数界面5.5 获取车辆数量界面图 5-6 获取界面. . . . 10 / 255.6 显示车辆数量图 5-7 统计结果5.7 退出获取界面图 5-8 退出界面. . . . 11 / 255.8 友好提示图 5-9 友好提示界面5.9 系统错误图 5-10 选择计数器出错图 5-11 统计计数互斥. . . . 12 / 25图 5-12 冲突报错图 5-13 取数据报错图 5-14 选择出错. . . . 13 / 256 心得体会今年的课程设计相比大一,个人觉得时间

18、没有那么赶,可能是有了几次经验,已经轻车熟路了。回想刚从老师那里拿到题目的时候,自己并没有太大的压力,因为觉得通过运用所学的基本知识和参考一些文献,基本上就能将课程拿下。就像人们所说的, “说的永远比做的容易”,在认真思考课题后,我大致的把该程序中会用到的结构以与要求的功能写了下来,整个程序写完后再进行排查,错误不是很多,有两三个都是同一种类型的,并且也没有犯一些低级错误,比如少分号之类的,这得归功于以前 C 语言还算学得扎实。程序是能运行了,可是运行结构却不如人意。我检查了整个程序,都找不出原因。这个问题一下难到了我,接下来的时间里一直在思考这个问题,最后还是发现自己不知道从何下手。所以前两

19、次课程设计我算是处于迷茫和失望的状态,不知道定义一个什么类型能把那些信息全部输出来,怎么样才能实现这些功能。在参考了一些文献之后,我重新编写并修改了程序,结果运行终于正确了,那种喜悦真是无法言表的,果然是一分耕耘一分收获!通过这次课程设计我发现了自己在这门课程上还存在的一些漏洞和不足,没有完全掌握这所学的课程,同时也弥补了自己的一些漏洞和不足。当然老师和同学的耐心帮助也是不可缺少的一部分。我也明白了想要成功编写出一个较为精致的程序和实现其具体的功能的确不是一件简单的事情,它需要你付出更多的努力和花费更多的时间,也只有耐心和永不气馁的精神才能成功得到效果。更重要的是,我悟得凡事还是不要一知半解,

20、不要留下疑问,要全面透彻的理解。同时,我深深的体会到,团队的力量是强大的,而团队精神是高效率完成任务必不可少的。总之,这次课程设计让我受益匪浅。. . . . 14 / 257 附录7.1 源代码#include#include#includeusing namespace std;int tishi()system(cls);int i=1;while(i!=0)system(cls);cout1.当进行统计计数进程时,不能进行取数据的进程,必须先关闭统计计数进程,才能进行取数据进程endl;cout2.当进行取数据的进程时,不能进行统计计数进程,必须先关闭数据的进程,才能进行统计计数进程e

21、ndl;cout3.计数器没有数字时工作人员不能取数据endl;cout4. 三个计数器不能重复计数endl;cout5.系统的初始状态是统计计数状态endlendlendl;cout 返回请输入 0i;return 0;int shuru(int a,int b,int c,int &x)system(cls);int static *p1=a,*p2=b,*p3=c;int h,j,i=0;char k1=y;while(k1=Y|k1=y)cout请选择计数器序号(1,2,3)h;if(h!=1&h!=2&h!=3)cout输入有误!,请重新输入。endl;con

22、tinue;. . . . 15 / 25if(h=1)cout请输入车辆序号j;for(p2=b;p2b+100;p2+)if(*p2=j)break;for(p3=c;p3c+100;p3+)if(*p3=j)break;if(p2=(b+100)|p3=(c+100)*p1=j;p1+;x+;elsecout统计计数互斥endl;else if(h=2)cout请输入车辆序号j;for(p1=a;p1a+100;p1+)if(*p1=j)break;for(p3=c;p3c+100;p3+)if(*p3=j)break;if(p1=(a+100)|p3=(c+100)*p2=j;p2+;

23、x+;else. . . . 16 / 25cout统计计数互斥endl;elsecout请输入车辆序号j;for(p1=a;p1a+100;p1+)if(*p1=j)break;for(p2=b;p2b+100;p2+)if(*p2=j)break;if(p2=(b+100)|p3=(c+100)*p3=j;p3+;x+;elsecout统计计数互斥endl;cout还继续扫描车辆吗?(Y OR N)k1; return x;void tuichu(int &g)system(cls);int i=0,*g1=&g;cout*退出界面*endl;cout1.返回上一界面end

24、l;cout2.退出统计进程i;if(i=2)*g1=0;. . . . 17 / 25int tongji(int a,int b,int c,int &g,int &m)system(cls);int x=0,k=0;g=1;while(x!=3)cout=计数器统计进程=endl;cout1、计数器统计计数endl;cout2、友好提示endl;cout3、退出endl;cout=x;switch(x)case 1:k=shuru(a,b,c,m);break;case 2:tishi();break;case 3:tuichu(g);break;default:cout输入有误!endl;return k;void tuichu1(int &g)system(cls);int i=0,*g2=&g;cout*退出界面*endl;cout1.上一界面endl;cout2.退出取数据进程i;if(i=2)*g2=0;int jisuan(int &g,int k)system(cls);int j=0,l=0;g=2;while(j!=3). . . . 18 /

温馨提示

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

评论

0/150

提交评论