c语言课程设计报告--学习和掌握c程序设计方法,培养抽象思维、逻辑思维的能力和良好的程序设计风格_第1页
c语言课程设计报告--学习和掌握c程序设计方法,培养抽象思维、逻辑思维的能力和良好的程序设计风格_第2页
c语言课程设计报告--学习和掌握c程序设计方法,培养抽象思维、逻辑思维的能力和良好的程序设计风格_第3页
c语言课程设计报告--学习和掌握c程序设计方法,培养抽象思维、逻辑思维的能力和良好的程序设计风格_第4页
c语言课程设计报告--学习和掌握c程序设计方法,培养抽象思维、逻辑思维的能力和良好的程序设计风格_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计课程设计成果报告学生学号学生姓名学院理学院专业班级信息与计算科学专业课程C语言程序设计指导教师课程设计报告书课程设计目的学习和掌握C程序设计方法,培养抽象思维、逻辑思维的能力和良好的程序设计风格课程设计时间课程设计地点课程设计单位计算机学院课程设计指导教师评分表课程设计题目1、猜数字小游戏2、显示月历3、简单计算器4、宿舍查询系统本组组长本组成员本人分工第1题分工程序设计编写第2题分工主函数和判断星期几函数编写第3题分工主函数、四则运算、其他运算编写第4题分工主函数,查询,文件读写的编写评分项目及分值要素项目最高分评分要素成绩1学习态度20上机出勤及端正的学习态度、认真刻苦程度,工作量饱满程度等2软件设计质量30采用的算法、设计方案,设计结果,界面友好等方面进行综合评定3答辩过程20能简明扼要地阐述设计的主要内容,能准确流利地回答各种问题4设计报告书写10内容按要求步骤书写,条理清晰,表述清楚、措词得当5实际动手能力20熟练使用开发工具,能够迅速准确的进行调试、纠错和运行;组长全面负责,承担复杂的模块设计分值就高成绩评定总成绩等级评语指导教师职称_目录1猜数游戏111设计目标112课题分析与设计113程序清单314测试42显示月历621设计目标622课题分析与设计623程序清单824测试93简单计算器1131设计目标1132课题分析与设计1133程序清单1434测试204宿舍查询系统2141设计目标2142课题分析与设计2143程序清单2444测试285总结311猜数游戏11设计目标设计一个猜数字小游戏,计算机随机在1到100随机产生一个数,请才,如果猜对了提示正确信息;否则告诉所猜的数是大还是小,同时提示下一次猜数的范围,知道猜对结束,最后给出游戏者所猜测的次数。要求,程序以菜单方式工作。12课题分析与设计1、课题分析编写该小游戏,主要分主函数和被调用函数,被调用函数包括一个菜单函数和一个执行函数,执行函数中涉及调用随机数,循环体的设计以及对循环次数的计数。该题中所有数据类型均为整型。2、详细设计头文件INCLUDEINCLUDEINCLUDE主函数设计VOIDMAIN/主函数INTNDOSHOWMENUPRINTF“请选择要完成的操作N“SCANF“D“,SWITCHN/SWITCH从菜单界面选择操作序号CASE1STARTBREAK/调用执行函数CASE2BREAKDEFAULTPRINTF“请输入正确的序号“BREAKWHILEN2PRINTF“谢谢使用本系统,下次再见“确定整个程序的主体框架,多次猜数DOWHILE循环体的实现,注意循环条件,列出所需调用的函数,注意头文件的书写。接着分别编写所需的菜单函数SHOWMENU()和执行函数START()菜单函数主要用PRINTF语句输出游戏的用户操作界面,注意换行。执行函数主要是获取玩家输入的数字和系统产生的随机数进行比较判断,涉及随机数函数调用,多次循环用DOWHILE判断给出猜数范围,并用参数I记录循环次数。3、程序流程猜数游戏设计流程(如图1)图1猜数游戏算法流程图13程序清单INCLUDEINCLUDEINCLUDEVOIDSHOWMENU/菜单函数PRINTF“欢迎使用猜数游戏N“PRINTF“1开始游戏N“PRINTF“2退出系统N“PRINTF“N“VOIDSTART/执行函数INTM,N,X1,Y100,I0/I计数,赋初值0,X,Y用于提示范围PRINTF“1100范围内猜数游戏开始N“PRINTF“请输入你猜的数字N“SRANDTIMENULL/设置随机种子MRAND1001/生成1100的一个随机数DO/循环体,判断所猜数与随机数的大小关系SCANF“D“,IFMNXN1PRINTF“你猜的数太小了,请继续猜,再输入一个数吧DDN“,X,YELSEIFMINTMONTHY,M/定义月份函数,输出该月的天数INTMON1231,28,31,30,31,30,31,31,30,31,30,31IFY40/闰年二月29天ELSERETURNMONM1/返回值为该月的实际天数INTSUMY,M/计算从190011到某年某月经历的天数INTS,SUMDAY,I,J,COUNT0SY1900FORI1900IINCLUDEDEFINEPAI31415926/规定圆周率的值,以便完成角度制和弧度制的转换VOIDSHOWMENU/一级菜单函数PRINTF“欢迎使用简单计算器N“PRINTF“1、四则运算N“PRINTF“2、三角函数运算N“PRINTF“3、对数运算N“PRINTF“4、其他运算N“PRINTF“5、退出系统N“PRINTF“N“FLOATJIA/定义加法运算函数FLOATX,YPRINTF“请输入两个数N“SCANF“FF“,PRINTF“GGGN“,X,Y,XYFLOATJIAN/定义减法运算函数FLOATX,YPRINTF“请输入两个数N“SCANF“FF“,PRINTF“GGGN“,X,Y,XYFLOATCHENG/定义乘法运算函数FLOATX,YPRINTF“请输入两个数N“SCANF“FF“,PRINTF“GGGN“,X,Y,XYFLOATCHU/定义除法运算函数FLOATX,YPRINTF“请输入两个数N“SCANF“FF“,PRINTF“G/GGN“,X,Y,X/YVOIDSTART1/四则运算的二级菜单INTN,MDOPRINTF“四则运算N“PRINTF“1、加法运算N“PRINTF“2、减法运算N“PRINTF“3、乘法运算N“PRINTF“4、除法运算N“PRINTF“N“PRINTF“请选择您要完成的运算N“SCANF“D“,SWITCHNCASE1JIABREAK/调用加法函数CASE2JIANBREAK/调用减法函数CASE3CHENGBREAK/调用乘法函数CASE4CHUBREAK/调用除法函数DEFAULTPRINTF“请输入正确的操作序号N“BREAKPRINTF“继续四则运算请按1,返回上一级菜单请按2N“/选择是否继续执行四则运算SCANF“D“,WHILEM2VOIDSINX/定义正弦运算函数DOUBLEX,YPRINTF“请输入一个角度N“SCANF“LF“,YSINXPAI/180/角度制转化为弧度制求余弦值PRINTF“SIN0F2F“,X,YVOIDCOSX/定义余弦运算函数DOUBLEX,YPRINTF“请输入一个角度N“SCANF“LF“,YCOSXPAI/180PRINTF“COS0F2FN“,X,YVOIDTANX/定义正切运算函数DOUBLEX,YPRINTF“请输入一个角度N“SCANF“LF“,YTANXPAI/180PRINTF“TAN0F2FN“,X,YVOIDARCSINX/定义反正弦运算函数DOUBLEX,YPRINTF“请在11之间输入一个数N“SCANF“LF“,YASINXPRINTF“SIN_10F2FN“,X,YVOIDARCCOSX/定义反余弦运算函数DOUBLEX,YPRINTF“请在11之间输入一个数N“SCANF“LF“,YACOSXPRINTF“COS_10F2FN“,X,YVOIDARCTANX/定义反正切运算函数DOUBLEX,YPRINTF“请输入一个数N“SCANF“LF“,YATANXPAI/180PRINTF“TAN_10F2FN“,X,YVOIDSTART2INTN,MDO/循环显示三角函数的二级菜单PRINTF“三角函数N“PRINTF“1、SINXN“PRINTF“2、COSXN“PRINTF“3、TANXN“PRINTF“4、SIN_1XN“PRINTF“5、COS_1XN“PRINTF“6、TAN_1XN“PRINTF“N“PRINTF“请选择您要完成的运算N“SCANF“D“,SWITCHNCASE1SINXBREAK/调用三角函数CASE2COSXBREAKCASE3TANXBREAKCASE4ARCSINXBREAK/调用反三角函数CASE5ARCCOSXBREAKCASE6ARCTANXBREAKDEFAULTPRINTF“请输入正确的操作序号N“BREAKPRINTF“继续三角函数运算运算请按1,返回上一级菜单请按2N“SCANF“D“,WHILEM2VOIDZIRAN/定义自然对数运算函数DOUBLEX,YPRINTF“请输入一个大于0的数N“SCANF“LF“,YLOGXPRINTF“LN0F2FN“,X,YVOIDCHANGYONG/定义常用对数运算函数DOUBLEX,YPRINTF“请输入一个大于0的数N“SCANF“LF“,YLOG10XPRINTF“LG0F2FN“,X,YVOIDSTART3INTN,MDO/循环显示对数运算二级菜单PRINTF“对数运算N“PRINTF“1、自然对数N“PRINTF“2、常用对数N“PRINTF“N“PRINTF“请选择您要完成的运算N“SCANF“D“,SWITCHNCASE1ZIRANBREAK/调用函数CASE2CHANGYONGBREAKDEFAULTPRINTF“请输入正确的操作序号N“BREAKPRINTF“继续对数运算请按1,返回上一级菜单请按2N“SCANF“D“,WHILEM2/判断是否循环显示二级菜单VOIDEX/定义自然常数的幂运算函数DOUBLEX,YPRINTF“请输入X的值N“SCANF“LF“,YEXPXPRINTF“E的0F次幂结果为2FN“,X,YVOIDKAIX/开平方根运算DOUBLEX,YPRINTF“请输入X0的值N“SCANF“LF“,YSQRTXPRINTF“0F开平方根结果为2FN“,X,Y/输出算术平方根VOIDXYMI/自定义底数的幂运算DOUBLEX,Y,RPRINTF“请输入X,Y的值N“SCANF“LFLF“,RPOWX,YPRINTF“0F的0F次方结果为2FN“,X,Y,RVOIDSTART4/其他运算二级菜单INTN,MDOPRINTF“其他运算N“PRINTF“1、E的X次幂N“PRINTF“2、X开平方根N“PRINTF“3、X的Y次幂N“PRINTF“N“PRINTF“请选择您要完成的运算N“SCANF“D“,SWITCHNCASE1EXBREAK/调用函数CASE2KAIXBREAKCASE3XYMIBREAKDEFAULTPRINTF“请输入正确的操作序号N“BREAKPRINTF“继续其他运算请按1,返回上一级菜单请按2N“SCANF“D“,WHILEM2/判断循环VOIDMAIN/主函数INTNDOSHOWMENU/显示一级菜单函数PRINTF“请输入您要完成的操作N“SCANF“D“,SWITCHN/用户选择要操作的运算CASE1START1BREAK/分别调用相应函数CASE2START2BREAKCASE3START3BREAKCASE4START4BREAKCASE5BREAKDEFAULTPRINTF“请输入正确的操作序号N“BREAKWHILEN5PRINTF“谢谢使用N“/结束程序34测试1、测试用例运行程序,根据菜单提示选择1进行四则运算,再选择1加法运算,输入45,输出459;选择2返回上一级菜单,选择3对数运算,选择2常用对数,输入10,输出LG101;选择2返回上一级菜单,选择5退出程序。(如图32,33所示)2、测试结果(1)执行一次四则运算图8简单计算器测试图1(2)执行一次对数运算图9简单计算器测试图23、测试结果分析在多次测试中,发现选择相应操作时无法实现正常菜单的循环输出提示,检查发现,执行函数调用错误。在完成运算输出结果时,因为数据定义为FLOAT型,要用LF获取输入的数据,一般输出结果数字很长,要通过保留一定的小数位数保持良好的显示效果。4宿舍信息查询系统41设计目标设计程序实现学生宿舍的信息查询,具体要求如下1)用二进制数据文件存放学生的宿舍信息2)每个房间最多住4个人3)宿舍信息的添加根据输入的宿舍信息(楼号、房间号、实际入住人数、入住学生姓名),添加该宿舍的信息4)宿舍信息的显示根据楼号和房间号,查询并显示该宿舍的信息5)宿舍信息的查询根据楼号和房间号,查询并显示该宿舍楼的实际入住人数6)宿舍信息的查询根据楼号,查询并显示该宿舍楼中尚有空床位的宿舍信息7)系统以菜单方式工作42课题分析与设计1、课题分析宿舍查询系统主要设计结构体和二进制文件的读写。首先要写一个菜单函数,在主函数中根据各个模块的功能对相应函数进行调用。2、详细设计首先设计一个菜单函数,根据各个功能模块完成对主调函数的调用,在函数中涉及二进制文件的读写。最后主函数,读取用户的选择,并完成相应提示和操作。菜单函数VOIDSHOWMENUPRINTF“欢迎使用宿舍查询系统N“PRINTF“1、添加宿舍信息N“PRINTF“2、显示所有宿舍信息N“PRINTF“3、查询某宿舍信息N“PRINTF“4、查询某宿舍楼入住信息N“PRINTF“5、查询某宿舍楼有空床位宿舍信息N“PRINTF“6、退出系统N“PRINTF“N“程序设计中要定义一个存储宿舍信息的结构体STRUCTSUSHE/声明一个结构体INTLOUHAOINTROOMINTNUM/实际入住人数CHARNAME410最后完成对应功能函数的设计,在被调用函数中,定义指针,打开文件,然后读写文件,关闭文件。注意文件打开失败的提示FILEFPFPFOPEN“D学生宿舍信息DAT“,“AB“IFFPNULLPRINTF“文件打开失败N“EXIT0在主函数中调用函数VOIDMAININTNDOSHOWMENUPRINTF“请选择您需要完成的操作N“SCANF“D“,SWITCHNCASE1START1BREAKCASE2START2BREAKCASE3START3BREAKCASE4START4BREAKCASE5START5BREAKCASE6BREAKDEFAULTPRINTF“请输入正确的操作序号N“WHILEN63、程序流程(如图8)图10宿舍查询系统算法流程图43程序清单INCLUDEVOIDSHOWMENU/菜单函数PRINTF“欢迎使用宿舍查询系统N“PRINTF“1、添加宿舍信息N“PRINTF“2、显示所有宿舍信息N“PRINTF“3、查询某宿舍信息N“PRINTF“4、查询某宿舍楼入住人数N“PRINTF“5、查询某宿舍楼有空床位的宿舍信息N“PRINTF“6、退出系统N“PRINTF“N“STRUCTSUSHE/声明一个存储宿舍信息的结构体INTLOUHAOINTROOMINTNUM/实际入住人数CHARNAME410VOIDSTART1/添加宿舍信息函数INTNSTRUCTSUSHESS/SS为SUSHE结构体数据FILEFPFPFOPEN“D学生宿舍信息DAT“,“AB“IFFPNULLPRINTF“文件打开失败N“EXIT0DOINTJ0PRINTF“请输入您要添加的宿舍信息楼号、房间号、实际入住人数N“SCANF“DDD“,/读取一条信息FORJ0JSSNUMJPRINTF“输入D号床学生姓名N“,J1SCANF“S“,SSNAMEJFWRITEREWINDSTDIN/清空键盘缓冲区PRINTF“继续添加请按1,完成添加请按2N“SCANF“D“,WHILEN2FCLOSEFPVOIDSTART2/显示所有宿舍信息函数FILEFPINTJSTRUCTSUSHESSFPFOPEN“D学生宿舍信息DAT“,“RB“/以RB方式打开文件IFFPNULLPRINTF“打开文件失败N“EXIT0PRINTF“所有宿舍信息N“FREAD/读取一条宿舍信息,存入结构体WHILEFEOFFP/判断是否结束PRINTF“楼号D房间号D实际入住人数DN“,SSLOUHAO,SSROOM,SSNUMPRINTF“学生姓名“FORJ0JSSNUMJPRINTF“S“,SSNAMEJ/输出入住学生姓名PRINTF“N“FREAD/读取下一条信息FCLOSEFPVOIDSTART3/查询某宿舍信息函数FILEFPINTM,N,JSTRUCTSUSHESSFPFOPEN“D学生宿舍信息DAT“,“RB“/打开宿舍文件,打开方式为RBIFFPNULLPRINTF“文件打开失败N“EXIT0PRINTF“请输入你想要查询的宿舍的楼号与房间号N“SCANF“DD“,FREAD/先读一条宿舍信息,保存到结构体变量SS中WHILEFEOFFP/判断文件是否结束IFMSSLOUHAOPRINTF“学生姓名“FORJ0JSSNUMJ/输出宿舍的每个人的姓名PRINTF“S“,SSNAMEJFREAD/继续读下一条宿舍信息FCLOSEFPPRINTF“N“VOIDSTART4/查询某宿舍楼信息函数FILEFPINTMINTSUM0STRUCTSUSHESSFPFOPEN“D学生宿舍信息DAT“,“RB“/打开保存宿舍文件,打开方式为RBIFFPNULLPRINTF“打开文件失败N“EXIT0REWINDSTDIN/清空缓存PRINTF“请输入您想要查询的宿舍楼号N“SCANF“D“,FREAD/先读一条宿舍信息,保存到结构体变量SS中WHILEFEOFFP/判断文件是否结束IFMSSLOUHAOSUMSUMSSNUMFREADPRINTF“D号楼总计入住人数为DN“,M,SUMFCLOSEFPVOIDSTART5/查询某宿舍楼有空床位的宿舍信息FILEFPINTMSTRUCTSUSHESSFPFOPEN“D学生宿舍信息DAT“,“RB“/打开文件,打开方式为RBIFFPNULLPRINTF“打开文件失败N“EXIT0REWINDSTDINPRINTF“请输入您要查询的的宿舍楼号N“SCANF“D“,PRINTF“D号楼有空床位的宿舍N“,MFREAD/先读一条宿舍信息,保存到结构体变量SS中WHILEFEOFFP/判断文件是否结束IFMSSLOUHAOFREAD/继续读下一条宿舍信息FCLOSEFPVOIDMAININTNDOSHOWMENUPRINTF“请选择您需要完成的操作N“SCANF“D“,SWITCHNCASE1START1BREAKCASE2START2BREAKCASE3START3BREAKCASE4START4BREAKCASE5START5BREAKCASE6BREAKDEFAULTPRINTF“请输入正确的操作序号N“WHILEN644测试1、测试用例运行程序,首先选择功能1,添

温馨提示

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

评论

0/150

提交评论