课程设计_图书售销管理系统_第1页
课程设计_图书售销管理系统_第2页
课程设计_图书售销管理系统_第3页
课程设计_图书售销管理系统_第4页
课程设计_图书售销管理系统_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、中南大学程序设计基础实践报告题 目学生姓名指导教师学 院专业班级完成时间目录:第章系统描述21 系统要求和内容3第二章功能模块2.1功能模块结构 2.2模块的功能描述第三章数据结构3.1需要处理的数据3. 2数据结构设计第四章算法主要模块算法第五章运行结果5. 1典型界面5. 2输入和输出数据第六章总结6.1设计实践中遇到的问题及解决与思考6. 2对程序开发的认识与思考附录参考文献第一章系统描述1.1系统要求和内容分析1.1.1图书基本信息的录入录入图书的基本信息,包括书号,书名,作者,出版社,并储存在一个结构 数组中。1. 1. 2图书米购(1)录入图书的采购信息,并保存在采购函数的局部变量

2、中(2)根据采购单价和采购数量自动计算采购金额,并打印采购金额。(3)根据图书编号在书库中搜索,若书库中有当前采购的图书编号,则根据采 购数量,增加相应的图书库存量。(4)如果书库中没有当前采购的图书编号,则门动从图书基本资料中把相关信 息提取出来,增加到书库;并且根据采购数量,增加相应的书库存量。1.1.3图书销售(1)输入图书的销售信息,并保存在销售函数的局部变量中(2)根据当前销售的图书编号、销售数量,从图书库存信息中查找销售要求是否合法:若有该图书且数量充足则进行销售;若没有该图书或库存数量不足则报错。(3)根据销售单价和销售数量自动计算销售金额,并打印销售金额。(4)销售吋从库存屮减

3、去相应的数量。1.1.4利润计算根据“全部的销售金额-全部的采购金额”,计算书居的利润情况。1. 1. 5信息查询(1)可根据图书编号或书名,查询图书资料基本信息。(2)可根据图书编号或书名,查询该图书的库存信息。第二章功能模块2.1功能模块结构2.2模块的功能描述该程序主要分为,一个主菜单,五个模块,最后一个图书信息查询模块下,包含 两个小模块,分别查询基本信息和库存信息,查询时,可按书名查询和按图书编号 查询。图书基本信息录入模块:用input_info函数录入图书的基本信息,保存在结构 数组中。图书采购模块:用book_purchase函数进行图书的采购,输入图书书号,书名, 单价,采购

4、数量,计算并输出采购金额,把图书信息集采购数量添加到库存中。图书销售模块:用book.sale函数进行图书的销售,输入图书书号,书名,售 价,销售数量,计算并输出销售金额,并从库存屮扣减相应数量。利润计算模块:用profit函数及全局变量销售总额sale_sum,采购总额purchase sum,计算利润并打印。图书信息丟询模块:通过书名或书号搜索查图书基本信息和库存信息,并打印出來。第四章数据结构3.1需要处理的数据定价等。(1).图书资料基本信息:图书编号、书名、作者、出版社、(2).图书米购信息:采购序号、采购图书编号、采购单价、采购数量、采购金额等。(3) 图书销售信息:(4) .图书

5、库存信息:销售序号、 图书编号、销售图书编号、销售单价、 书名、作者、库存数量等。销售数量、销售金额等。3. 2数据结构设计3. 2. 1用结构体数组booklen储存图书基本信息:struct bookinfo/*定义结构体用于存储图书基本信息*/long id;char name20:char auther 10;char publish20;float prices; bookl n ;/*n是宏定义的变量*/3用结构体数组booksn储存图书库存信息:struct bookstore/*定义结构体用于存储图书库存信息*/long id;char name20;char auther10

6、;int booknum;booksn;/*m是宏定义的变量*/3.2.2全局变量用全局变量num_s统计库存信息中图书的种类用全局变量num统计基本信息中图书的种类用全局变量salc_sum来统计销售总额 用全局变量purchase_sum來统计销售总额int num_s=0;int num二0;float sale_sum=0;float purchasc_sum=0;/*书库中图书种类计数*/*基本信息中图书种类计数*/*销售总额*/*购买总额*/3.2.3局部变量图书购买函数和图书销售函数屮,购买信息和销售信息用局部变量实现。 int i,j,purchase_num;long id,

