《C语言程序设计报告+图书信息管理系统.doc》由会员分享,可在线阅读,更多相关《C语言程序设计报告+图书信息管理系统.doc(14页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、目 录课程设计任务书- 3-课程设计进度方案表- 4-1设计目的-5 -2总体设计-5- 1结构提设计2总体模块设计3详细设计- 5 -4程序调试- 6 -5源程序清单- 6 -6执行结果- 13 -参考文献- 18 -# include /*数据流输入输出*/ # include /*定义输入输出函数*/# include /*字符串处理 */# include /*文件输入输出*/# include /*定义杂项函数及内存分配函数*/# define N 10 struct Book /*图书信息结构体*/ char number8; /*图书编号*/ char sname15; /*图书
2、名称*/ char zname10; /*作者姓名*/ char press150; /*出版单位*/ char time10; /*出版时间*/ int price; /*图书价格*/; void putout(struct Book str,int n); /将文件中的信息读出即数据初始化 int Input(struct Book str,int n); int zuozhe(struct name str,int n);/信息录入 void Output(struct Book str,int n); /浏览图书信息 void Sort(struct Book str,int n);
3、/按出版单位排序 void Find(struct Book str,int n); /按作者名查询 int Delete(struct Book str,int n); /给定 图书编号,删除该图书信息 void Edit(struct Book str,int n); /输入书本名,修改相应信息 void Save(struct Book str,int n); /数据保存函数 void main() struct Book BookData1000; int a,length=0,key=1; /*length数据块长度*/ / chushihua(BookData,length); w
4、hile (a!=0) printf(=书山有路勤为径,学海无涯苦作舟=n);printf(=欢送进入图书查询系统=n);printf(制作日期:2021年6月7日至11日 主编:杜雷,杨旭平 09电子商务2班n); printf(*Menu*n); printf( 1.录入图书信息n); printf( 2.浏览图书信息n); printf( 3.按书名排序图书信息n); printf( 4.按书名查询图书信息n); printf( 5.删除图书信息n); printf( 6.修改图书信息n); printf( 0.退出n); printf(n); scanf(%d,&a); switch(
5、a) case 1: length=Input(BookData,length);Save(BookData,length);break; case 2: Output(BookData,length); break; case 3: Sort(BookData,length);break; case 4: Find(BookData,length);break; case 5: length=Delete(BookData,length);break; case 6: Edit(BookData,length);break; case 0: break; default: printf(输入
6、错误,返回主菜单重新输入!n); void xinxishchu(struct Book str,int n) /将文件中数据读出的函数 FILE *fp; int i; struct Book * pr; if(fp=fopen(book.txt,wb+)=NULL) printf(找不到要翻开的文件n); exit (1); fread(&pr,sizeof(struct Book),n,fp); for(i=0;inumber); strcpy(stri.sname,pr-sname); strcpy(stri.zname,pr-zname); strcpy(stri.press,pr-
7、press); strcpy(stri.time,pr-time); stri.price=pr-price; rewind(fp); fclose(fp); printf(数据初始化成功!n); int Input(struct Book str,int n) /*图书信息的录入*/ int c=1,i=n-1; while(c=1) i+; printf(请输入图书编号n); scanf(%s,&stri.number); printf(请输入图书名称n); scanf(%s,&stri.sname); printf(请输入作者姓名n); scanf(%s,&stri.zname); pr
8、intf(请输入出版单位n); scanf(%s,&stri.press); printf(请输入出版时间n); scanf(%s,&stri.time); printf(请输入图书价格n); scanf(%d,&stri.price); printf(n*输入的图书信息如下 *n); printf(图书编号 图书名称 作者名 出版社单位 出版时间 图书价格n); printf(%-12s%-12s%-12s%-14s%-12s%-12dn,stri.number,stri.sname,stri.zname,stri.press,stri.time,stri.price); printf(是否
9、继续输入(1/0)?n); scanf(%d,&c); return (+i); Save(str,n); printf(图书总数量合计为%dn,n); void Output(struct Book str,int n) /图书信息的输出 int i; printf(n*n); printf( *图书信息如下:*n); printf(图书编号 图书名称 作者名 出版社单位 出版时间 图书价格n); for(i=0;in;i+) printf(%-12s%-12s%-12s%-14s%-12s%-12dn,stri.number,stri.sname,stri.zname,stri.press
10、,stri.time,stri.price); printf( n); printf(图书总数量合计为%dn,n); void Sort(struct Book str,int n) /按出版单位排序 int i,j; struct Book change; for(i=0;in-1;i+) for(j=i+1;j0) change=stri; stri=strj; strj=change; Output(str,n); Save(str,n); printf(图书总数量合计为%dn,n); Output(str,n); void Find(struct Book str,int n) /按书
11、名查询图书信息 char a10;int i,flag=1; printf(请输入书名称n); scanf(%s,a); for(i=0;in;i+) if(strcmp(a,stri.sname)=0) printf(%-12s%-12s%-12s%-14s%-12s%-12dn,stri.number,stri.sname,stri.zname,stri.press,stri.time,stri.price); flag=0; if(flag) printf(没有你想要的图书!n); printf(n); int Delete(struct Book str,int n) /*删除图书信息
12、*/ char a100;int i,j=n,c,flag=1; printf(请输入图书编号n); scanf(%s,a); for(i=0;ij;i+) if(strcmp(a,stri.number)=0) printf(%-12s%-12s%-12s%-14s%-12s%-12dn,stri.number,stri.sname,stri.zname,stri.press,stri.time,stri.price); flag=0; printf(确实想删除此图书信息吗(1/0)?n); scanf(%d,&c); if(c=1) for(;in;i+) stri=stri+1; pri
13、ntf(数据删除成功!n); j-; if(flag) printf(很抱歉,没有找到你想要的图书!n); return j; Save(str,n); printf(图书总数量合计为%dn,n); void Edit(struct Book str,int n) /*图书信息的修改*/ char a100;int i,c,flag=1; printf(请输入图书名称n); scanf(%s,a); for(i=0;in;i+) if(strcmp(a,stri.sname)=0) printf(%-12s%-12s%-12s%-14s%-12s%-12dn,stri.number,stri.
14、sname,stri.zname,stri.press,stri.time,stri.price); flag=0; printf(确实想修改此图书编号吗(1/0)?n); scanf(%d,&c); if(c=1) printf(请输入图书编号!n); scanf(%s,&stri.number); printf(确实想修改此图书名称吗(1/0)?n); scanf(%d,&c); if(c=1) printf(请输入图书名称n); scanf(%s,&stri.sname); printf(确实想修改此作者姓名吗(1/0)?n); scanf(%d,&c); if(c=1) printf(
15、请输入作者姓名n); scanf(%s,&stri.zname); printf(确实想修改此出版社单位吗(1/0)?n); scanf(%d,&c); if(c=1) printf(请输入出版单位n); scanf(%s,&stri.press); printf(确实想修改此图书出版日期吗(1/0)?n); scanf(%d,&c); if(c=1) printf(请输入出版时间n); scanf(%s,&stri.time); printf(确实想修改此图书价格吗(1/0)?n); scanf(%d,&c); if(c=1) printf(请输入图书价格n); scanf(%d,&stri
16、.price); printf(n); printf(修改后的图书信息如下n); printf(%-12s%-12s%-12s%-14s%-12s%-12dn,stri.number,stri.sname,stri.zname,stri.press,stri.time,stri.price); if(flag) printf(没有找到你想要的图书!n); Output(str,n); Save(str,n); printf(图书总数量合计为%dn,n); void Save(struct Book str,int n) FILE *fp; struct Book * pw; if(fp=fop
17、en(book.txt,wb+)=NULL) printf(找不到要翻开的文件n); exit (1); pw=str; fwrite(pw,sizeof(struct Book),n,fp); rewind(fp); fclose(fp); printf(n); printf(数据保存成功!:-)n); 6执行结果 =书山有路勤为径,学海无涯苦作舟=欢送进入图书查询系统=制作日期:2021年6月7日至11日 主编:杜雷,杨旭平 09电子商务2班*Menu* 1.录入图书信息 2.浏览图书信息 3.按书名排序图书信息 4.按书名查询图书信息 5.删除图书信息 6.修改图书信息 0.退出1请输入
18、图书编号01请输入图书名称C语言程序设计请输入作者姓名胡建平请输入出版单位清华大学出版社请输入出版时间2021.7请输入图书价格30*输入的图书信息如下 *图书编号 图书名称 作者名 出版社单位 出版时间 图书价格01 C语言程序设计胡建平 清华大学出版社2021.7 30是否继续输入(1/0)?1请输入图书编号02请输入图书名称大学物理简明教程请输入作者姓名赵近芳请输入出版单位北京邮电大学出版社请输入出版时间2007.8请输入图书价格28*输入的图书信息如下 *图书编号 图书名称 作者名 出版社单位 出版时间 图书价格02 大学物理简明教痴越颊越? 北京邮电大学出版社2007.8 28是否继
19、续输入(1/0)?1请输入图书编号03请输入图书名称大学英语请输入作者姓名郑树堂请输入出版单位复旦大学出版社请输入出版时间2021.9请输入图书价格23*输入的图书信息如下 *图书编号 图书名称 作者名 出版社单位 出版时间 图书价格03 大学英语 郑树堂 复旦大学出版社2021.9 23是否继续输入(1/0)?0数据保存成功!:-)=书山有路勤为径,学海无涯苦作舟=欢送进入图书查询系统=制作日期:2021年6月7日至11日 主编:杜雷,杨旭平 09电子商务2班*Menu* 1.录入图书信息 2.浏览图书信息 3.按书名排序图书信息 4.按书名查询图书信息 5.删除图书信息 6.修改图书信息
20、0.退出2* *图书信息如下:*图书编号 图书名称 作者名 出版社单位 出版时间 图书价格01 C语言程序设计胡建平 清华大学出版社2021.7 3002 大学物理简明教痴越颊越? 北京邮电大学出版社2007.8 2803 大学英语 郑树堂 复旦大学出版社2021.9 23 图书总数量合计为3=书山有路勤为径,学海无涯苦作舟=欢送进入图书查询系统=制作日期:2021年6月7日至11日 主编:杜雷,杨旭平 09电子商务2班*Menu* 1.录入图书信息 2.浏览图书信息 3.按书名排序图书信息 4.按书名查询图书信息 5.删除图书信息 6.修改图书信息 0.退出3* *图书信息如下:*图书编号
21、图书名称 作者名 出版社单位 出版时间 图书价格01 C语言程序设计胡建平 清华大学出版社2021.7 3002 大学物理简明教痴越颊越? 北京邮电大学出版社2007.8 2803 大学英语 郑树堂 复旦大学出版社2021.9 23 图书总数量合计为3数据保存成功!:-)图书总数量合计为3* *图书信息如下:*图书编号 图书名称 作者名 出版社单位 出版时间 图书价格01 C语言程序设计胡建平 清华大学出版社2021.7 3002 大学物理简明教程 赵近芳 北京邮电大学出版社2007.8 2803 大学英语 郑树堂 复旦大学出版社2021.9 23 图书总数量合计为3=书山有路勤为径,学海无涯
22、苦作舟=欢送进入图书查询系统=制作日期:2021年6月7日至11日 主编:杜雷,杨旭平 09电子商务2班*Menu* 1.录入图书信息 2.浏览图书信息 3.按书名排序图书信息 4.按书名查询图书信息 5.删除图书信息 6.修改图书信息 0.退出4请输入书名称大学英语03 大学英语 郑树堂 复旦大学出版社2021.9 23=书山有路勤为径,学海无涯苦作舟=欢送进入图书查询系统=制作日期:2021年6月7日至11日 主编:杜雷,杨旭平 09电子商务2班*Menu* 1.录入图书信息 2.浏览图书信息 3.按书名排序图书信息 4.按书名查询图书信息 5.删除图书信息 6.修改图书信息 0.退出5请
23、输入图书编号0303 大学英语 郑树堂 复旦大学出版社2021.9 23确实想删除此图书信息吗(1/0)?1数据删除成功!=书山有路勤为径,学海无涯苦作舟=欢送进入图书查询系统=制作日期:2021年6月7日至11日 主编:杜雷,杨旭平 09电子商务2班*Menu* 1.录入图书信息 2.浏览图书信息 3.按书名排序图书信息 4.按书名查询图书信息 5.删除图书信息 6.修改图书信息 0.退出6请输入图书名称大学物理简明教程没有找到你想要的图书!* *图书信息如下:*图书编号 图书名称 作者名 出版社单位 出版时间 图书价格01 C语言程序设计胡建平 清华大学出版社2021.7 3002 大学物理简明教程 赵近芳 北京邮电大学出版社2007.8 28 图书总数量合计为2数据保存成功!:-)图书总数量合计为2=书山有路勤为径,学海无涯苦作舟=欢送进入图书查询系统=制作日期:2021年6月7日至11日 主编:杜雷,杨旭平 09电子商务2班*Menu* 1.录入图书信息 2.浏览图书信息 3.按书名排序图书信息 4.按书名查询图书信息 5.删除图书信息 6.修改图书信息 0.退出0Press any key to continue参考文献1胡建平C语言程序设计M北京:清华大学出版社,20212胡建平C语言程序设计学习指导M北京:清华大学出版社,2021