华水c语言课程设计_第1页
华水c语言课程设计_第2页
华水c语言课程设计_第3页
华水c语言课程设计_第4页
华水c语言课程设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 分类号 编 号 华北水利水电大学North China Institute of Water Conservancy and Hydroelectric Power课 程 设 计课程名C语言课程设计 题 目图书信息管理系统院 系 信息工程学院 专 业 网络工程 姓 名 陈志涵 学 号 201517614 指 导 教 师 吴慧欣 1、 课程设计内容(必做题)1.输入一行字符,要求完成:(1) 每个单词中的第一个字母改成大写字母(如果原来已是大写字母则不变)。(2) 全变成大写字母(3) 全变成小写字母要求:以函数的形式实现,在main函数中调用,要支持输入程序代码:#include<st

2、dio.h>#include<string.h>int main()void changeone(char a,int k);void changelwr(char arr);void changeuper(char arr);int k;char str50;printf("输入一个字符串:n");gets(str);k=strlen(str);printf("单词的第一个字母变成大写字母:n");changeone(str,k); getchar();printf("字母全部转换为大写:n");changeupe

3、r(str); getchar();printf("字母全部转换为小写:n");changelwr(str);return 0;void changeone(char a,int k) int i; if(a0>='a'&&a0<='z') a0=a0-32;for(i=1;i<k;i+) if(ai=' '&&ai+1>='a'&&ai+1<='z') ai+1=ai+1-32; puts(a);void chang

4、euper(char arr)strupr(arr); puts(arr);void changelwr(char arr)strlwr(arr); puts(arr);运行结果展示2、 编写将a所指字符串中的字符按逆序存放,然后和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指数组的尾部。例如,当a所指字符串中的内容为"abcdefg",b所指字符串中的内容为"1234"时,c所指数组中的内容应该为"g1f2e3d4cba";而当a所指字符串中的内容为"1234",b所指字符串中

5、的内容为"abcdefg"时,c所指数组中的内容应该为"4a3b2c1defg"。程序代码:#include<stdio.h>#include<string.h>int main()void exchange(char *a,char *b,char c40,int m,int n);int i,j;char str120,str220,c40='0',*a,*b;printf("输入字符串a:n"); gets(str1);a=str1; i=strlen(str1); printf(&quo

6、t;输入字符串b:n");gets(str2); b=str2;j=strlen(str2);exchange(a,b,c,i,j);return 0;void exchange(char *a,char *b,char c40,int m,int n)int i,j,temp;for(i=0;i<=m/2;i+) temp=*(a+i);*(a+i)=*(a+(m-i-1);*(a+(m-i-1)=temp;if(m>=n) for(i=0,j=0;i<2*n;j+,i+,i+)ci=*(a+j); ci+1=*(b+j);for(i=2*n,j=n;i<(

7、m+n);j+,i+)ci=*(a+j);else for(i=0,j=0;i<2*m;j+,i+,i+)ci=*(a+j);ci+1=*(b+j);for(i=2*m,j=m;i<(m+n);i+,j+)ci=*(b+j);printf("输出组合字符串c:n");puts(c);运行结果展示3、某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。要求:以函数的形式实现,在main函数中调用,输入一串数据,输出加密后的数据;程序代码:

8、#include<stdio.h>void jiami(int arr)int i,array4,temp;for(i=0;i<4;i+) arrayi=(arri+5)%10; temp=array0;array0=array3;array3=temp;temp=array1;array1=array2;array2=temp;for(i=0;i<4;i+)printf("%d",arrayi);printf("n");int main()int a;int str4;printf("输入4个数字:n");f

9、or(a=0;a<4;a+)scanf("%d",&stra);printf("加密之后的数据:n");jiami(str);return 0;运行结果展示4.猜数游戏编写一个猜数字游戏,游戏规则: (a)使用随机函数产生一个5位数,各位上的数字不重复,从1到9。(b)按以下提示猜出这个5位数:对每次输入猜测的数据:给出本次共猜对了多少个数字、 猜对的数字并且位置正确的个数。程序代码:#include<stdio.h>#include<stdlib.h>#include<time.h>int random

10、()int a;srand(unsigned)time(NULL);a=rand()%9+1;getchar();return(a);int main() void compare( int a5,int b5);int a,b,c,d,e;int str5,k,arr5;printf("猜5个不同的数字(1-9)n");for(k=0;k<5;k+)scanf("%d",&strk);a=random(); getchar();b=random(); getchar();if(b=a)while(a=b) b=random(); c=ra

