厦门理工c语言程序设计,厦门理工学院+C语言+课程设计

《厦门理工学院+C语言+课程设计》由会员分享,可在线阅读,更多相关《厦门理工学院+C语言+课程设计(21页珍藏版)》请在人人文库网上搜索。

1、C语言程序设计课程设计报告(2012 2013学年 第 1 学期)专 业: 班 级: 姓名学号: Debug 指导教师: 成 绩: 计算机科学与技术系2011 年1月10日目 录一、课程设计的目的与要求(含设计指标)2二、方案实现与调试22.1掷骰子游戏22.1.1 题目内容的描述 (含程序输入输出)22.1.2主要模块法描述的算22.1.3实验结果42.2汽车加油42.2.1题目内容的描述42.2.2主要模块的算法描述42.2.3实验结果62.3大优惠62.3.1题目内容的描述62.3.2主要模块的算法描述62.5.3实验结果72.4.1金币82.4.1题目内容的描述82.4.2主要模块的算。

2、法描述82.4.3实验结果92.5小型图书管理系统设计92.5.1题目内容的描述92.5.2系统功能说明92.5.3系统主要模块的算法描述92. 5.4实验结果9三、日志与总结11附录:源程序清单13一、课程设计的目的与要求(含设计指标)(参见课程设计要求)课程设计的目的是:1提高用程序设计解决实际的问题的能力。2通过提出算法,指定输入输出来设计一个解决方案。3用C语言合理地开发两个简洁有效的程序代码来实现设计。4测试程序是否工作满足设计指标并评价其效率。课程设计的要求是:学生应该认真完成课程设计的全过程,并以最终的结果来证明学生的能力,从而反映出学生的课程设计知识水平。二、方案实现与调试2.。

3、1掷骰子游戏2.1.1 题目内容的描述 (含程序输入输出)两人玩骰子,游戏规则如下:1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。2) 第一个人投出的数,第二个人投出的数将每人每次的分值累加计分3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。4) 结束条件:当双方都掷10次或经过5次后一方累计分数为另一方的两倍。最后显示双方分数并判定优胜者。2.1.2主要模块法描述的算 以程序流程图的方式给出:t1=t2&t1=6?t1=t2&t1!=6?t1t2?sco1=sco1+8; sco1=sco1+7投5次了吗?sc。

4、o1=2*sco2?|2*sco1=sco2sco1=sco1+t2sco1=sco1+t1结束YesYesYesNoNoNoyesNoNoYes开始产生16的随机数a1;a2;产生16的随机数t1;t2;a1=a2&a1=6?a1=a2&a1!=6?sco2+=8a1a2?so2+=7sco2+=a1sco2+=a2投10次了?Nosco1sco2?Yes输出sco1 win输出sco2winyesno简要的语言描述:1进行算法输出数值2执行条件判断输入结果3比较结果判断,胜利的一方2.1.3实验结果编辑过程中遇到的困难有:1思路清楚却因为自己的马虎常常编译不过。即使编译过了也常常只有部分满。

5、足条件2.。编译时缺乏耐心,使常常程序崩溃。2.2汽车加油2.2.1题目内容的描述一辆汽车加满油后可行驶n公里。旅途中有若干个加油站。设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少。输入:第一行有2 个正整数N和K(1 N?NoSum=sum+ai简要的语言描述:1按题目格式输入数据;2首先进行判断可行驶的路程是否足够汽车到达加油站;3如果不能到达,则需要加油,此处记录一次并循环;4得出结果;2.2.3实验结果本题实验思路清晰,用数学思路可以速度解出来2.3大优惠2.3.1题目内容的描述中国移动推出最新的手机资费优惠方案,按照这个方案Tom的手机每天消费1元,每消费K元就可以。

6、获赠1元,一开始Tom有M元,问最多可以用多少天?输入:K,M2.3.2主要模块的算法描述程序流程图M-;day+;(day-K)/K0)&day%K=0)?输入K,MM+M=0?输出dayyesYesNo开始开始No1想清楚数据间的关系2分析K与天数的关系,用数学关系给出。3当M值递减时,消费的钱数K是增加的,当消费钱到达获赠钱时M值加一。2.5.3实验结果本题不算是难题,这道题的突破点是当M值递减时,消费的钱数K是增加的,当消费钱到达获赠钱时M值加一。但编译时因为=和=没搞清楚编译不过去结果根据错误提示改对了。2.4.1金币2.4.1题目内容的描述国王用金币奖励他忠诚的侍从。第一天侍从工作。

7、结束后,国王奖励了他一个金币;接着的两天侍从工作中(第二天,第三天)的每一天,国王奖励了他两个金币;接着的三天侍从工作中(第四天,第五天,第六天)的每一天,国王奖励了他三个金币;接着的四天侍从工作中(第七天,第八天,第九天,第十天)的每一天,国王奖励了他四个金币。这种奖励的模式将是固定不变的,即在N天侍从工作中的每一天,国王将奖励他N个金币;接着的N+1天的侍从工作中的每一天,国王将奖励他N+1个金币。要求在给定的天数时,你的程序能够统计国王总共奖励了侍从多少金币。要求输入天数如:52.4.2主要模块的算法描述程序流程图开始x=1,num=0day-x=0?输入dayday=day-x;x+;。

