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

下载本文档

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

文档简介

1、.C语言程序设计课程设计成果报告学生学号: 学生姓名: 学 院: 理学院 专业班级 信息与计算科学 专业课程: C语言程序设计 指导教师: 课程设计报告书课程设计目的:学习和掌握C程序设计方法,培养抽象思维、逻辑思维的能力和良好的程序设计风格 课程设计时间: 课程设计地点: 课程设计单位: 计算机学院 课程设计指导教师评分表课程设计题目1、猜数字小游戏2、显示月历3、简单计算器4、宿舍查询系统本组组长本组成员本人分工第1题分工:程序设计编写第2题分工:主函数和判断星期几函数编写第3题分工:主函数、四则运算、其他运算编写第4题分工:主函数,查询,文件读写的编写评分项目及分值要素成绩评定项 目最高

2、分评 分 要 素成 绩1学习态度20上机出勤及端正的学习态度、认真刻苦程度,工作量饱满程度等2软件设计质量30采用的算法、设计方案,设计结果,界面友好等方面进行综合评定3答辩过程20能简明扼要地阐述设计的主要内容,能准确流利地回答各种问题4设计报告书写10内容按要求步骤书写,条理清晰,表述清楚、措词得当5实际动手能力20熟练使用开发工具,能够迅速准确的进行调试、纠错和运行;组长全面负责,承担复杂的模块设计分值就高总 成 绩等 级评语指导教师: 职称:_*;目 录1 猜数游戏11.1 设计目标11.2 课题分析与设计11.3 程序清单31.4 测试42 显示月历62.1 设计目标62.2 课题分

3、析与设计62.3 程序清单82.4 测试93 简单计算器113.1 设计目标113.2 课题分析与设计113.3 程序清单143.4 测试204 宿舍查询系统214.1 设计目标214.2 课题分析与设计214.3 程序清单244.4 测试285总结31 c语言程序设计 1 猜数游戏1.1 设计目标设计一个猜数字小游戏,计算机随机在1到100随机产生一个数,请才,如果猜对了提示正确信息;否则告诉所猜的数是大还是小,同时提示下一次猜数的范围,知道猜对结束,最后给出游戏者所猜测的次数。要求,程序以菜单方式工作。1.2 课题分析与设计1、课题分析编写该小游戏,主要分主函数和被调用函数,被调用函数包括

4、一个菜单函数和一个执行函数,执行函数中涉及调用随机数,循环体的设计以及对循环次数的计数。该题中所有数据类型均为整型。2、详细设计头文件:#include<stdio.h>#include<stdlib.h>#include<stdio.h>主函数设计:void main()/主函数int n;doshowmenu();printf("请选择要完成的操作n");scanf("%d",&n); switch(n)/switch从菜单界面选择操作序号 case 1:start();break;/调用执行函数 case

5、 2:break; default:printf("请输入正确的序号");break; while(n!=2); printf("谢谢使用本系统,下次再见!");确定整个程序的主体框架,多次猜数do while循环体的实现,注意循环条件,列出所需调用的函数,注意头文件的书写。接着分别编写所需的菜单函数showmenu()和执行函数start()菜单函数主要用printf语句输出游戏的用户操作界面,注意换行。执行函数主要是获取玩家输入的数字和系统产生的随机数进行比较判断,涉及随机数函数调用,多次循环用do while判断给出猜数范围,并用参数i记录循环次数

6、。3、程序流程猜数游戏设计流程(如图1) 图1 猜数游戏算法流程图1.3程序清单#include<stdio.h>#include<stdlib.h>#include<stdio.h>void showmenu()/菜单函数printf("欢迎使用猜数游戏n");printf("1.开始游戏n");printf("2.退出系统n");printf("n");void start()/执行函数int m,n,x=1,y=100,i=0;/i计数,赋初值0,x,y用于提示范围prin

