C语言综合设计报告

时间:2024.4.20

昆明理工大学

《程序设计基础》课程

综合设计实践教学课题报告

课程名称:     C语言程序设计          

课题名称:      排序求平均值              

学号:            姓名:              

学院:              专业班级:            

指导教师:                                

昆明理工大学计算中心

20##年  月  日


填写格式及说明

1、 系统概述

随着数据库技术的兴起,数据的采集,记录,排序,筛选的等工作变得简单,方便。但是对于一些容量较小,需要频繁存贮调用的数据。用制作数据库的方法来解决问题显然是非常麻烦的。本程序,通过简单的数据调用,排序,输出环节。完成了对学生成绩的录入,排序,查询的学校成绩记录的日常需要。

2、数据结构设计

定义以下数据结构,似的aa数组存放长度为100的成绩信息,bb数组存放长度为100的学号信息。

#define MAXLEN 100

int aa[MAXLEN];

int bb[MAXLEN];

3、模块设计

模块声明部分,分别声明四个模块作为读取学号信息;成绩信息;对信息进行排序整理;对排序好的数据进行输出。

void ReadDat(int arr[], int nlen);

void RandNum(int arr[], int nlen);

void jsSort(int arr[], int nlen);

void WriteDat();

数据长度定义部分,分别将模块中需要涉及到的数据长度均设置为100

ReadDat(aa, MAXLEN);

jsSort(aa, MAXLEN);

RandNum(bb, MAXLEN);

WriteDat();

分数数据的产生和读取模块,利用简单的循环结构实现数据的重复产生,再利用随机数函数随机产生0~100间的数字

void ReadDat(int arr[], int nlen)

{

int i;

srand( (unsigned)time( NULL ) );

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

{

arr[i] = rand() % 100;

}

}

以同样的方法在1~1000间产生随机数作为学号

void RandNum(int arr[], int nlen)

{

int i;

srand( (unsigned)time( NULL ) );

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

{

arr[i] = rand() % 1000;

}

}

利用sjSort对上述产生数据进行排序

void jsSort(int arr[], int nlen)

{

int i,j;

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

for (j=0; j<nlen - i; j++)

{

if (arr[j] < arr[j+1])

{

int nTemp = arr[j];

arr[j] = arr[j+1];

arr[j+1] = nTemp;

}

}

}

利用前面定义好的输出函数,对排序好的数据进行输出,加上简单的限次循环实现逐一输出。

void WriteDat()

{

int i;

printf("学号: 成绩:\n");

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

{

printf(" %5d %d \n", bb[i], aa[i]);

}

}

4.调试运行及操作说明

调试过程截图如下

5、总结和体会

通过这学期对C语言这么课程的学习,我认识到了学习一门计算机语言的实用性和重要性,在平常的生活中,计算机语言离我们很远,由于计算机技术的快速发展,使得我们平时使用的环境都是高度面向对象的,也是经过高度集成和预处理过的。这使得我在没有学习这门课之前,对计算机的印象相比较学习过后是模糊而片面的。通过这一学期的学习,我不仅掌握了C语言,这门计算机的基础构建语言,同时学到的更多是一种分析问题,解决问题的逻辑思路。由本溯源,由表及里的思考方式贯穿了我这学期的学习。学过C语言,我不仅对计算机有了更加本质深刻的了解。同时这将对我以后看待问题,解决问题的方式方法产生积极的影响。希望在今后的学习过程中,我能将在这门课中所学到的技术方面的知识加以应用到日常生活中,也希望在这门课中学到的那些具有人文关怀的世界观,方法论能指导我今后的人生,走的更加多姿多彩。


第二篇:C语言综合试验设计报告


C语言综合试验设计报告

题目:对学生期末考试成绩的数据处理

学院:电气与电子工程学院

专业:测控技术与仪器专业

班级:100311班

姓名:杨威

一 设计题目:

对学生期末考试成绩的处理

二 题目阐述与设计思路:

