C语言实训题目及要求2020.docx

上传人:scccc 文档编号:13758466 上传时间:2022-01-23 格式:DOCX 页数:10 大小:19.01KB
返回 下载 相关 举报
C语言实训题目及要求2020.docx_第1页
第1页 / 共10页
C语言实训题目及要求2020.docx_第2页
第2页 / 共10页
C语言实训题目及要求2020.docx_第3页
第3页 / 共10页
C语言实训题目及要求2020.docx_第4页
第4页 / 共10页
C语言实训题目及要求2020.docx_第5页
第5页 / 共10页
亲,该文档总共10页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C语言实训题目及要求2020.docx》由会员分享,可在线阅读,更多相关《C语言实训题目及要求2020.docx(10页珍藏版)》请在三一文库上搜索。

1、C语言实训题目第一题、每组从下面的5个题目中选择一个完成。1、猜数游戏涉及知识点:循环、随机数操作。计算机想”一个数(1,100)请人猜,如果猜对了,提示正确信息;否则告诉所猜的数 是大还是小,同时提示下一次猜数的范围,直到猜对结束,最后给出游戏者猜测的次数,要 求,程序以菜单方式工作。2、显示万年历涉及知识点:循环、格式化输出。设计一个程序实现万年历的显示,要求:(1)输入一个年份(1900-2040),在屏幕上输出该年的日历。(2)输出年历时,以月份和星期做表头。(3)系统以菜单方式工作。3、显不月历涉及知识点:循环、格式化输出。设计一个程序实现月历的显示,要求:(1)输入年月信息,在屏幕

2、上输出该月的日历。(2)输出日历时,以月份和星期做表头。(3)系统以菜单方式工作。4、英文单词统计助手涉及知识点:循环、字符串数组(二维字符数组)、一维字符数组、数组元素的排序。设计一个程序实现英文短文单词的统计任务,要求:(1)输入若干行英文,语句之间用逗号,句点分隔,单词之间用空格分隔。(2)统计并输出单词的总数。(3)统计各英文字符出现的次数(标点符号及空格不统计),并按出现的次数降序输出。(4)系统以菜单方式工作。5、简单文本编辑器涉及知识点:循环、字符串数组(二维字符数组)、一维字符数组、字符串处理函数。设计一个程序实现英文文本的编辑,要求:(1)输入若干行英文,语句之间用逗号,句点

3、分隔,单词之间用空格分隔。(2)单词的查找输入一个单词,查找该单词在短文中出现的次数及所在的行数和列数。(3)单词的替换:输入一个单词,在文中查找该单词,并将其替换为新单词。(4)大小写转换:将文中的所有单词转换为大写或小写。(5)系统以菜单方式工作。第二题、每组从下面的4个题目中选择一个完成。(每个题目最多限选3次)6、简单数学测验涉及知识点:循环、文本文件操作、格式化读写文件、随机数、全局变量。设计程序实现一个数学测险,随机选择两个整数和加减法形成算式要求学生解答,要求: (1)电脑随机出10道题,每题10分,程序结束时显示得分。(2)只允许进行100以内的加减法,不允许两数的和或差超出0

