C语言实训报告学生成绩管理系统.docx
《C语言实训报告学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《C语言实训报告学生成绩管理系统.docx(61页珍藏版)》请在冰豆网上搜索。
C语言实训报告学生成绩管理系统
课程实训说明书
课程:
C语言实训
系部:
专业班级:
学号:
姓名:
指导教师:
年月日
1项目一名称:
学生成绩排名
1.1项目设计要求...........................................................1
1.2项目设计思路...........................................................1
1.3程序流程...............................................................2
1.4程序代码...............................................................3
1.5运行结果...............................................................4
2项目二名称:
按条件实现学生成绩排名
2.1项目设计要求...........................................................3
2.2项目设计思路...........................................................3
2.3程序流程...............................................................4
2.3程序代码...............................................................7
2.5运行结果...............................................................10
3项目三名称:
数组优化学生成绩排名
3.1项目设计要求...........................................................11
3.2项目设计思路...........................................................11
3.3程序流程...............................................................12
3.3程序代码...............................................................13
3.5运行结果...............................................................14
4项目四名称:
学生成绩单制作
4.1项目设计要求...........................................................15
4.2项目设计思路...........................................................15
4.3程序流程...............................................................16
4.3程序代码...............................................................17
4.5运行结果...............................................................21
5项目五名称:
学生成绩排序文件管理
5.1项目设计要求...........................................................22
5.2项目设计思路...........................................................22
5.3程序流程...............................................................23
5.3程序代码...............................................................24
5.5运行结果...............................................................27
6项目六名称:
设计和编写学生成绩管理系统的系统主菜单
6.1项目设计要求...........................................................28
6.2项目设计思路...........................................................28
6.3程序流程...............................................................29
6.3程序代码...............................................................30
6.5运行结果...............................................................32
7项目七名称:
学生成绩管理项目实现
7.1项目设计要求...........................................................33
7.2项目设计思路...........................................................33
7.3程序流程...............................................................34
7.3程序代码...............................................................35
7.5运行结果...............................................................45
8课程设计总结.............................................................49
9参考文献.................................................................50
1.1项目设计要求
(1)熟悉变量、数组定义、使用、输入、输出等基本操作;
(2)进行选择、循环结构程序设计练习;
(3)掌握冒泡法排序的算法。
1.2项目设计思路
(1)定义一个数组a[11],用以存放学生的成绩;
(2)从键盘输入10个学生及成绩;
(3)采用冒泡法,将学生成绩按照从高到低进行排序;
(4)再输入一个学生的成绩,将此成绩按照排序规律插入原学生成绩数组;
(5)将排好序的成绩单进行反序存放,即原来是从高到低,现在改为从低到高排列。
1.3程序流程
输入10个学生成绩
i=0to9
Scanf(“%d”,a&[i])
用冒泡法排序
j=0to9
i=0to9-j
intt=0;t=a[i];
a[i]=a[i+1];
a[i+1]=t;
1.4程序代码
#include
#defineN11
voidmain()
{
inta[11],i,j,t,x;
printf("pleaseinputsort:
\n");/*输入数组*/
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("thearryis:
\n");
printf("%3d",a[i]);
printf("\n");
for(j=0;j<9;j++)/*用起泡法进行排序*/
for(i=0;i<9-j;i++)
if(a[i]{t=a[i];a[i]=a[i+1];a[i+1]=t;}}printf("thenewarryis:\n");/*输出新排好顺序的数列*/for(i=0;i<10;i++)printf("%3d",a[i]);printf("\n");printf("pleaseinputanumber:\n");/*插入一个数*/scanf("%d",&x);if(xa[10]=x;else{for(i=0;i<10;i++)if(a[i]{for(j=9;j>=i;j--)a[j+1]=a[j];a[i]=x;break;}}printf("thenewarryis:\n");for(i=0;i<=10;i++)printf("%3d",a[i]);printf("\n");for(i=0;i{t=a[i];a[i]=a[N-i-1];a[N-i-1]=t;}printf("newarryis:\n");for(i=0;i<=10;i++)/*输出反序数组*/printf("%3d",a[i]);printf("\n");}1.5运行结果: 2项目二名称:按条件实现学生成绩排名项目一:学生成绩排名2.1项目设计要求(1)复习数组,选择、循环结构程序设计;(2)掌握函数的定义、调用、声明,以及参数的两种传递方式。2.2项目设计思路(1)在函数中进行10个学生成绩从高到低排名sort(inta[10]);(2)改进第一步的函数为sort(inta[],intn),进行n个学生成绩从高到低排名;(3)改进第二步的函数为sort(inta[],intn,charstyle),将n个学生成绩从高到低排名,排名方式;(4)根据sort()函数的style参数进行,如style为‘a’按升序排,style为’d’按降序排。(a:ascending升,d:descending降)(5)尝试用三种方法排序:冒泡法、选择法,插入法排序。 2.3程序流程2.3程序代码#includevoidmain(){intn,a[1000];charstyle;intinput(inta[]);//声明输出函数charmode();//声明模式函数voidsort(inta[],intn,charstyle);//声明排序函数n=input(a);//调用输入函数style=mode();//调用模式函数sort(a,n,style);//调用排序函数getch();}intinput(inta[])//定义输入函数{inti,n;printf("请输入学生的个数(小于999):\n");//确定学生个数nscanf("%d",&n);printf("请输入%d个学生的成绩:\n",n);for(i=0;i{scanf("%d",&a[i]);}printf("\n");printf("输入的%d个学生成绩为:\n",n);for(i=0;i{printf("%5d",a[i]);if((i+1)%10==0)printf("\n");}printf("\n");returnn;//返回学生个数}charmode()//定义模式函数{charstyle;modeselect:printf("****************************\n");printf("*模式选择(A/D)*\n");printf("*A)升序排列*\n");printf("*D)降序排列*\n");printf("****************************\n");getchar();scanf("%c",&style);//选择模式if(style=='a'||style=='A')returnstyle;//如果为A/a就返回模式选择elseif(style=='d'||style=='D')returnstyle;//如果为D/d就返回模式选择elsegotomodeselect;//如果不是选项,就重新选择}voidsort(inta[],intn,charstyle)//定义排序函数{if(style=='a'||style=='A')//如果为升序排序{//使用选择法排序inti,j,t,min;for(i=0;i<=n-2;i++){min=i;for(j=i+1;j<=n-1;j++){if(a[min]>a[j]){min=j;}}t=a[i];a[i]=a[min];a[min]=t;}printf("\n");printf("选择法升序排序结果:\n");//输出排序后的结果for(i=0;i{printf("%5d",a[i]);if((i+1)%10==0)printf("\n");}}else//如果为降序排序{//使用选择法排序inti,j,t,max;for(i=0;i<=n-2;i++){max=i;for(j=i+1;j<=n-1;j++){if(a[max]{max=j;}}t=a[i];a[i]=a[max];a[max]=t;}printf("\n");printf("降序排序结果:\n");//输出排序后的结果for(i=0;i{printf("%5d",a[i]);if((i+1)%10==0)printf("\n");}}}2.5运行结果 3项目三:数组优化学生成绩排名项目一:学生成绩排名3.1项目设计要求(1)熟悉变量的指针和指向变量的的指针变量的概念和使用;(2)熟悉数组的指针和指向数组的的指针变量的概念和使用。3.2项目设计思路(1)定义一个数组stu[10]存放10个学生的成绩,从键盘输入数据,要求用指针实现;(2)将数组stu[10]的内容输出到屏幕上,要求用指针实现;(3)将成绩数组按照从高到低进行排序,要求用指针实现;(4)将第三步内容放在函数中实现,在主函数中调用实现排序,用指针实现,输出排序后的成绩单;(5)采用指针方法,输入字符串“studentscore”,复制该字符串并输出(复制字符串采用库函数或用户自定义函数)。3.3程序流程3.4程序代码#includemain(){int*p,i,a[10],j,k,t;printf("请输入数据:\n");p=a;//将数组的首地址赋给Pfor(i=0;i<10;i++)scanf("%d",p++);//依次输入数据printf("\n");printf("输出数组:\n");p=a;//将数组的首地址赋给Pfor(i=0;i<10;i++){printf("%d",*p);//用指针的方式输出数据p++;}printf("\n");p=a;//将数组的首地址赋给Pfor(i=0;i<9;i++){k=i;//用选择法排序for(j=i+1;j<10;j++)if(*(p+j)>*(p+k))k=j;if(k!=i){t=*(p+i);*(p+i)=*(p+k);*(p+k)=t;}}printf("输出排序后的数组:\n");for(p=a,i=0;i<10;i++){printf("%d",*p);p++;}printf("\n");}3.5运行结果 4项目四:学生成绩单制作项目一:学生成绩排名4.1项目设计要求(1)掌握结构体变量及数组的定义、赋值、初始化、输入、输出;(2)结构体数组的操作。4.2项目设计思路(1)定义一个结构体数组,存放10个学生的学号,姓名,math、Chinese、English三门课的成绩;(2)从键盘输入10个学生的以上内容;(3)输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩;(4)输出三门课程的平均分数最高的学生的学号、姓名及其平均分;(5)将10个学生按照平均分数从高到低进行排序,输出结果,格式如下所示:numbernamemathChineseEnglishaverage103tom909010095101alice90807080 4.3程序流程 4.4程序代码#includestructstudent{charnumber[10];charname[20];intmatch;intchinese;intenglish;floataverage,;}student[10],h;voidmain(){inti,j,max,t;floatmax1;printf("请输入学生的姓名、学号和成绩:\n");for(i=0;i<10;i++){printf("姓名:");scanf("%s",&student[i].name);printf("学号:");scanf("%s",&student[i].number);printf("数学:");scanf("%d",&student[i].match);printf("语文:");scanf("%d",&student[i].chinese);printf("英语:");scanf("%d",&student[i].english);printf("该学生的平均成绩是:\n");student[i].average=(student[i].match+student[i].chinese+student[i].english)/3.0;printf("%5.1f\n",student[i].average);}printf("输出数学成绩最高的学生资料:\n");max=student[0].match;for(i=0;i<10;i++)if(max{max=student[i].match;t=i;}printf("学号:%s\n姓名:%s%\n数学成绩:%5d\n",student[t].number,student[t].name,student[t].match);printf("输出平均成绩最高的学生的成绩:\n");max1=student[0].average;for(i=0;i<10;i++)if(max1{max1=student[i].average;t=i;}printf("学号:%s\n姓名:%s\n数学成绩:%d\n",student[t].number,student[t].name,student[t].match);for(j=0;j<10;j++)for(i=0;i<10-j;i++)if(student[i].average<=student[i+1].average){h=student[i];student[i]=student[i+1];student[i+1]=h;}printf("numbernamematchchineseEnglishaverage\n");for(i=0;i<10;i++)printf("%-7s%-10s%-8d%-10d%-12d%-7.1f\n",student[i].number,student[i].name,student[i].match,student[i].chinese,student[i].english,student[i].average);} 4.5运行结果 5项目五:学生成绩排序文件管理5.1项目设计要求(1)掌握文件指针的概念和运用;(2)掌握文件的相关操作:打开、读、写、关闭;(3)掌握文件的定位操作。5.2项目设计思路(1)定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩;(2)从键盘输入10个学生
t=a[i];
}
printf("thenewarryis:
\n");/*输出新排好顺序的数列*/
printf("pleaseinputanumber:
\n");/*插入一个数*/
scanf("%d",&x);
if(xa[10]=x;else{for(i=0;i<10;i++)if(a[i]{for(j=9;j>=i;j--)a[j+1]=a[j];a[i]=x;break;}}printf("thenewarryis:\n");for(i=0;i<=10;i++)printf("%3d",a[i]);printf("\n");for(i=0;i{t=a[i];a[i]=a[N-i-1];a[N-i-1]=t;}printf("newarryis:\n");for(i=0;i<=10;i++)/*输出反序数组*/printf("%3d",a[i]);printf("\n");}1.5运行结果: 2项目二名称:按条件实现学生成绩排名项目一:学生成绩排名2.1项目设计要求(1)复习数组,选择、循环结构程序设计;(2)掌握函数的定义、调用、声明,以及参数的两种传递方式。2.2项目设计思路(1)在函数中进行10个学生成绩从高到低排名sort(inta[10]);(2)改进第一步的函数为sort(inta[],intn),进行n个学生成绩从高到低排名;(3)改进第二步的函数为sort(inta[],intn,charstyle),将n个学生成绩从高到低排名,排名方式;(4)根据sort()函数的style参数进行,如style为‘a’按升序排,style为’d’按降序排。(a:ascending升,d:descending降)(5)尝试用三种方法排序:冒泡法、选择法,插入法排序。 2.3程序流程2.3程序代码#includevoidmain(){intn,a[1000];charstyle;intinput(inta[]);//声明输出函数charmode();//声明模式函数voidsort(inta[],intn,charstyle);//声明排序函数n=input(a);//调用输入函数style=mode();//调用模式函数sort(a,n,style);//调用排序函数getch();}intinput(inta[])//定义输入函数{inti,n;printf("请输入学生的个数(小于999):\n");//确定学生个数nscanf("%d",&n);printf("请输入%d个学生的成绩:\n",n);for(i=0;i{scanf("%d",&a[i]);}printf("\n");printf("输入的%d个学生成绩为:\n",n);for(i=0;i{printf("%5d",a[i]);if((i+1)%10==0)printf("\n");}printf("\n");returnn;//返回学生个数}charmode()//定义模式函数{charstyle;modeselect:printf("****************************\n");printf("*模式选择(A/D)*\n");printf("*A)升序排列*\n");printf("*D)降序排列*\n");printf("****************************\n");getchar();scanf("%c",&style);//选择模式if(style=='a'||style=='A')returnstyle;//如果为A/a就返回模式选择elseif(style=='d'||style=='D')returnstyle;//如果为D/d就返回模式选择elsegotomodeselect;//如果不是选项,就重新选择}voidsort(inta[],intn,charstyle)//定义排序函数{if(style=='a'||style=='A')//如果为升序排序{//使用选择法排序inti,j,t,min;for(i=0;i<=n-2;i++){min=i;for(j=i+1;j<=n-1;j++){if(a[min]>a[j]){min=j;}}t=a[i];a[i]=a[min];a[min]=t;}printf("\n");printf("选择法升序排序结果:\n");//输出排序后的结果for(i=0;i{printf("%5d",a[i]);if((i+1)%10==0)printf("\n");}}else//如果为降序排序{//使用选择法排序inti,j,t,max;for(i=0;i<=n-2;i++){max=i;for(j=i+1;j<=n-1;j++){if(a[max]{max=j;}}t=a[i];a[i]=a[max];a[max]=t;}printf("\n");printf("降序排序结果:\n");//输出排序后的结果for(i=0;i{printf("%5d",a[i]);if((i+1)%10==0)printf("\n");}}}2.5运行结果 3项目三:数组优化学生成绩排名项目一:学生成绩排名3.1项目设计要求(1)熟悉变量的指针和指向变量的的指针变量的概念和使用;(2)熟悉数组的指针和指向数组的的指针变量的概念和使用。3.2项目设计思路(1)定义一个数组stu[10]存放10个学生的成绩,从键盘输入数据,要求用指针实现;(2)将数组stu[10]的内容输出到屏幕上,要求用指针实现;(3)将成绩数组按照从高到低进行排序,要求用指针实现;(4)将第三步内容放在函数中实现,在主函数中调用实现排序,用指针实现,输出排序后的成绩单;(5)采用指针方法,输入字符串“studentscore”,复制该字符串并输出(复制字符串采用库函数或用户自定义函数)。3.3程序流程3.4程序代码#includemain(){int*p,i,a[10],j,k,t;printf("请输入数据:\n");p=a;//将数组的首地址赋给Pfor(i=0;i<10;i++)scanf("%d",p++);//依次输入数据printf("\n");printf("输出数组:\n");p=a;//将数组的首地址赋给Pfor(i=0;i<10;i++){printf("%d",*p);//用指针的方式输出数据p++;}printf("\n");p=a;//将数组的首地址赋给Pfor(i=0;i<9;i++){k=i;//用选择法排序for(j=i+1;j<10;j++)if(*(p+j)>*(p+k))k=j;if(k!=i){t=*(p+i);*(p+i)=*(p+k);*(p+k)=t;}}printf("输出排序后的数组:\n");for(p=a,i=0;i<10;i++){printf("%d",*p);p++;}printf("\n");}3.5运行结果 4项目四:学生成绩单制作项目一:学生成绩排名4.1项目设计要求(1)掌握结构体变量及数组的定义、赋值、初始化、输入、输出;(2)结构体数组的操作。4.2项目设计思路(1)定义一个结构体数组,存放10个学生的学号,姓名,math、Chinese、English三门课的成绩;(2)从键盘输入10个学生的以上内容;(3)输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩;(4)输出三门课程的平均分数最高的学生的学号、姓名及其平均分;(5)将10个学生按照平均分数从高到低进行排序,输出结果,格式如下所示:numbernamemathChineseEnglishaverage103tom909010095101alice90807080 4.3程序流程 4.4程序代码#includestructstudent{charnumber[10];charname[20];intmatch;intchinese;intenglish;floataverage,;}student[10],h;voidmain(){inti,j,max,t;floatmax1;printf("请输入学生的姓名、学号和成绩:\n");for(i=0;i<10;i++){printf("姓名:");scanf("%s",&student[i].name);printf("学号:");scanf("%s",&student[i].number);printf("数学:");scanf("%d",&student[i].match);printf("语文:");scanf("%d",&student[i].chinese);printf("英语:");scanf("%d",&student[i].english);printf("该学生的平均成绩是:\n");student[i].average=(student[i].match+student[i].chinese+student[i].english)/3.0;printf("%5.1f\n",student[i].average);}printf("输出数学成绩最高的学生资料:\n");max=student[0].match;for(i=0;i<10;i++)if(max{max=student[i].match;t=i;}printf("学号:%s\n姓名:%s%\n数学成绩:%5d\n",student[t].number,student[t].name,student[t].match);printf("输出平均成绩最高的学生的成绩:\n");max1=student[0].average;for(i=0;i<10;i++)if(max1{max1=student[i].average;t=i;}printf("学号:%s\n姓名:%s\n数学成绩:%d\n",student[t].number,student[t].name,student[t].match);for(j=0;j<10;j++)for(i=0;i<10-j;i++)if(student[i].average<=student[i+1].average){h=student[i];student[i]=student[i+1];student[i+1]=h;}printf("numbernamematchchineseEnglishaverage\n");for(i=0;i<10;i++)printf("%-7s%-10s%-8d%-10d%-12d%-7.1f\n",student[i].number,student[i].name,student[i].match,student[i].chinese,student[i].english,student[i].average);} 4.5运行结果 5项目五:学生成绩排序文件管理5.1项目设计要求(1)掌握文件指针的概念和运用;(2)掌握文件的相关操作:打开、读、写、关闭;(3)掌握文件的定位操作。5.2项目设计思路(1)定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩;(2)从键盘输入10个学生
a[10]=x;
else
if(a[i]{for(j=9;j>=i;j--)a[j+1]=a[j];a[i]=x;break;}}printf("thenewarryis:\n");for(i=0;i<=10;i++)printf("%3d",a[i]);printf("\n");for(i=0;i{t=a[i];a[i]=a[N-i-1];a[N-i-1]=t;}printf("newarryis:\n");for(i=0;i<=10;i++)/*输出反序数组*/printf("%3d",a[i]);printf("\n");}1.5运行结果: 2项目二名称:按条件实现学生成绩排名项目一:学生成绩排名2.1项目设计要求(1)复习数组,选择、循环结构程序设计;(2)掌握函数的定义、调用、声明,以及参数的两种传递方式。2.2项目设计思路(1)在函数中进行10个学生成绩从高到低排名sort(inta[10]);(2)改进第一步的函数为sort(inta[],intn),进行n个学生成绩从高到低排名;(3)改进第二步的函数为sort(inta[],intn,charstyle),将n个学生成绩从高到低排名,排名方式;(4)根据sort()函数的style参数进行,如style为‘a’按升序排,style为’d’按降序排。(a:ascending升,d:descending降)(5)尝试用三种方法排序:冒泡法、选择法,插入法排序。 2.3程序流程2.3程序代码#includevoidmain(){intn,a[1000];charstyle;intinput(inta[]);//声明输出函数charmode();//声明模式函数voidsort(inta[],intn,charstyle);//声明排序函数n=input(a);//调用输入函数style=mode();//调用模式函数sort(a,n,style);//调用排序函数getch();}intinput(inta[])//定义输入函数{inti,n;printf("请输入学生的个数(小于999):\n");//确定学生个数nscanf("%d",&n);printf("请输入%d个学生的成绩:\n",n);for(i=0;i{scanf("%d",&a[i]);}printf("\n");printf("输入的%d个学生成绩为:\n",n);for(i=0;i{printf("%5d",a[i]);if((i+1)%10==0)printf("\n");}printf("\n");returnn;//返回学生个数}charmode()//定义模式函数{charstyle;modeselect:printf("****************************\n");printf("*模式选择(A/D)*\n");printf("*A)升序排列*\n");printf("*D)降序排列*\n");printf("****************************\n");getchar();scanf("%c",&style);//选择模式if(style=='a'||style=='A')returnstyle;//如果为A/a就返回模式选择elseif(style=='d'||style=='D')returnstyle;//如果为D/d就返回模式选择elsegotomodeselect;//如果不是选项,就重新选择}voidsort(inta[],intn,charstyle)//定义排序函数{if(style=='a'||style=='A')//如果为升序排序{//使用选择法排序inti,j,t,min;for(i=0;i<=n-2;i++){min=i;for(j=i+1;j<=n-1;j++){if(a[min]>a[j]){min=j;}}t=a[i];a[i]=a[min];a[min]=t;}printf("\n");printf("选择法升序排序结果:\n");//输出排序后的结果for(i=0;i{printf("%5d",a[i]);if((i+1)%10==0)printf("\n");}}else//如果为降序排序{//使用选择法排序inti,j,t,max;for(i=0;i<=n-2;i++){max=i;for(j=i+1;j<=n-1;j++){if(a[max]{max=j;}}t=a[i];a[i]=a[max];a[max]=t;}printf("\n");printf("降序排序结果:\n");//输出排序后的结果for(i=0;i{printf("%5d",a[i]);if((i+1)%10==0)printf("\n");}}}2.5运行结果 3项目三:数组优化学生成绩排名项目一:学生成绩排名3.1项目设计要求(1)熟悉变量的指针和指向变量的的指针变量的概念和使用;(2)熟悉数组的指针和指向数组的的指针变量的概念和使用。3.2项目设计思路(1)定义一个数组stu[10]存放10个学生的成绩,从键盘输入数据,要求用指针实现;(2)将数组stu[10]的内容输出到屏幕上,要求用指针实现;(3)将成绩数组按照从高到低进行排序,要求用指针实现;(4)将第三步内容放在函数中实现,在主函数中调用实现排序,用指针实现,输出排序后的成绩单;(5)采用指针方法,输入字符串“studentscore”,复制该字符串并输出(复制字符串采用库函数或用户自定义函数)。3.3程序流程3.4程序代码#includemain(){int*p,i,a[10],j,k,t;printf("请输入数据:\n");p=a;//将数组的首地址赋给Pfor(i=0;i<10;i++)scanf("%d",p++);//依次输入数据printf("\n");printf("输出数组:\n");p=a;//将数组的首地址赋给Pfor(i=0;i<10;i++){printf("%d",*p);//用指针的方式输出数据p++;}printf("\n");p=a;//将数组的首地址赋给Pfor(i=0;i<9;i++){k=i;//用选择法排序for(j=i+1;j<10;j++)if(*(p+j)>*(p+k))k=j;if(k!=i){t=*(p+i);*(p+i)=*(p+k);*(p+k)=t;}}printf("输出排序后的数组:\n");for(p=a,i=0;i<10;i++){printf("%d",*p);p++;}printf("\n");}3.5运行结果 4项目四:学生成绩单制作项目一:学生成绩排名4.1项目设计要求(1)掌握结构体变量及数组的定义、赋值、初始化、输入、输出;(2)结构体数组的操作。4.2项目设计思路(1)定义一个结构体数组,存放10个学生的学号,姓名,math、Chinese、English三门课的成绩;(2)从键盘输入10个学生的以上内容;(3)输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩;(4)输出三门课程的平均分数最高的学生的学号、姓名及其平均分;(5)将10个学生按照平均分数从高到低进行排序,输出结果,格式如下所示:numbernamemathChineseEnglishaverage103tom909010095101alice90807080 4.3程序流程 4.4程序代码#includestructstudent{charnumber[10];charname[20];intmatch;intchinese;intenglish;floataverage,;}student[10],h;voidmain(){inti,j,max,t;floatmax1;printf("请输入学生的姓名、学号和成绩:\n");for(i=0;i<10;i++){printf("姓名:");scanf("%s",&student[i].name);printf("学号:");scanf("%s",&student[i].number);printf("数学:");scanf("%d",&student[i].match);printf("语文:");scanf("%d",&student[i].chinese);printf("英语:");scanf("%d",&student[i].english);printf("该学生的平均成绩是:\n");student[i].average=(student[i].match+student[i].chinese+student[i].english)/3.0;printf("%5.1f\n",student[i].average);}printf("输出数学成绩最高的学生资料:\n");max=student[0].match;for(i=0;i<10;i++)if(max{max=student[i].match;t=i;}printf("学号:%s\n姓名:%s%\n数学成绩:%5d\n",student[t].number,student[t].name,student[t].match);printf("输出平均成绩最高的学生的成绩:\n");max1=student[0].average;for(i=0;i<10;i++)if(max1{max1=student[i].average;t=i;}printf("学号:%s\n姓名:%s\n数学成绩:%d\n",student[t].number,student[t].name,student[t].match);for(j=0;j<10;j++)for(i=0;i<10-j;i++)if(student[i].average<=student[i+1].average){h=student[i];student[i]=student[i+1];student[i+1]=h;}printf("numbernamematchchineseEnglishaverage\n");for(i=0;i<10;i++)printf("%-7s%-10s%-8d%-10d%-12d%-7.1f\n",student[i].number,student[i].name,student[i].match,student[i].chinese,student[i].english,student[i].average);} 4.5运行结果 5项目五:学生成绩排序文件管理5.1项目设计要求(1)掌握文件指针的概念和运用;(2)掌握文件的相关操作:打开、读、写、关闭;(3)掌握文件的定位操作。5.2项目设计思路(1)定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩;(2)从键盘输入10个学生
for(j=9;j>=i;j--)
a[j+1]=a[j];
a[i]=x;
break;
for(i=0;i<=10;i++)
for(i=0;i{t=a[i];a[i]=a[N-i-1];a[N-i-1]=t;}printf("newarryis:\n");for(i=0;i<=10;i++)/*输出反序数组*/printf("%3d",a[i]);printf("\n");}1.5运行结果: 2项目二名称:按条件实现学生成绩排名项目一:学生成绩排名2.1项目设计要求(1)复习数组,选择、循环结构程序设计;(2)掌握函数的定义、调用、声明,以及参数的两种传递方式。2.2项目设计思路(1)在函数中进行10个学生成绩从高到低排名sort(inta[10]);(2)改进第一步的函数为sort(inta[],intn),进行n个学生成绩从高到低排名;(3)改进第二步的函数为sort(inta[],intn,charstyle),将n个学生成绩从高到低排名,排名方式;(4)根据sort()函数的style参数进行,如style为‘a’按升序排,style为’d’按降序排。(a:ascending升,d:descending降)(5)尝试用三种方法排序:冒泡法、选择法,插入法排序。 2.3程序流程2.3程序代码#includevoidmain(){intn,a[1000];charstyle;intinput(inta[]);//声明输出函数charmode();//声明模式函数voidsort(inta[],intn,charstyle);//声明排序函数n=input(a);//调用输入函数style=mode();//调用模式函数sort(a,n,style);//调用排序函数getch();}intinput(inta[])//定义输入函数{inti,n;printf("请输入学生的个数(小于999):\n");//确定学生个数nscanf("%d",&n);printf("请输入%d个学生的成绩:\n",n);for(i=0;i{scanf("%d",&a[i]);}printf("\n");printf("输入的%d个学生成绩为:\n",n);for(i=0;i{printf("%5d",a[i]);if((i+1)%10==0)printf("\n");}printf("\n");returnn;//返回学生个数}charmode()//定义模式函数{charstyle;modeselect:printf("****************************\n");printf("*模式选择(A/D)*\n");printf("*A)升序排列*\n");printf("*D)降序排列*\n");printf("****************************\n");getchar();scanf("%c",&style);//选择模式if(style=='a'||style=='A')returnstyle;//如果为A/a就返回模式选择elseif(style=='d'||style=='D')returnstyle;//如果为D/d就返回模式选择elsegotomodeselect;//如果不是选项,就重新选择}voidsort(inta[],intn,charstyle)//定义排序函数{if(style=='a'||style=='A')//如果为升序排序{//使用选择法排序inti,j,t,min;for(i=0;i<=n-2;i++){min=i;for(j=i+1;j<=n-1;j++){if(a[min]>a[j]){min=j;}}t=a[i];a[i]=a[min];a[min]=t;}printf("\n");printf("选择法升序排序结果:\n");//输出排序后的结果for(i=0;i{printf("%5d",a[i]);if((i+1)%10==0)printf("\n");}}else//如果为降序排序{//使用选择法排序inti,j,t,max;for(i=0;i<=n-2;i++){max=i;for(j=i+1;j<=n-1;j++){if(a[max]{max=j;}}t=a[i];a[i]=a[max];a[max]=t;}printf("\n");printf("降序排序结果:\n");//输出排序后的结果for(i=0;i{printf("%5d",a[i]);if((i+1)%10==0)printf("\n");}}}2.5运行结果 3项目三:数组优化学生成绩排名项目一:学生成绩排名3.1项目设计要求(1)熟悉变量的指针和指向变量的的指针变量的概念和使用;(2)熟悉数组的指针和指向数组的的指针变量的概念和使用。3.2项目设计思路(1)定义一个数组stu[10]存放10个学生的成绩,从键盘输入数据,要求用指针实现;(2)将数组stu[10]的内容输出到屏幕上,要求用指针实现;(3)将成绩数组按照从高到低进行排序,要求用指针实现;(4)将第三步内容放在函数中实现,在主函数中调用实现排序,用指针实现,输出排序后的成绩单;(5)采用指针方法,输入字符串“studentscore”,复制该字符串并输出(复制字符串采用库函数或用户自定义函数)。3.3程序流程3.4程序代码#includemain(){int*p,i,a[10],j,k,t;printf("请输入数据:\n");p=a;//将数组的首地址赋给Pfor(i=0;i<10;i++)scanf("%d",p++);//依次输入数据printf("\n");printf("输出数组:\n");p=a;//将数组的首地址赋给Pfor(i=0;i<10;i++){printf("%d",*p);//用指针的方式输出数据p++;}printf("\n");p=a;//将数组的首地址赋给Pfor(i=0;i<9;i++){k=i;//用选择法排序for(j=i+1;j<10;j++)if(*(p+j)>*(p+k))k=j;if(k!=i){t=*(p+i);*(p+i)=*(p+k);*(p+k)=t;}}printf("输出排序后的数组:\n");for(p=a,i=0;i<10;i++){printf("%d",*p);p++;}printf("\n");}3.5运行结果 4项目四:学生成绩单制作项目一:学生成绩排名4.1项目设计要求(1)掌握结构体变量及数组的定义、赋值、初始化、输入、输出;(2)结构体数组的操作。4.2项目设计思路(1)定义一个结构体数组,存放10个学生的学号,姓名,math、Chinese、English三门课的成绩;(2)从键盘输入10个学生的以上内容;(3)输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩;(4)输出三门课程的平均分数最高的学生的学号、姓名及其平均分;(5)将10个学生按照平均分数从高到低进行排序,输出结果,格式如下所示:numbernamemathChineseEnglishaverage103tom909010095101alice90807080 4.3程序流程 4.4程序代码#includestructstudent{charnumber[10];charname[20];intmatch;intchinese;intenglish;floataverage,;}student[10],h;voidmain(){inti,j,max,t;floatmax1;printf("请输入学生的姓名、学号和成绩:\n");for(i=0;i<10;i++){printf("姓名:");scanf("%s",&student[i].name);printf("学号:");scanf("%s",&student[i].number);printf("数学:");scanf("%d",&student[i].match);printf("语文:");scanf("%d",&student[i].chinese);printf("英语:");scanf("%d",&student[i].english);printf("该学生的平均成绩是:\n");student[i].average=(student[i].match+student[i].chinese+student[i].english)/3.0;printf("%5.1f\n",student[i].average);}printf("输出数学成绩最高的学生资料:\n");max=student[0].match;for(i=0;i<10;i++)if(max{max=student[i].match;t=i;}printf("学号:%s\n姓名:%s%\n数学成绩:%5d\n",student[t].number,student[t].name,student[t].match);printf("输出平均成绩最高的学生的成绩:\n");max1=student[0].average;for(i=0;i<10;i++)if(max1{max1=student[i].average;t=i;}printf("学号:%s\n姓名:%s\n数学成绩:%d\n",student[t].number,student[t].name,student[t].match);for(j=0;j<10;j++)for(i=0;i<10-j;i++)if(student[i].average<=student[i+1].average){h=student[i];student[i]=student[i+1];student[i+1]=h;}printf("numbernamematchchineseEnglishaverage\n");for(i=0;i<10;i++)printf("%-7s%-10s%-8d%-10d%-12d%-7.1f\n",student[i].number,student[i].name,student[i].match,student[i].chinese,student[i].english,student[i].average);} 4.5运行结果 5项目五:学生成绩排序文件管理5.1项目设计要求(1)掌握文件指针的概念和运用;(2)掌握文件的相关操作:打开、读、写、关闭;(3)掌握文件的定位操作。5.2项目设计思路(1)定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩;(2)从键盘输入10个学生
a[i]=a[N-i-1];
a[N-i-1]=t;
printf("newarryis:
for(i=0;i<=10;i++)/*输出反序数组*/
1.5运行结果:
按条件实现学生成绩排名项目一:
2.1项目设计要求
(1)复习数组,选择、循环结构程序设计;
(2)掌握函数的定义、调用、声明,以及参数的两种传递方式。
2.2项目设计思路
(1)在函数中进行10个学生成绩从高到低排名sort(inta[10]);
(2)改进第一步的函数为sort(inta[],intn),进行n个学生成绩从高到低排名;
(3)改进第二步的函数为sort(inta[],intn,charstyle),将n个学生成绩从高到低排名,排名方式;
(4)根据sort()函数的style参数进行,如style为‘a’按升序排,style为’d’按降序排。
(a:
ascending升,d:
descending降)
(5)尝试用三种方法排序:
冒泡法、选择法,插入法排序。
2.3程序流程
2.3程序代码
intn,a[1000];
charstyle;
intinput(inta[]);//声明输出函数
charmode();//声明模式函数
voidsort(inta[],intn,charstyle);//声明排序函数
n=input(a);//调用输入函数
style=mode();//调用模式函数
sort(a,n,style);//调用排序函数
getch();
intinput(inta[])//定义输入函数
inti,n;
printf("请输入学生的个数(小于999):
\n");//确定学生个数n
scanf("%d",&n);
printf("请输入%d个学生的成绩:
\n",n);
for(i=0;i{scanf("%d",&a[i]);}printf("\n");printf("输入的%d个学生成绩为:\n",n);for(i=0;i{printf("%5d",a[i]);if((i+1)%10==0)printf("\n");}printf("\n");returnn;//返回学生个数}charmode()//定义模式函数{charstyle;modeselect:printf("****************************\n");printf("*模式选择(A/D)*\n");printf("*A)升序排列*\n");printf("*D)降序排列*\n");printf("****************************\n");getchar();scanf("%c",&style);//选择模式if(style=='a'||style=='A')returnstyle;//如果为A/a就返回模式选择elseif(style=='d'||style=='D')returnstyle;//如果为D/d就返回模式选择elsegotomodeselect;//如果不是选项,就重新选择}voidsort(inta[],intn,charstyle)//定义排序函数{if(style=='a'||style=='A')//如果为升序排序{//使用选择法排序inti,j,t,min;for(i=0;i<=n-2;i++){min=i;for(j=i+1;j<=n-1;j++){if(a[min]>a[j]){min=j;}}t=a[i];a[i]=a[min];a[min]=t;}printf("\n");printf("选择法升序排序结果:\n");//输出排序后的结果for(i=0;i{printf("%5d",a[i]);if((i+1)%10==0)printf("\n");}}else//如果为降序排序{//使用选择法排序inti,j,t,max;for(i=0;i<=n-2;i++){max=i;for(j=i+1;j<=n-1;j++){if(a[max]{max=j;}}t=a[i];a[i]=a[max];a[max]=t;}printf("\n");printf("降序排序结果:\n");//输出排序后的结果for(i=0;i{printf("%5d",a[i]);if((i+1)%10==0)printf("\n");}}}2.5运行结果 3项目三:数组优化学生成绩排名项目一:学生成绩排名3.1项目设计要求(1)熟悉变量的指针和指向变量的的指针变量的概念和使用;(2)熟悉数组的指针和指向数组的的指针变量的概念和使用。3.2项目设计思路(1)定义一个数组stu[10]存放10个学生的成绩,从键盘输入数据,要求用指针实现;(2)将数组stu[10]的内容输出到屏幕上,要求用指针实现;(3)将成绩数组按照从高到低进行排序,要求用指针实现;(4)将第三步内容放在函数中实现,在主函数中调用实现排序,用指针实现,输出排序后的成绩单;(5)采用指针方法,输入字符串“studentscore”,复制该字符串并输出(复制字符串采用库函数或用户自定义函数)。3.3程序流程3.4程序代码#includemain(){int*p,i,a[10],j,k,t;printf("请输入数据:\n");p=a;//将数组的首地址赋给Pfor(i=0;i<10;i++)scanf("%d",p++);//依次输入数据printf("\n");printf("输出数组:\n");p=a;//将数组的首地址赋给Pfor(i=0;i<10;i++){printf("%d",*p);//用指针的方式输出数据p++;}printf("\n");p=a;//将数组的首地址赋给Pfor(i=0;i<9;i++){k=i;//用选择法排序for(j=i+1;j<10;j++)if(*(p+j)>*(p+k))k=j;if(k!=i){t=*(p+i);*(p+i)=*(p+k);*(p+k)=t;}}printf("输出排序后的数组:\n");for(p=a,i=0;i<10;i++){printf("%d",*p);p++;}printf("\n");}3.5运行结果 4项目四:学生成绩单制作项目一:学生成绩排名4.1项目设计要求(1)掌握结构体变量及数组的定义、赋值、初始化、输入、输出;(2)结构体数组的操作。4.2项目设计思路(1)定义一个结构体数组,存放10个学生的学号,姓名,math、Chinese、English三门课的成绩;(2)从键盘输入10个学生的以上内容;(3)输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩;(4)输出三门课程的平均分数最高的学生的学号、姓名及其平均分;(5)将10个学生按照平均分数从高到低进行排序,输出结果,格式如下所示:numbernamemathChineseEnglishaverage103tom909010095101alice90807080 4.3程序流程 4.4程序代码#includestructstudent{charnumber[10];charname[20];intmatch;intchinese;intenglish;floataverage,;}student[10],h;voidmain(){inti,j,max,t;floatmax1;printf("请输入学生的姓名、学号和成绩:\n");for(i=0;i<10;i++){printf("姓名:");scanf("%s",&student[i].name);printf("学号:");scanf("%s",&student[i].number);printf("数学:");scanf("%d",&student[i].match);printf("语文:");scanf("%d",&student[i].chinese);printf("英语:");scanf("%d",&student[i].english);printf("该学生的平均成绩是:\n");student[i].average=(student[i].match+student[i].chinese+student[i].english)/3.0;printf("%5.1f\n",student[i].average);}printf("输出数学成绩最高的学生资料:\n");max=student[0].match;for(i=0;i<10;i++)if(max{max=student[i].match;t=i;}printf("学号:%s\n姓名:%s%\n数学成绩:%5d\n",student[t].number,student[t].name,student[t].match);printf("输出平均成绩最高的学生的成绩:\n");max1=student[0].average;for(i=0;i<10;i++)if(max1{max1=student[i].average;t=i;}printf("学号:%s\n姓名:%s\n数学成绩:%d\n",student[t].number,student[t].name,student[t].match);for(j=0;j<10;j++)for(i=0;i<10-j;i++)if(student[i].average<=student[i+1].average){h=student[i];student[i]=student[i+1];student[i+1]=h;}printf("numbernamematchchineseEnglishaverage\n");for(i=0;i<10;i++)printf("%-7s%-10s%-8d%-10d%-12d%-7.1f\n",student[i].number,student[i].name,student[i].match,student[i].chinese,student[i].english,student[i].average);} 4.5运行结果 5项目五:学生成绩排序文件管理5.1项目设计要求(1)掌握文件指针的概念和运用;(2)掌握文件的相关操作:打开、读、写、关闭;(3)掌握文件的定位操作。5.2项目设计思路(1)定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩;(2)从键盘输入10个学生
printf("输入的%d个学生成绩为:
for(i=0;i{printf("%5d",a[i]);if((i+1)%10==0)printf("\n");}printf("\n");returnn;//返回学生个数}charmode()//定义模式函数{charstyle;modeselect:printf("****************************\n");printf("*模式选择(A/D)*\n");printf("*A)升序排列*\n");printf("*D)降序排列*\n");printf("****************************\n");getchar();scanf("%c",&style);//选择模式if(style=='a'||style=='A')returnstyle;//如果为A/a就返回模式选择elseif(style=='d'||style=='D')returnstyle;//如果为D/d就返回模式选择elsegotomodeselect;//如果不是选项,就重新选择}voidsort(inta[],intn,charstyle)//定义排序函数{if(style=='a'||style=='A')//如果为升序排序{//使用选择法排序inti,j,t,min;for(i=0;i<=n-2;i++){min=i;for(j=i+1;j<=n-1;j++){if(a[min]>a[j]){min=j;}}t=a[i];a[i]=a[min];a[min]=t;}printf("\n");printf("选择法升序排序结果:\n");//输出排序后的结果for(i=0;i{printf("%5d",a[i]);if((i+1)%10==0)printf("\n");}}else//如果为降序排序{//使用选择法排序inti,j,t,max;for(i=0;i<=n-2;i++){max=i;for(j=i+1;j<=n-1;j++){if(a[max]{max=j;}}t=a[i];a[i]=a[max];a[max]=t;}printf("\n");printf("降序排序结果:\n");//输出排序后的结果for(i=0;i{printf("%5d",a[i]);if((i+1)%10==0)printf("\n");}}}2.5运行结果 3项目三:数组优化学生成绩排名项目一:学生成绩排名3.1项目设计要求(1)熟悉变量的指针和指向变量的的指针变量的概念和使用;(2)熟悉数组的指针和指向数组的的指针变量的概念和使用。3.2项目设计思路(1)定义一个数组stu[10]存放10个学生的成绩,从键盘输入数据,要求用指针实现;(2)将数组stu[10]的内容输出到屏幕上,要求用指针实现;(3)将成绩数组按照从高到低进行排序,要求用指针实现;(4)将第三步内容放在函数中实现,在主函数中调用实现排序,用指针实现,输出排序后的成绩单;(5)采用指针方法,输入字符串“studentscore”,复制该字符串并输出(复制字符串采用库函数或用户自定义函数)。3.3程序流程3.4程序代码#includemain(){int*p,i,a[10],j,k,t;printf("请输入数据:\n");p=a;//将数组的首地址赋给Pfor(i=0;i<10;i++)scanf("%d",p++);//依次输入数据printf("\n");printf("输出数组:\n");p=a;//将数组的首地址赋给Pfor(i=0;i<10;i++){printf("%d",*p);//用指针的方式输出数据p++;}printf("\n");p=a;//将数组的首地址赋给Pfor(i=0;i<9;i++){k=i;//用选择法排序for(j=i+1;j<10;j++)if(*(p+j)>*(p+k))k=j;if(k!=i){t=*(p+i);*(p+i)=*(p+k);*(p+k)=t;}}printf("输出排序后的数组:\n");for(p=a,i=0;i<10;i++){printf("%d",*p);p++;}printf("\n");}3.5运行结果 4项目四:学生成绩单制作项目一:学生成绩排名4.1项目设计要求(1)掌握结构体变量及数组的定义、赋值、初始化、输入、输出;(2)结构体数组的操作。4.2项目设计思路(1)定义一个结构体数组,存放10个学生的学号,姓名,math、Chinese、English三门课的成绩;(2)从键盘输入10个学生的以上内容;(3)输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩;(4)输出三门课程的平均分数最高的学生的学号、姓名及其平均分;(5)将10个学生按照平均分数从高到低进行排序,输出结果,格式如下所示:numbernamemathChineseEnglishaverage103tom909010095101alice90807080 4.3程序流程 4.4程序代码#includestructstudent{charnumber[10];charname[20];intmatch;intchinese;intenglish;floataverage,;}student[10],h;voidmain(){inti,j,max,t;floatmax1;printf("请输入学生的姓名、学号和成绩:\n");for(i=0;i<10;i++){printf("姓名:");scanf("%s",&student[i].name);printf("学号:");scanf("%s",&student[i].number);printf("数学:");scanf("%d",&student[i].match);printf("语文:");scanf("%d",&student[i].chinese);printf("英语:");scanf("%d",&student[i].english);printf("该学生的平均成绩是:\n");student[i].average=(student[i].match+student[i].chinese+student[i].english)/3.0;printf("%5.1f\n",student[i].average);}printf("输出数学成绩最高的学生资料:\n");max=student[0].match;for(i=0;i<10;i++)if(max{max=student[i].match;t=i;}printf("学号:%s\n姓名:%s%\n数学成绩:%5d\n",student[t].number,student[t].name,student[t].match);printf("输出平均成绩最高的学生的成绩:\n");max1=student[0].average;for(i=0;i<10;i++)if(max1{max1=student[i].average;t=i;}printf("学号:%s\n姓名:%s\n数学成绩:%d\n",student[t].number,student[t].name,student[t].match);for(j=0;j<10;j++)for(i=0;i<10-j;i++)if(student[i].average<=student[i+1].average){h=student[i];student[i]=student[i+1];student[i+1]=h;}printf("numbernamematchchineseEnglishaverage\n");for(i=0;i<10;i++)printf("%-7s%-10s%-8d%-10d%-12d%-7.1f\n",student[i].number,student[i].name,student[i].match,student[i].chinese,student[i].english,student[i].average);} 4.5运行结果 5项目五:学生成绩排序文件管理5.1项目设计要求(1)掌握文件指针的概念和运用;(2)掌握文件的相关操作:打开、读、写、关闭;(3)掌握文件的定位操作。5.2项目设计思路(1)定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩;(2)从键盘输入10个学生
printf("%5d",a[i]);
if((i+1)%10==0)
returnn;//返回学生个数
charmode()//定义模式函数
modeselect:
printf("****************************\n");
printf("*模式选择(A/D)*\n");
printf("*A)升序排列*\n");
printf("*D)降序排列*\n");
getchar();
scanf("%c",&style);//选择模式
if(style=='a'||style=='A')
returnstyle;//如果为A/a就返回模式选择
elseif(style=='d'||style=='D')
returnstyle;//如果为D/d就返回模式选择
gotomodeselect;//如果不是选项,就重新选择
voidsort(inta[],intn,charstyle)//定义排序函数
if(style=='a'||style=='A')//如果为升序排序
{//使用选择法排序
inti,j,t,min;
for(i=0;i<=n-2;i++)
min=i;
for(j=i+1;j<=n-1;j++)
if(a[min]>a[j])
min=j;
a[i]=a[min];
a[min]=t;
printf("选择法升序排序结果:
\n");//输出排序后的结果
for(i=0;i{printf("%5d",a[i]);if((i+1)%10==0)printf("\n");}}else//如果为降序排序{//使用选择法排序inti,j,t,max;for(i=0;i<=n-2;i++){max=i;for(j=i+1;j<=n-1;j++){if(a[max]{max=j;}}t=a[i];a[i]=a[max];a[max]=t;}printf("\n");printf("降序排序结果:\n");//输出排序后的结果for(i=0;i{printf("%5d",a[i]);if((i+1)%10==0)printf("\n");}}}2.5运行结果 3项目三:数组优化学生成绩排名项目一:学生成绩排名3.1项目设计要求(1)熟悉变量的指针和指向变量的的指针变量的概念和使用;(2)熟悉数组的指针和指向数组的的指针变量的概念和使用。3.2项目设计思路(1)定义一个数组stu[10]存放10个学生的成绩,从键盘输入数据,要求用指针实现;(2)将数组stu[10]的内容输出到屏幕上,要求用指针实现;(3)将成绩数组按照从高到低进行排序,要求用指针实现;(4)将第三步内容放在函数中实现,在主函数中调用实现排序,用指针实现,输出排序后的成绩单;(5)采用指针方法,输入字符串“studentscore”,复制该字符串并输出(复制字符串采用库函数或用户自定义函数)。3.3程序流程3.4程序代码#includemain(){int*p,i,a[10],j,k,t;printf("请输入数据:\n");p=a;//将数组的首地址赋给Pfor(i=0;i<10;i++)scanf("%d",p++);//依次输入数据printf("\n");printf("输出数组:\n");p=a;//将数组的首地址赋给Pfor(i=0;i<10;i++){printf("%d",*p);//用指针的方式输出数据p++;}printf("\n");p=a;//将数组的首地址赋给Pfor(i=0;i<9;i++){k=i;//用选择法排序for(j=i+1;j<10;j++)if(*(p+j)>*(p+k))k=j;if(k!=i){t=*(p+i);*(p+i)=*(p+k);*(p+k)=t;}}printf("输出排序后的数组:\n");for(p=a,i=0;i<10;i++){printf("%d",*p);p++;}printf("\n");}3.5运行结果 4项目四:学生成绩单制作项目一:学生成绩排名4.1项目设计要求(1)掌握结构体变量及数组的定义、赋值、初始化、输入、输出;(2)结构体数组的操作。4.2项目设计思路(1)定义一个结构体数组,存放10个学生的学号,姓名,math、Chinese、English三门课的成绩;(2)从键盘输入10个学生的以上内容;(3)输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩;(4)输出三门课程的平均分数最高的学生的学号、姓名及其平均分;(5)将10个学生按照平均分数从高到低进行排序,输出结果,格式如下所示:numbernamemathChineseEnglishaverage103tom909010095101alice90807080 4.3程序流程 4.4程序代码#includestructstudent{charnumber[10];charname[20];intmatch;intchinese;intenglish;floataverage,;}student[10],h;voidmain(){inti,j,max,t;floatmax1;printf("请输入学生的姓名、学号和成绩:\n");for(i=0;i<10;i++){printf("姓名:");scanf("%s",&student[i].name);printf("学号:");scanf("%s",&student[i].number);printf("数学:");scanf("%d",&student[i].match);printf("语文:");scanf("%d",&student[i].chinese);printf("英语:");scanf("%d",&student[i].english);printf("该学生的平均成绩是:\n");student[i].average=(student[i].match+student[i].chinese+student[i].english)/3.0;printf("%5.1f\n",student[i].average);}printf("输出数学成绩最高的学生资料:\n");max=student[0].match;for(i=0;i<10;i++)if(max{max=student[i].match;t=i;}printf("学号:%s\n姓名:%s%\n数学成绩:%5d\n",student[t].number,student[t].name,student[t].match);printf("输出平均成绩最高的学生的成绩:\n");max1=student[0].average;for(i=0;i<10;i++)if(max1{max1=student[i].average;t=i;}printf("学号:%s\n姓名:%s\n数学成绩:%d\n",student[t].number,student[t].name,student[t].match);for(j=0;j<10;j++)for(i=0;i<10-j;i++)if(student[i].average<=student[i+1].average){h=student[i];student[i]=student[i+1];student[i+1]=h;}printf("numbernamematchchineseEnglishaverage\n");for(i=0;i<10;i++)printf("%-7s%-10s%-8d%-10d%-12d%-7.1f\n",student[i].number,student[i].name,student[i].match,student[i].chinese,student[i].english,student[i].average);} 4.5运行结果 5项目五:学生成绩排序文件管理5.1项目设计要求(1)掌握文件指针的概念和运用;(2)掌握文件的相关操作:打开、读、写、关闭;(3)掌握文件的定位操作。5.2项目设计思路(1)定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩;(2)从键盘输入10个学生
else//如果为降序排序
inti,j,t,max;
max=i;
if(a[max]{max=j;}}t=a[i];a[i]=a[max];a[max]=t;}printf("\n");printf("降序排序结果:\n");//输出排序后的结果for(i=0;i{printf("%5d",a[i]);if((i+1)%10==0)printf("\n");}}}2.5运行结果 3项目三:数组优化学生成绩排名项目一:学生成绩排名3.1项目设计要求(1)熟悉变量的指针和指向变量的的指针变量的概念和使用;(2)熟悉数组的指针和指向数组的的指针变量的概念和使用。3.2项目设计思路(1)定义一个数组stu[10]存放10个学生的成绩,从键盘输入数据,要求用指针实现;(2)将数组stu[10]的内容输出到屏幕上,要求用指针实现;(3)将成绩数组按照从高到低进行排序,要求用指针实现;(4)将第三步内容放在函数中实现,在主函数中调用实现排序,用指针实现,输出排序后的成绩单;(5)采用指针方法,输入字符串“studentscore”,复制该字符串并输出(复制字符串采用库函数或用户自定义函数)。3.3程序流程3.4程序代码#includemain(){int*p,i,a[10],j,k,t;printf("请输入数据:\n");p=a;//将数组的首地址赋给Pfor(i=0;i<10;i++)scanf("%d",p++);//依次输入数据printf("\n");printf("输出数组:\n");p=a;//将数组的首地址赋给Pfor(i=0;i<10;i++){printf("%d",*p);//用指针的方式输出数据p++;}printf("\n");p=a;//将数组的首地址赋给Pfor(i=0;i<9;i++){k=i;//用选择法排序for(j=i+1;j<10;j++)if(*(p+j)>*(p+k))k=j;if(k!=i){t=*(p+i);*(p+i)=*(p+k);*(p+k)=t;}}printf("输出排序后的数组:\n");for(p=a,i=0;i<10;i++){printf("%d",*p);p++;}printf("\n");}3.5运行结果 4项目四:学生成绩单制作项目一:学生成绩排名4.1项目设计要求(1)掌握结构体变量及数组的定义、赋值、初始化、输入、输出;(2)结构体数组的操作。4.2项目设计思路(1)定义一个结构体数组,存放10个学生的学号,姓名,math、Chinese、English三门课的成绩;(2)从键盘输入10个学生的以上内容;(3)输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩;(4)输出三门课程的平均分数最高的学生的学号、姓名及其平均分;(5)将10个学生按照平均分数从高到低进行排序,输出结果,格式如下所示:numbernamemathChineseEnglishaverage103tom909010095101alice90807080 4.3程序流程 4.4程序代码#includestructstudent{charnumber[10];charname[20];intmatch;intchinese;intenglish;floataverage,;}student[10],h;voidmain(){inti,j,max,t;floatmax1;printf("请输入学生的姓名、学号和成绩:\n");for(i=0;i<10;i++){printf("姓名:");scanf("%s",&student[i].name);printf("学号:");scanf("%s",&student[i].number);printf("数学:");scanf("%d",&student[i].match);printf("语文:");scanf("%d",&student[i].chinese);printf("英语:");scanf("%d",&student[i].english);printf("该学生的平均成绩是:\n");student[i].average=(student[i].match+student[i].chinese+student[i].english)/3.0;printf("%5.1f\n",student[i].average);}printf("输出数学成绩最高的学生资料:\n");max=student[0].match;for(i=0;i<10;i++)if(max{max=student[i].match;t=i;}printf("学号:%s\n姓名:%s%\n数学成绩:%5d\n",student[t].number,student[t].name,student[t].match);printf("输出平均成绩最高的学生的成绩:\n");max1=student[0].average;for(i=0;i<10;i++)if(max1{max1=student[i].average;t=i;}printf("学号:%s\n姓名:%s\n数学成绩:%d\n",student[t].number,student[t].name,student[t].match);for(j=0;j<10;j++)for(i=0;i<10-j;i++)if(student[i].average<=student[i+1].average){h=student[i];student[i]=student[i+1];student[i+1]=h;}printf("numbernamematchchineseEnglishaverage\n");for(i=0;i<10;i++)printf("%-7s%-10s%-8d%-10d%-12d%-7.1f\n",student[i].number,student[i].name,student[i].match,student[i].chinese,student[i].english,student[i].average);} 4.5运行结果 5项目五:学生成绩排序文件管理5.1项目设计要求(1)掌握文件指针的概念和运用;(2)掌握文件的相关操作:打开、读、写、关闭;(3)掌握文件的定位操作。5.2项目设计思路(1)定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩;(2)从键盘输入10个学生
max=j;
a[i]=a[max];
a[max]=t;
printf("降序排序结果:
for(i=0;i{printf("%5d",a[i]);if((i+1)%10==0)printf("\n");}}}2.5运行结果 3项目三:数组优化学生成绩排名项目一:学生成绩排名3.1项目设计要求(1)熟悉变量的指针和指向变量的的指针变量的概念和使用;(2)熟悉数组的指针和指向数组的的指针变量的概念和使用。3.2项目设计思路(1)定义一个数组stu[10]存放10个学生的成绩,从键盘输入数据,要求用指针实现;(2)将数组stu[10]的内容输出到屏幕上,要求用指针实现;(3)将成绩数组按照从高到低进行排序,要求用指针实现;(4)将第三步内容放在函数中实现,在主函数中调用实现排序,用指针实现,输出排序后的成绩单;(5)采用指针方法,输入字符串“studentscore”,复制该字符串并输出(复制字符串采用库函数或用户自定义函数)。3.3程序流程3.4程序代码#includemain(){int*p,i,a[10],j,k,t;printf("请输入数据:\n");p=a;//将数组的首地址赋给Pfor(i=0;i<10;i++)scanf("%d",p++);//依次输入数据printf("\n");printf("输出数组:\n");p=a;//将数组的首地址赋给Pfor(i=0;i<10;i++){printf("%d",*p);//用指针的方式输出数据p++;}printf("\n");p=a;//将数组的首地址赋给Pfor(i=0;i<9;i++){k=i;//用选择法排序for(j=i+1;j<10;j++)if(*(p+j)>*(p+k))k=j;if(k!=i){t=*(p+i);*(p+i)=*(p+k);*(p+k)=t;}}printf("输出排序后的数组:\n");for(p=a,i=0;i<10;i++){printf("%d",*p);p++;}printf("\n");}3.5运行结果 4项目四:学生成绩单制作项目一:学生成绩排名4.1项目设计要求(1)掌握结构体变量及数组的定义、赋值、初始化、输入、输出;(2)结构体数组的操作。4.2项目设计思路(1)定义一个结构体数组,存放10个学生的学号,姓名,math、Chinese、English三门课的成绩;(2)从键盘输入10个学生的以上内容;(3)输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩;(4)输出三门课程的平均分数最高的学生的学号、姓名及其平均分;(5)将10个学生按照平均分数从高到低进行排序,输出结果,格式如下所示:numbernamemathChineseEnglishaverage103tom909010095101alice90807080 4.3程序流程 4.4程序代码#includestructstudent{charnumber[10];charname[20];intmatch;intchinese;intenglish;floataverage,;}student[10],h;voidmain(){inti,j,max,t;floatmax1;printf("请输入学生的姓名、学号和成绩:\n");for(i=0;i<10;i++){printf("姓名:");scanf("%s",&student[i].name);printf("学号:");scanf("%s",&student[i].number);printf("数学:");scanf("%d",&student[i].match);printf("语文:");scanf("%d",&student[i].chinese);printf("英语:");scanf("%d",&student[i].english);printf("该学生的平均成绩是:\n");student[i].average=(student[i].match+student[i].chinese+student[i].english)/3.0;printf("%5.1f\n",student[i].average);}printf("输出数学成绩最高的学生资料:\n");max=student[0].match;for(i=0;i<10;i++)if(max{max=student[i].match;t=i;}printf("学号:%s\n姓名:%s%\n数学成绩:%5d\n",student[t].number,student[t].name,student[t].match);printf("输出平均成绩最高的学生的成绩:\n");max1=student[0].average;for(i=0;i<10;i++)if(max1{max1=student[i].average;t=i;}printf("学号:%s\n姓名:%s\n数学成绩:%d\n",student[t].number,student[t].name,student[t].match);for(j=0;j<10;j++)for(i=0;i<10-j;i++)if(student[i].average<=student[i+1].average){h=student[i];student[i]=student[i+1];student[i+1]=h;}printf("numbernamematchchineseEnglishaverage\n");for(i=0;i<10;i++)printf("%-7s%-10s%-8d%-10d%-12d%-7.1f\n",student[i].number,student[i].name,student[i].match,student[i].chinese,student[i].english,student[i].average);} 4.5运行结果 5项目五:学生成绩排序文件管理5.1项目设计要求(1)掌握文件指针的概念和运用;(2)掌握文件的相关操作:打开、读、写、关闭;(3)掌握文件的定位操作。5.2项目设计思路(1)定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩;(2)从键盘输入10个学生
2.5运行结果
3项目三:
数组优化学生成绩排名项目一:
3.1项目设计要求
(1)熟悉变量的指针和指向变量的的指针变量的概念和使用;
(2)熟悉数组的指针和指向数组的的指针变量的概念和使用。
3.2项目设计思路
(1)定义一个数组stu[10]存放10个学生的成绩,从键盘输入数据,要求用指针实现;
(2)将数组stu[10]的内容输出到屏幕上,要求用指针实现;
(3)将成绩数组按照从高到低进行排序,要求用指针实现;
(4)将第三步内容放在函数中实现,在主函数中调用实现排序,用指针实现,输出排序后的成绩单;
(5)采用指针方法,输入字符串“studentscore”,复制该字符串并输出(复制字符串采用库函数或用户自定义函数)。
3.3程序流程
3.4程序代码
main()
int*p,i,a[10],j,k,t;
printf("请输入数据:
p=a;//将数组的首地址赋给P
scanf("%d",p++);//依次输入数据
printf("输出数组:
printf("%d",*p);//用指针的方式输出数据
p++;
for(i=0;i<9;i++)
k=i;//用选择法排序
for(j=i+1;j<10;j++)
if(*(p+j)>*(p+k))k=j;
if(k!
=i)
t=*(p+i);
*(p+i)=*(p+k);
*(p+k)=t;
printf("输出排序后的数组:
for(p=a,i=0;i<10;i++)
printf("%d",*p);
3.5运行结果
4项目四:
学生成绩单制作项目一:
4.1项目设计要求
(1)掌握结构体变量及数组的定义、赋值、初始化、输入、输出;
(2)结构体数组的操作。
4.2项目设计思路
(1)定义一个结构体数组,存放10个学生的学号,姓名,math、Chinese、English三门课的成绩;
(2)从键盘输入10个学生的以上内容;
(3)输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩;
(4)输出三门课程的平均分数最高的学生的学号、姓名及其平均分;
(5)将10个学生按照平均分数从高到低进行排序,输出结果,格式如下所示:
numbernamemathChineseEnglishaverage
103tom909010095
101alice90807080
4.3程序流程
4.4程序代码
structstudent
charnumber[10];
charname[20];
intmatch;
intchinese;
intenglish;
floataverage,;
}student[10],h;
inti,j,max,t;
floatmax1;
printf("请输入学生的姓名、学号和成绩:
printf("姓名:
");
scanf("%s",&student[i].name);
printf("学号:
scanf("%s",&student[i].number);
printf("数学:
scanf("%d",&student[i].match);
printf("语文:
scanf("%d",&student[i].chinese);
printf("英语:
scanf("%d",&student[i].english);
printf("该学生的平均成绩是:
student[i].average=(student[i].match+student[i].chinese+student[i].english)/3.0;
printf("%5.1f\n",student[i].average);
printf("输出数学成绩最高的学生资料:
max=student[0].match;
if(max{max=student[i].match;t=i;}printf("学号:%s\n姓名:%s%\n数学成绩:%5d\n",student[t].number,student[t].name,student[t].match);printf("输出平均成绩最高的学生的成绩:\n");max1=student[0].average;for(i=0;i<10;i++)if(max1{max1=student[i].average;t=i;}printf("学号:%s\n姓名:%s\n数学成绩:%d\n",student[t].number,student[t].name,student[t].match);for(j=0;j<10;j++)for(i=0;i<10-j;i++)if(student[i].average<=student[i+1].average){h=student[i];student[i]=student[i+1];student[i+1]=h;}printf("numbernamematchchineseEnglishaverage\n");for(i=0;i<10;i++)printf("%-7s%-10s%-8d%-10d%-12d%-7.1f\n",student[i].number,student[i].name,student[i].match,student[i].chinese,student[i].english,student[i].average);} 4.5运行结果 5项目五:学生成绩排序文件管理5.1项目设计要求(1)掌握文件指针的概念和运用;(2)掌握文件的相关操作:打开、读、写、关闭;(3)掌握文件的定位操作。5.2项目设计思路(1)定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩;(2)从键盘输入10个学生
max=student[i].match;
t=i;
%s\n姓名:
%s%\n数学成绩:
%5d\n",student[t].number,student[t].name,student[t].match);
printf("输出平均成绩最高的学生的成绩:
max1=student[0].average;
if(max1{max1=student[i].average;t=i;}printf("学号:%s\n姓名:%s\n数学成绩:%d\n",student[t].number,student[t].name,student[t].match);for(j=0;j<10;j++)for(i=0;i<10-j;i++)if(student[i].average<=student[i+1].average){h=student[i];student[i]=student[i+1];student[i+1]=h;}printf("numbernamematchchineseEnglishaverage\n");for(i=0;i<10;i++)printf("%-7s%-10s%-8d%-10d%-12d%-7.1f\n",student[i].number,student[i].name,student[i].match,student[i].chinese,student[i].english,student[i].average);} 4.5运行结果 5项目五:学生成绩排序文件管理5.1项目设计要求(1)掌握文件指针的概念和运用;(2)掌握文件的相关操作:打开、读、写、关闭;(3)掌握文件的定位操作。5.2项目设计思路(1)定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩;(2)从键盘输入10个学生
max1=student[i].average;
%s\n数学成绩:
%d\n",student[t].number,student[t].name,student[t].match);
for(j=0;j<10;j++)
for(i=0;i<10-j;i++)
if(student[i].average<=student[i+1].average)
h=student[i];
student[i]=student[i+1];
student[i+1]=h;
printf("numbernamematchchineseEnglishaverage\n");
for(i=0;i<10;i++)printf("%-7s%-10s%-8d%-10d%-12d%-7.1f\n",student[i].number,student[i].name,student[i].match,student[i].chinese,student[i].english,student[i].average);
4.5运行结果
5项目五:
5.1项目设计要求
(1)掌握文件指针的概念和运用;
(2)掌握文件的相关操作:
打开、读、写、关闭;
(3)掌握文件的定位操作。
5.2项目设计思路
(1)定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩;
(2)从键盘输入10个学生
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1