7、tf("1-100范围内猜数游戏开始!n");printf("请输入你猜的数字:n");srand(time(NULL);/设置随机种子m=rand()%100+1;/生成1-100的一个随机数do/循环体,判断所猜数与随机数的大小关系scanf("%d",&n);if(m>n)x=n+1;printf("你猜的数太小了,请继续猜,再输入一个数吧%d-%dn",x,y);else if(m<n)y=n-1;printf("你猜的数太大了,请继续猜,再输入一个数吧%d-%dn"

8、,x,y);i+;while(n!=m);printf("恭喜你,猜对了!n");printf("你共猜了%d次!n",i);/void main()/主函数int n;doshowmenu();printf("请选择要完成的操作:n");scanf("%d",&n); switch(n)/switch从菜单界面选择操作序号 case 1:start();break;/调用执行函数 case 2:break; default:printf("请输入正确的序号");break; while

9、(n!=2); printf("谢谢使用本系统,下次再见!");1.4 测试1、测试用例执行程序,选择1开始,第一次猜56,太大;第二次猜34,太大;第三次猜28,太大;第四次猜20,太小;第五次猜26,太大;第六次猜23,太小;第七次猜24,正确。一共猜了七次,输出正确提示及猜测次数。(测试结果如图1-2,1-3.)2、测试结果(1)运行程序图2 猜数游戏测试图(2)开始游戏图3 猜数游戏运行图3、测试结果分析输入正确的数字操作序号,系统提示游戏开始,给定范围,多次执行循环,最终猜对正确值,给出猜测次数。在起先测试过程中,会遇到猜对以后,仍出现太大的提示,提示给出猜对的提

10、示,检查发现实在if else语句中的else if语句下省略m<n判断,所以即使猜正确了,也会出现太大的提示。312 显示月历2.1 设计目标设计一个程序实现月历的显示,要求:1)输入年月信息,在屏幕上输出该月的日历;2)输出日历时,以月份和星期做表头;3)系统以菜单方式工作。2.2 课题分析与设计1、课题分析该题涉及循环和格式化输出。主要难点是判断某年是否为闰年,某月有多少天,以及该月第一天星期几的判断。由起始年份1900年1月1日,星期一,sumday初值赋1,计算到某年某月经历的天数,从而由sumday%7判断星期几。2、详细设计主函数设计,给出执行菜单:void main()/

11、主函数 int n;do showmenu();/显示菜单函数printf("请输入您要完成的操作:n");scanf("%d",&n);switch(n)/判断执行操作序号case 1:start();break;case 2:break;default:printf("请输入正确的操作序号!n");break;while(n!=2); printf("谢谢使用本系统,下次再见!n");/结束根据sumday值计算星期几:int month(y,m)/定义月份函数,输出该月的天数int mon12=31,

12、28,31,30,31,30,31,31,30,31,30,31; if(y%4=0&&(y%100)!=0|y%400=0)&&m=2)return 29;/闰年二月29天else return monm-1;/返回值为该月的实际天数int sum(y,m)/计算从1900.1.1到某年某月经历的天数int s,sumday,i,j,count=0;s=y-1900;for(i=1900;i<y;i+) if(i%4=0&&(i%100)!=0|i%400=0) count+;/count闰年数sumday=365*(s-count)+3

13、66*count+1;for(j=1;j<m;j+)sumday+=month(y,j);return sumday;通过主函数下对菜单函数和执行函数的调用,格式化输出月份信息,其中最重要的也是比较麻烦的是确定该月第一天是星期几,该月一共有多少天的判断。3、程序流程 (如图4) 图4 月历显示算法流程图2.3 程序清单#include<stdio.h>int month(y,m)/定义月份函数,输出该月的天数int mon12=31,28,31,30,31,30,31,31,30,31,30,31; if(y%4=0&&(y%100)!=0|y%400=0)&

14、amp;&m=2)return 29;/闰年二月29天else return monm-1;/返回值为该月的实际天数int sum(y,m)/计算从1900.1.1到某年某月经历的天数int s,sumday,i,j,count=0;s=y-1900;for(i=1900;i<y;i+) if(i%4=0&&(i%100)!=0|i%400=0) count+;/count记录闰年数sumday=365*(s-count)+366*count+1;for(j=1;j<m;j+)sumday+=month(y,j);return sumday;int show