4、100的范围。(3)每道题有两次机会输入答案,第一次输入错误答案时,提醒重新输入,若两次输入 均错误,则给出正确答案。(4)判分规则:第一次回答正确得10分,第二次回答正确得5分,否则不得分。(5)程序提供查看错题功能,能查看本次测验的错题。(6)系统以菜单方式工作。7、数学测验涉及知识点:循环、文本文件操作、格式化读写文件、随机数、全局变量。设计程序实现一个数学测验,随机选择两个整数和乘除法形成算式要求学生解答,要求:(1)电脑随机出5道题,每题20分,程序结束时显示得分。(2)只允许进行100以内的乘法,不允许两数的积超出0100的范围,(3)做除法时,只允许做整除运算(即本次除法运算的余

5、数为0)。(4)每道题有两次机会输入答案,第一次输入错误答案时,提醒重新输入,若两次输入 均错误,则给出正确答案。(5)判分规则:第一次回答正确得20分,第二次回答正确得10分,否则不得分。(6)程序提供查看错题功能,能查看本次测验的错题。(7)系统以菜单方式工作。8、简单计算器涉及知识点:循环、随机数、数学函数,设计程序实现一个计算器,要求:(1)能完成任意两个数的四则运算(加、减、乘、除)。(2)能完成三角函数运算(sin(x),cos(x)1tan(x),sin X(x),cos X(x),tan x)o(3)能完成对数运算(Inxjogiox)o(4)其它运算(e:平方分计算,/)。(

6、5)系统以菜单方式工作,每个功能里的运算用二级菜单实现,例如:力口、减、乘、除 的选择需用二级菜单提示。9、记忆力大挑战涉及知识点:循环、随机数、数组。设计程序实现一个记忆力挑战游戏,要求:游戏分为5个等级,每个等级的游戏规则如下。入门级:电脑随机出5个数字(1-20),每个数字上面显示其所在的位置序号(从1 开始),数字在屏幕上显示5秒钟,然后消失,要求游戏者凭借记忆按顺序答出5(4)(6)个数字,答错一个即算挑战失败。 修炼级:电脑随机出5个数字20), 求游戏者凭借记忆按顺序答出5个数字, 大师级:电脑随机出5个数字(120), 求游戏者凭借记忆按顺序答出5个数字, 大仙级:电脑随机出5

7、个数字(120), 求游戏者凭借记忆按顺序答出5个数字, 系统以菜单方式工作。数字在屏幕上显示4秒钟,然后消失,要 答错一个即算挑战失败。数字在屏幕上显示3秒钟,然后消失,要 答错一个即算挑战失败。数字在屏幕上显示2秒钟,然后消失,要 答错一个即算挑战失败。第三题、每组从下面的11个题目中选择一个完成。(组与组之间题目不能重复)10、学籍查询系统涉及知识点:循环、二进制文件操作、结构体数组、排序。设计程序实现学生学籍的查询,具体要求如下:(1)用二进制数据文件存放学生的学籍信息。(2)学籍的添加:根据输入的新生的学号、姓名、性别、出生日期、系别、专业信息, 注册该生的学籍。(3)学籍的显示:输

8、出所有学籍。(4)学籍的查询:根据学号,查询并显示该生的学籍,(5)学籍的查询:根据系别,查新并显示该系的学籍。(6)学籍的排序:按学号降序输出所有学籍。(7)系统以菜单方式工作。11、学籍管理系统涉及知识点:循环、二进制文件操作、结构体数组、文件的随机读写。设计程序实现学生学籍的管理,具体要求如下:(1)用二进制数据文件存放学生的学籍信息。(2)学籍的添加:根据输入的新生的学号、姓名、性别、出生日期、系别、专业信息, 注册该生的学籍。(3)学籍的修改:根据学号,查找并修改该生的成绩,并显示修改后所有学生的成绩信 息。(4)学籍的删除:根除输入的学号,删除该生的学籍.并显示修改后所有学生的学籍

9、。(5)系统以菜单方式工作。12、成绩查询系统涉及知识点:循环、二进制文件操作、结构体数组。设计程序实现学生成绩的查询,具体要求如下:(1)用二进制数据文件存放学生的成绩信息。(2)成绩的添加:根据输入的学生成绩信息(学号、姓名、班级、学期、英语成绩、高 数成绩、C语言成绩),添加该生的成绩。(3)成绩的显示:输出所有学生的成绩。(4)成绩的查询:根据学号,查询并显示该生的成绩。(5)成绩的查询:根据班级,查询并显示该班的成绩。(6)成绩的查询:根据课程名,查询并显示该课程所有不及格成绩。(7)系统以菜单方式工作。13、成绩管理系统涉及知识点:循环、二进制文件操作、结构体数组、文件的随机读写、