7、purchascnum;float purchase_prices; /*图书购买信息局部变量*/*图书销售信息局部变量*/long id,salenum; float sale_prices; int j,salc_num;算法主要模块算法各函数模块拥有门己独立的功能,能够实现相应的任务,通过对函数的调用来完成总体功能的实 现。1. void input_info()/*图书基本信息录入函数*/图书的基本信息录入,函数屮用while无限循环实现图书信息的连续录入,并通 过用户选择,用break语句来实现退出当前循环。2. void query_info ()/*查询基本信息函数*/通过用户输

8、入的选择,用switch语句实现选择,并根据用户输入的书名或书号 调用书名搜索函数(search_bynamelnfo 0)或书号搜索函数(search_byidlnfo(),在基木信息的结构体数组屮搜索相关信息并返冋数组下 表,根据相应下表,用基本信息打印函数(displaytnfoo ),打印出图书的基本信 息。3. void query_store ()/*查询图书信息库存函数*/通过用户输入的选择,用switch语句实现选择,并根据用户输入的书名或书号 调用书名搜索函数(search_bynamestore ()或书号搜索函数 (search_byidstore(),在库存信息的结构体

9、数组屮搜索相关信息并返冋数组 下表,根据相应下表,用库存信息打印函数(displaystoreo ),打印出图书的基本 信息。4. void book_purchase ()/*图书购买函数 */通过用户输入图书购买的信息,调用书号搜索函数(scarch_idstorc(),在库 存中搜索相关信息,若库存中冇图书信息,则直接在库存屮增加相应的库存量,若 无图书基本信息,先将图书信息从基本信息中提取到库存中,在增加相应的数量。 并打印购买金额。用while的无限循环实现图书的连续购买,用break语句退出购 买。5. void book_sale ()/*图书销售函数 */通过用户输入图书销售的

10、信息,调用书号搜索函数(search_idstore(),在库 存中搜索相关图书基本信息,并比较库存量与销售量。若有图韦基本信息并且销售 量小于等于库存量则进行销售,在库存中减去相应的库存量,并打印销售金额。若 无基本信息或库存量不足,则报错。用while的无限循环实现图书的连续销售,用 break语句退出销售。6. void profit ()/*利润计算函数*/通过全局变量销售总额sale sum和购买总额purchasesum计算并 打印利润。7. int main(void)/*主函数*/用于显示主菜单,并进行选择。第五草运行结果5.1典型界面 c:usersadministrator

11、documentsc-freetemp 囹书购绡昔理粟统 图书购铠苣理萦统.exe"*图书购销管理系统入录 曹心购隹覧询 曙采销计查 捷rr、frrr润息岀图1一图书管理系统主界血5. 2输入和输出数据c:usersadministratordocumentsc-freetemp§ 书购绡背理票统图书购铠苣理泵统exe*111是否继续? y/n请捌人图书疋彳“ 30请输人图书岀版社:中华书局请输人图书作者:孔丘i冃输人图书£ :诗经入抄一一員1 2 3 4 5 6 1录省心购隹一im询 曙釆销计查 择rfthf润息岀 选图图图图2-基本信息录入c:usersadm

12、inistratordocumentsc-freetemp§ 书购绡背理票统图书购铠苣理泵统exe*112 3 4 5 6 2录 會心购隹片畀询 曙釆销计查 择rrrp'rp润息岀请喻人米购图书编号记2 请输入采购图书单价:25 请输入采购图书数量汽恥是否继续? l/n图3-图书采购图4-图书销售入录作息购隹置询 曙采销计查 提tttt润息岀 选图图®v 1234564图书购销管理系统啓录入2 图圭蠶4.gsift5 宿息查询6捷出1.图5-利润计算 c:usersadministratordocumentsc-freetemp 书购绡管理票统囹书购栄苣理系统exe

13、,11.2.备输入图书编号11图书编号书名作者岀版社定价11诗经孔丘中华书局30.00图书购销管理系统入录曹心购隹覧询 曙采销计杳一 播mm润息岀 选图图®主冃 12 3 4 5 6图6-图书基木信息査询| c:usersadministratordocumentsc-freetemp 书购绡昔理票统图书応铠苣畏票统exe2 按图书编号查询1请魏入书名疋和图书编号书名作者库存12楚辞 屈原10图书购销管理系统入录曹心购隹一im询 曙采销计杳一 弹、rftr润息岀 选图图主冃 rl 2 3 4 5 6图7图书库存信息查询第六章总结6.1设计实践中遇到的问题及解决与思考在这次程序设计中,

14、在更种细节方面我遇到了很多问题。比如说,在编写函数时, 我少写了一个调试时程序总是报错"syntax error in the end”,但总是找 不到错误,最后在将两数一个个注释掉的情况下才找到了错误之处。但却花费了我 大量的时间。还有很多诸如此类的小错误,看似不重耍,在实际中却可能造成很大 的问题,应该加以注意。6. 2对程序开发的认识与思考这次的图书售销管理系统是我做的第一个对我而言较大的程序,从程序的构思到 代码实现都是自己做的,难免存在很多问题,特别是程序的具体细节,有点混乱, 不过清晰明了。而且一开始在构思的时候,很多问题还没想明白就开始编写代码, 犯了编程的大忌。致使在

15、z后的过程中,我总是在不断的改,总是发现没法实现预 期的构想。在主体思路构思出来之后,也没冇进行算法的验证,使得在程序调试过 程中岀现大量算法上的逻辑错误,难以调试,不得不重新一步步检查程序的算法, 并使得花费了大量的时间。这次程序设计,我觉得我最大的收获就在于,明白了在 编写一个较大的程序是,必须先要把主体框架都构思出来,并把算法的实现也想出 来,并进行验证确定算法无误之后再进行具体的代码实现。这样不但迅速,而且不会出现重大的逻辑错误。虽然在前期的时候感觉会更慢,实 际上,开始具体代码编写之后,会更加的迅速。所以这是更高效的方法。在程序设计屮,代码实现只是很小的一部分,最重要的是将一个具体的

16、需求或问 题设计算法表达出来。而且不但要解决问题,还要简便,快捷。附录/*定义结构体用于存储图书基本信息*/#include<stdio.h> #include<string. h> #include<stdlib. h> ttdefine n 100 struet bookinfolong id;char name20;char auther10; char publish20;float prices;bookln;int num_s=0;int num=0;float sale_sum=0;float purchase_sum=0; struet bo

17、okstorei/*书库中图书种类计数*/*基本信息屮图书种类计数*/*销售总额*/*购买总额*/*定义结构体用于存储图书库存信息*/long id;char name20;char auther10;int booknum;booksn;void input_info()/*图书基本信息录入函数*/while (1)printfc请输入图书编号:); scanf (lct, &booklnum. id); printf (n); get char ();printfc请输入图书名:); scanf(s,booklnum name); printf (n);printfc请输入图书作者

18、:); scanf(s,booklnum. auther); printf (n);printfc请输入图书出版社:); scanf (s,booklnum. publish); printf (n);printf(/z请输入图书定价:“); seanf&booklnum. prices); printf (rt);num+;printf (/z 是否继续? y/nn); get char ();if (getcha/r ()二二'n')break;void displayinfo(int i)/*打印图书基本信息函数*/printfc%10s%20s%10s%20s%

