图15追加前的浏览界面
图16追加界面
图17追加后的浏览界面
5.遇到的问题与解决办法
由于指针、结构体、文件等基础知识的欠缺,在编写程序的过程中,遇到
了不知该如何定义结构体变量,如何利用指针建立文件,对文件进行读写操作,难以理解一些编译出错信息。这些问题主要是通过观看教学视频,查找相关网页,翻看教材,询问老师和其他专业的学生进行解决
6.课程设计总结
通过总计5天的课程设计,我感觉收获很多,不仅仅是掌握了有关C语言
的一些基本知识,同时学会了如何解决一些编程过程中遇到的问题,如上网查询,询问老师和朋友交流,吸收经验,总结经验,在编程的过程中要认真仔细,注重细节。同时明白要想将编程学好,除了掌握基础之外,还要经常练习,多分析他人所编的程序代码,在实践中获取知识和经验,同时锻炼自己的搜索信息,理解、分析程序代码的能力。由于能力有限,所编的图书管理系统还有很多不足之处,但是只要肯努力,相信自己会有更好的表现。在此很感谢老师和朋友的帮助,让我这5天学得很充实。
7.参考文献:
[1]谭浩强 张基温. C语言程序设计教程(第三版).北京:高等教育出版社.2006.8
[2]不详.C语言视频asf教程(2006)[E].不详,2006
8.附录
源程序代码:
/*****************************************************************************/ /**********************************图书管理系统*******************************/ /*****************************************************************************/ #include\#include\#include\#include\#define M 1
typedef struct bookManageInfo {
char bookName[20]; //图书名称 char bookCode[20]; //图书编号 float price; //图书价格 char author[10]; //作者
int state; //存在状态,0 代表可以出借,1 代表已经借出 char borrowerName[10];//借书人姓名
int sex; //借书人性别,0 代表女,1 代表男
char stuNo[10]; //借书人学号 }BOOK;
/*****************************************************************************/
/********************************1.录 入***************************************/ void input() { int i;
BOOK a; FILE *fp; system(\
if((fp=fopen(\{ printf(\抱歉,不能打开文件!\\n\
printf(\图书信息录入***********************\\n\\n\ for(i=0;i printf(\请输入图书编号:\ scanf(\ printf(\请输入图书价格:\ scanf(\ printf(\请输入图书作者:\ scanf(\ a.state=0; strcpy(a.borrowerName,\ a.sex=0; /*初始状态为可出借*/ strcpy(a.stuNo,\ fwrite(&a,sizeof(BOOK),1,fp); } fclose(fp); printf(\请按任意键继续!\getch(); } /*****************************************************************************/ /********************************2.浏 览***************************************/ void list() {BOOK a; FILE *fp; system(\ printf(\printf(\*******************************图书信息浏览*********************************\\n\ if((fp=fopen(\ {printf(\抱歉,不能打开此文件!\\n\ printf(\ 书名\\t编号\\t价格\\t作者\\t借出状态\\t学生\\t性别\\t学号\\n\\n\ while(fread(&a,sizeof(BOOK),1,fp)!=0) printf(\ %s\\t%s\\t%3.2f\\t%s\\t%d\\t\\t%s\\t%d\\t%s\\n\ a.author,a.state,a.borrowerName,a.sex,a.stuNo); printf(\printf(\ ***************************************************************************\\n\fclose(fp); printf(\请按任意键返回!\getch(); } /*****************************************************************************/ static int g1; /*定义全局变量*/ /**********************************3.查 询*************************************/ /*******************************3.1按书名查询**********************************/ void search_by_name() { FILE *fp; int i; BOOK b[10]; char s2[20]; system(\ printf(\按书名查询***********************\\n\\n\ fp=fopen(\if(fp==NULL) {printf(\抱歉,不能打开此文件!\\n\ for(i=0;i fread(&b[i],sizeof(BOOK),1,fp); printf(\请输入要查询的书名: \scanf(\for(i=0;i {if(strcmp(s2,b[i].bookName)==0) {printf(\书名\\t编号\\t价格\\t作者\\t借出状态\\n\ printf(\ b[i].price,b[i].author,b[i].state); break;} i++; if(i==M+g1) printf(\抱歉,找不到此书!\ } fclose(fp); printf(\请按任意键继续!\getch(); } /*****************************************************************************/ /******************************3.2按作者查询***********************************/ void search_by_writer() { int i; FILE *fp; BOOK b[10]; char s3[20]; system(\ printf(\按作者查询***********************\\n\\n\fp=fopen(\if(fp==NULL) {printf(\抱歉,不能打开此文件!\\n\for(i=0;i fread(&b[i],sizeof(BOOK),1,fp); printf(\请输入要查询的书的作者: \scanf(\for(i=0;i {if(strcmp(s3,b[i].author)==0) {printf(\书名\\t编号\\t价格\\t作者\\t借出状态\\n\ printf(\ b[i].price,b[i].author,b[i].state); break;} i++; if(i==M+g1) printf(\抱歉,找不到此书!\ fclose(fp); printf(\请按任意键继续!\ getch(); } /*****************************************************************************/ /********************************查询菜单*************************************/ void search() { int a; system(\ /*进行清屏*/ printf(\查询***************\\n\ printf(\ printf(\按书名查询\\n\ printf(\按作者名查询\\n\ printf(\退出\\n\ printf(\ printf(\请选择你想要的查询方式:\ scanf(\ switch(a) {case 1:search_by_name();break; case 2:search_by_writer();break;