10、排序。设计程序实现学生成绩的管理,具体要求如下:(1)用二进制数据文件存放学生的成绩信息。(2)成绩的添加:根据输入的学生成绩信息(学号、姓名、班级、学期、英语成绩、高 数成绩、C语言成绩),添加该生的成绩。(3)成绩的修改:根据学号,查找并修改该生的成绩,并显示修改后所有学生的成绩。(4)成绩的删除:根除输入的学号,删除该生的成绩,并显示修改后所有学生的成绩。(5)成绩的排序:降序输出某班某课程的成绩。(6)系统以菜单方式工作。14、宿舍查询系统涉及知识点:循环、二进制文件操作、结构体数组。设计程序实现学生宿舍信息的查询,具体要求如下:(1)用二进制数据文件存放学生的宿舍信息。(2)每个房间

11、最多住4人。(3)宿舍信息的添加:根据输入的宿舍信息(楼号、房间号、实际入住人数、入住学生 姓名),添加该宿舍的信息。(4)宿舍信息的显示:输出所有宿舍的信息。(5)宿舍信息的查询:根据楼号与房间号,查询并显示该宿舍的信息。(6)宿舍信息的查询:根据楼号,查询并显示该宿舍楼的实际入住人数。(7)宿舍信息的查询:根据楼号,查询并显示该宿舍楼中尚有空床位的宿舍信息。(8)系统以菜单方式工作。15、宿舍管理系统涉及知识点:循环、二进制文件操作、结构体数组、文件的随机读写。设计程序实现学生宿舍信息的管理,具体要求如下:(1)用二进制数据文件存放学生的宿舍信息。(2)每个房间最多住6人。(3)宿舍信息的

12、添加:根据输入的宿舍信息(楼号、房间号、实际入住人数、入住学生 姓名),添加该宿舍的信息。(4)宿舍信息的修改:根据楼号及房间号,查找并修改该宿舍的信息,并显示修改后该 楼的所有宿舍信息。(5)宿舍信息的删除:根除输入的楼号及房间号,删除该宿舍的信息,并显示修改后该 楼的所有宿舍信息。(6)系统以菜单方式工作。16、火车信息查询系统涉及知识点:循环、二进制文件操作、结构体数组、排序。设计程序实现火车信息的查询,具体要求如下:(1)用二进制数据文件存放学生的宿舍信息,(2)车票信息的添加:根据输入的车票信息(车次、始发地、目的地、出发时间、到达 时间、票价、余票数、总票数),添加该车次信息。(3

13、)车次查询:根据输入的车次,查询并输出该车次的列车信息。(4)始发地查询:根据输入的始发地,查询并输出相应的列车信息。(5)目的地查询:根据输入的目的地,查询并输出相应的列车信息。(6)按票价降序输出所有的列车信息。(7)系统以菜单方式工作。17、火车信息管理系统涉及知识点:循环、二进制文件操作、结构体数组、文件的随机读写。设计程序实现火车票信息的查询,具体要求如下:(1)用二进制数据文件存放学生的宿舍信息。(2)车票信息的追加:根据输入的车票信息(车次、始发地、目的地、出发时间、到达 时间、票价、余票数、总票数),添加该车次信息。(3)订购车票:根据输入的车次及票数,订购车票,并显示订票后该

14、次列车的余票信息。(4)查询并输出票已售罄的列车信息。(5)退票:根据输入的车次及票数,进行退票,并显示退票后该次列车的余票信息。(6)系统以菜单方式工作。18、短信模拟管理器涉及知识点:循环、二进制文件操作、结构体数组、文件的随机读写。设计程序实现手机短信的模拟管理,具体要求如下:(1)用二进制数据文件存放短信信息。(2)短信的保存:编辑一条短信(日期、发送者、接收者、短信内容),保存该短信。(3)短信查询:根据输入的发送者姓名,查找并显示其所发的所有短信。(4)短信删除:根据输入的发送者姓名,删除其所发的所有短信。(5)短信删除:根据输入的接收者姓名,删除发送给该用户的所有短信。(6)系统

