c语言程序设计实训报告参考
目 录
一、项目一:学生成绩排名(实验指导老师 李环宇)- 3 -
1.1 实训目的- 3 -
1.2 实训内容- 3 -
1.3 实训要求- 3 -
1.4 实训过程- 3 -
二、项目二:按条件实现学生成绩排名(实验指导老师 张琴)- 8 -
2.1 实训目的- 8 -
2.2 实训内容- 8 -
2.3 实训要求- 8 -
2.4 实训过程- 8 -
三、项目三:数组优化学生成绩排名(指导老师 李环宇、殷玉法)- 14 -
3.1 实训目的- 14 -
3.2 实训内容- 14 -
3.3 实训要求- 14 -
3.4 实训过程- 14 -
四、项目四:学生成绩单制作(指导老师:李环宇)- 19 -
4.1 实训目的- 19 -
4.2 实训内容- 19 -
4.3 实训要求- 19 -
4.4 实训过程- 19 -
五、项目五:设计和编写学生成绩管理系统的系统主菜单(指导老师:张琴)- 25 -
5.1 实训目的- 25 -
5.2 实训内容及要求- 25 -
5.3 实训过程- 25 -
六、项目六:学生成绩管理项目实现(指导老师:殷玉法、张琴、李环宇)- 30 -
6.1 实训目的- 30 -
6.2 实训内容及要求- 30 -
6.3 实训过程- 30 -
七、实训总结- 47 -
八、附录(参考文献,源代码)- 47 -
一、项目一:学生成绩排名(实验指导老师 李环宇)
1.1 实训目的
(1)熟悉变量、数组定义、使用、输入、输出等基本操作;
(2)进行选择、循环结构程序设计练习;
(3)掌握冒泡法排序的算法。
1.2 实训内容
2、实训内容
(1)定义一个数组a[11],用以存放学生的成绩;
(2)从键盘输入10个学生及成绩;
(3)采用冒泡法,将学生成绩按照从高到低进行排序;
(4)再输入一个学生的成绩,将此成绩按照排序规律插入原学生成绩数组;
(5)将排好序的成绩单进行反序存放,即原来是从高到低,现在改为从低到高排列。
1.3 实训要求
1、将以上每一步骤的结果均打印输出,验证程序是否正确实现题目要求
2、在实训报告中画出程序流程图,说明程序设计的算法,附主要程序段。
1.4 实训过程
1.思路
输入10个学生成绩
输出这10个学生成绩
m=1 升序,m=2降序
m等于1m等于2
n=’a’冒泡法,n=’b’选择法 n=’a’冒泡法,n=’b’选择法
n=’a’n=’b’ n=’a’n=’b’
for(i=0;i<9;i++) for(i=0;i<9;i++)for(i=0;i<9;i++)for(i=0;i<9;i++)
for(j=0;j<9-i;j++)for(j=0;j<9-i;j++)for(j=0;j<9-i;j++)for(j=0;j<9-i;j++)
a[j]a[j+1]a[i]>a[j]
T FT FT FT F
a[j]与 a[j]与a[i]与
a[j+1]互a[i]与a[j+1]互换a[j]互换
换a[j] 互换
for(i=9:i>=0;i--)
a[0]>=a[1]
TF
a[i]小于插入数a[i]大于插入数
TFTF
a[i+1]=a[i]终止循环a[i+1]=a[i]终止循环
将插入数赋值给a[i+1]
输出插入后的排列
for(i=0;i<=5;i++)
a[i]与a[9-i]互换
输出倒序排列
2.程序过程
#include
#include
void main()
{
int a[11],i,j,m,t;
char n;
printf("请输入十个数:");
for(i=0;i<=9;i++)
scanf("%d",&a[i]);//数组输入
printf("\n原数组:");
for(i=0;i<10;i++)
printf("%d ",a[i]);//数组输出
printf("\n");
printf("升序排序按1,降序排序按2!\n");
scanf("%d",&m);
getchar();
if(m==1)
{
printf("冒泡法按a;选择法按b\n");
scanf("%c",&n);
if(n=='a')
{
for(i=0;i<9;i++)
for(j=0;