19、10sn,z, 图书编号,书名,作者,出版社,定 价);printf (");printf(101d%20s%10s%20s%10. 2fn, book!i. id, booki,book! i.author, bookli publish, bookli prices);void displaystore(int i) /*打印图书库存信息函数*/printf (,z%10s%20s%10s%10sn,z, 图书编号,书名,作者,库存);printf (");printf (/z%101d%20s%10s%101dn,z, booksi. id, booksi

20、. name, booksi. auther, booksi. booknum);void query_info()/*查询基本信息函数*/int choice3, i;printf (/zl.按书名查询rt);printf (,z2.按图书编号查询n);scanf(%d,&choice3);switch(choice3)case 1:i=search_bynamelnfo();if(i=-l)printf (errotn);elsedisplayinfo (i);break;case 2:i=search_byidlnfo();if (i=-l)printf (/zerrorrt);

21、elsedisplayinfo (i);break;void query_store()/*查询图书库存函数*/printfcl.按书名查询n); printf (/z2.按图书编号查询n);int choiced, i;scanf(d,&choice4); switch(choice4)case 1:i二search bynamestore();if (i 二二 t)printf (crrorrt);elsedisplaystore (i);break;case 2:i=scarch_byidstore();if(i=-l)printf (/zerrorn/z);elsedispla

