专业课程设计文档_第1页
专业课程设计文档_第2页
专业课程设计文档_第3页
专业课程设计文档_第4页
专业课程设计文档_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

·《C语言基础》课程设计(一)基础要求题目要求:基础题共30题,任选其中20道题。提交试验汇报(可手写、可电子版打印)。【程序1】1

题目:任意输入三个整数,编程实现对这三个数由小到大进行排序,并将排序后结果显示在屏幕上。

1.程序分析:两个数一组使用if进行条件判定,假如逆序则使用中间变量对其进行交换。

2.程序源代码:【程序2】7

题目:猴子第一天摘下若干个桃子,立即吃了二分之一,还不过瘾,又多吃了一个。第二天早上又将第一天剩下桃子吃掉二分之一,有多吃了一个。以后天天早上全部吃了前一天剩下二分之一零一个。到第10天早上想在吃时,发觉只剩下一个桃子了。编写程序求猴子第一天共摘了多少个桃子。

1.程序分析:先找出变量间关系,即第二天桃子数加12倍等于第一天桃子数。利用循环,即求出桃子总数。

2.程序源代码:【程序3】3

题目:求100到200之间全部素数,打印输出。

1.程序分析:素数是大于1整数,除了能被本身和1整除外,不能被其它正整数整除。所以判定素数就是从2到根号i进行循环,判定这个数能否被i整除,若能整除则说明不是素数,转而判定下一个。

2.程序源代码:【程序4】

题目:编程实现十进制数转化为二进制数,即从键盘输入一个0到32767十进制数,输出其对应二进制数。

1.程序分析:十进制数转换为二进制数过程就是不停对2取余,取余后再除以二继续取余,最终将前面取得余数序列倒序进行输出,即是该数对应二进制数。其中,每次余数可放在一个整形数组中,方便进行倒序输出。

2.程序源代码:【程序5】

题目:一个球从100米高度自由落下,每次落地后反弹回原高度二分之一,再落下。编程求它在第十次落地时,共运动了多少米?第十次反弹多高?

1.程序分析:经典循环问题,设置两个变量分别统计小球反弹高度和目前运动距离,循环十次即得到结果。

2.程序源代码:【程序6】

题目:从键盘上输入一个表示年份整数,判定该年是否是闰年,输出结果显示在屏幕上。

1.程序分析:计算闰年方法用自然语言描述以下:假如某年能被4整除但不能被100整除,或概念能被400整除则该年为闰年。本题目关键是考虑if语句中逻辑表示式正确描述。

2.程序源代码:【程序7】

题目:水仙花数指一个三位数,其各位数字立方和等于该数本身,比如153=13+53+33。编程求出全部水仙花数。

1.程序分析:用穷举法对100到999之间数字进行数位拆分,然后经过一个if语句进行判定,将满足水仙花数条件数打印输出即可。

2.程序源代码:【程序8】11

题目:编程实现从键盘输入两个正整数,求它们最大条约数和最小公倍数并打印在屏幕上。

1.程序分析:用辗转相除法求出两数最大条约数,然后用两数乘积除以最大条约数即可得到两数最小公倍数。

2.程序源代码:【程序9】

题目:编程求全部满足abcd=(ab+cd)2四位数,立即四位数分为两段,使之相加求和后平方,结果等于本身。

1.程序分析:用穷举法对1000到9999全部四位数逐一分解为前后两个数字,再对其进行判定,看是否满足要求,若满足则打印输出,不然进行下次循环。

2.程序源代码:【程序10】

题目:用选择排序法对一组数据由小到大进行排序,数据分别为526、36、2、369、56、45、78、92、125、52。

1.程序分析:选择排序法是从待排序区间中经过比较,选出最小数存放在a[0]中(经过交换),再从剩下未排序9个数中再选出最小数存放于a[1]中,以这类推,经过9趟选择和交换则排序完成。要注意它和冒泡排序不一样,冒泡排序是每趟排序边比较边交换,而选择排序是一趟比较完成后仅交换一次。

2.程序源代码:【程序11】

题目:小明买橙子,每个橙子1.8元,小明第一天买1个柚子,第二天开始天天买前一天三倍,直到购置橙子个数为不超出100最大值,编程求小明天天平均花多少钱。

1.程序分析:利用循环控制最终一天不超出100个橙子,将天天花销及天数累加起来,求得平均值。

