C语言课程设计书店图书销售系统.doc

上传人:laozhun 文档编号:2384777 上传时间:2023-02-17 格式:DOC 页数:27 大小:262.50KB
返回 下载 相关 举报
C语言课程设计书店图书销售系统.doc_第1页
第1页 / 共27页
C语言课程设计书店图书销售系统.doc_第2页
第2页 / 共27页
C语言课程设计书店图书销售系统.doc_第3页
第3页 / 共27页
C语言课程设计书店图书销售系统.doc_第4页
第4页 / 共27页
C语言课程设计书店图书销售系统.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《C语言课程设计书店图书销售系统.doc》由会员分享,可在线阅读,更多相关《C语言课程设计书店图书销售系统.doc(27页珍藏版)》请在三一办公上搜索。

1、沈 阳 航 空 工 业 学 院 课程设计学 号 2008040702055 班 级 84070202 姓 名 吕 佳 指导教师 李 飞 龑2009 年 7 月 3 日沈阳航空工业学院课程设计任务书系: 自动化 专业:自动化 班级:84070202学号:2008040702055 题目:书店图书销售系统一、课程设计时间200809第2学期第15周,共计1周,20学时。二、课程设计内容用C语言编写软件完成以下任务:模拟书店经营业务,主要指“购进图书”和“出售图书”两种业务。由于图书的出售价格高于图书的购进价格,所以系统能够计算累计利润。要求:“购进图书”和“出售图书”2方面信息只用1个文件(MyF

2、ile.txt)存储,文件中每行数据遵循如下顺序:图书编号,图书名称,出版社,购进册数,购进价格,出售册数,出售价格。能够随时显示库存情况和销售情况。能够随时计算书店累计利润。能够随时购进新书和出售图书,册数不限。三、课程设计要求程序质量: 贯彻结构化的程序设计思想。 用户界面友好,功能明确,操作方便。 用户界面中的菜单至少应包括“进书”、“售书”、“计算利润”、“书库现状”、“出售现状”、“退出”6项。 代码应适当缩进,并给出必要的注释,以增强程序的可读性。课程设计说明书: 课程结束后,上交课程设计说明书和源程序。课程设计说明书的内容参见提供的模板。四、指导教师和学生签字指导教师:_ 学生签

3、名:_五、成绩六、教师评语 目录一、需求分析1二、程序流程图2三、核心技术的实现说明及相应程序段5四、课设总结 8五、参考文献9六、源程序 9一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为五个模块,其中每一个模块对应一个函数,它们的功能分别是:购进图书,出售图书,计算利润,书库现状,出售现状,退出。在这些函数都是按照题目的要求实现的函数。1、购进图书 主要的功能是将购进来的图书写入MyFile.txt文件中,用于保存。2、出售图书 实现卖书并对书库当中的内容进行更新,以达到卖书的目的。3、计算利润 将卖出的书的价格进行统计,并计算累计利润。4、书库现状 对书库当中的剩余图

4、书进行查找,读出书库当中的信息。5、出售现状 显示卖出图书的名称,数目。除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。每一本图书在书库当中都记录了:图书编号,图书名称,出版社,购进册数,购进价格,出售册数,出售价格。在程序当中,将图书的信息定义为结构体类型,添加以及追加图书信息直接写入MyFile.txt文件中,其他函数每次对书库的访问,它的数据来源都是MyFile.txt文件,这样做不但可以保证图书数据的一致性,而且也可以对图书的信息进行永久保存,保证每次运行程序都可以用原来的图书信息。二、程序流程图1、程序总体结构图图1程序

