c语言结构体字符长度计算,C语言课设1、求字符长度2、结构体数组图书管理程序.doc...

课程设计任务书 学院信息科学与工程学院专业电子信息科学与技术 姓名李沈学号0803070116 1、 题目:求字符长度、结构体数组、图书管理程序 2、 内容及要求: (1)输入一字符串,调用函数,求出字符长度,不能引用函数库中strlen函数。 (2)设计结构体数组,结构中包含十个同学成绩,输出平均分和低于平均分的同学的 信息。 (3)图书管理程序 主要用借个数据组实现,结构中包含数据:图书编号、图书名称、作者姓名、出 版社名、出版日期。涉及各个函数分别实现以下功能: 1)图书信息的输入 2)显示所有图书的信息 3)输入作者姓名,显示该作者编写的图书的记录 设计菜单,通过选择菜单调用以上各函数 进度安排: 18 周:布置题目,查阅资料,对问题给出解决方案及其编程。 19 周:答辩验收,书写教学实习报告。 指导老师(签字): 年 月 日 学院院长(签字): 年 月 日 1 I 目 录 一 题目 11 1 题目内容1 2 设计实现1 3 程序结果1 二 题目 22 1 题目内容2 2 设计实现2 3 程序结果2 三 题目 33 1 题目内容3 2 设计实现3 3 程序结果4 参考文献.7 1 一 题目 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 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;is; a/=(float)10; for(i=0;is)q[j++]=p[i]; } printf(“高于平均分的同学如下:\n 姓名 分数:\n“); for(i=0;iname,(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;iname,(s+i)-s); 4 ave=fun(s,h); printf(“平均分为%f\n“,ave); } 3 程序结果 5 三 题目 3 1 题目内容 图书管理程序: 主要用结构体数组实现,结构中包含数据为:图书编号、图书名称。作者姓名、出版 名、出版日期。设计各个函数分别实现以下功能: (1)图书信息的输入 (2)显示所有图书的信息 (3)输入作者姓名,显示该作者编写的图书记录 设计菜单,通过选择菜单调用以上各函数。 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); printf(“请输入%d 图书的出版社名:\n“,n+1); scanf(“%s“,book[n].pname); printf(“请输入%d 图书的出版日期:\n“,n+1); scanf(“%s“,book[n].pdate); book[n].num=1+n++; } void putdata() { 6 int i; printf(“图书编号 图书名称 作者姓名 出版社名 出版日期\n“); for(i=0;in;i++) { printf(“%-8d%-20s%-16s%-20s%- 16s\n“,book[i].num,book[i].bname,book[i].wname,book[i].pname,book[i].pdate); } } void select() { int i; char name[16]; printf(“请输入作者姓名:\n“); scanf(“%s“,name); printf(“图书编号 图书名称 作者姓名 出版社名 出版日期 \n“); for(i=0;in;i++) if(!strcmp(name,book[i].wname)) { printf(“%-8d%-20s%-16s%-20s%- 16s\n“,book[i].num,book[i].bname,book[i].wname,book[i].pname,book[i].pdate); } } int menu() { int a; printf(“输入图书信息请按 1\n 显示所有图书信息请按 2\n 输入作者姓名并显示该作者编 写的图书记录请按 3\n 退出请按 0\n“); scanf(“%d“, return a; } void main() { int a; printf(“\n********菜单请选择!********\n“); do { a=menu(); switch(a) { 7 case(0):exit(0); case(1):getdata();break; case(2):putdata();break; case(3):select(); } }while(1); } 3 程序结果 8 9 参考文献 1. 马秀丽,刘志妩,李筠.C 语言程序设计.北京:清华大学出版社,2008 年 2. 谭浩强.C 程序设计(第 2 版) .北京:清华大学出版社,2004 年 3. 钱能.C++程序设计教程.北京:清华大学出版社,2002 年

展开阅读全文

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值