C语言综合实验设计报告1 百行代码

C语言综合实验设计报告

题目:

分别统计70个学生3门功课的优秀,良,中,及格,不及格人数,再求出每个同学总成绩并对70名同学的成绩排序

学院:

专业:

班级:

姓名:

设计日期:

一、设计题目:

分别统计70个学生3门功课的优秀,良,中,及格,不及格人数,再求出每个同学总成绩并对70名同学的成绩排序

二、题目阐述及设计思路:

根据题目要求,采用C语言结构体为主要框架,其中各个成员运用C语言的结构体的知识设计。。主要内容确定之后,调用自定义函数和调用结构体变量,根据上述计划编译这段程序。

三、主要知识点:

使用C语言结构体,字符运算,系统调用函数。

四、程序清单:

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

#include<string.h>

#include<time.h>

int const N=70;

struct Boy{

char name[20];

int c1;

int c2;

int c3;

int sum;

};

typedef struct Boy boy;

boy classmate[N];

char *names[]={"Charles","Mark","Bill","Vincent","William","Joseph"

,"James","Henry","Gary","Martin","Fred","Gary","William",

"Charles","Michael","Karl","Bob","John","Thomas","Dean",

"Paul","Jack","Brooke","Kevin","Louis","John","George",

"Henry","Benjamin","Robert","Carl","Scott","Tom","Eddy",

"Kris","Peter","Johnson","Bruce","Robert","Peter","Bill",

"Joseph","John","Burt","Charlie","Elliot","George","Johnson",

"Richard","James","Charles","Bruce","David","Nick","Walt",

"John","Mark","Sam","Davis","Neil","Carl","Lewis","Billy",

"Richard","Howard","Allen","Johnny","Robert","Martin","Jeff",

"Paul","Sam","Francis","Lewis","Stephen","Andy","Scott","Albert",

"Kevin","Michael","Taylor","Jackson","Jack","Jimmy","Allen",

"Martin","Vincent"};

void s(int s,int c);

void initname(boy * mem,int num);

void initscore(boy * mem,int num);

void count (boy * mem,int n);

void sort_print(boy* mem,int num);

int cmp ( void const* b1 ,void const * b2);

static struct {

int good;

int med;

int ok;

int bad;

int out;

} stat[3];

int main(int argc, char *argv[]){

initname(classmate,N);

initscore(classmate,N);

count (classmate,N);

printf("%5s%5s%5s%5s%5s%5s\n","","good","med","ok","bad","out");

printf("%-5s%5d%5d%5d%5d%5d\n","c1:",stat[0].good, stat[0].med, stat[0].ok,stat[0].bad, stat[0].out );

printf("%-5s%5d%5d%5d%5d%5d\n","c2:",stat[1].good, stat[1].med, stat[1].ok,stat[1].bad,stat[1].out );

printf("%-5s%5d%5d%5d%5d%5d\n","c3:",stat[2].good, stat[2].med, stat[2].ok,stat[2].bad, stat[2].out );

sort_print(classmate,N);

system("PAUSE");

return EXIT_SUCCESS;

}

void initname(boy * mem,int num){

int i=0;

char **np=names;

for (;i<num;i++)

{

strcpy ( (mem++)->name,*(np++));

}

}

void sort_print(boy* mem,int num){

qsort(classmate,N,sizeof(boy),cmp);

int i=0;

printf("\n\n%10s%5s%5s%5s%5s\n","name","c1","c2","c3","sum");

for (;i<N;i++)

{

printf("%10s%5d%5d%5d%5d\n",classmate[i].name,classmate[i].c1,classmate[i].c2,classmate[i].c3,classmate[i].sum);

}

}

int cmp (void const * b1 ,void const * b2){

boy *a1=(boy *)b1;

boy *a2=(boy *)b2;

if (a1->sum > a2->sum)

return 1;

if (a1->sum < a2->sum)

return -1;

return 0;

}

void initscore(boy * mem,int num){

//初始化成绩,完全随机。

int i=0;

int n=100;

srand( time(NULL) );

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

{

mem->c1=(int)(n*rand()/(RAND_MAX+1.0));

mem->c2=(int)(n*rand()/(RAND_MAX+1.0));

mem->c3=(int)(n*rand()/(RAND_MAX+1.0));

mem->sum = mem->c1 + mem->c2 + mem->c3;

mem++;

}

}

void count (boy * mem,int n){

// >=85 good

// >=70 med

// >=60 ok

// >=30 bad

// <30 out

int i;

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

s(mem->c1,0);

s(mem->c2,1);

s(mem->c3,2);

mem++;

}

}

void s(int s,int c){

// >=85 good

// >=70 med

// >=60 ok

// >=30 bad

// <30 out

if (s>=85){

stat[c].good++;

}

else if(s>=70){

stat[c].med++;

}

else if(s>=60){

stat[c].ok++;

}

else if(s>=30){

stat[c].bad++;

}

else {

stat[c].out++;

}//endif

}

五、设计结果说明:

1、设计优点:

熟练运用结构体及if语句,思路清晰严谨

2、设计不足:

代码中英文名字太多不便于理解和观察

 

第二篇:C语言实验报告1

实验报告

指导教师 曾宪华 实验时间: 20xx年x月x日学院 计算机 专业 智能与科学类

班级 0401116 学号 20xx2120xx 姓名 罗仁飞 实验室 s319

实验目的及要求:

熟练掌握逻辑运算符和逻辑表达式的使用;

熟练掌握关系运算符和关系表达式的使用;

掌握选择结构的编程(if、switch语句);

实验题目:

计算一个函数

实验内容及步骤:

#include<stdio.h>

void main()

{

int x,y;

printf("please input the number x:\n");

scanf("%d",&x); //在此设置断点

if

(x>=10)

{

y=3*x-11; //x>=10

}

else if(x>=1)

{

y=2*x-1; //x>=1&&x<10

}

else

{

y=x; //x<1

}

printf("y=%d",y);

}

操作步骤

a. 打开c++,新建文件夹,输入程序。

b. 进行编译和连接时,没有出现错误或警告。

c. 输入x=3的值

d. 然后显示结果5.

e. 完成。

运行结果示例

please input the number x;

3

5

心得体会:

要仔细编辑程序,注意每句话后面要用分号。 在编辑程序前,要先写好程序,这样更方便。 运用if语句可以方便解决很多函数问题。

相关推荐