15、menu()/菜单函数printf("欢迎使用月历查询系统n");printf("1、开始查询.n");printf("2、退出系统.n");printf("n");int start(y,m)int t,i;printf("请输入您要查询的年份和月份:n"); scanf("%d%d",&y,&m);printf("%d年%d月n",y,m);t=sum(y,m)%7;printf(" 星期一 星期二 星期三 星期四 星期五 星

16、期六 星期日n");/格式化输出 for(i=1;i<month(y,m)+t;i+)/循环的次数为该月的天数加上第一天的星期数减1if(i-t<0)printf(" ");/第一天的星期前显示为空elseprintf(" %3d ",i-t+1);/格式化输出保证日期和星期对齐if(i%7=0)printf("n");/每逢星期日换行printf("n");void main()/主函数 int n;do showmenu();/显示菜单函数printf("请输入您要完成的操作:n

17、");scanf("%d",&n);switch(n)/判断执行操作序号case 1:start();break;case 2:break;default:printf("请输入正确的操作序号!n");break;while(n!=2); printf("谢谢使用本系统,下次再见!n");/结束2.4 测试1、测试用例运行程序,输入1,开始,输入2016 6,显示2016年6月的日历。循环显示菜单,输入2,退出系统。通过反复多次输入年份月份的测试,调整输出格式,以保证输出函数格式对齐、美观。程序能够达到预期的效果。2

18、、测试结果(1)运行程序图5 显示月历测试图(2)开始查询图6 月历输出图3、测试结果分析在测试过程中发现日期没有跟星期对齐,通过调整输出格式,调整对齐。在选择判断的时候,参量定义位置不当,影响循环显示的效果。对do while和for循环的灵活使用,能够快速简便地解决问题。细节方面值得留意,一不小心,就会使整个程序无法运行。3 简单计算器3.1 设计目标设计程序实现一个简单计算器,要求:1)能完成任意两个数的四则运算(加、减、乘、除);2)能完成三角函数运算(sin(x)、cos(x)、tan(x)、sin_1(x)、cos_1(x)、tan_1(x));3)能完成对数运算(lnx、log1

19、0(x));4)其他运算(ex、平方根计算、xy);5)系统以菜单方式工作,每个功能的运算用二级菜单实现,例如:加、减、乘、除的选择需用二级菜单提示。3.2 课题分析与设计1、课题分析该题主要设计循环和数学函数的调用。首先写一个主菜单,通过主菜单引出二级菜单,二级菜单下分别调用各个子函数运算,循环选择是否继续该菜单下的运算。最后通过主函数调用菜单和执行函数。2、详细设计首先设计主函数体,完成主体设计思路:void main()/主函数int n;doshowmenu();/显示一级菜单函数printf("请输入您要完成的操作:n");scanf("%d"

20、,&n);switch(n)/用户选择要操作的运算case 1: start1();break;/分别调用相应函数case 2: start2();break;case 3: start3();break;case 4: start4();break;case 5: break;default:printf("请输入正确的操作序号!n");break;while(n!=5);printf("谢谢使用!n");/结束程序showmenu()为主菜单函数,然后再分别设计二级菜单和相应函数:void start1()/四则运算的二级菜单 int n,m

21、;doprintf("四则运算n");printf("1、加法运算.n");printf("2、减法运算.n");printf("3、乘法运算.n");printf("4、除法运算.n");printf("n");printf("请选择您要完成的运算:n");scanf("%d",&n);switch(n) case 1:jia();break;/调用加法函数case 2:jian();break;/调用减法函数case 3:c

22、heng();break;/调用乘法函数case 4:chu();break;/调用除法函数default:printf("请输入正确的操作序号!n");break;printf("继续四则运算请按1,返回上一级菜单请按2.n");/选择是否继续执行四则运算scanf("%d",&m);while(m!=2);调用加减乘除运算函数:float jia()/定义加法运算函数float x,y;printf("请输入两个数:n");scanf("%f%f",&x,&y);pr

23、intf("%g+%g=%gn",x,y,x+y);float jian()/定义减法运算函数float x,y;printf("请输入两个数:n");scanf("%f%f",&x,&y);printf("%g-%g=%gn",x,y,x-y);float cheng()/定义乘法运算函数float x,y;printf("请输入两个数:n");scanf("%f%f",&x,&y);printf("%g*%g=%gn",

24、x,y,x*y);float chu()/定义除法运算函数 float x,y; printf("请输入两个数:n");scanf("%f%f",&x,&y);printf("%g/%g=%gn",x,y,x/y);然后再完成对应功能函数的定义,并在主函数下完成调用。此处不一一赘述。3、程序流程 (如图) 图7 简单计算器算法流程图3.3 程序清单#include<stdio.h>#include<math.h>#define pai 3.1415926/规定圆周率的值,以便完成角度制和弧度制的