2.程序源代码:【程序12】

题目:变成求出一个整数任意次方最终三位数,即求x^y最终三位数,其中x和y从键盘输入。

1.程序分析:一个整数任意次方很可能产生越界情况,所以要考虑计算结果是否越界问题,要避免产生越界问题同时又不使程序结果产生误差。

2.程序源代码:【程序13】

题目:依据输入三角形三条边值,判定三角形类型(等边、等腰、直角、一般、非三角形)并输出。

1.程序分析:先依据两边之和是否大于第三条边来判定是否能够成三角形,若能组成三角形则深入依据边值判定是什么类型三角形。

2.程序源代码:【程序14】

题目:完全平方指用一个整数乘以自己比如1*1,2*2,3*3等,依这类推。若一个数能表示成某个整数平方形式,则称这个数为完全平方数。在全部三位整数100到999中查找符合以下条件整数在屏幕上输出:这个数既是完全平方数,又有两位数字相同,如121(11平方)、144(12平方)等。

1.程序分析:先利用循环判定一个100到999数是不是完全平方数,若是则深入分离各位数字,判定是否有两位相同。

2.程序源代码:【程序15】

题目:有一个六位数,它本身是一个整数平方,而且它第三位和高三位也分别是一个整数平方,如224625=4752,且225=152,625=252。求满足该条件全部六位数。1.程序分析:穷举法。利用循环对100000到999999之间全部数按条件进行试探。

2.程序源代码:【程序16】

题目:可逆素数是指将一个素数各位数字次序地倒过来组成反序数仍然是素数,按以上叙述求出全部四位素数。1.程序分析:定义一个函数用于判定参数是否是素数,对1000到9999之间数进行穷举,找出符合条件数并输出。

2.程序源代码:【程序17】

题目:已知某企业职员工资底薪是500元,职员销售额和分成计算方法以下:销售额≤ 没有分成<销售额≤5000 分成8%5000<销售额≤10000 分成10%销售额>10000 分成12%利用switch语句编写程序,实现输入职员销售额计算职员工资。

1.程序分析:先依据职员销售额计算出分成系数,利用switch语句依据系数计算出应发工资。

2.程序源代码:【程序18】

题目:打印出以下杨辉三角(要求打印10行)。11 11 2 11 3 3 11 4 6 4 1……

1.程序分析:想要打印杨辉三角,首先要找出图形中数字规律,即每行第一列和对角线数字均为1,其它数字为上一行同列数字和上一行前列数字之和。数据存放于二维数组,利用循环输出10行杨辉三角。

2.程序源代码:【程序19】题目:班里来了个新同学,很喜爱学数学。同学问她今年多大,她说:“我年纪平方是个三位数,立方是个四位数,四次方是个六位数;年纪三次方和四次方恰好用遍0、1、2、3、4、5、6、7、8、9这十个数字,那么大家猜猜我年纪多大?”1.程序分析:首先考虑年纪范围,因为17四次方是83521,小于六位,22三次方是10648,大于四位,所以年纪范围就确定出来了,即18至21。然后对18到21之间数字进行穷举,分别计算出它们三次方和四次方,并将结果四位数和六位数存于数组中,再对数组中这十个数字进行判定,看是否0到9每个数字出现了一次。2.程序源代码:【程序20】题目:有一个八层教学楼,某时间在楼中上课学生数量共有765人,而且恰巧每层学生数量全部是楼下两倍,编程求一楼和八楼学生人数。

1.程序分析:穷举法,对一楼学生人数进行穷举,每次计算出一楼到八楼全部学生人数,判定是否等于总学生人数765。