使用函数input()输入学生的相关信息包括学号,姓名,数学,英语和物理的成绩。print()用于输出学生的相关信息包括学号,姓名,各科成绩,总成绩,平均成绩,获得奖励情况以及补考情况。使用F1()函数求总成绩,平均成绩,以及对成绩的下标排序。使用F2()函数用于判断学生的获奖情况,共A,B,C三等。使用F3()用于判断学生的补考情况。使用sort()函数按分数段查找学生的相关信息。定义一个结构体数组包含学生的相关信息,由于结构体数组无法进行地址传递,定义一个指针数组进行在相关函数间的信息传递。

三 主要知识点:

C语言宏定义,选择结构,循环结构,数组,结构体数组,指针数组,函数调用,系统函数调用,子函数。

四 程序清单:

#include "string.h"

#define N 40

struct person

{

int n;

long num;

char name[10];

int MT,EN,PH;

int sum;

float ave;

char win;

char b[20];

};

void input (long num[], char name[][10], int ss[][3], int n)

{

int i;

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

{

printf("please enter NO%d. students' data:num\tname\tMT,EN,PH\n",i+1); scanf("%ld",&num[i]);

scanf("%s",name[i]);

scanf("%d,%d,%d",&ss[i][0],&ss[i][1],&ss[i][2]);

}

}

F1 (int ss[][3],int sum[],int ave[],int n,int sss[])

{

int i,j,k;

int ssss[N];

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

{

sum[i]=ss[i][0]+ss[i][1]+ss[i][2];

ave[i]=(float)sum[i]/3;

}

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

ssss[i]=sum[i];

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

{

for(j=0,k=i;j<n;j++)

if(ssss[i]<ssss[j])

k=j;

sss[i]=k;

ssss[k]=0;

}

}

F2 (struct person *s[],int n)

{

int i;

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

switch(i)

{

case 0:

case 1:s[i]->win='A';break;

case 2:

case 3:s[i]->win='B';break;

case 4:

case 5:s[i]->win='C';break;

}

}

F3(struct person *s[],int n)

{

char c1[]=" MT",c2[]=" EN",c3[]=" PH";

int i;

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

{

if(s[i]->MT<60)

strcat(&s[i]->b[20],c1);

if(s[i]->EN<60)

strcat(&s[i]->b[20],c2);

if(s[i]->PH<60)

strcat(&s[i]->b[20],c3);

}

}

print(struct person *s[],int n)

{

int i;

printf("NO NUM NAME MT EN PH SUM AVE BUKAO\n");

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

printf("_");

printf("\n");

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

{

printf("%2d\t",i+1);

printf("%2ld\t",s[i]->num);

printf("%2s\t",s[i]->name[10]);

printf("%2d\t",s[i]->MT);

printf("%2d\t",s[i]->EN);

printf("%2d\t",s[i]->PH);

printf("%2d\t",s[i]->sum);

printf("%3.1ld\t",s[i]->ave);

printf("%c\t",s[i]->win);

printf("%s\n",s[i]->b[20]);

}

}

sort(struct person *s[],float x,float y,int n)

{

int i;

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

{

if((s[i]->ave<x)&&(s[i]->ave<y))

printf("%ld\t%s\n",s[i]->num,s[i]->name[10]);

}

}

main()

{

struct person p[N]; /结构体数组表示学生所有信息/ struct person *s[N]; /指针数组/

long num[N];

int ss[N][3],sum[N],sss[N]; /分别表示三科分数,总分数和按总成绩由大到小的顺序储存结构体下标//

float ave[N];

char name[N][10];

int n,i,j;

printf("enter students' number:"); /输入参加考试的人数/

scanf("%d",&n);

input(num,name,ss,n); /调用input函数输入学号,姓名,三科成绩/ F1(ss,sum,ave,n,sss);

for(i=0;i<n;i++) /将相关信息赋值给结构体/

{

p[i].num=num[i];

p[i].name[10]=name[i][10];

p[i].MT=ss[i][0];

p[i].EN=ss[i][1];

p[i].PH=ss[i][2];

p[i].sum=sum[i];

p[i].ave=ave[i];

}

for(i=0;i<n;i++) /将由大到小排序的结构体的下标赋给相应的指针数组元素/ s[i]=&p[sss[i]];

F2(s,n); /判断获奖情况/

F3(s,n); /判断补考情况/

print(s,n); /输出信息/

printf("please enter two numbers:"); /按相关分数段查找。

scanf("%d,%d",&i,&j);

printf("\n");

sort(s,i,j,n);

}