15、以菜单方式工作。19、员工工资查询系统涉及知识点:循环、二进制文件操作、结构体数组、排序。设计程序实现员工工资的查i旬,具体要求如下:(1)用二进制数据文件存放员工工资信息。(2)工资信息的追加:根据输入的员工工资信息(工号、姓名、性别、月份、基本工资、 奖金、应扣额、实发工资),添加该员工工资信息。(3)每月应扣额计算方法:应扣额=基本工资*0. 1+奖金*0. 15每月实发工资计算方法:实发工资:基本工资+奖金-应扣额。(4)按月查询工资:输入一个月份,查询并输出该月所有员工的工资信息。(5)按工号查询工资:输入一个工号,查询并输出该员工每月的工资信息及全年的工资 总额。(6)工资排序:降

16、序输出所有员工的全年工资总和。(7)系统以菜单方式工作。20、员工工资管理系统涉及知识点:循环、二进制文件操作、结构体数组、文件的随机读写。设计程序实现员工工资的管理,具体要求如下:(1)用二进制数据文件存放员工工资信息。(2)工资信息的追加:根据输入的员工工资信息(工号、姓名、性别、月份、基本工资、 奖金、应扣额、实发工资),添加该员工工资信息。(3)每月应扣额计算方法:应扣额=基本工资*0. 1+奖金*0. 15每月实发工资计算方法:实发工资:基本工资+奖金-应扣额。(4)工资信息修改:输入一个工号,修改该员工的工资信息,并保存修改结果。(5)工资信息删除:输入一个工号及月份,删除该员工该

17、月份的工资信息,并输出删除 操作后该员工全年的工资信息。(6)系统以菜单方式工作。时间安排周一:第一题,进行题目分析,完成设计,画出程序流程图,编写代码并 完成程序测试,撰写实验报告。周二:第二题,进行题目分析,完成设计,画出程序流程图,编写代码并完 成程序测试,撰写实验报告。周三:第三题,进行题目分析,完成设计,画出程序流程图,编写代码并完 成程序测试,撰写实验报告。周四:第三题,进行题目分析,完成设计,画出程序流程图,编写代码并完 成程序测试,撰写实验报告。周五:验收、考核、答辩、提交实训报告。附录1:随机数的生成:下面示例代码生成10个1100范围内的随机整数,存入数组array中。in

18、clude void testQ(int arrayfl0,i;srand(time(O); 设置随机数种子,必须要有for(i=0;i10;i+)(arrayi=rand()%100+l;生成1100范围内的随机整数,赋值给数组元素arrayi,生成ab之间的一个随机整数公式为:rand()柳b-a+l)+a;)附录2:万年历制作要点提示: 系统中的时间从1900-1-1日开始计算,设置一个变量sumday,用来保存从1900- 1-1起经过的天数。sumday初值为0,每经过一天sum day加1。 注意:闰年全年有366天,非闰年全年有365天。 判断某天为周几的方法:* 1900年1月

19、1日,该天的sumday值为1,当天是周一* 2015年6月24日:先计算该天的sumday值,然后判断sumday%7的结果. 如果sumday%7=l,则该天为周一,若值为2,则该天为周二,若 sumday%7二二0,则该天为周日。附录3:菜单界面制作效果,以简单数学测验为例:XX兴夬兴兴兴兴兴兴兴兴兴XX兴兴兴兴兴兴兴兴兴兴兴兴兴兴兴兴兴共兴兴兴兴兴兴兴兴XX兴兴兴欢迎使用数学测试系统1 .开始测试2 .杳看分数3 .退出系统关关关关关关关关关关关关关关蔑关共关共关共关共关关关关关关关关关关关关共兴共关共关共关关兴关请选择一个序号:主函数示例代码:void main()void show

20、menu(); int n;doshowmenu();printf(请选择一个序号:n) scanted, &n);switch(n)case 1: case 2: case 3: defaultstart();break; 调用函数start。,开始测验showgrade();break; 调用函数 showgradeQ,显示成绩 breakprintf请输入正确的操作序号!n)break;)while(n!=3); 循环显示菜单,直到用户输入3结束程序 printf(“谢谢使用本系统,下次再见! n)菜单显示函数示例代码:void showmenu()printfC*)printf(欢迎使

21、用数学测试系统n“);printffl.开始测试n);printf(2 查看分数n);printf(“3.退出系统 n“);printfC*n),附录4 :清除输出窗口的内容及计时。(记忆力挑战题目涉及此知识)以下示例代码完成输出两个随机整数,显示3秒后清除输出窗口中的内容:#include include #includevoid testQint m,n;double dur; 计时变量docket start,end; 定义两个 clock_t 类型的变量 start, endsrand(time(O);设置随机数种子m=rand(泗10; 生成0-10之间的一个随机整数,赋值给变量m