2.程序源代码:【程序21】24题目:编程实现任意输入一行字符(长度不超100),统计其中有多少个单词并输出。其中,每两个单词之间以空格分隔开,且最终字符不能为空格。1.程序分析:首先使用gets()函数将输入字符串保留在一个字符数组中,然后判定数组中第一个字符是否为结束符或空格,假如是则输出结果,不然则说明是一串正常字符。利用循环,在碰到结束符之前,统计空格数量,空格数量加一即为单词数。2.程序源代码:【程序22】题目:不使用字符串处理函数strcpy()来实现字符串复制。输入一个字符串,拷贝到另一个字符串中,并打印输出。1.程序分析:能够使用gets()和puts()进行字符获取和输出。利用循环依次赋值进行拷贝,另外应注意结束符处理。2.程序源代码:【程序23】题目:统计一个长度为十整型数组中,最大数和次大数、最小数和次小数值及下标,要求只能使用一次循环,即最多循环十次。1.程序分析:本题很简单,要注意题目要求每个数只能读取一次。2.程序源代码:【程序24】题目:已知有两个长度为5有序整形数组(升序排列),编程将其合并为一个长度为10数组,使其仍然有序。两数组中值为运行时由键盘输入。1.程序分析:两个数组进行合并,首先定义出新大小为10数组,然后利用两数组下标进行以前到后循环,每次从两数组中挑一个较小以前到后赋给新数组,循环结束后再把剩下数赋值过去,合并完成。2.程序源代码:【程序25】题目:strlen()函数是C函数库中求字符串长度函数,请使用递归自己实现这个函数。1.程序分析:用情况语句比很好,假如第一个字母一样,则判定用情况语句或if语句判定第二个字母。2.程序源代码:【程序26】题目:假设有个同学在爬楼梯,她能够一步上1个台阶、2个台阶或3个台阶,问这个同学上n层台阶楼,总共有多个走法。1.程序分析:使用递归思想,类似于“斐波那契数列”规律。2.程序源代码:【程序27】题目:使用指针实现两个字符串连接,比如两个字符串“Iam”和“astudent.”,连接后变成“Iamastudent”。1.程序分析:定义一个连接函数connect(char*a,char*b,char*c),用于将a和b为首元素指针两个字符串连接起来,并将首元素地址赋给c。连接操作使用循环,利用指针+1后移操作,分别将指针a和b所指向字符依次赋给c,最终须注意给予结束标识。2.程序源代码:【程序28】题目:寒假立即要来了,使用typedef定义一个寒假结构体类型,包含以下三个组员变量:放假日期(char[20])、假期天数(int)、假期备注(char[100])。在主函数中定义一个该结构体类型指针,使用malloc()为其动态分配内存,然后实现程序运行时假期各项信息输入和打印输出,最终使用free()释放内存。1.程序分析:在后面要学习《数据结构》中,这种结构体指针定义和动态分配内存方法很常见,若不熟悉typedef使用方法,baidu一下。2.程序源代码:【程序29】题目:判定一个数是否是数组中组员(用二分法查找)已知数组a中一共有10个有序整数(由小到大排列)。现在从键盘上输入一个数,判定这个数是否是数组a中数,假如是话,打印出此数在数组a中位置,不然打印“找不到该数字”。1.程序分析:①设待查找数为k,定义三个变量low、high、mid分别代表查找范围顶部、底部和中间位置数组下标,初始时low=0,high=9,mid=(low+high)/2,把数分成以a[mid]为中点两段范围。②判定k是否等于a[mid],若是,则找到。③若k大于a[mid],则k必在数组后半段范围,舍弃前半段,在a[mid+1]至a[high]中继续查找。反之则在a[low]至a[mid-1]前半段进行查找,反复以上步骤,逐步缩小查找范围。④当low>high时候,说明全部数字均已找遍全部未找到想要值,提醒查找失败信息。2.程序源代码:【程序30】题目:使用递归实现题目29二分查找。1.程序分析:定义一个递归二分查找函数供主函数调用,因为是递归进行查找,所以查找数组、要查找值、目前查找范围low和high全部应作为该递归函数参数。递归函数出口有两个,一个是low>high(说明没找到),另一个是a[mid]==k(说明找到了),其它情况就是要查找值落在前半段或后半段,全部应递归调用本身,但依据前半段还是后半段不一样,应设置不一样low、high参数值。2.程序源代码:(二)综合训练要求:任选其一。(1)只能使用C语言,源程序要有合适注释,使程序轻易阅读(2)综合类题目采取文本菜单界面,调用界面和各个功效操作界面应尽可能清楚美观!(3)学生可自动增加新功效模块(视情况可另外加分)(4)写出课程设计汇报,具体要求见相关说明文档1、学生信息管理系统设计(结构体数组、函数、指针、算法、步骤结构等综合应用)对一个有stuNo个学生班级,使用该系统实现对班级学生信息录入、显示、查询、按成绩排序、求平均分、信息修改、添加、删除等操作。功效要求:(1)本系统采取一个结构体数组来存放班级全部学生信息,每个结构包含:学号、姓名、班级和成绩。其中班级又是一个结构体,包含专业名称和班号。(2)本系统显示菜单:请选择菜单:1.信息录入。学生信息初始化,先问询要录入学生个数,然后交互式从键盘输入全部学生各项信息。PS:①信息录入只能做一次,若反复录入则会提醒返回主菜单。②要求不能有学号反复出现,所以录入时须检验录入学生学号是否有反复,若反复则提醒重新输入,如第二张图所表示。2.显示全部。以前到后依次打印输出全部学生完整信息。3.学生查询。可依据学号查询指定学生信息,若存在则打印信息,不然进行提醒。4.成绩排序。对全部学生按成绩进行由高到低降序排列,并打印排序结果。5.平均成绩。求出全部学生平均成绩并打印“学生们平均成绩为:XX.XX”。6.信息修改。可修改指定学号学生全部信息,选择该菜单后会提醒输入(要修改)学生学号,去已经有信息中查找,若未找到则提醒不存在,返回主菜单,图1;若找到该学生则打印该学生信息,并提醒输入修改后新信息,输入完成则提醒修改成功。这里也需要注意,修改学生信息时也需要判别是否输入了和其它学生反复学号,若有反复则类似于信息录入时,提醒重新输入,但许可学号和自己修改之前一样。7.添加学生。班里来了新同学,需要添加新学生信息。PS:①因为学生信息存于结构体数组中,有前后次序,所以添加时需输入要插入位置,需要对位置进行是否正当判定,比如目前只有一个学生王一涵,正当添加位置只能有1和2,其它位置会报错并返回主菜单,图:②添加新学生信息时也需要判别是否和已经有学生学号反复,图:③输入了正确位置和正确学号,则添加成功(能够用显示全部来验证),图:8.删除学生。班里有同学转学,需要从信息表中删除她信息,为方便起见我们使用学号,而非位置来指定要删除学生。选择菜单后,输入要删除学生学号,若该学生不存在则提醒不存在信息并返回主菜单;若存在则在信息表中删掉她信息。0.退出系统。退出主菜单,显示“按任意键继续…”。2、图书信息管理系统设计图书信息包含:书号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功效:系统以菜单方法工作图书信息录入功效(需确保书号无反复)显示全部图书信息图书信息查询功效(按书号查询或按书名查询)按出版时间排序功效图书信息修改功效(需确保书号无反复)图书信息添加功效(需确保书号无反复)图书信息删除功效3、车票管理系统一车站天天有n个发车班次,每个班次全部有一班次号(1、2、3…n),固定发车时间,固定路线(起始站、终点站),大致行车时间,固定额定载客量。如班次

