C语言程序设计超市管理系统目录第一章课程设计目的要求1.1设计目的.............................................31.2设计要求..............................................31.3设计思路.............................................3第二章课程设计任务内容2.1课程设计题目..........................................32.2课程设计任务..........................................42.2.1设计内容..........................................42.2.2各组员任务..........................................4第三章详细设计说明3.1系统模块图.................................................43.1.1.......................................................43.1.2.......................................................53.2主要函数定义..............................................53.2.1主函数...............................................53.2.2其他函数...............................................73.3结构体的建立和文件的使用...................................83.3.1结构体的建立..........................................83.3.2文件的使用.............................................9第四章课程设计心得与体会.......................................10附录·程序源代码参考文献第一章课程设计目的要求设计“超市管理系统”的主要目的是锻炼学生综合运用所学的C语言程序设计知识的能力,独自利用C语言知识编写承训解决实际问题的能力,培养同学严谨的工作态度和良好的程序设计习惯,让同学们认识到必须重视实践环节,多读程序,多编写程序,多上机实践。进一步培养结构化程序设计的思想,加深对高级语言要素和控制结构的理解。通过课程设计的训练,学生能够了解程序设计的基本开发过程,掌握编写、调试和测试C语言程序的基本过程,掌握程序设计的技巧的大体流程。本次程序设计主要侧重于知识的运用,把平时学到的运用到实践中去。1.1设计目标:1.熟悉c语言的编译连接和运行过程。2.掌握c语言的数据类型,熟悉整型、实型、字符型变量的定义方式及如何给它们赋值。3.掌握if语句及switch语句的运用方法及嵌套应用方法。4.掌握实现循环结构的三种语句while、do-while.、for的使用。5.掌握函数的定义方法和调用方法。6.能够采用模块化思想调试程序。7.指针和文件的使用,结构体的使用1.2设计要求:1.源程序要有适当的注释,使程序容易阅读。2.必须用结构体和文件等数据结构。3.程序的运行结果要求使用文件作备份。4.至少输出一份报表,鼓励自行增加新功能。第二章课程设计任务内容2.1课程设计题目超市管理系统2.2课程设计任务系统为超市管理系统,在此系统当中需要用到许多函数,包括系统函数以及自定义的函数,在这个系统当中,总共分为五个模块:管理员登陆、客户信息管理、商品管理、购物结算、销售结算。2.2.1设计内容本次实习中,主要用到的C语言知识有结构体、指针、文件、数组。层层镶嵌的思路将各个模块要实现的功能环环相扣。其中,在管理员登陆后,进入的是主菜单,在这个环节当中,我们将菜单设计为函数,并将菜单函数放入一个单独的C文件中管理,实现层层进入功能。主菜单函数又分为商品管理、客户管理、购物结算、销售结算等函数的管理,在此当中,主要采用结构体定义客户信息,文件访问等。2.2.2各组员任务为保证设计在规定时间内完成,我们将各模块分工到个人。确保任务有质量有效率的同时锻炼团队的团结协作能力。第三章详细设计说明3.1系统模块图(未完)3.2主要函数定义3.2.1主函数主函数主要包含的是登陆界面并且设置登陆界面其中包含:1.登录添加用户修改用户删除用户查询用户进入超市管理系统主界面销售结算商品管理购物结算客户管理2.关于我们3.退出系统实现其功能主要用到如下知识:一.其中使用了多种系统自定义的头文件以及用户自定义的头文件如下:#includestdio.h#includestring.h#includeconio.h#includestdlib.h#includemath.h#include“MyParams.h”#include“Mymenu.h”#include“common.h”#include“CustMan.h”#include“Goodsman.h”二.使用了main()函数、aboutUs()函数,login()函数和pcontinue()函数①voidmain(){charchoice='3';//存储判断的选项do{system(cls);//清屏命令printf(\n\n************欢迎进入柠檬·5超市管理系统**********\n\n);printf(\n请您选择操作选项:\n\n);printf(\t\t\t1.登录\n);printf(\t\t\t2.关于我们\n);printf(\t\t\t3.退出系统\n);printf(\n\n*******************************************\n\n);printf(\n请输入您的选项(1,2,3):);choice=getch();}②voidaboutUs(){system(cls);BreakLine;printf(\t\t版权所有@湖南工学院网络1101班柠檬·5\n\n);printf(\t\t\t柠檬·5专属,翻版必究\n\n);printf(\t\t技术扶持Tell:18373440701);BreakLine;pcontinue();}③intlogin(){charupwd[8];inti;system(cls);for(i=1;i4;i++){BreakLine;printf(请输入您的8位数密码);scanf(%s,upwd);if(strcmp(upwd,realpassword)==0)return1;printf(您好,您的密码错误,请确认后重新输入\n);printf(您还有%d次输入机会,(3-i));}printf(\n系统郑重提示,您不是合法用户,强制退出\n);exit(0);}④在common.c定义voidpcontinue()函数实现按任意键继续功能voidpcontinue(){printf(\t按任意键继续\n);getch();}三.清屏语句,Dowhile,宏定义等的使用⑴清屏语句:system(cls);⑵使用了DoWhile循环实现了在进入关于我们部分时可以再次返回登陆界面。⑶使用了宏定义。在头文件MyParam.h中定义BreakLine#defineBreakLineprintf(\n\n***************************************************\n\n)⑷使用了switch语句进行了选择并且在语句中使用了多种函数嵌套使功能完整。switch(choice){case'1':if(login()==1){showMainMenu();}break;case'2':aboutUs();break;case'0':printf(\n\n系统安全退出\n\n);exit(0);break;⑸在输入密码部分使用了For循环,实现了在登陆三次密码不正确的情况下强制退出系统:for(i=1;i4;i++){BreakLine;printf(请输入您的8位密码:);scanf(%s,upwd);//数组名代表数组的首地址,所以不要&if(strcmp(upwd,realpassword)==0){return(1);//1表示登录成功}printf(\n您好,您的密码错误,请确认后重新输入··\n);printf(\n您还有第%d次输入机会,(3-i));}printf(\n系统郑重提示,您不是合法用户,强制退出···\n);pcontinue();exit(0);3.2.2其他函数部分voidshowMainMenu();再在voidshowMainMenu();其中嵌套voidshowGoodsMenu();voidshowCustMenu();voidshowShopMenu();voidshowSaleMenu();在这些函数中也就是商品管理,客户信息管理,购物结算,和销售结算四大功能模块。依照前面的嵌套方法一一实现他的功能。在四大模块菜单中有voidaddGoods();voidfindGoodsAll();voidupdateGoods();voiddelGoods();voidaddcust();voiddelcust();voidupdatecust();voidfindall();voidsaveAll();voidsaveall();实现了客户管理中:添加客户、查询客户、删除客户、修改客户、返回上一级商品管理中:添加商品、查询商品、删除商品、修改商品、返回上一级等部分的功能。在四大模块菜单中有voidshowVIP();voidGoodseffect();voidGoodssave();voidBirthdayperson();voidshowMymenue();voidshopping();实现了购物结算中:商品交易信息、返回上一级销售预算中:显示最具有贡献精神VIP客户排行榜显示最具有影响力的商品排行榜显示库存商品量排行榜当月生日的客户以及返回上一级等功能3.3结构体的建立和文件的使用在实现添加功能时使用了结构体、指针等对现阶段我们来说较难理解的内容。3.3.1结构体语句的使用我们会在程序中用到如下结构体语句:Structdate/日期intyear/年intmonth/月intday/日Structcust/客户信息intno/编号charname[20]姓名charsex/性别intage/年龄structdatebirthday/生日doubleexpenditure/花费chartel/电话号码Structgoods/商品信息ntnum/商品代码charname[50]/商品名字intsale/商品数量floatprice/商品单价intlacation/商品位置在整个程序中我们会如下用到结构体语句,不同的结构体类型:structcust{intno;charname[20];charsex;intage;structdatebirthday;doubleexpendituer;chartel[20];}cust[1000];3.3.2文件的使用客户信息管理和商品管理都有用到文件,它于我们是重点也是难点⑴定义文件FILE*fp;inti;if((fp=fopen(cust.dat,wb))==NULL){printf(\n无法打开文件\n);return;}for(i=0;itotal;i++){fwrite(&cust[i],sizeof(structcust),1,fp);}fclose(fp);⑵定义函数read_message()