8、num=num+x*xnum=num+day*x输出num结束YesNo1分析天数和金币的关系2可以用循环输计算要工作的天数和每天工作得多少金币3输出结果2.4.3实验结果输本题突破点是要用判断语句判断侍从工作的天数是否超出了可以增加一个金币的时候减去没有加一个金币的天数,再计算出总获得的金币数,再循环。这题编译没有遇到问题。但输入和运行后发现答案不对,因为总金币没有初始化为零。2.5小型图书管理系统设计2.5.1题目内容的描述小型图书管理系统设计 功能:实现某班级的图书信息管理,图书的基本信息包括书号、书名、作者、单价、数量和简介(50字内)等。 基本要求: 1设计简单的菜单,能够进行系统功。

9、能选择。 2实现信息的录入功能。3在已有信息的基础上添加新的记录。 4删除指定书号的记录。 5修改指定书号的记录 6实现信息的浏览功能 7按书号查询功能 8按单价排序功能2.5.2系统功能说明以系统功能模块结构图的方式给出简要的语言描述:1有信息的录入功能。2在已有信息的基础上添加新的记录。 3删除指定书号的记录。 4修改指定书号的记录 5实现信息的浏览功能 6按书号查询功能 7按单价排序功能2.5.3系统主要模块的算法描述 以程序流程图的方式给出 简要的语言描述:结构体:分割成几块分别对其定义,并实现功能;最后实现菜单,执行选择;2. 5.4实验结果记录程序执行的结果。调试过程中出现的问题:。

10、本题难度较大。我遇到的问题较多。花的处理时间比较长。但我的出了一个经验是:比较大的工程最好要分步完成,不然错误的地方很难找出。三、日志与总结设计日志与总结(注:指导教师评语和成绩所在表格另起一页)指导教师评 语课程设计成 绩指导教师签字年 月 日附录:源程序清单记录主要程序清单(文件名)。1掷骰子游戏#include#include#define N 10main()int i,t1,t2,a1,a2, score1=0,score2=0;srand(time(NULL);for(i=1;iscore2)printf(the first win);else if(score1=score2)p。

11、rintf(their score is same);else printf(the second win);3汽车加油:#includemain()int a300,N,K,i,sum=0,n=0; scanf(%d %d,&N,&K);for(i=0;iN) printf(No Solution);break;if(sumN) sum=0; sum=sum+ai; n+; if(i=K) printf(%dn,n);5大优惠: #includemain()int K,M,day=0; /*day表示用了多少天*/printf(输入两个数K和M,要求2=0)&day%K=0)M+;if(M=。

12、0)break;printf(%d,day);6金币:#includemain()int day,num=0,x=1;printf(请输入工作天数);scanf(%d,&day); /*输入工作的天数*/while(day-x)=0)num=num+x*x;day=day-x;x+;num=num+day*x;printf(%dn,num);图书馆管理:#include#include#includeint sum=0;struct bookint num;char name100;char person100;char about100;int p;int n; book1000=0;voi。

13、d newbook()int a;dosystem(cls);printf(n请输入图书内容:n);printf(书号:);scanf(%d,&a);booka-1.num=a;printf(书名:);scanf(%s,&booka-1.name);printf(作者:);scanf(%s,&booka-1.person);printf(简介:);scanf(%s,&booka-1.about);printf(单价:);scanf(%s, &booka-1.p); printf(数量:);scanf(%s,&booka-1.n);a+;printf(输入#退出);getchar();while。

14、(getchar()!=#);void find() int a,i;system(cls);printf(n请输入您要查找的书号:);scanf(%d,&a);for(i=0;ibooka+1.p)if(booka+1.num=0)break;temp=booka.num; booka.num=booka+1.num; booka+1.num=temp;temp=booka.p; booka.p=booka+1.p; booka+1.p=temp;temp=booka.n; booka.n=booka+1.n; booka+1.n=temp;strcpy(b,booka.name);strc。

15、py(booka.name,booka+1.name);strcpy(booka+1.name,b);strcpy(b,booka.person);strcpy(booka.person,booka+1.person);strcpy(booka+1.person,b);strcpy(b,booka.about);strcpy(booka.about,booka+1.about);strcpy(booka+1.about,b);for(a=1;a1000;a+)if(booka-1.num!=0) printf(书号:);printf (%d,booka-1.num);printf(书名:);p。

16、rintf (%s,booka-1.name);printf(作者:);printf (%s,booka-1.person);printf(简介:);printf (%s,booka-1.about);printf(单价:);printf (%s, &booka-1.p) ; printf(数量:);printf (%s,&booka-1.n);printf(n);getchar();return;void main()int n;loop:system(cls);printf(*n);printf(图书管理系统nn操作选单nn);printf(1 输入图书 2 查找图书n);printf(3 修改图书 4 删除旧书n);printf(5 浏览图书 6 单价排序n);printf(0 退出程序n);printf(*n);printf(n请输入选项:);scanf(%d,&n);switch(n)case 1:newbook();break;case 2:find();break;case 3:change();break;case 4:dele();break;case 5:look();break;case 6:sort();break;case 0:exit(0);break;getchar();goto loop。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值