版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C程序课程设计报告20—20学年第学期课程名称C语言课程设计设计题目《排班系统》学生姓名学号专业班级指导教师20年月日目录一、设计任务书…………31、题目与要求…………………32、本程序涉及的知识点………3二、程序流程图…………4三、程序代码设计………5四、程序调试过程………6五、程序运行过程………6六、程序有待改进的地方………………9七、程序设计总结………9八、致谢…………………9参考文献…………………9附录……………………10一、设计任务书1、题目与要求赵:星期二、星期四本程序实现的功能是对7名保安人员进行排班,要求每个人在一星期中可以休息一天。每名保安可以自行选择自己想要的休息日,而对于休息日的选择既可以是某一天,也可以是某几天中的其中一天。当7名保安依次输入自己想要的休息日后,系统将会给出可能的值班安排。若系统给出的值班安排是0种,证明系统对7名保安的选择无法作出排班,需要重新输入。具体题目:学校实验楼有7名保安人员:钱、赵、孙、李、周、吴、陈。由于工作需要进行轮休制度,一星期中每人休息一天。预先让每一个人选择自己认为合适的休息日。请编制程序,打印轮休的所有可能方案。当然使每个人都满意,例如每人选择的休息日如下:钱:星期一、星期六孙:星期三、星期日李:星期五周:星期一、星期四、星期六吴:星期二、星期五陈:星期三、星期六、星期日2、本程序涉及的知识点输入函数和输出函数、变量的定义、for语句和switch-case语句的使用等二、程序流程图开始开始输出显示欢迎使用排班系统循环录入每个保安选择的休息日判断输入的休息日是否合理输出满足条件的值班安排结束三、程序代码设计输入函数和输出函数、变量的定义、for语句和switch-case语句、ss字符串的使用等。输入函数:1)函数原形:自定义swap(int*a,int*b)函数2)功能:swap()函数利用取地址符号&完成对程序中某个变量的赋值,进而程序中判断交换的功能。3)函数原形:getchar()4)功能:向计算机输入一个字符。5)变量及类型:inta,b,m,k:整型形参变量,接收main()传过来的随机数字。inti:循环控制变量,其中i具有自加功能。intj:整型形参变量,其中j具有自加功能。6)说明:输入字符后需要输入-1,待系统做出判断后往下执行。选择判断结构switch-case语句:从表达式值等于某个case语句后的值开始,它下方的所有语句都会一直运行,直到遇到一个break为止。随后,switch语句将结束,程序从switch结束大括号之后的第一个语句继续执行,并忽略其他case;假如任何一个case语句的值都不等于表达式的值,就运行可选标签default之下的语句。假如表达式的值和任何一个case标签都不匹配,同时没有发现一个default标签,程序会跳过整个switch语句,从它的结束大括号之后的第一个语句继续执行。for语句:for(语句1;语句2;语句3){循环体}执行时,先执行一次语句1(注意只执行一次)之后判断语句2是否成立1).如果成立执行循环体,之后执行语句3。再返回语句2判断条件是否成立?成立执行循环体后再执行语句3,如此直到循环体不成立则跳出循环2)如果语句2不成立,则不执行循环体也不执行语句3直接跳出循环。输出函数:1)函数原形:printf(“======”,*)2)功能:输出相关提示信息及最后结果。3)相关变量:intn:输出正确结果。inti,j:输出计算正确,计算排班情况。4)说明:输出时要把要输出的信息用双引号括起来,输出数字时要在其代表变量前加逗号。四、程序调试过程由于对C语言知识储备有限,且时间精力有限,我们在设计程序程序的过程中遇到了不少问题。首先遇到的问题是:使用何种数组以及如何使输出变得简洁易懂,易操作。在思考讨论之后,我们决定尽量“使输入数字化,输出结果文字化”的做法,也就是再输入星期几的时候直接用数字代替,在输出的时候,为了更加直观,就需要把原先的数字输出为星期几这种文字的形式;在单个对象输出结束之后,我们选择了-1这个不会与其他日期混淆的数字,以此表示可以对下一个对象进行输出。这就需要重新定义一个二维数组,数组中存放“星期一,星期二”等文字形式的定义,这样我们可以通过前面输入的数字来引用对应的文字。解决了最基本的问题之后,我们遇到的问题是:程序使用过程还是不够直观,不能让使用者直接观察到每个保安可能选择的休息日,在无法自行解决的情况下我们向老师求助。在解释程序、说明目的之后,我们重新进行了一次讨论,最后老师建议我们重新定义一个新的数组。为此我们找了很多相关资料,不断地进行调试,修改,却始终无法完全达到我们的预想;在老师的指导下,再次经历了数组选择以及一系列的调试与修改之后,我们重新定义了ss字符串,采用了charss数组。在选择了charss数组之后遇到的问题就是输出语句繁琐,每次都会显示“请输入下列人选择休息的可能时间”,后来我们对“printf("请输入下列人选选择休息的可能时间:\n");”这个语句进行修改与位置的调整,使得其变得简洁。调试的过程比较繁琐,除了跟版本有一定的关系外,有时候就因为一个小错误,程序调试了好久也出不来想要的结果,最后通过我们组员的一起讨论、利用课本、网上的资源和老师的帮助,这些问题都被我们逐一解决了。五、程序运行过程1、输出多种结果2、输出0种结果(说明输入有误,需要重新输入)3、只输出一种结果(如题目要求)六、程序有待改进的地方本程序是根据保安可能选择的休息日,给出满足条件的值班安排这一功能,系统功能相对单一,不够人性化。在对C语言有更深的了解后,可以考虑对程序进行修改,增加系统功能,例如:1、增设特殊情况显示以及分析,根据况进行人性化排班,例如:看病>办证>旅游2、在系统无法排班时,判断周几没有值班人员;3、当有某个保安请假一周,也就是剩下的6名保安有一个人一周要值两天时如何排班;4、增设投票功能:当有多种值班安排时,通过投票随机决定使用哪一种值班安排;5、可增设当天值班保安的工号、电话、地址等信息的显示;七、程序设计总结在完成本次课程设计的过程中,一方面让我们在实际运用中更加深刻地理解了课堂学到的知识;另一方面,通过查询资料、咨询老师,培养了我们在有限时间内搜集资料以及写论文的能力;与此同时,在编写程序时,也让我们体会到想要学好一个程序,不仅要上课认真听老师讲,还要在课外多阅读一些相关的资料和书籍。同时,相关的资料和老师的指导对我们完成程序的编写提供很大的帮助。除此之外,我们还认识到编写程序时必须要耐心仔细,真可谓,细节决定成败;一个标点和字符或是中英文等输入细节都要注意,否则就可能导致整个程序运行错误,这极大地培养了我们务实求真,发现问题的科学素养。此外,思考、讨论、查找资料以及调试、修改的过程是非常繁琐的,但是我们要尽量做到尽善尽美,只有这样,才能设计出简洁的、比较人性化的程序。八、致谢本次课程设计的完成,除了感谢百度文库提供的资料以及网友的不吝赐教之外,还要特别感谢C语言课程李老师的耐心指导,让我们在繁琐的调试中寻找到乐趣以及不断改进的动力。参考文献[1]谭浩强,C程序设计(第四版),北京:清华大学出版社,2010.6[2]豆丁网-/p-475334925.html[3]-C语言论坛-编程论坛/thread-329752-1-1.html[4]-3亿文库-http://3/bp-cs1ss01dff00bedsbqf31dd0-1.html[5]/link?url=z0auYk8U_fl7zeJMFCDv8DyzKyuRbtdM2mhL7G3RDZgml12wE78M88yCTPnoH5aeBqyQEGKAjuKGf81vAU4Llu3Yxhwg-WKpKmfo5dZbdrG附录源程序:#include<stdio.h>intn=0;intrest[7][7];voidswap(int*a,int*b){intm;m=*a;*a=*b;*b=m;}voidperm(intlist[],intk,intm){inti;intj;if(k>m){for(i=0;i<7;i++){for(j=0;j<7;j++){if(rest[i][j]==-1)return;if(rest[i][j]!=list[i])continue;if(rest[i][j]==list[i])break;}}n++;printf("Solution:%d\n",n);printf("赵钱孙李周吴陈\n");printf("=============================================================\n");for(i=0;i<=m;i++){switch(list[i]){case1:printf("星期一");break;case2:printf("星期二");break;case3:printf("星期三");break;case4:printf("星期四");break;case5:printf("星期五");break;case6:printf("星期六");break;case7:printf("星期日");break;default:break;}}printf("\n\n\n");}else{for(i=k;i<=m;i++){swap(&list[k],&list[i]);perm(list,k+1,m);swap(&list[k],&list[i]);}}}intmain(){intlist[]={1,2,3,4,5,6,7};inti,j;charss[7][20]={"赵","钱","孙","李","周","吴","陈"};printf("===========================欢迎使用排班系统===================================\n");printf("请输入下列人选选择休息的可能时间:\n");for(i=0;i<7;i++){printf("%s:",ss[i]);for(j=0;j<7;j++){scanf("%d",&rest[i][j]);if(rest[i][j]==-1)break;}}printf("\n\n\n");perm(list,0,6);printf("total:%d\n",n);getchar();getchar();return0;}排比句习題一.排比句仿写1.毅力是攀登智慧高峰峰的手杖,毅力是,毅力是。2.日子像一条小溪,汨汩地向前流去。日子像一双筷子,夹着酸甜苦辣的现实。考试如,。考试如,。3.书是钥匙,能开启智慧之门;书是阶梯,能帮助人们登上理想的高峰。书是,能。书是,能。4.朋友是什么?朋友是快乐日子里的一把吉它,()朋友是忧伤日子里的一股春风,()朋友是成功道路上的一位良师,()朋友是失败苦闷中的一盏明灯,()5.爱心是一片照射在冬日的阳光,使贫病交迫的人感到人间的温暖;爱心是,;爱心是,。
6.幸福是“临行密密缝,意恐迟迟归”的牵挂;幸福是“,”的收获。幸福是“,”的闲适;幸福是“,”的奉献;幸福是“,”的恬淡。7.春天的雨,细腻而轻柔,给山野披上美丽的衣裳;夏天的雷,,;秋天的风,,;冬天的雪,,。8.在乡间的小路上,我们会闻到瓜果的芳香;在夜晚的池塘边,我们会;在辽阔的草地上,我们会。这就是我们生活在农村的画卷。9.读《三国演义》可以领略到诸葛亮舌战群儒的风采,读《水浒传》可以,读《西游记》可以,读《红楼梦》可以。10.以爱为话题仿写。崇高并不是虚无缥缈的神话,它是客观存在的实体。只要细心观察,你就会发现崇高就在你身边,它可能是一座高山,让你感觉到巍峨;它可能是一片大海,让你体会到一片壮阔;它可能是一座雕像,让你感悟到肃穆;它可能就是一个人,让你理解了伟大和纯粹。在心中,你有了这种感受,体会,感悟,理解,受到熏陶,影响,潜移默化,你就会摆脱空虚,远离庸俗,成为一个高尚的人。二、语感练习
1.根据下面语境,选择合适适的词语,将其序号填在横线上
只要拥有一颗纯真的心,就可以烦恼的枷锁,在欢乐的草坪上自由漫步;就可以失败的阴影,在胜利的阳光下大步前行;就可以
冷漠的坚冰,在热情的海洋里扬帆远航。
A、驱散B、融化C、摆脱
2.依据语境,填入下列横线处的词,恰当的选项是()这气势恢宏的三峡大坝,触摸它伟岸的躯体,聆听它沉雷般的心跳,问苍茫大地,有哪一条江河_______了如此深厚的文化?有哪一道大坝能_______如此众多的智慧?有哪一座建筑能_______如此壮美的崇高?有哪一项工程能_______如此伟大的传奇?A.凝聚积淀写满见证B.积淀凝聚见证写满C.写满见证凝聚积淀D.见证写满积淀凝聚3、在依次填入恰当的语句序号是()爱心是,使饥寒交迫的人感到人间的温暖;爱心是,使濒临绝境的人看到生活的希望。爱心是,使孤苦无依的人获得心灵的慰藉;爱心是,使心灵枯萎的人感受到情感的滋润.爱心是黑暗中的一盏明灯,使迷失的人找到前进的方向。A.一首飘荡在夜空的歌谣B.沙漠中的一泓清泉C.一场洒落在久旱的土地上的甘霖D.一片照射在冬日的阳光4、在依次填入恰当的语句序号是()不是所有的笑容都表达喜悦,;不是所有的喝彩都表达赞颂,;不是所有的顺从都表达虔诚,;不是所有的顺利都表达成功,。(填序号)就像不是所有的反对都表达憎恶就像不是所有的眼泪都表达悲痛③就像不是所有的沉默都表达否定④就像不是所有的挫折都表达不幸5、下列语句排列正确的一项是()①你才能真正懂得读书,学会读书。
②读教科书,在基础知识和专业技能的学习中,当然是必需的。
③所为读书,不只是读教科书。
④但是,只有超越了读教科书的阶段,把读书变成了一种发自内心的、精神上的需求。
⑤这是求知的阶梯,也是人生必不可少的一段路程。A.③②④⑤①B.③②⑤④①C.⑤③②④①D.③①②④⑤排比句习題答案
1、例:毅力是漂越苦海的舟楫。毅力还是理想的春雨催出的鲜花。
2例:考试如一首歌,轻轻地伴着我向前勇闯。考试如一个魔瓶,收藏着酸甜苦辣的体验。
3、仿句:书是宝藏,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吉林艺术学院《影视照明技术》2021-2022学年第一学期期末试卷
- 吉林艺术学院《书法实训I》2021-2022学年第一学期期末试卷
- 吉林艺术学院《剪辑基础》2021-2022学年第一学期期末试卷
- 2024年供热管网互联互通协议书模板
- 吉林师范大学《中国东北史》2021-2022学年第一学期期末试卷
- 2024年大型绿植售卖合同范本
- 2024年大厂员工合同范本
- 娱乐场营销合同协议书范文范本
- (浙教2024版)科学七年级上册3.2 太阳系的组成与结构 课件(共2课时)
- 吉林师范大学《外国古代教育史》2021-2022学年第一学期期末试卷
- JGJ48-2014 商店建筑设计规范
- 病原微生物实验室生物安全管理培训考核试题
- 健康宣教的方法与技巧课件
- 当代社会政策分析 课件 第七章 老年社会政策
- 2024年湖北联投集团有限公司校园招聘考试试题各版本
- 《无人机驾驶航空试验基地(试验区)基础设施建设规范(征求意见稿)》
- 人教版三年级英语上册期中模拟考试【带答案】
- MOOC 药物代谢动力学-中国药科大学 中国大学慕课答案
- 供应链协同规划:整合供应链资源、提高供应链效率
- 水利工程运维水利工程运行和日常维修养护方案
- 2024上海市标准房屋租赁合同官方版
评论
0/150
提交评论