运行结果:

五 设计结果说明:

1,设计优点:

使用了结构体数组和6个自定义函数使主函数看起来结构清晰,条例明确,一目了然。 2,设计不足:

由于使用结构体,在函数间传递数据比较困难,定义了以指针数组,增加了程序的占用空间,执行起来可能比较慢

设计日期:20xx年5月22日星期日

总分:

更多相关推荐:
C语言综合设计报告

昆明理工大学程序设计基础课程综合设计实践教学课题报告课程名称课题名称C语言练习函数调用演示学号20xx10501133姓名李得菘学院电力工程班级电自111教师付湘琼昆明理工大学计算中心20xx年5月31日1程序...

C语言课程设计报告范例

C语言课程设计报告设计题目专业班级学号姓名任课老师时间目录一课程设计题目及所涉及知识点二课程设计思路及设计流程图三课程设计中遇到的难点及解决办法四小结五附录原程序2一课程设计题目及所涉及知识点一课程设计题目1基...

C语言课程设计报告

3130111103福建工程学院C语言课程设计报告班级机械1301学号姓名指导教师日期20xx123020xx133130111103第一部分一问题描述题目1企业发放的奖金根据利润提成利润I低于或等于10万元时...

C语言课程设计报告-游戏20xx

东华理工大学报告学院国际教育学院学院专业电子信息工程班级学号20xx20xx0638姓名钟天运一课程设计题目游戏20xx二课程设计要求a使用C语言编写20xx这款游戏b能够正常运行拥有游戏界面c能正常进行游戏从...

C语言项目设计报告

电子科技大学成都学院课程设计报告电子科技大学成都学院电子工程系课程设计报告课程名称C语言程序设计能力教程设计题目万年历指导教师组杨剑学生学号1140810429学生姓名王玲琳电子工程系制20xx年12月电子科技...

c语言课程设计报告

C语言程序设计课程设计学生姓名学号系院专业设计论文题目学生选课系统管理完成日期20xx年6月指导教师目录一实验目的二实验内容三总体设计四详细设计五运行结果六课程设计体会一实验目的1通过课程设计加深对结构化程序设...

C语言课程设计报告

河南理工大学C程序设计报告C语言课程设计报告题目小学算术运算测试mathc设计者史前利专业班级通信工程1205学号31120xx20xx1指导教师刘洁所属系部计算机科学与技术20xx年07月03日河南理工大学河...

C语言课程设计报告格式要求与范例

C语言程序设计课程设计报告专业电子信息工程自动化班级电信0904姓名陈列慧指导教师彭琼丁雄20xx年12月30日C语言程序课程设计任务书一设计题目职工信息管理系统二设计目的1熟练掌握C语言课程中所学的理论知识2...

c语言程序设计报告

C语言课程设计报告题目小学算术运算测试mathc设计者专业班级学号指导教师20xx年6月21日河南理工大学计算机学院小学算术运算测试mathc计算机学院软件09级C程序设计报告目录1设计任务书211题目与要求2...

《C语言程序设计》课程设计报告(小组)

东莞理工学院《C语言程序设计》课程设计题目:图书信息管理系统院系:电子工程学院专业:电子信息工程年级:20##班别:2班指导教师:##组长:##同组成员:##目录一、目的....................…

C语言课程设计报告书样本

海南大学三亚学院C语言程序设计课程设计贪吃蛇算法专业计算机科学与技术班级计科1001姓名杨凯文题目学号指导老师李春林目录C语言程序设计课程设计11程序要求32程序分析与设计33流程图44源程序清单45调试过程1...

C语言课程设计报告—人事管理系统

人事管理系统前言:现代计算机技术的发展为人们的学习、生活、工作提供了很大的帮助,各行各业都需要特定计算系统的运用,我们需要了解这些系统是怎么样为我们服务以及他们是怎样编辑出来的。我们需要学习C语言编程,根据课堂…

c语言设计报告(33篇)