25、转换void showmenu()/一级菜单函数printf("*欢迎使用简单计算器*n");printf("1、四则运算.n");printf("2、三角函数运算.n");printf("3、对数运算.n");printf("4、其他运算.n");printf("5、退出系统.n");printf("*n");float jia()/定义加法运算函数float x,y;printf("请输入两个数:n");scanf("%f

26、%f",&x,&y);printf("%g+%g=%gn",x,y,x+y);float jian()/定义减法运算函数float x,y;printf("请输入两个数:n");scanf("%f%f",&x,&y);printf("%g-%g=%gn",x,y,x-y);float cheng()/定义乘法运算函数float x,y;printf("请输入两个数:n");scanf("%f%f",&x,&y);pri

27、ntf("%g*%g=%gn",x,y,x*y);float chu()/定义除法运算函数 float x,y; printf("请输入两个数:n");scanf("%f%f",&x,&y);printf("%g/%g=%gn",x,y,x/y);void start1()/四则运算的二级菜单 int n,m;doprintf("四则运算n");printf("1、加法运算.n");printf("2、减法运算.n");printf(&qu

28、ot;3、乘法运算.n");printf("4、除法运算.n");printf("n");printf("请选择您要完成的运算:n");scanf("%d",&n);switch(n) case 1:jia();break;/调用加法函数case 2:jian();break;/调用减法函数case 3:cheng();break;/调用乘法函数case 4:chu();break;/调用除法函数default:printf("请输入正确的操作序号!n");break;prin

29、tf("继续四则运算请按1,返回上一级菜单请按2.n");/选择是否继续执行四则运算scanf("%d",&m);while(m!=2);void sinx()/定义正弦运算函数double x,y;printf("请输入一个角度:n");scanf("%lf",&x);y=sin(x*pai/180);/角度制转化为弧度制求余弦值printf("sin(%.0f)=%.2f",x,y);void cosx()/定义余弦运算函数double x,y;printf("请输

30、入一个角度:n");scanf("%lf",&x);y=cos(x*pai/180);printf("cos(%.0f)=%.2fn",x,y);void tanx()/定义正切运算函数double x,y;printf("请输入一个角度:n");scanf("%lf",&x);y=tan(x*pai/180);printf("tan(%.0f)=%.2fn",x,y);void arcsinx()/定义反正弦运算函数double x,y;printf("请在

31、-11之间输入一个数:n");scanf("%lf",&x);y=asin(x);printf("sin_1(%.0f)=%.2fn",x,y);void arccosx()/定义反余弦运算函数double x,y;printf("请在-11之间输入一个数:n");scanf("%lf",&x);y=acos(x);printf("cos_1(%.0f)=%.2fn",x,y);void arctanx()/定义反正切运算函数double x,y;printf(&quo

32、t;请输入一个数:n");scanf("%lf",&x);y=atan(x*pai/180);printf("tan_1(%.0f)=%.2fn",x,y);void start2()int n,m;do/循环显示三角函数的二级菜单printf("三角函数n");printf("1、sin(x).n");printf("2、cos(x).n");printf("3、tan(x).n");printf("4、sin_1(x).n");pri

33、ntf("5、cos_1(x).n");printf("6、tan_1(x).n");printf("n"); printf("请选择您要完成的运算:n");scanf("%d",&n);switch(n) case 1:sinx();break;/调用三角函数case 2:cosx();break;case 3:tanx();break;case 4:arcsinx();break;/调用反三角函数case 5:arccosx();break;case 6:arctanx();brea

34、k;default:printf("请输入正确的操作序号!n");break;printf("继续三角函数运算运算请按1,返回上一级菜单请按2.n");scanf("%d",&m);while(m!=2);void ziran()/定义自然对数运算函数 double x,y;printf("请输入一个大于0的数:n");scanf("%lf",&x);y=log(x);printf("ln(%.0f)=%.2fn",x,y);void changyong()/

35、定义常用对数运算函数 double x,y;printf("请输入一个大于0的数:n");scanf("%lf",&x);y=log10(x);printf("lg(%.0f)=%.2fn",x,y);void start3() int n,m;do/循环显示对数运算二级菜单printf("对数运算n");printf("1、自然对数.n");printf("2、常用对数.n");printf("n");printf("请选择您要完成的运

36、算:n");scanf("%d",&n);switch(n)case 1:ziran();break;/调用函数 case 2:changyong();break;default:printf("请输入正确的操作序号!n");break;printf("继续对数运算请按1,返回上一级菜单请按2.n");scanf("%d",&m);while(m!=2);/判断是否循环显示二级菜单void ex()/定义自然常数的幂运算函数double x,y;printf("请输入x的值:n&

37、quot;);scanf("%lf",&x);y=exp(x);printf("e的%.0f次幂结果为:%.2fn",x,y);void kaix()/开平方根运算 double x,y;printf("请输入x>=0的值:n");scanf("%lf",&x);y=sqrt(x);printf("%.0f开平方根结果为:%.2fn",x,y);/输出算术平方根void xymi()/自定义底数的幂运算 double x,y,r;printf("请输入x,y的值:

38、n");scanf("%lf%lf",&x,&y);r=pow(x,y);printf("%.0f的%.0f次方结果为:%.2fn",x,y,r);void start4()/其他运算-二级菜单 int n,m;doprintf("其他运算n");printf("1、e的x次幂.n");printf("2、x开平方根.n");printf("3、x的y次幂.n");printf("n");printf("请选择您要完成的

39、运算:n");scanf("%d",&n);switch(n)case 1:ex();break;/调用函数 case 2:kaix();break;case 3:xymi();break;default:printf("请输入正确的操作序号!n");break;printf("继续其他运算请按1,返回上一级菜单请按2.n");scanf("%d",&m);while(m!=2);/判断循环void main()/主函数int n;doshowmenu();/显示一级菜单函数printf(

40、"请输入您要完成的操作:n");scanf("%d",&n);switch(n)/用户选择要操作的运算case 1: start1();break;/分别调用相应函数case 2: start2();break;case 3: start3();break;case 4: start4();break;case 5: break;default:printf("请输入正确的操作序号!n");break;while(n!=5);printf("谢谢使用!n");/结束程序3.4 测试1、测试用例运行程序,根据

41、菜单提示选择1进行四则运算,再选择1加法运算,输入4 5,输出4+5=9;选择2返回上一级菜单,选择3对数运算,选择2常用对数,输入10,输出lg10=1;选择2返回上一级菜单,选择5退出程序。(如图3-2,3-3所示)2、测试结果(1)执行一次四则运算 图8 简单计算器测试图1(2)执行一次对数运算 图9 简单计算器测试图23、测试结果分析在多次测试中,发现选择相应操作时无法实现正常菜单的循环输出提示,检查发现,执行函数调用错误。在完成运算输出结果时,因为数据定义为float型,要用%lf获取输入的数据,一般输出结果数字很长,要通过保留一定的小数位数保持良好的显示效果。4 宿舍信息查询系统4

42、.1 设计目标设计程序实现学生宿舍的信息查询,具体要求如下:1) 用二进制数据文件存放学生的宿舍信息2) 每个房间最多住4个人3) 宿舍信息的添加:根据输入的宿舍信息(楼号、房间号、实际入住人数、入住学生姓名),添加该宿舍的信息4) 宿舍信息的显示:根据楼号和房间号,查询并显示该宿舍的信息5) 宿舍信息的查询:根据楼号和房间号,查询并显示该宿舍楼的实际入住人数6) 宿舍信息的查询:根据楼号,查询并显示该宿舍楼中尚有空床位的宿舍信息7) 系统以菜单方式工作4.2 课题分析与设计1、课题分析宿舍查询系统主要设计结构体和二进制文件的读写。首先要写一个菜单函数,在主函数中根据各个模块的功能对相应函数进