11、ndom();if(c=a|c=b)while(c=a|c=b) c=random(); getchar();d=random();if(d=a|d=b|b=c)while(d=a|d=b|d=c) d=random(); getchar();e=random();if(e=a|e=b|e=c|e=d)while(e=a|e=b|e=c|e=d) e=random(); getchar();arr0=a;arr1=b;arr2=c;arr3=d;arr4=e;printf("产生的五位随机数:n%d%d%d%d%dn",a,b,c,d,e);compare(str,arr)

12、;return 0;void compare(int a5,int b5)int i,j,flog1=0,flog2=0;for(i=0;i<5;i+)for(j=0;j<5;j+)if(ai=bj)flog1+;break;for(i=0;i<5;i+)if(ai=bi)flog2+;printf("一共猜对了%d个数字!n其中先后顺序一致有%d个!nn",flog1,flog2);运行结果展示二、课程设计内容(选做题)1、 图书信息管理系统.图书信息管理系统:采用结构体数组或文件形式存储每本书的信息:每本书应包含如下几方面的信息:主编、出版社、出版年、

13、版次、ISBN书号、书名、定价、拥有本数、借出本数、现余本数。主要包含以下功能:(1) 添加、删除、修改图书的信息;(2) 借书(被借之书“借出本数”增1,“现余本数”减1);(3) 还书;(4) 查找功能(需指定书的某项信息,查找该书目前借出、余存信息);启动时从文件中读出图书信息,退出时把图书信息写回到文件程序代码:#include<stdio.h>#include<string.h>#include<stdlib.h>struct liberary char name15;char writer20;char publish30;long dateou

