C语言上机实验报告
- 格式:docx
- 大小:125.11 KB
- 文档页数:15
长江大学计算机系课程实验报告目录一.课程设计的题目与要求 (3)1.题目: (3)2.遇到的问题: (3)3.要求: (3)二.课程设计题目功能 (3)1.系统功能模块框图设计 (3)2.数据结构説明 (4)3.输出数据 (5)三.课程设计总结 (8)附录 (9)一.课程设计的题目与要求1.题目:C 语言简易图书信息管理系统2.遇到的问题:用到一些生疏的函数。
例如:fputs ,fprintf ,fopen 。
还有一些没遇到的C 语言设计的思想。
3.要求: 1) 查询图书基本信息 2) 按书名查询3) 查询数量>=2的图书信息 4) 显示图书全部信息 5) 按图书数量排序 6) 按图书种类排序 7) 每本图书总价 8) 全部图书总价 9)修改图书信息 10) 借出图书二.课程设计题目功能1.系统功能模块框图设计:功能函数模块:函数调用2.数据结构説明用到的数据:int 整型、float 单精度浮点型、char 字符型;struct 结构体;函数:menu()、readfile()、showbooks()、Qrybybookname()、Qrycount()、Qrylbooks()、sortbycount()、sortbychass()、abookprice()、allbookprice()、xie()、faxbook()、write()、brwbook()、exit(0);F0LE *p 指针;For循环;if 如果;while 循环;switch 选择;scanf 输入;printf 输出;return 返回;strcmp 比较数组fopen 打开文件;fclose关闭文件;fgets,fscanf 读文件;fputs,fprintf 写文件;3.输出数据查询图书基本信息按书名查询查询数量>=2的图书信息显示图书全部信息按图书数量排序按图书种类排序每本图书总价全部图书总价修改图书信息借出图书三.课程设计总结程序过大,不够精简,无用文字太多。
学习耐心与细心不足,如scanf(“%d”,&n);中的“&”经常忘记。
编程思想不够发散。
在今后学习中应更多的动脑,综合运用所学。
基本功不够,如fputs()等函数用的不好,有时同样的问题多次犯,给实验课老师带来很大的麻烦。
这说明我的知识不够广,有很多有用但不做考试要求的书中内容没有学好,认识程度不够深刻。
就算以后C语言这门课程结束后,也应多看相关东西,多上机练习,才能真正从本质上提高自己。
知识不够广泛,如VC++6.0等程序,自己试了好一阵也不会用;说明我电脑水平还是不够,自学能力不够。
已会的东西掌握的还是不够好。
实验心得通过本次C语言上机实验,我对这个介于人类与非人类之间的计算机编程语言有了一定的体验。
其间开心过、郁闷过、无奈过、彷徨过……随着实验的胜利成功与实验报告的胜利完成,有点微微的自豪感使人难忘。
感谢肖颗老师的高标准、严要求。
感谢实验课上老师的耐心指点,也感谢我在实验中经历过的点点滴滴……伴随着学习的深入,我发现高深的东西还有很多很多,等待着我自己去挖掘。
对C语言,我会更加努力。
附录#include"stdio.h"#include "stdlib.h"#include"string.h"#define N 10struct book{int ID;char Chass[10];char Bookname[25];char Author[10];char Publishing[25];int Count;float Price;};struct book books[N];int i;char h[100];void menu(){printf(" ****************************");printf(" 简易图书信息管理系统");printf(" **************************");printf(" 1.查询图书基本信息");printf(" 2.按书名查询");printf(" 3.查询数量>=2的图书信息");printf(" 4.显示图书全部信息");printf(" 5.按图书数量排序");printf(" 6.按图书种类排序");printf(" 7.每本图书总价");printf(" 8.全部图书总价");printf(" 9.修改图书信息");printf(" 10.借出图书");printf(" 11.退出\n");}void readfile(){FILE *p;p=fopen("E:\\梅亚龙201162075.txt","r");if(p==0){printf("图书信息打开文件错误!\n");return;}fgets(h,100,p);for(i=0;i<=N;i++){fscanf(p,"%d%s%s%s%s%d%f",&books[i].ID,books[i].Chass,books[i] .Bookname,books[i].Author,books[i].Publishing,&books[i].Count,&books [i].Price);}fclose(p);}void Showbooks()/*查询图书基本信息*/{readfile();printf("编号分类书名作者出版社数量单价\n");for(i=0;i<=N;i++){printf("%d %s %s %s %s %d %.2f\n",books[i].ID,books[i].Chass,b ooks[i].Bookname,books[i].Author,books[i].Publishing,books[i].Count, books[i].Price);}}void Qrybybookname()/*按书名查询*/{char bookname1[25];printf("请输入书名:\n");scanf("%s",bookname1);printf("编号分类书名作者出版社数量单价\n");readfile();for(i=0;i<=N;i++){if(strcmp(bookname1,books[i].Bookname)==0){printf("%d %s %s %s %s %d %.2f\n",books[i].ID,books[i].Chass,b ooks[i].Bookname,books[i].Author,books[i].Publishing,books[i].Count, books[i].Price);}}}void Qrycount() /*查询数量>=2的图书信息*/{printf("编号分类书名作者出版社数量单价\n");readfile();for(i=0;i<=N;i++){if(books[i].Count>=2){printf("%d %s %s %s %s %d %.2f\n",books[i].ID,books[i].Chass,b ooks[i].Bookname,books[i].Author,books[i].Publishing,books[i].Count, books[i].Price);}}}void Qryallbook() /*显示图书全部信息*/{printf("编号分类书名作者出版社数量单价总价\n");readfile();float s,x=0;for(i=0;i<=N;i++){s=books[i].Count*books[i].Price;printf("%d %s %s %s %s %d %.2f %.2f\n",books[i].ID,books[i].Ch ass,books[i].Bookname,books[i].Author,books[i].Publishing,books[i].C ount,books[i].Price,s);x=x+s;}printf("全部图书总价:%.2f\n",x);}void Sortbycount()/*按图书数量排序*/{int s=0;printf("编号分类书名作者出版社数量单价\n");readfile();for(s=0;s>=0;s++)for(i=0;i<=N;i++){if(books[i].Count==s){printf("%d %s %s %s %s %d %.2f\n",books[i].ID,books[i].Chass,books[i].Bookname,books[i].Author,books[i].Publishing,books[i].Count, books[i].Price);}}}void Sortbychass()/*按图书种类排序*/{int j;readfile();printf("编号分类书名作者出版社数量单价\n");struct book book1;for(i=0;i<N;i++)for(j=i+1;j<N;j++)if(strcmp(books[i].Chass,books[j].Chass)>0){book1=books[i];books[i]=books[j];books[j]=book1;}for (i=0;i<N;i++){printf("%d %s %s %s %s %d %.2f\n",books[i].ID,books[i].Chass,b ooks[i].Bookname,books[i].Author,books[i].Publishing,books[i].Count, books[i].Price);}}void abookprice() /*每本图书总价*/{printf("书名总价\n");float s;readfile();for(i=0;i<=N;i++){s=books[i].Count*books[i].Price;printf("%s %.2f\n",books[i].Bookname,s);}}void allbookprice() /*全部图书总价*/{float s;float x=0;readfile();printf("全部图书总价:");for(i=0;i<=N;i++){s=books[i].Count*books[i].Price;x=x+s;}printf("%.2f\n",x);}void xie(){FILE *fp;fp=fopen("E:\\梅亚龙201162075.txt","r");if(fp==0){printf("图书信息打开文件错误!\n");return;}fputs(h,fp);for(i=0;i<=N;i++){fprintf(fp,"%s%s%s%s%d%f",books[i].Chass,books[i].Bookname,boo ks[i].Author,books[i].Publishing,books[i].Count,books[i].Price);}printf("修改成功!");fclose(fp);}void faxbook()/*修改图书信息*/{int a;readfile();printf("请输入修改书号:");scanf("%d",&a);printf("编号分类书名作者出版社数量单价\n");for(i=0;i<=N;i++){if (a==books[i].ID){printf("%d %s %s %s %s %d %.2f\n",books[i].ID,books[i].Chass,b ooks[i].Bookname,books[i].Author,books[i].Publishing,books[i].Count, books[i].Price);printf("请输入修改后的信息:\n");scanf("%s%s%s%s%d%f",books[i].Chass,books[i].Bookname,books[i] .Author,books[i].Publishing,&books[i].Count,&books[i].Price);printf("修改后的信息:\n");printf("编号分类书名作者出版社数量单价\n");for(i=0;i<=N;i++){printf("%d %s %s %s %s %d %.2f",books[i].ID,books[i].Chass,books[i].Bookname,books[i].Author,books[i].Publishing,books[i].Count,bo oks[i].Price);}xie();}}}void write(){FILE *fp;fp=fopen("E:\\梅亚龙201162075.txt","r");if(fp==0){printf("图书信息打开文件错误!\n");return;}fputs(h,fp);for(i=0;i<=N;i++){fprintf(fp,"%d",books[i].Count);}printf("借出成功!");fclose(fp);}void brwbook()/*借出图书*/{int a;readfile();printf("请输入借出图书的书号:");scanf("%d",&a);printf("编号分类书名作者出版社数量单价\n");for(i=0;i<=N;i++){if (a==books[i].ID){printf("%d %s %s %s %s %d %.2f\n",books[i].ID,books[i].Chass,b ooks[i].Bookname,books[i].Author,books[i].Publishing,books[i].Count, books[i].Price);books[i].Count=books[i].Count-1;printf("借出后的图书信息:\n");printf("编号分类书名作者出版社数量单价\n");for(i=0;i<=N;i++){printf("%d %s %s %s %s %d %.2f\n",books[i].ID,books[i].Chass,b ooks[i].Bookname,books[i].Author,books[i].Publishing,books[i].Count, books[i].Price);}write();}}if (a>=N){printf("该图书已借出或不存在!");return;}}void main(){int idt;while (1){menu();printf("请输入编号:");scanf("%d",&idt);switch(idt){case 1: Showbooks();break;case 2: Qrybybookname();break;case 3: Qrycount();break;case 4: Qryallbook();break;case 5: Sortbycount();break;case 6: Sortbychass();break;case 7: abookprice();break;case 8: allbookprice();break;case 9: faxbook();break;case 10: brwbook();break;case 11: exit(0);break;}}}。