43、行调用。2、详细设计首先设计一个菜单函数,根据各个功能模块完成对主调函数的调用,在函数中涉及二进制文件的读写。最后主函数,读取用户的选择,并完成相应提示和操作。菜单函数:void showmenu()printf("欢迎使用宿舍查询系统n");printf("1、添加宿舍信息.n");printf("2、显示所有宿舍信息.n");printf("3、查询某宿舍信息.n");printf("4、查询某宿舍楼入住信息.n");printf("5、查询某宿舍楼有空床位宿舍信息.n"

44、);printf("6、退出系统.n");printf("n");程序设计中要定义一个存储宿舍信息的结构体:struct sushe/声明一个结构体int louhao;int room;int num;/实际入住人数char name410;最后完成对应功能函数的设计,在被调用函数中,定义指针,打开文件,然后读写文件,关闭文件。注意文件打开失败的提示!FILE *fp;fp=fopen("d:学生宿舍信息.dat","ab+");if(fp=NULL)printf("文件打开失败!n");ex

45、it(0);在主函数中调用函数:void main()int n;doshowmenu();printf("请选择您需要完成的操作:n");scanf("%d",&n);switch(n) case 1:start1();break; case 2:start2();break; case 3:start3();break; case 4:start4();break; case 5:start5();break; case 6:break; default: printf("请输入正确的操作序号!n");while(n!=6

46、);3、程序流程(如图8) 图10 宿舍查询系统算法流程图4.3程序清单#include<stdio.h>void showmenu()/菜单函数printf("欢迎使用宿舍查询系统n");printf("1、添加宿舍信息.n");printf("2、显示所有宿舍信息.n");printf("3、查询某宿舍信息.n");printf("4、查询某宿舍楼入住人数.n");printf("5、查询某宿舍楼有空床位的宿舍信息.n");printf("6、退出系

