C语言期末大作业

更新时间:2024-01-12 10:49:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

伊犁师范学院计算机科学系

实验训项目报告

一、小组成员及分工:

姓名:张雁

学号:09080605041 二、指导老师:王慧玲

三、说明程序编制要点,以及自己在项目制作中的难

点及解决办法:

编写的要点:编写N个函数分别用来求平均分;总分按

降许序排列;按姓名查找学生的成绩;找出各科最高分的学生姓名,学号等。编写主函数提供不同的选择途径。

难点:函数之间的调用,姓名的比较和交换。 解决办法:通过参数的传递;用字符串处理函数。 四、说明项目中所涉及的知识点及难点:

知识点:基础知识,结构体,选择结构程序设计,循环结构程序设计,数组,字符数组,常用的字符串处理函数,函数的调用。 难点:函数的调用,循环程序设计。

1

五、附录源程序:

注:必须有一定的注释,说明函数功能以及主要语句所起的作用

#include \#include \#define m 5

void search(); /*声明按姓名查找学生的信息*/ void ave(); /*声明turn out average*/ void paixu(); /* 声明score pai mingci*/

void maxandmin(); /*声明maxandmin score student's number,name and every course score*/

struct student /*声明define a struct*/ {

int num; /*student’s number */ char name[10];

int math,english,chinese; /*three course score*/ int no; /* student mingci*/ float sum; float ave; }stu[m]; main() { int i; int q=0,p;

2

for(i=0;i

printf(\

scanf(\ printf(\ scanf(\ printf(\

scanf(\ printf(\}

system(\ while(q==0) {

printf(\

printf(\ average score\\n\ printf(\ sum score paiming\\n\

printf(\ printf(\ the max score and min score student's message\\n\ printf(\ printf(\

printf(\ scanf(\

switch(p) /*用开关语句SWITCH进行选择*/

3

{

case 1:ave(stu); break; /*选择1,求平均分*/

case 2:paixu(stu); break; /*选择2,求总分按降序排列*/ case 3:search(stu,m); break; /*选择3,求按姓名查找学生的信息*/

case 4: maxandmin(stu,m); break; /*选择4,求各科的最高分和最

defult :q=1;exit(0); } } getch(); }

void ave(struct student stu[]) /*求学生的平均分*/ { int i;

printf(\ printf(\

for(i=0;i

4

printf(\ave); } }

void paixu(struct student stu[]) /*sum score line*/ {

int i,j,a; float t; char b[10];

printf(\ sum score paiming\\n\ for(i=0;i

stu[i].no=i+1; /*gei mingci fu chuzhi*/ for(i=0;i

a=stu[i].num;stu[i].num=stu[j].num;stu[j].num=a; t=stu[i].sum;stu[i].sum=stu[j].sum;stu[j].sum=t; strcpy(b,stu[i].name);

strcpy(stu[i].name,stu[j].name);

strcpy(stu[j].name,b); /*运用字符串复制函数交换学生的姓名*/ }

printf(\ for(j=0;j

5

{ printf(\ printf(\ printf(\ } }

void search(struct student stu[]) /*search student's name*/ { int i; char n[10];

printf(\ printf(\ scanf(\

for(i=0;i

printf(\

printf(\printf(\

break; /*分别输出要查找的学生的学号,姓名,总分,平均分,和各科的成绩*/ } }

6

Void maxandmin(struct student stu[]) /*输出各科学生的最高分和最低分*/ {

int i,a=0,b=0,c=0,d=0,e=0,f=0; int maxm,maxc,maxe,minm,minc,mine;

printf(\ the max score and min score student's message\\n\ for(i=0;i

if(stu[a].mathstu[i].math) b=i;minm=stu[b].math; if(stu[c].chinesestu[i].chinese)d=i;minc=stu[d].chinese; if(stu[e].englishstu[i].english)f=i;mine=stu[f].english; }

printf(\ printf(\ printf(\ printf(\ printf(\

printf(\

7

printf(\ printf(\ printf(\}

《一》输入学生信息(学号,姓名,各科的成绩)

《二》编译成功进入主菜单:

8

《三》选择1对学生的成绩求总分,平均分:

《四》选择2对学生信息排序

9

《五》选择3输入要查找的学生的姓名(这里找的是zj)

《六》选择4求各科成绩的最高分和最低分的学生的信息:

六、感想

现在,我终于把大作业做好了,虽然做这次作业我花了很多时间但是我十分的高兴,因为收获很多,从开始思路的模糊混乱,到最终的清晰整齐。我认为本次作业综合了本学期几乎所有的知识点,要想顺利的完成这次作业必须要牢固的掌握所学的知识点,细节决定成败,编程的过程中一定要仔细,避免出现基础的错误,比如根据不同的数据类型,输入输出的格式控制符也不同。当编程过程中遇到困难

10

的时候要多看一些书,与同学进行讨论,多请教老师,多思考,通过不断的交流学习,就能对知识的理解更加深刻,并提高自己的编程能力。

11

本文来源:https://www.bwwdw.com/article/m5lo.html

Top