1、通讯录管理系统1沈阳航空航天大学课 程 设 计 报 告课程设计名称:C语言课程设计课程设计题目:图书信息管理系统设计院(系):计算机学院专 业:计算机科学与技术班 级:24010102学 号:2012040101051姓 名:李驰指导教师:高利军完成日期:2013年3月12日目 录第1章 需求分析 21.1需求概述 21.2 系统功能需求分析 2第2章 总体设计 2第3章 详细设计 3第4章 程序源代码 16参考文献 25第1章 需求分析1.1需求概述 图书信息包括:登陆号,书名,作者名,分类号,出版单位,出版时间,价格等; 图书信息录入功能; 图书信息分类浏览功能; 查询和排序功能:(1)按
2、书名查询;(2)按登陆号查询; 图书信息的删除和修改; 系统的各个功能模块要求用函数的形式实现; 完成设计任务并书写课程设计报告;1.2 系统功能需求分析主要包含以下多种功能: 新建:添加图书信息 浏览:显示图书信息 查询:查询图书信息 修改:修改图书信息 删除:删除图书信息 保存:将信息保存到文件第2章 总体设计整个系统可以设计为主菜单模块、数据插入模块、数据浏览模块、数据查找模块、数据修改模块、数据删除模块、文件导入模块和文件保存模块。void mainmenu(); /*主菜单*/void input(); /*输入图书信息*/void searchbookname();/*根据书名查询
3、*/void searchloginnum();/*根据登录号查询*/void insert(); /*插入图书信息*/void delet(); /*删除图书信息*/void change(); /*改变图书信息*/void my exit(); /*返回主菜单*/void main() ; /*主函数*/总体模块流图: 第3章 详细设计采用结构体数组。Struct long loginnum; /*登录号* /char bookname100; /*书名* /char writername20; /*作者名* /long bookid; / *书号*/char unit100; /*出版社
4、地址* /float price; / *图书价格*/char time15; / *出版时间*/cbook; /*信息结构体数组* / (1) 主菜单模块采用switch()函数从键盘选择相应菜单的对应功能。 switch(num) case 1:input();break; /*图书信息录入*/ case 2:searchbookname();break; /*按书名查找*/ case 3:searchloginnum();break; /*按登陆号查找*/ case 4:insert();break; /*图书信息插入*/ case 5:change();break; /*图书信息修改*
5、/ case 6:delet();break; /*图书信息删除*/ case 7:my_exit();break; /*退出*/ default:printf(您输入的数字有误,请重新输入n);(2)数据录入模块printf(请输入图书信息:n);printf(登录号-书名-作者名-书号-出版社名-图书价格-出版时间n);while(1) scanf(%ld,&loginnum); if(loginnum=-1) break; scanf(%s%s%ld%s%s%f,bookname,writername,&bookid,unit,time,&price); bookbook_n.login
6、num=loginnum; strcpy(bookbook_n.bookname,bookname); strcpy(bookbook_n.writername,writername); bookbook_n.bookid=bookid;strcpy(bookbook_n.unit,unit);bookbook_n.price=price;strcpy(bookbook_n.time,time);book_n+;save();/调用文件保存模块将联系人信息(3)数据浏览模块由于本程序新建立文件book.txt,因此图书信息的查询即可到D盘book.txt文件中查找。void save() FI
7、LE*fp; int i; if(fp=fopen(D:book.txt,w+)=NULL) printf(cannot open the filen); return; for(i=0;i3;i+) fprintf(fp,%ld%s%s%ld%s%s%fn,booki.loginnum,booki.bookname,booki.writername,booki.bookid,booki.unit,booki.time,booki.price); fclose(fp); (3)数据查询模块a.按图书名查询 void searchbookname() int mark=0; char bookn
8、ame100; printf(n按书名查找n); printf(n请输入书名:); scanf(%s,bookname); for(int i=0;ibook_n;i+) if (strcmp(booki.bookname,bookname)=0) printf(n以下是您查找的图书信息n); printf(n登录号: %ldn,booki.loginnum); printf(n书名 : %sn,booki.bookname); printf(n作者名: %sn,booki.writername); printf(n书号 : %ldn,booki.bookid); printf(n出版社地址:
9、 %sn,booki.unit); printf(n图书价格:%fn,booki.price); printf(n出版时间:%sn,booki.time); mark+; if(mark=0) printf(n没有该书名的图书纪录n); printfmenu();b.按登陆号查找 void searchloginnum() int mark=0,i; long loginnum; printf(n按登录号查找n); printf(n请输入登录号:); scanf(%ld,&loginnum); for(i=0;iloginnum-p2-loginnum; int insert() printf
10、(请输入要插入的图书信息n); printf(登录号-书名-作者名-书号-出版社名-图书价格-出版时间n); scanf(%ld%s%s%ld%s%s%f,&loginnum,bookname,writername,&bookid,unit,time,&price); bookbook_n.loginnum=loginnum; strcpy(bookbook_n.bookname,bookname); strcpy(bookbook_n.writername,writername); bookbook_n.bookid=bookid; strcpy(bookbook_n.unit,unit);
11、 bookbook_n.price=price; strcpy(bookbook_n.time,time); book_n+; qsort(book,book_n,sizeof(book0),cmp); in();return 0;(5)图书信息修改 int change() printf(请输入要修改的图书的书号n); scanf(%ld,&loginnum); for(int i=0;ibook_n;i+) if(loginnum=booki.loginnum) break; if(i=book_n) printf(没有这本书n); return 0; printf(请输入要修改的图书信息
12、n); printf(登录号-书名-作者名-书号-出版社名-图书价格-出版时间n);scanf(%ld%s%s%ld%s%s%f,&loginnum,bookname,writername,&bookid,unit,time,&price); booki.loginnum=loginnum; strcpy(booki.bookname,bookname); strcpy(booki.writername,writername); booki.bookid=bookid; strcpy(booki.unit,unit); booki.price=price; strcpy(booki.time,
13、time); in(); return 0;(6)图书信息删除 int delet () printf(请输入要删除的图书的书号n); scanf(%ld,&loginnum); int i; for( i=0;ibook_n;i+) if(loginnum=booki.loginnum) break; if(i=book_n) printf(没有这本书n); return 0; int j; for(j=i;jbook_n;j+) copystruct(j,j+1); book_n-; in(); return 0;(7)退出并返回主菜单void my_exit() FILE *fp; fp
14、=fopen(D:book.txt,r+); int i; for( i=0;ibook_n;i+) fprintf(fp,%ld %s %s %ld %s %f,booki.loginnum,booki.bookname,booki.writername,booki.bookid,booki.unit,booki.price,booki.time); fclose(fp); printfmenu(); exit(0); 第4章 程序源代码#include#include#includetypedef struct long loginnum; char bookname100; char w
15、ritername20; long bookid; char unit100; float price; char time15; cbook;cbook book1000;int book_n=0;long loginnum;char bookname100;char writername20;long bookid;char unit100;float price;char time15;void printfmenu();int cmp(const void *a,const void *b) cbook *p1; cbook *p2; p1=(cbook *)a; p2=(cbook
16、*)b; return p1-loginnum-p2-loginnum;void copystruct(int a,int b) booka.loginnum=bookb.loginnum; strcpy(booka.bookname,bookb.bookname); strcpy(booka.writername,bookb.writername); booka.bookid=bookb.bookid; strcpy(booka.unit,bookb.unit); booka.price=bookb.price; strcpy(booka.time,bookb.time);void save
17、() FILE*fp; int i; if(fp=fopen(D:book.txt,w+)=NULL) printf(cannot open the filen); return; for(i=0;i3;i+) fprintf(fp,%ld %s %s %ld %s %s %fn,booki.loginnum,booki.bookname,booki.writername,booki.bookid,booki.unit,booki.time,booki.price); fclose(fp); void input() printf(请输入图书信息:n); printf(登录号-书名-作者名-书
18、号-出版社名-图书价格-出版时间n); while(1) scanf(%ld,&loginnum); if(loginnum=-1) break; scanf(%s%s%ld%s%s%f,bookname,writername,&bookid,unit,time,&price); bookbook_n.loginnum=loginnum; strcpy(bookbook_n.bookname,bookname); strcpy(bookbook_n.writername,writername); bookbook_n.bookid=bookid; strcpy(bookbook_n.unit,
19、unit); bookbook_n.price=price; strcpy(bookbook_n.time,time); book_n+; save(); printfmenu();void searchbookname() int mark=0; char bookname100; printf(n按书名查找n); printf(n请输入书名:); scanf(%s,bookname); for(int i=0;ibook_n;i+) if (strcmp(booki.bookname,bookname)=0) printf(n以下是您查找的图书信息n); printf(n登录号: %ldn
20、,booki.loginnum); printf(n书名 : %sn,booki.bookname); printf(n作者名: %sn,booki.writername); printf(n书号 : %ldn,booki.bookid); printf(n出版社地址: %sn,booki.unit); printf(n图书价格:%fn,booki.price); printf(n出版时间:%sn,booki.time); mark+; if(mark=0) printf(n没有该书名的图书纪录n); printfmenu(); void searchloginnum() int mark=0
21、,i; long loginnum; printf(n按登录号查找n); printf(n请输入登录号:); scanf(%ld,&loginnum); for(i=0;ibook_n;i+) if (booki.loginnum=loginnum) printf(n 以下是您查找的图书信息n); printf(n登录号: %ldn,booki.loginnum); printf(n书名 : %sn,booki.bookname); printf(n 作者名: %sn,booki.writername); printf(n书号 : %ldn,booki.bookid); printf(n出版社
22、地址: %sn,booki.unit); printf(n图书价格:%fn,booki.price); printf(n出版时间:%sn,booki.time); mark+; if (mark=0) printf(ntt 没有该图书信息); printfmenu();void in() FILE*fp; int i; if(fp=fopen(D:book.txt,w)!=NULL) for(i=0;ibook_n;i+) fprintf(fp,%ld %s %s %ld %s %s %fn,booki.loginnum,booki.bookname,booki.writername,book
23、i.bookid,booki.unit,booki.time,booki.price); fclose(fp); fp=fopen(D:book.txt,r); printfmenu(); exit(0);int insert() printf(请输入要插入的图书信息n); printf(登录号-书名-作者名-书号-出版社名-图书价格-出版时间n); scanf(%ld%s%s%ld%s%s%f,&loginnum,bookname,writername,&bookid,unit,time,&price); bookbook_n.loginnum=loginnum; strcpy(bookbo
24、ok_n.bookname,bookname); strcpy(bookbook_n.writername,writername); bookbook_n.bookid=bookid; strcpy(bookbook_n.unit,unit); bookbook_n.price=price; strcpy(bookbook_n.time,time); book_n+; qsort(book,book_n,sizeof(book0),cmp); in(); return 0;int change() printf(请输入要修改的图书的书号n); scanf(%ld,&loginnum); for
25、(int i=0;ibook_n;i+) if(loginnum=booki.loginnum) break; if(i=book_n) printf(没有这本书n); return 0; printf(请输入要修改的图书信息n); printf(登录号-书名-作者名-书号-出版社名-图书价格-出版时间n); scanf(%ld%s%s%ld%s%s%f,&loginnum,bookname,writername,&bookid,unit,time,&price); booki.loginnum=loginnum; strcpy(booki.bookname,bookname); strcpy(booki.writername,writername); booki.bookid=bookid; strcpy(booki.unit,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1