14、t;long IBSN;float price;int sum;int bookout;int bookin;book3;void guanli()int a;void add();void del();void xiugai();printf("可以实现对图书的管理功能:n(1).添加t(2).删除t(3).修改nn输入选项:");scanf("%d",&a);if(a=1)add();if(a=2)del();if(a=3)xiugai();void add()int i,k;FILE *fp;printf("添加图书的信息:n输入

15、添加图书的数量:");scanf("%d",&k);printf("书名t作者t出版社t版次tIBSN书号t定价t藏书量t借出量t现存n");for(i=0;i<k;i+)scanf("%s",);scanf("%s",booki.writer);scanf("%s",booki.publish);scanf("%ld",&booki.dateout);scanf("%ld",&booki.IBS

16、N);scanf("%f",&booki.price);scanf("%d%d%d",&booki.sum,&booki.bookout,&booki.bookin);if(fp=fopen("book.txt","w")=NULL)/printf("无法打开文件!n");return;for(i=0;i<k;i+)fprintf(fp,"%st%st%st%ldt%ldt%4.1ft%dt%dt%dn",,booki

17、.writer,booki.publish,booki.dateout,booki.IBSN,booki.price,booki.sum,booki.bookout,booki.bookin);fclose(fp);void del()void read();FILE *fp;char a,name15;/long k;int i,m=3;read();printf("输入删除的书籍名称:");gets(name);getchar();for(i=0;i<10;i+)if(strcmp(name,)=0)break;printf("确定删

18、除(Y/N)n");getchar();a=getchar();for(;i<3;i+)/booki=booki+1;if(fp=fopen("book.txt","w")=NULL)printf("无法打开文件!n");return;for(i=0;i<(m-1);i+)fprintf(fp,"%st%st%st%ldt%ldt%4.1ft%dt%dt%dn",,booki.writer,booki.publish,booki.dateout,booki.IBSN,boo

19、ki.price,booki.sum,booki.bookout,booki.bookin);fclose(fp);printf("删除成功!n");void xiugai()void read();struct liberary k;int i,m=3,a,j;char name15;/long num;FILE *fp;read();printf("输入修改的书籍名称:");gets(name);getchar();for(i=0;i<3;i+)if(strcmp(name,)=0)break;printf("选择

20、功能:nn(1).书名 (2).作者 (3).出版社 n(4).版次 (5).IBSN (6).定价 n(7).总量 (8).借出 (9).剩余n(10).修改完成n");for(j=0;j+)printf("选择:");scanf("%d",&a);getchar();switch(a)case 1:printf("书名:n");gets();getchar();strcpy(,);break;case 2:printf("作者:n");gets(k.

21、writer);getchar();strcpy(booki.writer,k.writer);break;case 3:printf("出版社:n");gets(k.publish);getchar();strcpy(booki.publish,k.publish);break;case 4:printf("版次:n");scanf("%ld",&k.dateout);booki.dateout=k.dateout;break;case 5:printf("IBSN书号:n");scanf("%

22、ld",&k.IBSN);booki.IBSN=k.IBSN;break;/getchar();case 6:printf("定价:n");scanf("%f",&k.price);/getchar();booki.price=k.price;break;case 7:printf("总存量:n");scanf("%d",&k.sum);/getchar();booki.sum=k.sum;break;case 8:printf("借出:n");scanf(&q

23、uot;%d",&k.bookout);booki.bookout=k.bookout;/getchar();break;case 9:printf("现存:n");scanf("%d",&k.bookin);/getchar();booki.bookin=k.bookin;break;case 10:break;if(a=10)break;getchar();if(fp=fopen("book.txt","w+")=NULL)printf("无法打开文件!n");re

24、turn;for(i=0;i<m;i+)fprintf(fp,"%st%st%st%ldt%ldt%4.1ft%dt%dt%dn",,booki.writer,booki.publish,booki.dateout,booki.IBSN,booki.price,booki.sum,booki.bookout,booki.bookin);fclose(fp);printf("修改成功!n");void jieyue()void read();FILE *fp;int i,j,m=0,a;char name15;read();pri

25、ntf("输入被借阅的书");gets(name);getchar();printf("借阅数:");scanf("%d",&a);for(j=0;j<m;j+)if(strcmp(name,)=0)break;printf("将借阅后的信息存到文件里:");bookj.bookout=bookj.bookout+a;bookj.bookin=bookj.bookin-a;if(fp=fopen("book.txt","w")=NULL)pr

26、intf("无法打开文件!n");return;for(i=0;i<3;i+)fprintf(fp,"%st%st%st%ldt%ldt%4.1ft%dt%dt%dn",,booki.writer,booki.publish,booki.dateout,booki.IBSN,booki.price,booki.sum,booki.bookout,booki.bookin);fclose(fp);void huanshu()void read();FILE *fp;int i,j,m=0,a;char name15;read();

27、printf("输入要还的书");gets(name);getchar();printf("数量:");scanf("%d",&a);for(j=0;j<m;j+)if(strcmp(name,)=0)break;printf("将还书后的信息存到文件里:");bookj.bookout=bookj.bookout-a;bookj.bookin=bookj.bookin+a;if(fp=fopen("book.txt","w")=NULL)p

28、rintf("无法打开文件!n");return;for(i=0;i<3;i+)fprintf(fp,"%st%st%st%ldt%ldt%4.1ft%dt%dt%dn",,booki.writer,booki.publish,booki.dateout,booki.IBSN,booki.price,booki.sum,booki.bookout,booki.bookin);fclose(fp);void search() int j,m=0;char name15;void read();read();printf("

29、;输入查询的书籍名称:");gets(name);getchar();for(j=0;j<3;j+)if(strcmp(,name)=0)break;printf("查询的书籍信息:n");printf("书名:%s,作者:%s,出版社:%sn",,bookj.writer,bookj.publish);printf("版次:%ld ",bookj.dateout); printf("IBSN书号:%ld,定价:%4.1fn",bookj.IBSN,bookj

30、.price);printf("书存量:%d,",bookj.sum);printf("借出:%d,",bookj.bookout);printf("剩余:%dn",bookj.bookin);void read() FILE *fp;int j;if(fp=fopen("book.txt","r+")=NULL)/printf("无法打开文件!n");return ;for(j=0;j<3;j+)fscanf(fp,"%s",)

31、;fscanf(fp,"%s",bookj.writer);fscanf(fp,"%s",bookj.publish);fscanf(fp,"%ld",&bookj.dateout);fscanf(fp,"%ld",&bookj.IBSN);fscanf(fp,"%f",&bookj.price);fscanf(fp,"%d",&bookj.sum);fscanf(fp,"%d",&bookj.bookout);fs

32、canf(fp,"%d",&bookj.bookin);fclose(fp);int main()FILE *fp;int a,i,j,m;printf("ttttt-功能菜单-tttn");printf("ttttt| |n");printf("ttttt| |n");printf("ttttt|t(1) 借阅 |n");printf("ttttt|t(2) 还书 |n");printf("ttttt|t(3) 查询 |n");printf(&q

33、uot;ttttt|t(4) 管理图书信息 |n");printf("ttttt|t(5) 退出 |n");printf("ttttt| |n");printf("ttttt| |n");printf("ttttt-tttnnn"); printf("有没有数据(0/1)n");scanf("%d",&m);if(m=1)read();for(i=0;i+)printf("输入想要实现的功能:n");scanf("%d",&a); getchar();switch(a)case 1:jieyue();br

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论