C语言综合实验报告模板(附调试代码)

时间:2024.5.15

学生姓名: 学 号: 专业班级: 实验类型:□ 验证 □ 综合 □ 设计 □ 创新 实验日期:

实验项目: 学生成绩管理系统

一、实验目的和要求

目的:

1.掌握三种程序基本结构;

2.熟练使用数组、用户自定义函数等相关知识进行程序设计;

3.熟悉结构化程序设计语言思想编写程序代码;

4.理解和掌握C语言的语法以及三种基本程序结构的综合应用;

5.熟悉排序、查找、统计分析等常用算法

6.熟悉C语言的编程和调试环境,培养学生用计算机解决实际问题的能力 要求:根据实验内容,认真编写源程序代码、上机调试程序,书写实验报告。

二、实验内容

综合利用所学C语言三种程序基本结构以及数组(或指针)、用户自定义函数等相关知识进行一个小型学生成绩管理系统的设计与实现,具体内容如下: 某班有最多不超过30人(具体人数由键盘输入)参加某门课程的考试,实现如下的学生成绩管理系统:

(1)录入每个学生的学号和考试成绩

(2)计算课程的总分和平均分

(3)按成绩由高到低排出名次表

(4)按学号由小到大排出成绩表

(5)按学号查询学生考试成绩

(6)按优秀(90-100分)、良好(80-89分)、中等(70-79分)、及格(60-69分)、不及格(0-59分)5个类别,统计每个类别的人数及其所占百分比

(7)输出每个学生的学号、考试成绩

三、实验步骤

1.仔细阅读实验要求和书上的相关内容,在磁盘上新建以学号姓名命名的文件夹。

2.编写程序代码、编译、连接及运行程序、查找程序中的错误

3.函数及功能说明

四、完整源程序代码

五、结果分析及总结

分析运行结果,并进行总结(可以从以下几个方面来总结:你在编程过程中对问题是如何分析的?遇到了哪些难题?你是怎么克服的?你的收获有哪些?)

调试代码:

#include <stdio.h>

#include <stdio.h>

#include <stdlib.h>

#define STU_NUM 30 /*最多的学生人数*/

int Menu(void);

void Readscore (long num[],float score[],int n);

void Aversumofscore(float score[],int n);

void Desortbyscore(long num[],float score[],int n);

void Assortbynum(long num[],float score[],int n);

void searchbynum(long num[],float score[],int n);

void statisticanalysis(float score[],int n);

void printscore(long num[],float score[],int n);

int main()

{ char itemselected;

int n;

float score[STU_NUM];

long num[STU_NUM];

printf("输入学生人数(n<%d)",STU_NUM);

scanf("%d",&n);

while (1)

{ itemselected=Menu(); /*显示菜单,并读取用户输入*/ switch (itemselected)

{case 1: Readscore (num,score, n); break; case 2: Aversumofscore( score, n); break; case 3: Desortbyscore( num,score,n); printf("\n sort in descending order by score:\n"); printscore( num,score,n);

break; case 4: Assortbynum(num,score,n); printf("\n sort in ascending order by score:\n"); printscore( num,score,n);

break; case 5: searchbynum(num,score, n); break; case 6: statisticanalysis( score, n); break; case 7: printscore( num,score,n); break; case 0: exit(0);

/*printf("end of program!"); break;*/ default :printf("input error !"); } break;

}

return 0;

}

/*函数功能:显示菜单项并获得用户键盘输入的选项*/

int Menu(void)

{ int itemselected;

printf("\n 学生成绩管理系统:管理学生成绩\n");

printf("\n 1. 录入每个学生学号和考试成绩\n");

printf("\n 2. 计算班级总分和平均分\n");

printf("\n 3. 按成绩由高到低排出名次表\n");

printf("\n 4. 按学号由小到大排出成绩表\n");

printf("\n 5. 按学号查询学生排名和考试成绩\n");

printf("\n 6. 按优秀(90-100分)、良好(80-89分)、中等(70-79分)、及格(60-69分)、不及格(0-59分)5个类别\n统计每个类别的人数及其所占百分比\n"); printf("\n 7. 输出每个学生的学号、考试成绩\n");

printf("\n 0. 程序结束\n");

printf("\n输入你的选择\n");

scanf ("%d",&itemselected);

return itemselected;

}

/*函数功能:输入n个学生的某门课成绩*/

void Readscore (long num[],float score[],int n)

{

}

/*函数功能:计算全班总分和平均分*/

void Aversumofscore(float score[],int n)

{

}

/*函数功能:将数组score的元素值按从高到低排序,即按成绩从大到小排序*/ void Desortbyscore(long num[],float score[],int n) float d,c; int j; c=0; for(j=0;j<n;j++) { } d=c/n; printf("总分=%f,平均分=%f\n",c,d); c=c+score[j]; int i; printf("请输入学号和分数(学号和分数用空格隔开,回车输入下一个):\n"); for(i=0;i<n;i++) scanf("%ld%f",&num[i],&score[i]);

{

}

/*函数功能:将数组num的元素值按从低到到排序,即按学号从小到大排序*/ void Assortbynum(long num[],float score[],int n)

{

}

/*函数功能:按学号查找学生成绩并显示查找结果*/

void searchbynum(long num[],float score[],int n) float a; long t; int j,i; for(i=0;i<=n-1;i++) for(j=i+1;j<n;j++) if(num[i]>num[j]) {t=num[i];num[i]=num[j];num[j]=t; a=score[i];score[i]=score[j];score[j]=a;} float t; long a; int j,i; for(i=0;i<=n-1;i++) for(j=i+1;j<n;j++) if(score[i]<score[j]) {t=score[i];score[i]=score[j];score[j]=t; a=num[i];num[i]=num[j];num[j]=a;}

