PAGE
PAGE I
课程设计任务书
学院
信息科学与工程学院
专业
电子信息科学与技术
姓名
李沈
学号
0803070116
题目:求字符长度、结构体数组、图书管理程序
内容及要求:
输入一字符串,调用函数,求出字符长度,不能引用函数库中strlen函数。
设计结构体数组,结构中包含十个同学成绩,输出平均分和低于平均分的同学的信息。
图书管理程序
主要用借个数据组实现,结构中包含数据:图书编号、图书名称、作者姓名、出版社名、出版日期。涉及各个函数分别实现以下功能:
图书信息的输入
显示所有图书的信息
输入作者姓名,显示该作者编写的图书的记录
设计菜单,通过选择菜单调用以上各函数
进度安排:
18周:布置题目,查阅资料,对问题给出解决方案及其编程。
19周:答辩验收,书写教学实习报告。
指导老师(签字):
年 月 日
学院院长(签字):
年 月 日
目 录
TOC \o "1-3" \u 一 题目1 1
1 题目内容 1
2 设计实现 1
3 程序结果 1
二 题目2 2
1 题目内容 2
2 设计实现 2
3 程序结果 2
三 题目3 3
1 题目内容 3
2 设计实现 3
3 程序结果 4
参考文献 7
一 题目1
1 题目内容
输入一字符串,调用函数,求出字符长度,不能用引用函数库中strlen函数。
2 设计实现
#include
int _strlen(char *p)
{
int L=0;
while(*(p+L)!='\0')L++;
return L;
}
void main()
{
char a[80];
int L;
printf("请输入一字符串:\n\n");
gets(a);
L=_strlen(a);
printf("字符串长度为:%d\n",L);
}
3 程序结果
二 题目2
1 题目内容
设计结构体数组,结构中包含十个同学姓名、成绩,输出平均分和低于平均分的同学的信息。
2 设计实现
#include
int j=0;
typedef struct
{
char name[16];
float s;
}STU;
float fun(STU *p,STU *q)
{
int i;
float a=0;
for(i=0;i<10;i++)
a+=(p+i)->s;
a/=(float)10;
for(i=0;i<10;i++)
{
if(a<=(p+i)->s)q[j++]=p[i];
}
printf("高于平均分的同学如下:\n姓名 分数:\n");
for(i=0;i
printf("%-16s%f\n",(q+i)->name,(q+i)->s);
return a;
}
void main()
{
int i=0;
float ave;
STU h[10],s[10]={{"aa",78},{"bb",90},{"cc",67},{"dd",75},{"ee",85},
{"ff",71},{"gg",45},{"hh",43},{"ii",57},{"jj",79}};
printf("所有同学成绩如下:\n姓名 分数:\n");
for(i=0;i<10;i++)
printf("%-16s%f\n",(s+i)->name,(s+i)->s);
ave=fun(s,h);
printf("平均分为%f\n",ave);
}
3 程序结果
三 题目3
1 题目内容
图书管理程序:
主要用结构体数组实现,结构中包含数据为:图书编号、图书名称。作者姓名、出版
名、出版日期。设计各个函数分别实现以下功能:
图书信息的输入
显示所有图书的信息
输入作者姓名,显示该作者编写的图书记录
设计菜单,通过选择菜单调用以上各函数。
2 设计实现
#include
#include
#include
#define N 20
int n=0;
struct BOOK
{
int num;
char bname[20];
char wname[16];
char pname[20];
char pdate[16];
}book[N];
void getdata()
{
printf("请输入%d图书的名称:\n",n+1);
scanf("%s",book[n].bname);
printf("请输入%d图书的作者姓名:\n",n+1);
scanf("%s",book[n].wname