《数据结构课程设计个人书籍管理系统.doc》由会员分享,可在线阅读,更多相关《数据结构课程设计个人书籍管理系统.doc(18页珍藏版)》请在三一办公上搜索。
1、数据结构课程设计课程设计说明书个人书籍管理系统起止日期: 2010年6月1日 至 2011年 6月 20日 目录一 问题分析 3二 功能函数 4三 程序基本框架图- 5四 总结与心得- 6五 程序截图- 7六 源代码- 9问题分析学生在自己的学习和生活中会拥有很多的书籍,对所购买的书籍进行统计和分类是一种良好的习惯。可以便于对这些知识资料的整理和查找使用。如果用文件来存储相关的各种信息,包括分类,购买日期,价格,出版社信息等。辅之一程序来使用这些文件对里面的书籍信息进行统计和查询的工作使得书籍管理工作变得轻松而有趣。简单的个人书籍管理系统的开发就是为了解决这个实际的问题。这个程序具备如下的功能
2、:1. 存储书籍各种相关的信息,可以随时增加书籍。2. 提供查找功能,按多种关键码查找需要的书籍。3. 提供排序的功能,按多种关键码对所有的书籍进行排序,例如按照购买日期进行排序。4. 提供删除的功能,可以把一些已丢失的从书籍库中删除。5. 为软件设置打开密码。功能函数Check()函数:软件打开时检查E盘中的code.txt文件来进行密码验证。Menu()函数:主菜单函数。包含以下子函数:1. input函数:录入。2. print函数:显示已录入的信息。3. add函数:追加录入。4. search函数:查询功能(包括search_name和search_price函数)。5. delet
3、e函数:删除记录。6. rank函数:排序功能(包括rank_data和rank_price函数)。7. password函数:设置软件打开密码。8. write函数:作者信息。程序基本框架图密码验证按价格查按书名查按书价排按购买日期排作者信息加密排序删除查询显示追加书籍录入总结与心得数据结构一向是一门难学难懂的课程,其课程设计也一直是一件头疼的事,虽然如此,但是在我们做课程设计的过程中,感觉学到了许多的东西。这次课程设计是两人一组,我们有着愉快合作,不懂之处,互相鼓励,分头去查找解决方案,不亦乐乎。除了领悟到团队合作的魅力外,对于以前没学懂而要用的知识也扎扎实实的复习了一遍,充实了不少,在实
4、践中领悟真理。编程的过程,实是枯燥无味,必须全神贯注,差错往往在于一念之间。人家都说程序员是很辛苦的的工作,我能深深体会到这一点,所以以后要多多用正版软件,特别是免费的正版。在课程设计过程中,收获知识,提高能力的同时,我们也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。总而言之,收益颇多。程序截图源代码/ system.cpp : Defines the entry point for the console application./#include stdio.h#include stdlib.h#include str
5、ing.h#include conio.h#include io.htypedef structchar name20;int data;char author10;int idnumber;int price;char publish15;char remarks30;BOOK;typedef structBOOK book300;int last;SeqList;SeqList L;void deleted()SeqList *L;L=new SeqList;FILE *fp,*p;BOOK b;int i=0,n=0,h;fp=fopen(E:bookfile,r);if(fp=NULL
6、)printf(nt无存储记录.n);getch();while(fread(&b,sizeof(BOOK),1,fp)!=0)strcpy(L-booki.name,b.name);L-booki.data=b.data;strcpy(L-booki.author,b.author);L-booki.idnumber=b.idnumber;L-booki.price=b.price;strcpy(L-booki.publish,b.publish);strcpy(L-booki.remarks,b.remarks); i+;fclose(fp);p=fopen(E:bookfile,r+);
7、BOOK a300; while(fread(&an,sizeof(BOOK),1,p)!=0)n+; fclose(p);L-last=n; /Total book number is n 。fclose(fp);/printf(Total book number is %d,n); void print();print();printf(nntt请输入要删除的书的编号:t);scanf(%d,&h);int k,u,v;for(k=0;kbookk.idnumber)u=k;break;u+;for( v=u;vbookv-1=L-bookv;n-;L-last=n; printf(n书名
8、t购买日期t作者t编号t价格t出版社 t备注nn);fp=fopen(E:bookfile,w+);int k1=0,k2,k3;/printf(%d,n);while(k1!=n)printf(n);printf(%st,L-bookk1.name);printf(%dtt,L-bookk1.data);printf(%st,L-bookk1.author);printf(%dt,L-bookk1.idnumber);printf(%dt,L-bookk1.price);printf(%st,L-bookk1.publish);printf(%sn,L-bookk1.remarks);k1+
9、;fwrite(&L-bookk1,sizeof(BOOK),1,fp); printf(nntt成功删除。n);fclose(fp);getch();void input()int k; BOOK b;FILE *fp;fp=fopen(E:bookfile,wb+);system(cls);if(fp=NULL)printf(nt出错啦.n);printf(nt请输入书本数目:t);scanf(%d,&k);for(int i=0;ik;i+)printf(nn);printf(书名:t);scanf(%s,b.name);printf(购买日期:t);scanf(%d,&(b.data)
10、;printf(作者:);scanf(%s,b.author);printf(数字编号:);scanf(%d,&(b.idnumber);printf(价格:);scanf(%d,&(b.price);printf(出版社:);scanf(%s,b.publish);printf(备注:);scanf(%s,b.remarks);fwrite(&b,sizeof(BOOK),1,fp); printf(nnt*输入完毕*n);fclose(fp);printf(nnnnnt*请按任意键键返回*n);getch();system(cls);void print()FILE *fp;BOOK b;
11、fp=fopen(E:bookfile,rb+);system(cls);if(fp=NULL)printf(nt无存储记录.n);getch();printf(nnn*nn);printf(书名t购买日期t作者t编号t价格t出版社 t备注nn);while(fread(&b,sizeof(BOOK),1,fp)!=0)printf(n);printf(%st,b.name);printf(%dtt,b.data);printf(%st,b.author);printf(%dt,b.idnumber);printf(%dt,b.price);printf(%st,b.publish);prin
12、tf(%sn,b.remarks);printf(nn*n);fclose(fp); void add()BOOK b;FILE *fp;int k;system(cls);printf(nt要添加的书本数:t);fp=fopen(E:bookfile,ab+);scanf(%d,&k);for(int i=0;ik;i+)printf(nn);printf(书名:t);scanf(%s,b.name);printf(购买日期:t);scanf(%d,&(b.data);printf(作者:);scanf(%s,b.author);printf(数字编号:);scanf(%d,&(b.idnu
13、mber);printf(价格:);scanf(%d,&(b.price);printf(出版社:);scanf(%s,b.publish);printf(备注:);scanf(%s,b.remarks);fwrite(&b,sizeof(BOOK),1,fp); printf(nnt*输入完毕*n);fclose(fp);printf(nnnnnt*请按任意键键返回*n);getch();system(cls);void search_name()void menu();int x;FILE *fp;BOOK b;x=access(E:bookfile,0);if(x=-1)printf(n
14、t无存储记录 !);getch();menu();printf(nt输入书名:t); char i20;scanf(%s,i);fp=fopen(E:bookfile,r);int m=1; while(fread(&b,sizeof(BOOK),1,fp)!=0)if(strcmp(b.name,i)=0)if(m=1)printf(书名为 %s 的书是:nnn,b.name); m+;printf(书名t购买日期t作者t编号t价格t出版社 t备注nn);printf(n);printf(%st,b.name);printf(%dtt,b.data);printf(%st,b.author)
15、;printf(%dt,b.idnumber);printf(%dt,b.price);printf(%st,b.publish);printf(%sn,b.remarks);printf(nn);printf(nt输出完毕,如无显示书目,这符合要求的书不存在,按任意键继续。);getch();fclose(fp);void search_price()void menu();int x;FILE *fp;BOOK b;x=access(E:bookfile,0);if(x=-1)printf(nt无存储记录 !);getch();menu();printf(nt输入价格:t);int i;s
16、canf(%d,&i);fp=fopen(E:bookfile,r);int m=1; while(fread(&b,sizeof(BOOK),1,fp)!=0)if(b.price=i)if(m=1)printf(价格为 %d 的书有:nnn,i); m+;printf(书名t购买日期t作者t编号t价格t出版社 t备注nn);printf(n);printf(%st,b.name);printf(%dtt,b.data);printf(%st,b.author);printf(%dt,b.idnumber);printf(%dt,b.price);printf(%st,b.publish);
17、printf(%sn,b.remarks);printf(nn);printf(nt输出完毕,如无显示书目,这符合要求的书不存在,按任意键继续。);getch();fclose(fp);void search()void menu();int a;system(cls);printf(*nn);printf(nnt*t1,按书名查找t*n);printf(nnt*t2,按价格查找t*n);printf(nnt*t按 0 键返回.t*nnn);printf( 输入查找方式:t);scanf(%d,&a);switch(a)case 1: search_name();break;case 2: s
18、earch_price();break;case 0: system(cls);menu();break;default:printf(nt输入有误,重新输入 !);search();system(cls);void rank_price()void menu();int x;int i,j,n=0;BOOK a300,t;x=access(E:bookfile,0);if(x!=0)printf(nntt无存储记录!n); getch(); menu(); FILE *fp;fp=fopen(E:bookfile,r);while(fread(&an,sizeof(BOOK),1,fp)!=
19、0)n+;for(i=0;ii;j-)if(aj.priceaj-1.price) t=aj; aj=aj-1;aj-1=t; printf(nt*按书价排序*nn);printf(价格t购买日期t作者t编号t书名t出版社 t备注nn);for(i=0;in;i+)printf(n); printf(%dt,ai.price);printf(%dtt,ai.data);printf(%st,ai.author);printf(%dt,ai.idnumber);printf(%st,ai.name);printf(%st,ai.publish);printf(%sn,ai.remarks);fc
20、lose(fp);printf(ntt输出完毕!);void rank_data()void menu();int x;int i,j,n=0;BOOK a300,t;x=access(E:bookfile,0);if(x!=0)printf(nntt无存储记录!n); getch(); menu(); FILE *fp;fp=fopen(E:bookfile,r);while(fread(&an,sizeof(BOOK),1,fp)!=0)n+;for(i=0;ii;j-)if(aj.dataaj-1.data) t=aj; aj=aj-1;aj-1=t; printf(nt*按购买日期排序*nn);printf(购买日期t价格t作者t编号t书名t出版社 t备注nn);for(i=0;i0);if(i=0)printf(nt无权限进入n);fclose(fp);exit(0);getch();fclose(fp);int main(int argc, char* argv)check();menu();printf(Hello World!n);return 0;