《大学生C语言实训题目》由会员分享,可在线阅读,更多相关《大学生C语言实训题目(11页珍藏版)》请在金锄头文库上搜索。
1、题目一:贪吃蛇游戏题目一:贪吃蛇游戏问题描述:贪吃蛇是一个深受人们喜爱的游戏,一条蛇在密闭的围墙内,在围墙内随机出 现一个食物,通过按键盘上的四个光标控制蛇向上下左右四个方向移动,蛇头撞到食物, 则表示食物被蛇吃掉,这时蛇身子长一节,同时积分 10 分,接着又出现食物,等待被蛇吃 掉,如果在蛇移动的过程中,撞到墙壁或身体交叉蛇头撞到自己的身体,则游戏结束。题目二:通讯录题目二:通讯录1.系统功能要求: (1)创建通讯录。输入学生的姓名、学号和电话号码等,并将它们存放在对应的数组 中;每输入一组数据,记录数增 1。 (2)显示通讯录。将记录学生姓名、学号和电话号码的数组中的数据一一输出到屏幕 上
2、,可以根据实际记录数确定循环次数。 (3)查询通讯录。分别按学号和姓名进行查询,查询时将输入的信息通过循环与相应 数组成员一一进行比较。 (4)修改通讯录。输入需要修改记录的学号,通过循环查找到该记录后,再输入新数 据替代原有数据。 (5)添加通讯录。判断输入的学号是否重复,若不重复再将输入的信息添加到对应的 数组中,每输入一组数据,记录数增 1。 (6)删除通讯录。分别按学号和姓名进行删除。 (7)排序通讯录。分别按学号和姓名进行排序。排序方式可以是升序或降序。 (8)退出。题目三:汉诺塔演示题目三:汉诺塔演示题目四:学生成绩管理系统题目四:学生成绩管理系统问题描述:设计一个学生成绩管理系统
3、,实现对学生成绩的动态管理,实现对学生成绩的 输入,显示,删除,查找,插入,最佳,保存,计算,排序等主要功能,主要功能说明如 下: 1、每一条记录包括一个学生的学号、姓名、3 门课成绩、平均成绩。 2、输入功能:可以一次完成若干条记录的输入。 3、显示功能:完成全部学生记录的显示。 4、查找功能:完成按姓名查找学生记录,并显示。 5、排序功能:按学生平均成绩进行排序。 6、插入功能:按平均成绩高低插入一条学生记录 7 删除功能:如果输入错误,可以删除学生记录;8 退出。题目五:图书管理系统题目五:图书管理系统问题描述:设计一个图书管理系统,主要功能如下:1.添加在系统中增加图书信息(可自己设计
4、图书的信息:如书号,书名,出版社,等等)2.借阅管理当输入有效证件号码之后,能对图书馆中现有的图书进行借阅,并设置借阅时间。3.还书管理当输入有效证件号码之后,读者能进行还书,还书包括还书日期是否超出时间,如果是,提示缴纳相应的超时费用。当读者还书之后,能对读者现有的图书借阅情况进行简单的提示。如是否还有图书处于借阅状态,还书时间是多少,是否超时等。4.图书浏览读者能对系统中的图书情况进行浏览。题目六:计算器的实现题目六:计算器的实现问题描述:利用 TC 具有的函数模仿画出计算器的界面,实现计算机的基本功能,进行浮 点加,减,乘,除,乘方和求模运行。题目七:迷宫问题题目七:迷宫问题问题描述:设
5、计迷宫为二维平面图,将迷宫的左上角作为入口,右下角作为出口,求出从 入口点到出口点的一条通路。题目八:冒泡排序的演示题目八:冒泡排序的演示问题描述:冒泡排序是一种常用的排序方法,通过初始由键盘输入 n 个整数,实现冒泡排 序的演示。题目九:工资管理系统题目九:工资管理系统问题描述:工资管理是一个单位最基本的一项财务管理,设计一个工资管理系统,实现数 据的输入,显示,查找,删除,追加,插入,计算工资,排序等主要功能。题目十:运动会分数统计题目十:运动会分数统计任务:参加运动会有 n 个学校,学校编号为 1n。比赛分成 m 个男子项 目,和 w 个女子项目。项目编号为男子 1m,女子 m+1m+w
6、。不同的项目 取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积 分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。 (m#include#include#define S3 “*欢迎使用学生成绩管理系统*“struct student/学生数据结构double num;char name20;float pingshi;/平时float shiyan;/实验float kaoshi;/考试double zongping;/总评stu30;void main()void newstu(); /* 输入一个班的学生记录*/void showall();/* 显示所
7、有记录*/void calculate();/* 求出全班平均成绩,显示均方差*/void sort();/*输出成绩与排名*/void save();/*将数据保存到成绩.txt 文件中*/int n;while(n!=6)printf(“nn%snn“,S3);printf(“%15s*09 自动化班学生成绩管理系统*nn“,“ “);printf(“%15s1:输入该班学生大学 c 学生成绩记录n“,“ “);printf(“%15s2:显示所有成绩记录n“,“ “);printf(“%15s3:计算并输出平均成绩,均方差n“,“ “);printf(“%15s4:输出成绩与排名n“,“
8、 “);printf(“%15s5:结果存入文件“成绩.txt“中n“,“ “);printf(“%15s6:退出系统n“,“ “);printf(“输入选项代码:“);scanf(“%d“,if(n!=1elseswitch(n)case 1:newstu();break;case 2:showall();break;case 3:calculate();break;case 4:sort();break;case 5:save();break;case 6:printf(“n*谢谢使用! *n“);break;break; getchar();/* 子 函 数*/void newstu()
9、 /* 输入一个班的学生记录*/int i,n;printf(“请输入您要保存记录的人数:“);scanf(“%d“,if(n30)printf(“对不起,您的输入有误,请重新输入“);elsefor(i=0;in;i+) printf(“请输入学号 姓名 平时成绩 实验成绩 考试成绩:“);scanf(“%lf%s%f%f%f“,for(i=0;in;i+)stui.zongping=0.1*stui.pingshi+0.3*stui.shiyan+0.6*stui.kaosh i;void showall()/* 显示所有记录*/int i,n;printf(“请输入您要保存记录的人数:“
10、);scanf(“%d“,printf(“学号 姓名 平时成绩 实验成绩 考试成绩 总评成绩n“);for(i=0;in;i+)printf(“%-18.0lf%-13s%-14.2f%-14.2f%-14.2f%- 14.2fn“,stui.num,stui.name,stui.pingshi,stui.shiyan,stui.k aoshi,stui.zongping);void calculate()/* 求出全班平均成绩,显示均方差*/ int a30=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23, 24,2
11、5,26,27,28,29;int i,n;double total=0,pfc=0,bzc=0;double ave;printf(“请输入您要保存记录的人数:“);scanf(“%d“,for(i=0;in;i+)total=total+stui.zongping;ave=total/n;printf(“总评平均成绩是%fn“,ave);for(i=0;in;i+)pfc=pow(stui.zongping-ave),2)/n;bzc=sqrt(pfc);printf(“n 平方差是%fn“,pfc);printf(“n 标准差是%fn“,bzc);void sort()/*输出成绩与排名
12、*/int a30=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29;int i,j,temp;for(j=0;j29;j+)for(i=0;i29-j;i+)if(stuai.zongpingstuai+1.zongping)temp=ai;ai=ai+1;ai+1=temp;printf(“顺序为:n“);printf(“学号 姓名 总评成绩n“);for(i=0;i30;i+)printf(“%15.0lf%10s%15.2fn“,stuai.num,stuai.name,st
13、uai .zongping);printf(“n“);void save()/*将数据保存到成绩.txt 文件中*/int i;FILE *fp;fp=fopen(“成绩.txt“,“w“);fprintf(fp,“学号 姓名 平时成绩 实 验成绩 考试成绩 总评成绩n“);for(i=0;i29;i+)fprintf(fp,“%15.0lf%14s%14.2f%14.2f%14.2f%14.2fn“,stui.num,stu i.name,stui.pingshi,stui.shiyan,stui.kaoshi,stui.zongping);printf(“System pause.n“);printf(“Please wait.n“);printf(“nn*恭喜,保存完成! *nn“);