C语言实训报告学生成绩管理系统.docx

上传人:b****7 文档编号:9395643 上传时间:2023-02-04 格式:DOCX 页数:61 大小:1MB
下载 相关 举报
C语言实训报告学生成绩管理系统.docx_第1页
第1页 / 共61页
C语言实训报告学生成绩管理系统.docx_第2页
第2页 / 共61页
C语言实训报告学生成绩管理系统.docx_第3页
第3页 / 共61页
C语言实训报告学生成绩管理系统.docx_第4页
第4页 / 共61页
C语言实训报告学生成绩管理系统.docx_第5页
第5页 / 共61页
点击查看更多>>
下载资源
资源描述

C语言实训报告学生成绩管理系统.docx

《C语言实训报告学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《C语言实训报告学生成绩管理系统.docx(61页珍藏版)》请在冰豆网上搜索。

C语言实训报告学生成绩管理系统.docx

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项目设计要求

(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");

for(i=0;i<10;i++)

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(x

a[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程序代码

#include

voidmain()

{

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就返回模式选择

else

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;

}

}

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程序代码

#include

main()

{

int*p,i,a[10],j,k,t;

printf("请输入数据:

\n");

p=a;//将数组的首地址赋给P

for(i=0;i<10;i++)

scanf("%d",p++);//依次输入数据

printf("\n");

printf("输出数组:

\n");

p=a;//将数组的首地址赋给P

for(i=0;i<10;i++)

{

printf("%d",*p);//用指针的方式输出数据

p++;

}

printf("\n");

p=a;//将数组的首地址赋给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("输出排序后的数组:

\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个学生按照平均分数从高到低进行排序,输出结果,格式如下所示:

numbernamemathChineseEnglishaverage

103tom909010095

101alice90807080

 

4.3程序流程

 

4.4程序代码

#include

structstudent

{

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个学生

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

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1