C语言实验报告参考答案 下载本文

}

}

}

itoa(i,s,10); fputs(s,fd); fputc(' ',fd);

//转换成字符串

printf(\fclose(fd);

//提取字符转换成数字输入

if( (fd=fopen(\ { } else {

p=s; sum=0; do {

ch=fgetc(fd); if(ch == ' ')

printf(\exit(0);

}

{ } else { }

*p=ch; p++; i=atoi(s); sum +=i;

printf(\strset(s,'\\0'); p=s;

}while(ch != EOF);

printf(\数的和是:%d\\n\fclose(fd);

return 0;

}

实验十二 参考答案

实验十二参考答案:(可根据情况,弄清楚一个模块即可)

题目:设某班有n位同学,每位同学的数据包括以下内容:学号(长整型)、姓名(字符串)、数学成绩(整型)、程序设计成绩(整型)。设计程序完成以下五

项功能:新建数据档案、添加数据、删除数据、对输入的数据进行排序和查询。 注:输入数据时,要求学号不能相同,姓名可以相同。

设计思路:

1).程序运行时,首先显示主菜单(模块)如下:

1.程序运行时,首先显示主菜单如下: 1.新建数据 2.添加数据 3.删除数据 4.排序 5.查询 6.退出

用户输入序号后,程序进行相应操作。

2).在主菜单中选择序号4,弹出子菜单选择排序方式,子菜单如下:

1.数学成绩排序 2.程序设计成绩排序 3.总分排序。 4.返回主菜单

选择子菜单的序号后,程序能正确运行并在屏幕上显示按要求排序后的相关信息。

3.在主菜单中选择序号5,弹出子菜单选择查询方式,子菜单如下:

1.学号查询 2.姓名查询 3.数学成绩查询 4.程序设计成绩查询 5.总分查询 6.返回主菜单

请按序号选择相应操作

在子菜单中选择序号后,程序按以下方式工作。

(1)学号查询:输入学号后,若该学号存在则显示与其相关的所有信息,否则显示找不到的提示信息;(提示:查询到满足条件的结果后,查询即可结束)

(2)姓名查询:输入姓名后,若该姓名存在则显示与其相关的所有信息,否

则显示找不到的提示信息;(提示:使用字符串比较函数进行比较)

(3)按科目查询:输入指定分数,程序运行后显示该科目中考试成绩大于等于指定分数的同学的学号、姓名以及该科成绩并统计满足条件的人数;

(4)总分查询:输入指定分数,程序运行后显示总分成绩大于等于指定分数的同学的学号、姓名以及各科成绩并统计满足条件的人数。 C源程序清单如下:

#include \#include \#include \#include \#include \#include \#include \#define N 2 typedef struct z1 {

char no[11]; char name[15]; int score[N]; float sum; float average; int order;

struct z1 *next; }STUDENT; /*Functions*/

STUDENT *init(); /*initialize*/ STUDENT *create();

STUDENT *delete(STUDENT *h); STUDENT *searchno(STUDENT *h); void print(STUDENT *h); void search(STUDENT *h); void save(STUDENT *h); STUDENT *load();

STUDENT *insert(STUDENT *h); STUDENT *sort(STUDENT *h); STUDENT *index(STUDENT *h); int menu_select(); /*menu*/ /******main*******/ main()

{ int i;

STUDENT *head; head=init(); clrscr(); for(;;) {

switch(menu_select()) {

case 1:head=init();break; case 2:head=create();break;

case 3:head=delete(head);break; case 4:print(head);break; case 5:search(head);break;

case 6:head=searchno(head);break; case 7:save(head);break; case 8:head=load(); break;

case 9:head=insert(head); break; case 10:head=sort(head);break; case 11: case 12:

case 13:head=index(head);break; case 0:exit(0); } } }

menu_select() {

char *menu[]={\\\

\\

\\\\

\\\\\\char s[3]; int c,i;