《C语言上机实验报告.docx》由会员分享,可在线阅读,更多相关《C语言上机实验报告.docx(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、长江大学计算机系课程实验报告实验课程:C语言程序设计基础实验项目:简易图书管理系统指导教师:肖颗学生姓名:梅亚龙学生学号:班级:计算机网络(专)实验地点:717实验时间:2012年6月16日-6月29日实验成绩:评阅老师:目录一课程设计的题目与要求31.题目:32.遇到的问题:33.要求:3二.课程设计题目功能31系统功能模块框图设计32.数据结构説明43.输出数据5三课程设计总结8附录9一课程设计的题目与要求1.题目:C语言简易图书信息管理系统2.遇到的问题:用到一些生疏的函数。例如:fputs,fprintf,fopen。还有一些没遇到的C语言设计的思想。3.要求:1) 查询图书基本信息2
2、) 按书名查询3) 查询数量=2的图书信息4) 显示图书全部信息5) 按图书数量排序6) 按图书种类排序7) 每本图书总价8) 全部图书总价9) 修改图书信息10) 借出图书二.课程设计题目功能1系统功能模块框图设计:功能函数模块:函数调用StructReadfileMainbrwbookfaxbookQrybybooknameAllbookpriceQrycountQryallbookShowbookSortbycountsortbychassabookpricexiewrite2.数据结构説明用到的数据:int 整型、float 单精度浮点型、char 字符型;struct 结构体;函数:
3、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,fprint
4、f 写文件;3.输出数据查询图书基本信息按书名查询查询数量=2的图书信息显示图书全部信息按图书数量排序按图书种类排序每本图书总价全部图书总价修改图书信息借出图书三课程设计总结程序过大,不够精简,无用文字太多。 学习耐心与细心不足,如scanf(“%d”,&n);中的“&”经常忘记。 编程思想不够发散。在今后学习中应更多的动脑,综合运用所学。 基本功不够,如fputs()等函数用的不好,有时同样的问题多次犯,给实验课老师带来很大的麻烦。这说明我的知识不够广,有很多有用但不做考试要求的书中内容没有学好,认识程度不够深刻。就算以后C语言这门课程结束后,也应多看相关东西,多上机练习,才能真正从本质上提
5、高自己。 知识不够广泛,如VC6.0等程序,自己试了好一阵也不会用;说明我电脑水平还是不够,自学能力不够。已会的东西掌握的还是不够好。 实验心得 通过本次C语言上机实验,我对这个介于人类与非人类之间的计算机编程语言有了一定的体验。其间开心过、郁闷过、无奈过、彷徨过随着实验的胜利成功与实验报告的胜利完成,有点微微的自豪感使人难忘。感谢肖颗老师的高标准、严要求。感谢实验课上老师的耐心指点,也感谢我在实验中经历过的点点滴滴伴随着学习的深入,我发现高深的东西还有很多很多,等待着我自己去挖掘。对C语言,我会更加努力。附录#includestdio.h#include stdlib.h#includest
6、ring.h#define N 10struct bookint ID;char Chass10;char Bookname25;char Author10;char Publishing25;int Count;float Price;struct book booksN;int i;char h100;void menu()printf(* );printf( 简易图书信息管理系统);printf( *);printf( 1.查询图书基本信息 );printf( 2.按书名查询);printf(3.查询数量=2的图书信息);printf(4.显示图书全部信息);printf(5.按图书数量
7、排序);printf(6.按图书种类排序);printf(7.每本图书总价);printf(8.全部图书总价);printf(9.修改图书信息);printf(10.借出图书);printf(11.退出n);void readfile()FILE *p;p=fopen(E:梅亚龙.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,&booksi.ID,booksi.Chass,booksi.Bookname,booksi.Author,booksi.Pu
8、blishing,&booksi.Count,&booksi.Price);fclose(p);void Showbooks()/*查询图书基本信息*/readfile();printf(编号 分类 书名 作者 出版社 数量 单价n);for(i=0;i=N;i+)printf(%d %s %s %s %s %d %.2fn,booksi.ID,booksi.Chass,booksi.Bookname,booksi.Author,booksi.Publishing,booksi.Count,booksi.Price);void Qrybybookname()/*按书名查询*/char book
9、name125;printf(请输入书名:n);scanf(%s,bookname1);printf(编号 分类 书名 作者 出版社 数量 单价n);readfile();for(i=0;i=2的图书信息*/printf(编号 分类 书名 作者 出版社 数量 单价n);readfile();for(i=0;i=2)printf(%d %s %s %s %s %d %.2fn,booksi.ID,booksi.Chass,booksi.Bookname,booksi.Author,booksi.Publishing,booksi.Count,booksi.Price);void Qryallbo
10、ok()/*显示图书全部信息*/printf(编号 分类 书名 作者 出版社 数量 单价 总价n);readfile();float s,x=0;for(i=0;i=0;s+)for(i=0;i=N;i+)if(booksi.Count=s)printf(%d %s %s %s %s %d %.2fn,booksi.ID,booksi.Chass,booksi.Bookname,booksi.Author,booksi.Publishing,booksi.Count,booksi.Price);void Sortbychass()/*按图书种类排序*/int j;readfile();prin
11、tf(编号 分类 书名 作者 出版社 数量 单价n);struct book book1;for(i=0;iN;i+)for(j=i+1;j0)book1=booksi;booksi=booksj;booksj=book1;for (i=0;iN;i+)printf(%d %s %s %s %s %d %.2fn,booksi.ID,booksi.Chass,booksi.Bookname,booksi.Author,booksi.Publishing,booksi.Count,booksi.Price);void abookprice()/*每本图书总价*/printf(书名 总价n);fl
12、oat s;readfile();for(i=0;i=N;i+)s=booksi.Count*booksi.Price;printf(%s %.2fn,booksi.Bookname,s);void allbookprice()/*全部图书总价*/float s;float x=0;readfile();printf(全部图书总价:);for(i=0;i=N;i+)s=booksi.Count*booksi.Price;x=x+s;printf(%.2fn,x);void xie()FILE *fp;fp=fopen(E:梅亚龙.txt,r);if(fp=0)printf(图书信息打开文件错误
13、!n);return;fputs(h,fp);for(i=0;i=N;i+)fprintf(fp,%s%s%s%s%d%f,booksi.Chass,booksi.Bookname,booksi.Author,booksi.Publishing,booksi.Count,booksi.Price);printf(修改成功!);fclose(fp);void faxbook()/*修改图书信息*/int a;readfile();printf(请输入修改书号:);scanf(%d,&a);printf(编号 分类 书名 作者 出版社 数量 单价n);for(i=0;i=N;i+)if (a=bo
14、oksi.ID)printf(%d %s %s %s %s %d %.2fn,booksi.ID,booksi.Chass,booksi.Bookname,booksi.Author,booksi.Publishing,booksi.Count,booksi.Price);printf(请输入修改后的信息:n);scanf(%s%s%s%s%d%f,booksi.Chass,booksi.Bookname,booksi.Author,booksi.Publishing,&booksi.Count,&booksi.Price);printf(修改后的信息:n);printf(编号 分类 书名 作
15、者 出版社 数量 单价n);for(i=0;i=N;i+)printf(%d %s %s %s %s %d %.2f,booksi.ID,booksi.Chass,booksi.Bookname,booksi.Author,booksi.Publishing,booksi.Count,booksi.Price);xie();void write()FILE *fp;fp=fopen(E:梅亚龙.txt,r);if(fp=0)printf(图书信息打开文件错误!n);return;fputs(h,fp);for(i=0;i=N;i+)fprintf(fp,%d,booksi.Count);pri
16、ntf(借出成功!);fclose(fp);void brwbook()/*借出图书*/int a;readfile();printf(请输入借出图书的书号:);scanf(%d,&a);printf(编号 分类 书名 作者 出版社 数量 单价n);for(i=0;i=N;i+)if (a=booksi.ID)printf(%d %s %s %s %s %d %.2fn,booksi.ID,booksi.Chass,booksi.Bookname,booksi.Author,booksi.Publishing,booksi.Count,booksi.Price);booksi.Count=bo
17、oksi.Count-1;printf(借出后的图书信息:n);printf(编号 分类 书名 作者 出版社 数量 单价n);for(i=0;i=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;
限制150内