{

}

/*函数功能:统计各分数段的学生人数及所占百分比*/ void statisticanalysis(float score[],int n) {

int i;

float t[5]={0,0,0,0,0};

float a;

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

{

if(score[i]>=0&&score[i]<60)t[0]++; else if(score[i]<70&&score[i]>=60)t[1]++; else if(score[i]<80&&score[i]>=70)t[2]++; else if(score[i]<90&&score[i]>=80)t[3]++; else if(score[i]<=100&&score[i]>=90)t[4]++;} int i; long b; printf("请输入学号查找学生成绩\n"); scanf("%ld",&b); for(i=0;i<n;i++) if(num[i]==b) printf("%f",score[i]); for(i=0;i<=5;i++)

{

if(i==0) printf("小于60分共%f人,占%f%%\n",t[i],a=t[i]/n*100); else if(i==1)

printf("大于等于60分小于70分共%f人,占%f%%\n",t[i],a=t[i]/n*100);

else if(i==2)

printf("大于等于70分小于80分共%f人,占%f%%\n",t[i],a=t[i]/n*100);

else if(i==3)

printf("大于等于80分小于90分共%f人,占%f%%\n",t[i],a=t[i]/n*100);

else if(i==4)

printf("大于等于90分小于等于100分共%f人,占%f%%\n",t[i],a=t[i]/n*100);

}

}

/*函数功能:打印学生成绩*/

void printscore(long num[],float score[],int n) {

int i; for(i=0;i<n;i++) printf("%ld %f\n",num[i],score[i]);

}


第二篇:C语言实验报告5模板


宁夏师范学院数学与计算机科学学院

《高级语言程序设计》实验报告

实验序号:5 实验项目名称:循环结构及其测试

C语言实验报告5模板

C语言实验报告5模板

更多相关推荐:
c语言实验报告模板完成版

高级语言程序设计学生实验报告专业计算机科学与技术学号姓名1实验一C程序的运行环境和使用方法1实验目的1了解所用的计算机系统的基本操作方法学会独立使用该系统2了解在该系统上如何编辑编译连接和运行一个C程序3通过运...

C语言实验报告标准格式

暨南大学本科实验报告专用纸课程名称高级语言程序设计成绩评定实验项目名称结构体和共用体指导教师张晓刚实验项目编号8060151108实验项目类型综合性实验地点C301学生姓名苟长弘学号20xx051282学院信息...

C语言实验报告模板完成版

高级语言程序设计学生实验报告专业学号姓名实验一C程序的运行环境和使用方法1实验目的1了解所用的计算机系统的基本操作方法学会独立使用该系统2了解在该系统上如何编辑编译连接和运行一个C程序3通过运行简单的C程序初步...

C语言实验报告样本

实验报告课程名称C语言程序设计实验项目顺序结构程序设计实验仪器计算机系别机电工程学院专业机械设计制造及其自动化班级学号机械110120xx010008学生姓名郭奎宇实验日期20xx年10月24日成绩指导教师一实...

C语言实验报告(样板)

滁州学院机械与电子工程学院实验报告课程姓名专业20xx机械本科学号实验一工作平台一目的和要求1熟悉语言程序的支持运行环境了解所用计算机系统的软硬件配置和使用方法2初步了解运行一个语言程序的过程二实验环境硬件环境...

c语言实验报告范本

说明下面的模板中黑体字标明的部分是我加的注释大家要按注释来写报告实验项目名称符号函数的实现此条要求写清楚一实验目的熟练掌握ififelseifelseif语句格式及使用方法掌握if语句中的嵌套关系和匹配原则利用...

C语言实验报告范文

计算机科学与技术系C语言实验报告实验名称:指针及其应用日期:得分:指导老师:专业:班次:姓名:学号:实验目的(1)掌握变量的指针及其基本用法。(2)掌握一维数组的指针及其基本用法。(3)掌握指针变量作为函数的参…

c语言实验报告

安康学院电子与信息工程系实验报告1实验目的21熟悉定义函数的方法3熟悉声明函数的方法4熟悉调用函数时实参与形参的对应方法关系以及值传递的方法5学习对多文件的程序的编程与运行6熟悉函数的嵌套调用和递归调用的方法7...

C语言实验报告-标准格式

C语言程序设计实验报告班级姓名吉林大学珠海学院计算机系一实验目的熟悉C的一些重要性质二实验内容和要求三实验原理画程序的流程图或NS图四源程序五实验步骤与调试主要是写出对源程序的语法错误以及逻辑错误的进行发现修正...

C语言实验报告(七)

华北水利水电大学C语言程序设计实验报告20xx20xx学年第二学期级专业班级学号一实验题目结构体和共用体二实验目的略三实验内容1程序验证启动vc语言环境输入并执行以下程序源代码运行结果includeltstdi...

C语言实验报告(三)

华北水利水电大学C语言程序设计实验报告20xx20xx学年第二学期级专业班级学号一实验题目循环结构程序设计二实验目的略三实验内容1程序验证略2程序设计1找出100900之间的无暇素数所谓无暇素数是指本身为素数且...

C语言电子版实验报告样式

C语言程序设计课程实验报告系院信息工程学院班级学号姓名完成日期20xx年26月指导教师徐永安二一三年六月C语言程序设计实验内容安排实验一了解编程环境主要内容基于VisualC60对C语言的兼容了解VisualC...

c语言实验报告模板(41篇)