22、ystore(i);break;int search bynameinfo () /*通过书名在基木信息结构体数组屮找到对应基木信息 */int i;char name20;printf (/z请输入书名n);scanf(s, name);for(i=0;i<num;i+)if(strcmp(bookli. name, name)=0)return i;return -1;int search byidlnfoo/*通过书号在基本信息结构体数组中找到对应基本信息*/int i;long id;printf (/z请输入图书编号n);scanf&id);for(i=0;i<n

23、um;i+)if (bookli id=id)return i;return t;int search_bynamestore() /*通过书名在库存信息结构体数组屮找到对应库存信 息*/int i;char namc20;printf 请输入书名n);scanf("%s", name);for(i=0;i<num_s;i+) "if(strcmp(booksi name, name)=0)retum i;return -1;int scarch_byidstorc() /*通过书名在库存信息结构体数组中找到对应库存信息 */int i;long id;pr

24、intfc请输入图书编号n);scanf (lct, &id);for (i=0;i<num_s;i+) "if(booksi. id二二id)return i;return -1;int search_idstore(long id)/*在库存中搜索 */int i;for (i=0;i<num_s;i+) "if(booksi. id二二id)return i;return -1;int search_idlnfo(long id) /*在基本信息中搜索 */int i;for(i=0;i<num;i+)if(bookli. id二二id)re

25、turn i;return -1;void book_purchase()/*图书购买函数 */int i,j,purchase_num;long id,purchasenum;float purchaseprices;while(1) printfc请输入采购序号:); scanf ("%ld,&purchasenum);printf(n);printf (请输入采购图书编号:); scanf(lct,&id);printf (n);printf (/z请输入采购图书单价:"); seanf (f,&purchase prices);printf

26、(n);printf (请输入采购图书数量:); scanf (ct, &purchase_num);printf (n); j=search_idstore(id);if(j!=-l)booksj booknum+=purchasc_num;else j=search_idlnfo (id); booksnums. id二booklj. id;for(i=0;booklj. namei!二'0' ;i+) booksnum_s namei二bookij namci;for(i=0;booklj. autheri!='0,;i+) booksnum_s auth

27、eri=booklj autheri; booksnum_s. booknum+=purchase num;num_s+;purchasc_sum+=purchasc_num*purchasc_priccs; printf (采购金额为:%. 2fn", purchase_nuni*putchase_prices); " "printf (/z是否继续? y/n n);get char ();if (getchar ()二二'n,);break;void book_sale() /*图书销售函数 */long id, salenum;float salep

28、rices;int j, sale num;while (1) printfc请输入销售序号:); scanf (ld, &salenum);printf(n); printf (请输入销售图书编号:); scanf(lct,&id);printf (n); printf (/z请输入销售图书单价:"); seanf ("%f, &sale prices);printf (n); printf (请输入销售图书数量:); scanf(lct, &sale_num);printf (/znzz) ;/? j=search_idstore (id);if (j!二t&&(sale_num<=booksj. booknum)booksj. booknum-二sale_num; sale_sum+=sale_num*sale_prices;printf (/z销售金额为:%. 2f,sale_num*sale_prices); " 一else printf c销售要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论