}
}
}
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;