22、n=rand()W10:printf(d,%dn”,m,n);/在输出窗口输出 m,n 的值start=clock。;开始计时,clock。函数每隔0.001秒增力口 1while(dur关闭文件)* fread(&xj,sizeof(struct xueji),l,fp);*上句完成从fp所指文件中读出一条学籍信息,保存至变量xj中。然后判断 xj中的学号是否等于要查询的学号,是就输出该生学籍信息。以下示例代码完成学籍信息的添加:void insert_xueji()向文件c:stu.dat中追加一条学籍信息,学籍信息可以分多次录入(int i=0;char ch;Fl LE *fp;str

23、uctxueji xj; /struct xueji为自己声明的结构体类型,可以表示学籍信息fp =fopen(c:stu.dat,ab+); 以 ab+的方式打开数据文件 c:stu.datif(fp=NULL)printff打开文件失败!n);exit(0);do(printff请输入第%d个学生的学籍:学号姓名,性别,出生日期,系别,专业n”,i+1);scarrf(d%s%s%d%d%d%s%s”,&xj.num,xj.name,xj.sex,&xj.birthday .year,&xj.birthday.month, &xj.birthday.day,xj.depa,xj.major

24、);fwrite(&xj,sizeof(struct xueji),l,fp);count+; 全局变量,用来统计学籍总数printff继续输入吗?继续输入请按乂结束输入请按nW”); ch=getchar();i+;while(ch=y);fclose(fp);)以下示例代码完成输出全部学籍信息(二进制数据文件的逐条读操作) void show_info() 逐条输出二进制数据文件c:stu.dat中的学籍信息 (Fl LE *fp;struct xueji xj;fp=fopen(c:stu.dat;rb); 打开保存学籍信息的数据文件c:stu.dat,打开方式为rb if(fp =NU

25、LL)(printff打开文件失败!n);exit(O);)printf(“全体学生的学籍为:n);fread(&xj,sizeof(struct xueji),l,fp);先读一条学籍信息,保存到结构体变量xj中while(!feof(fp)判断文件是否结束(若文件没结束,则输出刚读到的学籍信息printf(WdtWstWstd -Wd -Wdtst%sn,xj.num, xj.name, xj.sex, xj.birthday.year, xj.birthday.month, xj.birthday.day, xj.depa, xj.major);fread(&xj,sizeof( struct xueji),l,fp); 继续读下一条学籍信息)fclose(fp);)改变文件位置指针相关函数:* rewind把文件位置指针移到文件头* fseek :重定位文件位置指针* 食ell:返回文件位置指针*修改学籍时,若遍历学籍文件找到了某学生的学籍信息,此时,文件位置指针并没有指 向该生学籍信息,而是指向下一个学生的学籍信息位置。所以,需要使用fseek函数重 新让位置指针指向要修改的学籍位置,这一点一定要注意。删除学籍信息时,也是如此。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1