发车时间

起点站

终点站行车时间

额定载量

已定票人数1

8:00

上海南

杭州

2

45

302

6:30

嘉兴

杭州

0.5

40

403

7:00

嘉兴

杭州

0.5

40

204

10:00

嘉兴

杭州

0.5

40

2…功效要求:用c语言设计一系统,能提供下列服务:(1)录入班次信息,可不定时地增加班次数据。(2)浏览班次信息,可显示出全部班次目前状总(假如目前系统时间超出了某班次发车时间,则显示“此班已发出”提醒信息)。(3)查询路线:可按班次号查询,可按终点站查询。(4)班次排序,按发车时间从早到晚进行排序。(5)修改班次信息,可按班次号对该班次信息进行修改。(6)删除班次信息,可删掉不需要班次。(7)可经过系统进行售票、退票:①当查询出已定票人数小于额定载量且目前系统时间小于发车时间时才能售票,自动更新已售票人数。②退票时,输入退票班次,当本班车未发出时才能退票,自动更新已售票人数。4、学生选课系统假定有n门课程,每门课程有课程编号,课程名称,课程性质,课时,讲课课时,试验或上机课时,学分,开课学期等信息,学生可按要求(如总学分不得少于15)自由选课。试设计一个选修课程系统,使之能提供以下功效:(1)系统以菜单方法工作(2)课程信息和学生选课信息录入功效(课程信息可用文件保留)(3)全部课程信息浏览功效(4)依据课程编号、课程名称查询功效(5)依据课程开课学

温馨提示

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

评论

0/150

提交评论