47、统.n");printf("n");struct sushe/声明一个存储宿舍信息的结构体int louhao;int room;int num;/实际入住人数char name410;void start1()/添加宿舍信息函数 int n;struct sushe ss;/ss为sushe结构体数据FILE *fp;fp=fopen("d:学生宿舍信息.dat","ab+");if(fp=NULL)printf("文件打开失败!n");exit(0);doint j=0;printf("请输

48、入您要添加的宿舍信息(楼号、房间号、实际入住人数):n");scanf("%d%d%d",&ss.louhao,&ss.room,&ss.num);/读取一条信息for(j=0;j<ss.num;j+)printf("输入%d号床学生姓名:n",j+1);scanf("%s",j);fwrite(&ss,sizeof(struct sushe),1,fp);rewind(stdin);/清空键盘缓冲区printf("继续添加请按1,完成添加请按2n");

49、scanf("%d",&n);while(n!=2); fclose(fp);void start2()/显示所有宿舍信息函数FILE *fp;int j;struct sushe ss;fp=fopen("d:学生宿舍信息.dat","rb");/以rb方式打开文件if(fp=NULL) printf("打开文件失败!n"); exit(0); printf("所有宿舍信息:n"); fread(&ss,sizeof(struct sushe),1,fp);/读取一条宿舍信息,

50、存入结构体 while(!feof(fp)/判断是否结束 printf("楼号:%d 房间号:%d 实际入住人数:%dn",ss.louhao,ss.room,ss.num); printf("学生姓名:"); for(j=0;j<ss.num;j+) printf("%s ",j);/输出入住学生姓名 printf("n"); fread(&ss,sizeof(struct sushe),1,fp);/读取下一条信息 fclose(fp);void start3()/查询某宿舍信息函数

51、 FILE *fp;int m,n,j;struct sushe ss;fp=fopen("d:学生宿舍信息.dat","rb"); /打开宿舍文件,打开方式为rbif(fp=NULL)printf("文件打开失败!n");exit(0);printf("请输入你想要查询的宿舍的楼号与房间号:n");scanf("%d%d",&m,&n);fread(&ss,sizeof(struct sushe),1,fp); /先读一条宿舍信息,保存到结构体变量ss中while(!f

52、eof(fp) /判断文件是否结束if(m=ss.louhao&&n=ss.room)/比对是否为所需查询的宿舍printf("%d实际入住人数为:%dn",n,ss.num);printf("学生姓名:");for(j=0;j<ss.num;j+)/输出宿舍的每个人的姓名printf("%s ",j);fread(&ss,sizeof(struct sushe),1,fp); /继续读下一条宿舍信息fclose(fp);printf("n");void start4()

53、/查询某宿舍楼信息函数FILE *fp;int m;int sum=0;struct sushe ss;fp=fopen("d:学生宿舍信息.dat","rb"); /打开保存宿舍文件,打开方式为rbif(fp=NULL)printf("打开文件失败!n");exit(0);rewind(stdin);/清空缓存printf("请输入您想要查询的宿舍楼号:n");scanf("%d",&m);fread(&ss,sizeof(struct sushe),1,fp); /先读一条宿舍信息,保存到结构体变量ss中while(!feof(fp)/判断文件是否结束if(m=ss.louhao)sum=sum+ss.num;fread(&ss,sizeof(struct

温馨提示

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

评论

0/150

提交评论