5、总体结构图2、具体功能框图(1)进书图2 进书(2)售书 图3 售书(3)计算利润图4 计算利润三、核心技术的实现说明及相应程序段 本程序主要由五个自定义函数和一个主函数,其中主函数以菜单的形式调用其它函数来实现所有功能。在这些函数中,进书,售书,计算利润为程序的核心部分,下面予以说明。1、进书函数 进书函数是建立文件的过程,主要是将图书的信息写到MyFile.txt文件中,首先由程序创建一个文件,并写入图书信息,由于图书的信息是结构体,所以输入之后就马上存入文件当中,之后将文件关闭。具体程序如下:void shoushu() FILE *fp; if(fp=fopen(MyFile.txt,

6、w)=NULL) printf(创建文件失败n); exit(0); int i,j;printf(请输入图书信息,图书编号,图书名称,出版社,购进册数,购进价格,出售价格n); fprintf(fp,图书编号,图书名称,出版社,购进册数,购进价格,出售价格n);for (i=0;iN;i+)scanf(%8d %8s %8s %8d %f %f,&bi.num,bi.name,bi.publish,&bi.n,&bi.price1,&bi.price2); fprintf(fp,%8d %8s %8s %8d %f %fn,bi.num,bi.name,bi.publish,bi.n,bi.

7、price1,bi.price2);2、售书函数 该部分函数是对图书库中的图书信息进行改动,首先是输入要买的图书的编号,之后用查找函数查找编号一样的图书,该查找函数用for循环来实现,不满足条件将提示信息重新来输入,之后满足与输入的编号一样这个条件之后程序进一步执行,然后,当售书成功后,显示售出的图书的编号,名称,出版社,剩余量和销售价格,同时将结构体中的数据进行改动,将售出的图书数量加1,并且将书库中的记录剩余量的那个结构体元素减1,之后将刚才的信息写到文件当中,最后关闭文件。具体程序如下:void shoushu()int i;int j;printf(请输入要售出的图书编号:n); sc

8、anf(%d,&j);for(i=0;iN;i+)if(iN)printf(输入错误,请重新输入:n);scanf(%d,&j);else if (j=bi.num)j=i; printf(图书编号,图书名称,出版社,售出价格n);printf(%8d %8s %8s %8.2fn,bj.num,bj.name,bj.publish,bj.price2); -bj.n; +bj.s;FILE *fp; if(fp=fopen(MyFile.txt,w)=NULL) printf(创建文件失败n); exit(0); fprintf(fp,图书编号,图书名称,出版社,购进价格,出售价格n);fo

9、r (i=0;iN;i+)fprintf(fp,%5d %5s %5s %5d %f %fn,bi.num,bi.name,bi.publish,bi.n,bi.price1,bi.price2); fclose(fp);3、计算利润 利润的计算是计算累计利润,即将卖出的图书的数目和价格整体做记录,然后进行数据的计算。首先将文件读出来,这样就是对书库当中的图书信息进行统计,然后定义一维数组lN,记录买出每种书的利润,然后将lN中的每个元素都加起来,实现计算累计利润的目的,具体程序如下:void lirun() FILE *fp; int i; float lN; float a; a=0; i

10、f(fp=fopen(MyFile.txt,r)=NULL) printf(创建文件失败n); exit(0); for(i=0;iN;i+) if(bi.s!=0) li=(bi.price2-bi.price1)*bi.s; a+=li; printf(售出的图书的利润是:%fn,a);四、课设总结 通过课程设计,使我对C语言这门学科的知识有了进一步的了解,同时也知道了C语言原来有这么重要的作用。在课设的时候,由于我的眼高手低,觉得脑袋里有思路了,这个程序就能写出来,其实不然。自己想的和实际操作完全是两回事。还有就是文件打开的时候要用r,我却用的是w,所以造成了许多错误,同时,也让我对文件

11、的相关知识有了进一步了解。还有就是我在这次程序设计中由于对结构体知识掌握的不到位,导致很多问题都解决不了,但是通过进一步看了结构体的知识,对知识熟悉了许多,自然问题解决了,所以,当知识欠缺的时候,回归基础往往起到事半功倍的效果。在课设当中,我也做了大胆的尝试,在做统计利润函数的时候,要想实现结构体的累加,是不能用整形变量或实行变量来记录结构体当中的元素想加的结果的,这N这样一个一维数组,作出了大胆的尝试。结果获得了成功,把问题解决了。 这次课程设计,让我有了一种优秀的习惯,让我学会了思考,当问题出现的时候,我没有直接去想上网找到那些所谓的程序,而是首先想到去查看知识的掌握程度,然后找到相关资料

12、进行学习,自己编译的程序,有问题自己思考,我觉得这是我在这次课设当中收获最大的一部分,我觉得,到大学是为自己学习的,是来学知识的,而不是混毕业证来的,在大学要给自己个说法。同时也明白了,遇到困难的时候不要灰心,努力过后,困难能解决的! 课设让我收获了一种习惯,同时让我对C语言的知识有了进一步的了解,为以后的学习打下了很好的基础。五、参考文献1姚合生;C语言程序设计;清华大学出版社;2008.9;2刘成等;C语言程序设计实验指导与习题集;中国铁道出版社;2008.9;3 廖湖声,叶乃文等;C语言程序设计 案例教程;人民邮电出版社;2005.2;六、源程序#include stdio.h#incl

13、ude conio.h/其中定义了getch()函数。#include stdlib.h/其中定义了system()函数。#define N 2struct booksint num;char name40;char publish40;int n;float price1;int s;float price2;bN;void menu()puts(1. 进书);puts(2. 售书);puts(3. 计算利润);puts(4. 书库现状);puts(5. 出售现状);puts(6. 退出);void jinshu() FILE *fp; if(fp=fopen(MyFile.txt,w)=N

14、ULL) printf(创建文件失败n); exit(0); int i,j;printf(请输入图书信息,图书编号,图书名称,出版社,购进册数,购进价格,出售价格n); fprintf(fp,图书编号,图书名称,出版社,购进册数,购进价格,出售价格n);for (i=0;iN;i+)scanf(%8d %8s %8s %8d %f %f,&bi.num,bi.name,bi.publish,&bi.n,&bi.price1,&bi.price2); fprintf(fp,%8d %8s %8s %8d %f %fn,bi.num,bi.name,bi.publish,bi.n,bi.pric

15、e1,bi.price2);fclose(fp); void shukuxianzhuang() FILE *fp; char ch; if(fp=fopen(MyFile.txt,r)=NULL) printf(创建文件失败n); exit(0); while(ch=fgetc(fp)!=EOF) putchar(ch); fclose(fp);void shoushu()int i;int j;printf(请输入要售出的图书编号:n); scanf(%d,&j);for(i=0;iN;i+)if(iN)printf(输入错误,请重新输入:n);scanf(%d,&j);else if (

16、j=bi.num)j=i; printf(图书编号,图书名称,出版社,售出价格n);printf(%8d %8s %8s %8.2fn,bj.num,bj.name,bj.publish,bj.price2); -bj.n; +bj.s;FILE *fp; if(fp=fopen(MyFile.txt,w)=NULL) printf(创建文件失败n); exit(0); fprintf(fp,图书编号,图书名称,出版社,购进价格,出售价格n);for (i=0;iN;i+)fprintf(fp,%5d %5s %5s %5d %f %fn,bi.num,bi.name,bi.publish,b

17、i.n,bi.price1,bi.price2); fclose(fp);void lirun() FILE *fp; int i; float lN; float a; a=0; if(fp=fopen(MyFile.txt,r)=NULL) printf(创建文件失败n); exit(0); for(i=0;iN;i+) if(bi.s!=0) li=(bi.price2-bi.price1)*bi.s; a+=li; printf(售出的图书的利润是:%fn,a);void chushouxianzhuang() FILE *fp; int i; if(fp=fopen(MyFile.t

18、xt,r)=NULL) printf(创建文件失败n); exit(0); printf(售出的图书的信息为:n); printf(图书编号,图书名称,出版社,剩余册数,购进价格,出售价格,出售价格nn); for(i=0;iN;i+) if(bi.s!=0)printf(%8d %8s %8s %8d %f %8d %fn,bi.num,bi.name,bi.publish,bi.n,bi.price1,bi.s,bi.price2); void main()int choice;int j;menu();scanf(%d,&choice);while(1)switch(choice)case 1: jinshu(); break;case 2: shoushu(); break;case 3: lirun(); break;case 4: shukuxianzhuang(); break;case 5: chushouxianzhuang(); break;case 6: return;menu();scanf(%d,&choice);/getch();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号