C语言图书销售管理系统修订版
C语言:书店管理系统
C语言:书店管理系统#include "stdio.h"#include <string.h>#define MAXNUM 1000typedef struct{char isbn[10]; /*书号*/char bkname[20]; /*书名*/char author[10]; /*作者*/float price; /*单价*/int num; /*数量(单位:册)*/} BOOK;int bknum;BOOK bk[MAXNUM];rdata(){FILE *fp;if ((fp=fopen("e:\\lth019\\bkstore\\bookdata.txt","rb"))==NULL){printf("Can not open the file!\n");return;}fread(&bknum,sizeof(int),1,fp);fread(bk,sizeof(BOOK),bknum,fp);fclose(fp);}bklist(){int i;clrscr();printf(" Isbn bkname author price num\n"); printf("----------------------------------------------------------------\n");for(i=0;i<bknum;i++)putout();printf("-------------------------BOOK LIST END---------------------------\n");printf("Press any key to return...");getch();}void wdata(){FILE *fp;if ( (fp=fopen("e:\\lth019\\bkstore\\bookdata.txt","wb"))==NULL) {printf("Can not open the file!\n");return;}fwrite(&bknum , sizeof(int) , 1 , fp);fwrite(bk, sizeof(BOOK), bknum, fp);fclose(fp);}void bookin(){char s[10],bn[20],au[10];int i,nn;float pp;printf("input isbn(000 to end input):");scanf("%s",s);while(strcmp(s,"000")!=0){if ((i=found(s))<bknum){ printf("Have found!\n");putout();printf("input the number:");scanf("%d",&nn);bk[i].num+=nn;{putout();getch();}printf("input isbn(000 to end input):");scanf("%s",s);}else{printf("A new book input,\nPlease input bkname,author,price,num\n");strcpy(bk[i].isbn,s);scanf("%s%s",bn,au);strcpy(bk[i].bkname,bn);strcpy(bk[i].author,au);scanf("%f%d",&pp,&nn );bk[i].price=pp;bk[i].num=nn;bknum++;{putout();getch();}printf("input isbn(000 to end input):");scanf("%s",s);break;}}}showsold(BOOK sold[],int n){int i;printf("\n\n\n -------------The Books are selling-----------------\n");for(i=0;i<n;i++)printf(" %-10s%-20s%-10s%-8.2f%-8d\n",sold[i].isbn,sold[i].bkname,sold[i].author,sold[i].price,sold[i].num);}int found(char isbn[]){int i;for(i=0;i<bknum;i++)if(strcmp(isbn,bk[i].isbn)==0) break;return i;}void booksale(){ char isbn[10];BOOK sold[100];int soldnum=0,i;float total=0;clrscr();printf("Please input isbn(000 to end input):");scanf("%s",isbn);while(strcmp(isbn,"000")!=0){if((i=found(isbn))<bknum)if(bk[i].num>0)sold[soldnum++]=bk[i],bk[i].num--;else{printf("\Not enough!Pressany key to continue...");getch();} else{printf("\Not enough!Pressany key to continue...");getch();}clrscr();for(i=0,total=0;i<soldnum;i++)total+=sold[i].price;if(soldnum){ showsold(sold,soldnum);printf(" ----------------------------------------------\n");printf("\n The total %8.2f\n\n\n",total);}printf("\n input isbn(000 to end input):");scanf("%s",isbn);}}void search(){ char s[10]; char found; char isbn[20];char num[10]; char au[20]; char name[20];int t,i;printf("=================\n");printf(" 1.search with isbn \n");printf(" 2.search with author \n");printf(" 3.search with bookname \n");printf("=================\n");printf(" please chose one way : ");scanf("%d",&t);if(t==1){ printf(" please input isbn : ");scanf("%s",&s);for(found=0,i=0 ; i<bknum ; i++)if(strcmp(s,bk[i].isbn)==0){printf("Have found!\n");putout();found++;}else continue;if(!found) printf("Not found!");getch();}if(t==2){ printf(" please input author: ");scanf("%s",au);for(found=0,i=0;i<bknum;i++)if(strcmp(au,bk[i].author)==0){printf("Have found!\n");putout();found++;}else continue;if(!found) printf("Not found!");getch();}if(t==3){ printf(" please input bookname: ");scanf("%s",name);for(found=0,i=0;i<bknum;i++)if(strcmp(bk[i].bkname,name)==0){printf("Have found!\n");putout();found++;}else continue;if(!found) printf("Not found!");getch();}}Delete(){ char s[10],t;int found=0,i,j;printf("please input isbn of the book:");scanf("%s",s);for(i=0 ; i<bknum ; i++)if( strcmp(s,bk[i].isbn)==0 )break;if (i<bknum){ found=1;printf("Found!\n");putout();printf("Are you sure to delete?(Y/N):"); flushall(); scanf("%c",&t);if(t=='y'||t=='Y'){ for(;i<=bknum;i++)bk[i]=bk[i+1];}bknum--;}else printf("This book did't delete!");getch();}putout(){ int i;printf(" %-10s%-20s%-10s%-8.2f%-8d\n",bk[i].isbn,bk[i].bkname,bk[i].author,bk[i].price,bk[i].num); }int showsel(){int sel;clrscr();printf("--------------------------ManiMenus-------------------------\n\n"); printf(" 0. Exit\n");printf(" 1. BookList\n");printf(" 2. BookIn\n") ;printf(" 3. BookSale\n");printf(" 4. Save\n ");printf(" 5. Delete\n");printf(" 6. Search\n");printf("\n------------------------------------------------------------\n"); printf(" Input the selection:");scanf("%d",&sel);return sel;}main(){int sel; char yes;clrscr();rdata();sel=showsel();while(1){ switch(sel){case 0:printf("Are sure to Save?(Y/N) ");flushall();scanf("%c",&yes);if(yes=='Y'||yes=='y') { wdata(); exit(0); }exit(0);case 1:bklist();break;case 2:bookin();break;case 3:booksale();break;case 4:wdata();break;case 5:Delete();break;case 6:search();break;default :break;}sel=showsel();}}。
C课程设计:图书销售系统
山东大学威海分校C/C++程序设计课程名称:C/C++程序设计专题:图书销售系统姓名:田玉针学号:200900800170专业:09通信工程指导老师:信工程图书销售管理系统设计一、设计要求:图书信息包括:序号、书名、作者、出版单位、价格。
设计一图书销售管理系统,使之能提供以下功能:1、系统以菜单方式工作2、图书信息录入功能(图书信息用文件保存)--输入3、图书信息的删除与修改功能4、图书信息浏览功能--输出5、查询功能--算法:按书名/作者查询6、排序功能--算法按书名排序按价格排序7、图书购买功能:统计选购图书的总价,给出清单,屏幕输出参考以下的实际购书单(供参考,输出样式可自行设计):二、设计思路考虑到自己是非软件专业,没有系统的学过数据库、数据结构等专业性较强的知识,整个程序设计我采用函数调用的方式来实现设计要求的功能。
这样做的优点是设计较简单,容易操作。
主函数控制着整个系统的执行流程,使系统菜单可以循环执行。
菜单提供一个可以选择任何一个功能的选择窗口。
供用户选择需要的执行。
Switch语句可以很方便的解决多分支选择问题。
根据设计要求可知,程序需要数据的录入和调用。
因此需要有数据录入函数,然而录入的数据放在哪里呢?故此,需要设计保存文件函数和打开文件函数。
保存文件函数,把内存中结构体得信息输出到TXT文件中,数据以文件的形式存放在磁盘上,方便以后需要时再从磁盘中输入到计算机内存。
保存函数和打开函数都用fopen命令。
打开文件函数,把文件的信息打开到一个结构体数组中。
调用已保存的数据。
录入函数,调用scanf函数进行数据的输入,再调用保存文件函数即可将录入的信息保存到文件中。
输出函数提供对图书信息的检索,浏览图书信息。
查询函数,用户可以输入图书的名字或者作者的名字对图书进行检索,查看图书的价格、库存等信息。
删除和修改函数,提供对图书信息的删除和修改功能。
该函数可以根据用户输入的信息与保存的信息进行比较,如果匹配则对该信息做修改或删除操作,如果没有匹配则输出“此书不存在”。
c语言课程设计销售管理系统
c语言课程设计销售管理系统一、教学目标本章节的教学目标旨在让学生掌握C语言编程基础,能够运用C语言设计销售管理系统。
具体目标如下:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,了解结构体和文件操作等相关概念。
2.技能目标:学生能够运用C语言进行程序设计,具备编写和调试C语言程序的能力。
学生能够运用结构体设计销售管理系统的相关数据结构,并使用文件操作实现数据的持久化存储。
3.情感态度价值观目标:学生能够体验到编程的乐趣,培养对计算机科学的兴趣。
通过完成销售管理系统的项目,培养学生的创新能力和团队合作意识。
二、教学内容本章节的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,以及结构体和文件操作等相关概念。
具体安排如下:1.C语言基本语法和数据类型:介绍C语言的基本语法规则,包括变量声明、数据类型、运算符等。
2.控制结构:讲解条件语句和循环语句的用法,包括if语句、switch语句、for循环、while循环等。
3.函数:介绍函数的定义和调用,包括主函数、参数传递、返回值等。
4.结构体:讲解结构体的定义和使用,包括结构体的声明、成员访问、结构体数组等。
5.文件操作:介绍文件操作的基本方法,包括文件的打开、读写、关闭等。
6.销售管理系统的实现:引导学生运用所学知识设计和实现一个简单的销售管理系统,包括数据结构的设计、功能的实现和文件的操作。
三、教学方法本章节的教学方法采用讲授法、案例分析法和实验法相结合的方式。
具体安排如下:1.讲授法:教师通过讲解C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,引导学生理解和掌握相关概念。
2.案例分析法:教师通过分析典型的销售管理系统的案例,引导学生运用所学知识进行系统设计和功能实现。
3.实验法:教师引导学生进行实验,让学生亲自动手编写和调试C语言程序,培养学生的编程能力和解决问题的能力。
C语言销售管理系统设计(内含完整代码及附件)
用户下载须知程序语言:C、C++、C#(红色字体表示本课设使用的程序设计语言)图形功能选项:Win32控制台程序(黑框、文本界面)、Win32程序、MFC、WinForm、DirectX10(红色字体表示本课设的程序图形类别,默认为非图形界面Win32控制台程序)数据结构:基础类型、数组、链表、双向链表、搜索树(非平衡二叉树)、平衡二叉树、链表与平衡二叉树相结合、堆栈、队列、串、图(红色字体表示本课设使用的数据结构)C++语言项:STL库(红色字体表示使用C++的STL库)编译环境:Windows 7 64位旗舰版(Linux及其他环境请谨慎下载)集成开发环境:Visual C++ 6.0、DEVC++、CodeBlocks、Visual Studio 2015(需进行修改)均可通过编译。
(若无法通过编译运行,则会用浅蓝色字体表示)分多头文件编译:否(所有代码基本都包含在一个文件内,如需试验头文件功能,请自行参考相关文献)内容说明:1、课设题目及预览内容将在第二页开始展示。
2、代码行数:304行3、目录所示内容,本文基本涵盖,如无内容,会在本页进行说明。
4、附录绝对包含用户使用手册及程序完整源代码和详细注释。
5、如需下载其他头文件(例如DirectX需另行配置),本文会在此进行说明。
6、未经平台、本人及相关法律法规允许,请勿用于其它商业行为,否则后果自负。
7、本文撰写内容仅供学习参考,另外,由于本人水平有限,编写之处难免存在错误和纰漏,恳请各位老师或同学批评指正。
销售管理系统设计某公司有四个销售员(编号:1-4),负责销售五种产品(编号:A-E)。
每个销售员都将当天出售的每种产品各写一张便条交上来。
每张便条包含内容:1)销售员的代号,2)产品的代号,3)这种产品当天的销售额。
每位销售员每天上缴1张便条。
系统基本功能:1、系统以菜单方式工作2、便条信息录入功能(便条信息用文件保存)3、收集到了上个月的所有便条后,读取销售情况1)计算每个人每种产品的销售额。
c语言课程设计书店图书销售系统
沈阳航空工业学院课程设计任务书系:自动化专业:自动化班级:学号:02055 题目:书店图书销售系统一、课程设计时间2008~09第2学期第15周,共计1周,20学时。
二、课程设计内容用C语言编写软件完成以下任务:模拟书店经营业务,主要指“购进图书”和“出售图书”两种业务。
由于图书的出售价格高于图书的购进价格,所以系统能够计算累计利润。
要求:①“购进图书”和“出售图书”2方面信息只用1个文件存储,文件中每行数据遵循如下顺序:图书编号,图书名称,出版社,购进册数,购进价格,出售册数,出售价格。
②能够随时显示库存情况和销售情况。
③能够随时计算书店累计利润。
④能够随时购进新书和出售图书,册数不限。
三、课程设计要求程序质量:✧贯彻结构化的程序设计思想。
✧用户界面友好,功能明确,操作方便。
✧用户界面中的菜单至少应包括“进书”、“售书”、“计算利润”、“书库现状”、“出售现状”、“退出”6项。
✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。
课程设计说明书:✧课程结束后,上交课程设计说明书和源程序。
课程设计说明书的内容参见提供的模板。
四、指导教师和学生签字指导教师:________ 学生签名:________五、成绩六、教师评语目录一、需求分析 (1)二、程序流程图 (2)三、核心技术的实现说明及相应程序段 (5)四、课设总结 (8)五、参考文献 (9)六、源程序 (9)一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为五个模块,其中每一个模块对应一个函数,它们的功能分别是:购进图书,出售图书,计算利润,书库现状,出售现状,退出。
在这些函数都是按照题目的要求实现的函数。
1、购进图书主要的功能是将购进来的图书写入文件中,用于保存。
2、出售图书实现卖书并对书库当中的内容进行更新,以达到卖书的目的。
3、计算利润将卖出的书的价格进行统计,并计算累计利润。
4、书库现状对书库当中的剩余图书进行查找,读出书库当中的信息。
求C++高手帮忙,用C++系统语言做一个图书销售管理系统,源程序要有适当的注释_百度知道
flag2=0;
do
{
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
else
flag2=1;
}while(flag2==0);
}while(c=='y');
break;
}
case '4':
{
double t;char c;
{
flag3=1;
i--;
do{
s[h]=s[h+1];
h++;
}while(h<=i);
}
}
if(flag3==0)
cout<<"您要求删除的对象本来就不存在!请检查输入的正确性!";
cout<<"要继续删除吗?(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
cin>>name;
cout<<"请输入数学成绩:"<<endl;
cin>>math;
cout<<"请输入语文成绩:"<<endl;
cin>>chinese;
cout<<"请输入外语成绩:"<<endl;
c语言-销售管理系统报告书.doc
C语言课程设计报告一、题目设计一个C语言程序(销售管理系统)二、内容1、每一记录包括销售员的编号、产品编号、产品当天的销售额、上个月每个人每种产品的销售额、每种产品的总销售额。
2、输入功能:可以完成记录的输入3、显示功能:完成所要求员工的记录的显示4、查找功能:完成按员工编号查找员工记录,并显示。
5、排序功能: 按销售额对销售员进行排序, 对这些产品按从高到底的顺序输出排序结果。
6、保存功能:将员工记录保存在自定义的文件中。
三、设计要求1、整个系统均用C语言实现;2、利用指针、链表来实现员工销售情况的数据结构设计3、系统具有输入、显示、查询、删除、排序、插入、保存、读取基本功能4、系统的各个功能模块都用函数的形式来实现。
5、可以将员工的销售情况从文件当中读取出来。
具体要求:某公司有四个销售员(编号:1-4),负责销售五种产品(编号1-5)。
每个销售员都将当天出售的每种产品各写一张便条交上来。
每张便条包含内容:1)销售员的代号2)产品的代号3)这种产品当天的销售额每位销售员每天的可能上交0-5张便条。
假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况,进行如下处理:主要功能:1、计算上个月每个人每种产品的销售额。
2、按销售额对销售员进行排序,输出排序结果(销售员代号)3、统计每种产品的总销售额,对这些产品按从高到底的顺序输出排序结果(需输出产品的代号和销售额)4、输出统计报表四、总体设计1、程序设计组成框图`五、详细设计1、功能函数f1()——本函数由梁俊贤设计函数的功能:计算上个月每个人每种产品的销售额函数的入口:从main()的switch()开关结构中进入,即choice的值为1时进入该函数,打开.dat数据文件,然后提示用户通过键盘对该月的员工销售情况进行数据的读入。
函数调用关系:被主函数调用。
由switch()开关结构中进入,并在文中无返回值的空值void函数。
函数的出口:当程序执行提示语“printf("继续输入请按回车,结束输入请按esc\n");”的时候,对用户的操作进行提示,如果用户选择了按“ESC”键,则用户选择了结束数据的录入,将结束该函数,而执行主函数main()中“break;”跳出switch()开关函数,继续执行for循环结构。
c语言图书销售系统(源代码)
#include <stdio.h>#include <string。
h〉#include <malloc.h〉#include 〈stdlib。
h〉#include 〈time.h〉#include <conio。
h>#define LEN sizeof(struct book)#define VLEN sizeof(struct vip)#define SLEN sizeof(struct sales)struct vip *vhead=NULL;struct vip *v1,*v2;struct sales *shead=NULL;struct sales *s1,*s2;int V,S;/*结构体定义*/struct book{char bnum [12];/*书号*/char bname [41];/*书名*/char author [20];/*作者*/float price; /*书价*/int acount; /*书存在本数*/struct book *next;};struct sales{float count;struct sales *snext;};struct vip{char vnum[12];char vname[41];int level;float persum;float discount;struct vip *vnext;};/*函数声明*/void loadbook(); /*自动读入书库信息*/void welcome();/*欢迎界面显示*/ void inputbook();/*增加书本信息*/void loadvip();void loadsales(); /*自动录入销售信息*/void daysales(); /*日销售额*/void monthsales();/*月销售额*/void yearsales(); /*年销售额*/void search();/*查询书数量*/void search_by_bnum(); /*通过书号查询*/void search_by_bname();/*通过书名查询*/void search_by_author();/*通过作者查询*/void buy(); /*购买书籍*/void list(); /*列出书库信息*/void listvip();void listsales();/*列出销售信息*/void delet();/*删除书目*/void delet_by_bnum();/*通过书号删除*/void delet_by_bname();/*通过书名删除*/void delet_by_author();/*通过作者删除*/void save();/*保存记录*/void redef(); /*修改密码*/void bover(); /*显示已售完的书*/void buy_by_huiyuan();/*会员买书*/void buy_by_feihuiyuan();/*非会员买书*/void exit0(); /*退出*/int menu();/*主菜单*/void print2(); /*显示查询菜单*/void printdelete();/*显示删除菜单*/struct book *head=NULL,*head2=NULL;/*head和head2分别用于书库的头指针和已购书的头指针*/struct book *p1,*p2,*p3,*p4,*p5,*p6; /*p1、p2、p3用于操作书库图书,p4、p5、p6用于操作已购书*/int save_flag=0; /*图书信息变动标志*/int buy_flag=0;/*买书时,是否调用过查询功能标志*/int shan_flag=0;/*删书时,是否调用过显示已售完书功能标志*/int T=0;/*记录导入的书本数*/char mima[11]=”123456”;/*初始密码*/void bookmanage();void salesmanage(); /*销售统计*/int main() /*主函数*/{welcome(); /*欢迎界面显示*/loadbook();loadsales();loadvip(); /*自动导入书库信息*/while(1){switch(menu()){case 1:system(”cls”);bookmanage();break;case 2:system(”cls");buy();break;case 3:system("cls");listvip();break;case 4:system("cls”);;salesmanage();break;case 5:system(”cls");;break;case 0:system(”cls”);exit0();break;default:{printf("\n选择错误,请按主菜单提示输入您的正确选择(0~8)\n”);printf("按任意键返回继续:");rewind(stdin);/*清空缓冲区*/getch();}}}return 0;}/*菜单*/int menu(){int choice;system(”cls");/*系统清屏*/printf(”\n *************************主菜单*************************\n\n”);printf(” 1.图书管理\n\n”);printf(" 2。
C语言-销售管理系统报告书
C语言-销售管理系统报告书C语言课程设计报告一、题目设计一个C语言程序(销售管理系统)二、内容1、每一记录包括销售员的编号、产品编号、产品当天的销售额、上个月每个人每种产品的销售额、每种产品的总销售额。
2、输入功能:可以完成记录的输入3、显示功能:完成所要求员工的记录的显示4、查找功能:完成按员工编号查找员工记录,并显示。
5、排序功能: 按销售额对销售员进行排序, 对这些产品按从高到底的顺序输出排序结果。
6、保存功能:将员工记录保存在自定义的文件中。
三、设计要求1、整个系统均用C语言实现;2、利用指针、链表来实现员工销售情况的数据结构设计3、系统具有输入、显示、查询、删除、排序、插入、保存、读取基本功能4、系统的各个功能模块都用函数的形式来实现。
5、可以将员工的销售情况从文件当中读取出来。
具体要求:某公司有四个销售员(编号:1-4),负责销售五种产品(编号1-5)。
每个销售员都将当天出售的每种产品各写一张便条交上来。
每张便条包含内容:1)销售员的代号2)产品的代号3)这种产品当天的销售额每位销售员每天的可能上交0-5张便条。
假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况,进行如下处理:主要功能:1、计算上个月每个人每种产品的销售额。
2、按销售额对销售员进行排序,输出排序结果(销售员代号)3、统计每种产品的总销售额,对这些产品按从高到底的顺序输出排序结果(需输出产品的代号和销售额)4、输出统计报表四、总体设计1、程序设计组成框图`五、详细设计1、功能函数f1()——本函数由梁俊贤设计函数的功能:计算上个月每个人每种产品的销售额函数的入口:从main()的switch()开关结构中进入,即choice的值为1时进入该函数,打开.dat数据文件,然后提示用户通过键盘对该月的员工销售情况进行数据的读入。
函数调用关系:被主函数调用。
由switch()开关结构中进入,并在文中无返回值的空值void函数。
C语言课程设计报告(销售管理系统)
C语言课程设计报告(销售管理系统)学院:班级:学号:姓名:目录一、销售管理系统的设计目的 (3)二、需求分析 (4)三、概要设计 (5)四、详细设计 (6)五、主要原程序代码 (8)六、试分析过程描述调 (16)七、总结 (17)一、销售管理系统的设计目的1、通过本课程设计,培养上机动手能力,使学生巩固《C 语言程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手能力,闯过编程关;2、学会用c语言程序设计来设计销售管理系统设计;3、为后续各门计算机课程的学习打下坚实基础。
二、需求分析1)设计题目分析题目:销售管理系统2)设计要求分析(1)用c语言实现程序设计(2)利用结构体进行相关信息处理(3)画出查询模块的流程图(4)系统的各个功能模块要求用函数的形式实现(5)界面友好(良好的人机互交),程序要有注释。
3)系统功能需求分析(1)计算上个月每个人每种产品的销售额(2)按销售额对销售员进行排序,输出排序结果(销售员代号)(3)统计每种产品的总销售额,对这些产品按从高到低的顺序,输出排序结果(需输出产品的代号和销售额)(4)输出统计报表三、概要设计1)总体设计本程序要设计销售管理系统,首先要设计一个选择函数,用来选择运行其他各个函数。
接着要分别设计输入数据函数,各种统计函数和各种排序函数,用以实现各种统计和排序功能,最后要设计一个数据请空函数和统计表输出函数,得到程序设计要求的表格。
2)系统流程图四、详细设计1)详细设计思路(1). main ()主函数 设置了程序的流程,结束程序。
(2). fprintf ( ) 选择函数 选择所想运行的各个函数.(3)mulu ( ) 输入函数 输入便条的数据.输(4). arg ( ) 文件的数据输入函数多次输入数据(5). output1 ( ) 统计函数每个人的每种产品销售额的统计(6). Output2 ( )总额排序函数按销售额对商品进行排序(7). output3 () 总额统计函数统计每种产品的总额(8). Output4 () 售员排序函数按照销售额对售员排序函数(9). save () 统计报表函数统计商品总额2)工作流程图五、主要源程序代码1)源程序清单(1)计算每个人每种产品的销售额。
C语言课程设计报告-小型图书购销管理系统
《计算机程序设计基础》课程设计报告项目名称小型图书购销管理系统学生姓名李晞月学院信息科学与工程学院指导教师穆帅目录目录 (1)第一章系统描述 (2)第二章功能模块结构 (3)第三章数据结构设计 (6)第四章主要模块的算法说明 (7)第五章运行结果 (9)第六章课程设计总结 (13)参考文献 (15)附录 (16)第一章系统描述系统说明本程序采用Visual C++ 6.0编译器编译。
系统运行之前需要保证在“c:\ C-design\”目录下有以下四个txt文件,名为:《jibenxinxi.txt》、《kucunxinxi.txt》、《buy.txt》、《sell.txt》系统的基本功能✧用户界面采用文本菜单界面,设有欢迎界面。
各级菜单层次分明,切换方便。
✧系统的功能可实现循环连续操作,直至用户选择返回或退出。
✧重要操作之前会有确认提示。
若输入不合法,有出错原因提示。
出错提示以及查询结果输出后可按任意键继续,以便用户有停顿时间来阅读。
✧系统采用四个文件分别保存以下信息:图书基本信息、库存信息、采购纪录、出售纪录。
✧实现图书基本信息的录入及保存。
信息录入时可限制编号不重复。
✧可查询文件中保存的图书基本信息。
输入书名(或编号、作者、价格)可调出符合的信息,也可全部显示。
其中按价格查询时,输入一个范围可将在范围内的信息都显示出来。
✧具有图书采购功能:输入要采购的图书编号能自动把该书的基本信息显示出来,输入采购数量能自动得出采购所需金额,确认采购后,显示购买成功。
执行完采购功能后可实现对库存信息的添加和修改,以及向文件中添加采购纪录。
可随时查询保存在文件中的采购纪录。
✧具有图书出售功能:输入要采购的图书编号能显示出该书信息及库存数量,输入出售数量能自动得出出售所得金额,确认出售后,显示出售成功。
执行完出售功能后可实现对库存信息的删除和修改,以及向文件中添加出售纪录。
可随时查询保存在文件中的出售纪录。
✧利润统计功能,可动态显示运行系统以来的采购总金额、销售总金额及总利润。
c语言课程设计(销售管理系统)【完整版】
enter(RECODE t[]): struct
2
清屏之后输出提示语“请输入便条的信息” ,按提示语输入便条信息,输入 数 据 的 同 时 , 已 将 该 信 息 存 入 开 始 已 定 义 的 结 构 体 数 组 typedef
RECORD
t[ ]中,以便在排序功能选项、统计功能选项、输出清单列表选项
三、输入数据类型、格式和内容限制:
数据名称 销售员代号 产品代号 功能键代号 所有产品总和 每个销售员的 总销售额 每个人每种产 品的总销售额 数据关联 name,s,m[] a1,a2,a3, a4,a5 n sum c[] 数据类型 int 整型变量 int 整型变量 int 整型变量 int 整型变量 int 整型变量 数据格式 %d,%d,%d %d%d%d%d%d %d %d %d %d%d%d%d%d 内容限制 大于 0 小于 5 大于 0 小于 6 大于等于 0 小 于8 大于 0 大于 0 大于 0
sum+=t[i].a1;sum+=t[i].a2;sum+=t[i].a3; sum+=t[i].a4;sum+=t[i].a5;
i++
排序函数 void list1 (RECODE t[],int n)流程图:
定义两个数组 c[4],m[4] i=0 i=0
假 真
i<4
i<4
假
i=0,j=i+1
i++
6
五、程序的源代码清单:
#include <stdio.h>/*输入输出函数*/ #include <stdlib.h>/*通用应用程序函数*/ typedef struct /*定义结构体变量*/ { int name; int a1; int a2; int a3; int a4; int a5; }RECODE; int menu_select();/*选择菜单函数声明*/ int enter(RECODE t[]);/*进入函数声明*/ void salor(RECODE t[],int n);/*声明函数*/ int sum(RECODE t[],int n,int m);/*统计函数声明*/ void list1(RECODE t[],int n);/*菜单 1 函数声明*/ void list2(RECODE t[],int n);/*菜单 2 函数声明*/ void list3(RECODE t[],int n);/*菜单 3 函数声明*/ void save(RECODE t[],int n);/*保存文件函数声明*/ int load(RECODE t[]);/*读取函数声明*/ void main()/*主函数*/ { RECODE rec[600]; int length; system("cls"); /*清屏*/ for( ; ; ) /*无限循环*/ {switch(menu_select()){ /*根据用户的选择判断该调用哪个功能函数*/ case 1:length=enter(rec);break; case 2:salor(rec,length);break; case 3:list1(rec,length);break; case 4:list2(rec,length);break; case 5:list3(rec,length);break; case 6:save(rec,length);break; case 7:length=load(rec);break; case 0:exit(0);} }} /***************************菜单函数**************************/ int menu_select() { int n;
c语言课程设计(销售管理系统)【完整版】
c语言课程设计(销售管理系统)【完整版】
本管理系统实现了销售管理,可以完成客户管理、商品管理以及订单管理等功能,为管理者提供更多便利。
管理系统由主菜单、客户管理、商品管理、订单管理等模块组成,主菜单模块显示并实现了上述以及其他所有模块,可以方便快捷地进行相关操作。
客户管理模块包括新建客户信息、删除客户信息、更新客户信息、查询客户信息等功能,可以快速有效地管理客户信息;
订单管理模块包括新建订单、删除订单、更新订单、查询订单等功能,能够轻松地完成销售订单的管理。
另外,系统还采用了文件存储,只要上次保存数据正确,就可以实现每次登录之后的自动加载,让操作更加简单快捷。
系统采用C语言开发,使用字符操作实现图形界面;结构体链表数据结构实现数据存储与处理;文件存储实现数据加载与保存;采用函数式编程实现功能模块;不断尝试性地增加改进系统,以确保系统运行更加稳定可靠。
本项目以C语言编程实现对销售管理系统的全面而完整的管理,能满足日常销售管理的需求;同时,丰富的图形界面,实用的功能模块和可靠的文件存储,使系统操作变得更为简单快捷。
C语言编程销售管理系统
C语言编程销售管理系统#include#include#include#include#define NULL 0#define LEN sizeof(struct records)struct sellers_list /*销售员信息结构体*/ {int snum;char sname[20];char sex[10];}sellers[4];struct products_list /*产品信息结构体*/ {int pnum;char pname[20];float price;}products[5];struct records /*销售记录结构体*/{int snum;int pnum;int amount;char time[10];struct recoreds *next;};struct records *head=NULL;struct date /*日期结构体*/{int year;int month;int day;}d[100];int tab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};int n=0,choice;char c[100];void menu_select();void create_sellers();void create_products();void create_records(int n);void display();void insert(int m);void del();void find();void report(struct records *head);int main(){printf("\n\n\n\n\n\n\t\t\t欢迎您使用该销售管理平台!\n");printf("\n\n\n\t\t\t\t按任意键进入销售管理菜单、、、\n"); getch();system("cls");menu_select();}void menu_select() /*主菜单*/{int x;printf("****************销售管理菜单********************\n"); printf("* 1.输入销售员信息 *\n");printf("* 2.输入产品的信息 *\n");printf("* 3.输入销售的记录 *\n");printf("* 4.浏览所有的信息 *\n");printf("* 5.插入销售的记录 *\n");printf("* 6.删除销售的记录 *\n");printf("* 7.查询销售的记录 *\n");printf("* 8.导出销售的报表 *\n");printf("* 9.退出 *\n");printf("************************************************\n"); printf("请输入1-9选择相应操作:");do{scanf("%s",&c);choice=atoi(c);if(choice<1||choice>9)printf("输入错误!请输入1-9选择相应操作:");}while(choice<1||choice>9);do{switch(choice){case 1:create_sellers();getch();system("cls");menu_select();break;case 2:create_products();getch();system("cls");menu_select();break;case 3:if(head!=NULL){printf("\n你已经创建了链表,按任意键返回主菜单!\n"); getch();system("cls");menu_select();break;}else{system("cls");printf("请输入要建立的销售记录条数:");scanf("%d",&n);if(n>0)create_records(n);elseprintf("\n输入的数据有问题,请重新输入!\n");}getch();system("cls");menu_select();break;case 4:display();getch();system("cls");menu_select();break;case 5:system("cls");if(head==NULL)printf("现在是空链表,请先去创建链表!\n");else{do{printf("请正确输入要插入销售记录的位置(范围是 1--%d):",n); scanf("%d",&x);} while(x<1 || x>n);insert(x);}getch();system("cls");menu_select();break;case 6:system("cls");del();getch();system("cls");menu_select();break;case 7:system("cls");find();getch();system("cls");menu_select();break;case 8:system("cls");report(head);system("cls");menu_select();break;}}while(choice!=9);system("cls");printf("\n\n\n\n\n\n\n 谢谢使用!欢迎下次使用、、、、、、\n");getch();}void create_sellers() /*输入销售员信息*/{int i,ch;system("cls");printf("*******************选择界面*********************\n");printf("* 1.从键盘输入销售员信息 *\n");printf("* 2.从文件中读取销售员信息 *\n");printf("************************************************");printf("\n请输入1或2选择需要的操作:");do{scanf("%s",&c);ch=atoi(c);if(ch<1||ch>2)printf("输入错误!请输入1或2选择需要的操作:\n");}while(ch<1||ch>2);if(ch == 2){FILE *fp;if((fp=fopen("sellers.txt","r"))==NULL){printf("\nCannot open file strike any key exit!\n\n");exit(1);}ch=getchar();printf("销售员的编号姓名性别 \n");for(i=0;i<4;i++){fscanf(fp,"%d %s %s",&sellers[i].snum,sellers[i].sname,sellers [i].sex);printf(" %d %s %s\n",sellers[i].snum,sellers[i].sname,sellers[i] .sex);}fclose(fp);printf("销售员信息读取成功,按任意键返回主菜单!\n");}else{printf("\n 销售员的编号姓名性别 (空格隔开)\n");for(i=0;i<4;i++){scanf("%d%s%s",&sellers[i].snum,sellers[i].sname,sellers[i].s ex);}}}void create_products() /*输入产品信息*/{int j,ch;system("cls");printf("*******************选择界面*********************\n");printf("* 1.从键盘输入销售产品信息 *\n");printf("* 2.从文件中读取销售产品信息 *\n");printf("************************************************");printf("\n请输入1或2选择需要的操作:");do{scanf("%s",&c);ch=atoi(c);if(ch<1||ch>2)printf("输入错误!请输入1或2选择需要的操作:\n");}while(ch<1||ch>2);if(ch == 2){FILE *fp;if((fp=fopen("products.txt","r"))==NULL){printf("\nCannot open file strike any key exit!\n\n");exit(1);}ch=getchar();printf("产品的编号名称价格\n");for(j=0;j<5;j++){fscanf(fp,"%d %s %f",&products[j].pnum,products[j].pname, &products[j].price);printf(" %d %s %f\n",products[j].pnum,products[j].pname,pr oducts[j].price);}fclose(fp);printf("销售产品信息读取成功,按任意键返回主菜单!\n");}else{printf("\n产品的编号名称价格 (逗号隔开)\n");for(j=0;j<5;j++){scanf("%d,%s,%f",&products[j].pnum,products[j].pname,&p roducts[j].price);}}}void create_records(int n) /*创建销售记录链表*/{struct records *p;int i,j,flag,leap,ch;char a[3],b[2],c[2];printf("*******************选择界面*********************\n");printf("* 1.从键盘输入销售的记录 *\n");printf("* 2.从文件中读取销售的记录 *\n");printf("************************************************");printf("\n请输入1或2选择需要的操作:");do{scanf("%s",&c);ch=atoi(c);if(ch<1||ch>2)printf("输入错误!请输入1或2选择需要的操作:\n");}while(ch<1||ch>2);if(ch==1){printf("*********************请输入销售记录*************************\n\n");printf("销售员编号产品代号销售数量日期(YYYY-MM-DD)(空格隔开)\n");for(i=0; i{p=(struct records *)malloc(LEN);do{flag=1;scanf("%d%d%d%s",&p->snum,&p->pnum,&p->amount,p ->time);for(j=0;j<4;j++){a[j]=p->time[j];}a[4]=' ';b[0]=p->time[5];b[1]=p->time[6];c[0]=p->time[8];c[1]=p->time[9];d[i].year=atoi(a);d[i].month=atoi(b);d[i].day=atoi(c);for(j=0;j<4;j++){if(p->snum==sellers[j].snum)break;}if(j==4){printf("销售员不存在!请重新输入!\n");flag=0;continue;}for(j=0;j<5;j++){if(p->pnum==products[j].pnum)break;}if(j==5){printf("该产品不存在!请重新输入!\n");flag=0;continue;}if(p->time[4]!='-'||p->time[7]!='-'||strlen(p->time)!=10){ printf("日期格式错误!请重新输入!\n");flag=0;continue;}if(d[i].year%4==0||d[i].year%100==0||d[i].year%400==0) leap=0;elseleap=1;if(leap=1){if(d[i].day>tab[1][d[i].month]||d[i].day<0){printf("天数错误!请重新输入!\n");flag=0;continue;}}else{if(d[i].day>tab[0][d[i].month]||d[i].day<0){ printf("天数错误!请重新输入!\n");flag=0;continue;}}}while(flag==0);p->next=head;head=p;}printf("\n成功输入%d条销售记录,按任意键返回主菜单!\n",n);}else{FILE *fp;if((fp=fopen("records.txt","r"))==NULL){printf("\nCannot open file strike any key exit!\n\n");exit(1);}ch=getchar();printf("销售员编号产品代号销售数量日期(YYYY-MM-DD)\n");for(i=0;i<n;i++){p=(struct records *)malloc(LEN);fscanf(fp,"%d %d %d %s",&p->snum,&p->pnum,&p->amo unt,p->time);printf(" %d %d %d %s\n",p->snum,p->pnum,p->amount,p->time);p->next=head;head=p;}fclose(fp);printf("销售记录读取成功,按任意键返回主菜单!\n");}}void display() /*浏览所有信息*/{int i;struct records *p;system("cls");printf("*********************销售员信息*********************\n");printf("编号姓名性别 \n");for(i=0;i<4;i++)printf("%d %s %s\n",sellers[i].snum,sellers[i].sname,sellers[i]. sex);printf("*********************销售产品信息*******************\n");printf("编号名称价格\n");for(i=0;i<5;i++)printf("%d %s %f\n",products[i].pnum,products[i].pname,pr oducts[i].price);printf("**********************销售记录**********************\n");printf("销售员编号产品代号销售数量日期\n");p=head;while(p!=NULL){printf("%d %d %d %s\n",p->snum,p->pnum,p->amount,p->time);p=p->next;}printf("\n所有信息显示完毕,按任意键返回主菜单!\n");}void insert(int m) /*插入销售记录*/{struct records *p1,*p2;int i=1,j,flag,leap;char a[3],b[2],c[2];p1=head;while(i<m){p1=p1->next; i++;}printf("*********************请插入销售记录*************************\n");printf("销售员编号产品代号销售数量日期(YYYY-MM-DD) (空格隔开)\n");p2=(struct records *)malloc(LEN);do{flag=1;scanf("%d%d%d%s",&p2->snum,&p2->pnum,&p2->amou nt,p2->time);for(j=0;j<4;j++){a[j]=p2->time[j];}a[4]=' ';b[0]=p2->time[5];b[1]=p2->time[6];c[0]=p2->time[8];c[1]=p2->time[9];d[i].year=atoi(a);d[i].month=atoi(b);d[i].day=atoi(c);for(j=0;j<4;j++){if(p2->snum==sellers[j].snum)break;}if(j==4){printf("销售员不存在!请重新输入!\n");flag=0;continue;}for(j=0;j<5;j++){if(p2->pnum==products[j].pnum)break;}if(j==5){printf("该产品不存在!请重新输入!\n");flag=0;continue;}if(p2->time[4]!='-'||p2->time[7]!='-'||strlen(p2->time)!=10){ printf("日期格式错误!请重新输入!\n");flag=0;continue;if(d[i].year%4==</m)</n;i++){0||d[i].year%100==0||d[i].year%400==0)leap=0;elseleap=1;if(leap=1){if(d[i].day>tab[1][d[i].month]||d[i].day<0){printf("天数错误!请重新输入!\n");flag=0;continue;}}else{if(d[i].day>tab[0][d[i].month]||d[i].day<0){ printf("天数错误!请重新输入!\n");flag=0;continue;}}}while(flag==0);p2->next=p1->next;p1->next=p2;n++;printf("成功插入销售记录,按任意键返回主菜单!\n");}void del() /*删除指定销售记录*/{struct records *p1,*p2;int ch,m;char t[10];p1=p2=head;printf("*******************选择界面*********************\n"); printf("* 1.删除指定销售员的销售记录 *\n");printf("* 2.删除指定产品的销售记录 *\n");printf("* 3.删除指定日期的销售记录 *\n");printf("************************************************"); printf("\n请输入1-3选择需要的操作:");do{scanf("%s",&c);ch=atoi(c);if(ch<1||ch>3)printf("输入错误!请输入1-3选择需要的操作:\n");}while(ch<1||ch>3);if(ch==1){printf("请输入指定销售员的编号:");scanf("%d",&m);while(p1!=NULL && p1->snum!=m){p2=p1; p1=p1->next;}if(p1==NULL)printf("没有找到您要删除的销售记录,按任意键返回主菜单!\n");else{printf("成功删除编号为 %d的销售员的销售记录,按任意键返回主菜单!\n",m);if(p1==p2)head=p1->next;elsep2->next=p1->next;free(p1);n--;}if(n==0)head=NULL;}else if(ch==2){printf("请输入指定产品的代号:\n");scanf("%d",&m);while(p1!=NULL && p1->pnum!=m){p2=p1; p1=p1->next;}if(p1==NULL)printf("没有找到您要删除的销售记录,按任意键返回主菜单!\n");else{printf("成功删除代号为 %d的产品的销售记录,按任意键返回主菜单!\n",m);if(p1==p2)head=p1->next;elsep2->next=p1->next;free(p1);n--;}if(n==0)head=NULL;}else{printf("请输入指定的日期(YYYY-MM-DD):");scanf("%s",&t);while(p1!=NULL && strcmp(p1->time,t)!=0){p2=p1; p1=p1->next;}if(p1==NULL)printf("没有找到您要删除的销售记录,按任意键返回主菜单!\n");else{printf("成功删除日期为%s的销售记录,按任意键返回主菜单!\n",t);if(p1==p2)head=p1->next;elsep2->next=p1->next;free(p1);n--;}if(n==0)head=NULL;}}void find() /*查询指定销售员的销售记录*/{struct records *p;int flag=0,m;printf("请输入要查询的销售员编号:");scanf("%d",&m);p=head;while(p!=NULL){if(p->snum==m){flag=1;printf("销售员编号产品代号销售数量日期(YYYY-MM-DD)\n");printf(" %d %d %d %s\n",p->snum,p->pnum,p->amount,p->time);}p=p->next;}if(flag==1)printf("查询信息显示完毕,按任意键返回主菜单!\n");if(flag==0)printf("没有找到您要查找的销售记录,按任意键返回主菜单!\n");}void report(struct records *head) /*显示销售报表*/{int i,j,flag,leap;char s1[10],s2[10],a[4],b[2],c[2];int report[5][6]={0};struct records *ptr=head;struct sellers_list *p=sellers;struct products_list *q=products;system("cls");printf("请输入您要查询的起止时间与截止时间(格式为YYYY-XX-DD)(回车间隔)\n");getchar();do{flag=1;gets(s1);for(j=0;j<4;j++){a[j]=s1[j];}a[4]=' ';b[0]=s1[5];b[1]=s1[6];c[0]=s1[8];c[1]=s1[9];d[0].year=atoi(a);d[0].month=atoi(b);d[0].day=atoi(c);if(s1[4]!='-'||s1[7]!='-'||strlen(s1)!=10){printf("日期格式错误!请重新输入!\n");flag=0;continue;}if(d[0].year%4==0||d[0].year%100==0||d[0].year%400==0) leap=0;elseleap=1;if(leap=1){if(d[0].day>tab[1][d[0].month]||d[0].day<0){printf("天数错误!请重新输入!\n");flag=0;continue;}}else{if(d[0].day>tab[0][d[0].month]||d[0].day<0){ printf("天数错误!请重新输入!\n");flag=0;continue;}}}while(flag==0);do{flag=1;gets(s2);for(j=0;j<4;j++){a[j]=s2[j];}a[4]=' ';b[0]=s2[5];b[1]=s2[6];c[0]=s2[8];c[1]=s2[9];d[1].year=atoi(a);d[1].month=atoi(b);d[1].day=atoi(c);if(s2[4]!='-'||s2[7]!='-'||strlen(s2)!=10){printf("日期格式错误!请重新输入!\n");flag=0;continue;}if(d[1].year%4==0||d[1].year%100==0||d[1].year%400==0) leap=0;elseleap=1;if(leap=1){if(d[1].day>tab[1][d[1].month]||d[1].day<0){printf("天数错误!请重新输入!\n");flag=0;continue;}}else{if(d[1].day>tab[0][d[1].month]||d[1].day<0){ printf("天数错误!请重新输入!\n");flag=0;continue;}}}while(flag==0);while(ptr!=NULL){/*将对应日期内销售数量累加到报表相应位置*/s2[0]=a[0];if((strcmp(ptr->time,s1)>=0)&&(strcmp(ptr->time,s2)<=0)) {for(i=0;i<4;i++){if(ptr->snum == sellers[i].snum)break;}for(j=0;j<5;j++){if(ptr->pnum ==products[j].pnum)break;}report[i][j] += ptr->amount;}ptr=ptr->next;}/*横竖向汇总*/for(i=0;i<5;i++){for(j=0;j<4;j++)report[4][i]+=report[j][i];}for(i=0;i<5;i++){for(j=0;j<5;j++)report[i][5] +=report[i][j];}printf("****************************销售统计报表****************************************\n");printf(" 产品代号销售之和 \n");printf("销售员代号 ");for(i=0;i<5;i++)printf("%10d",products[i].pnum);printf("\n");for(i=0;i<5;i++){if(i<4)printf("%10d ",sellers[i].snum);elseprintf("每种产品之和 ");for(j=0;j<6;j++){printf("%10d",report[i][j]);}if(i<4)printf("\n");elseprintf(" 总和\n");}printf("\n按任意键返回主菜单!\n"); getchar();}。
C语言课程设计(图书销售管理系统)
HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGYC语言程序设计课程设计报告课设题目:图书销售管理系统专业:电气工程及其自动化班级: KT1223-1姓名:********成绩:完成日期: 2012年12月28日-2013年1月11日指导教师: ************目录目录1.课程设计目的 (2)2.需求分析 (2)2.1要求 (2)2.2任务描述 (2)2.3运行环境 (3)2.4开发工具 (3)3.总体设计 (3)3.1系统流设计 (3)3.2系统模块设计 (4)4.详细设计 (5)4.1数据结构设计 (5)4.2模块接口设计 (6)4.3 以下是几个主要模块的流程图: (7)5.运行结果 (111)5.1主菜单界面: (111)5.2图书信息查询界面: (122)5.3:图书销售界面..................................................................... 错误!未定义书签。
45.4图书信息整体浏览界面:.................................................... 错误!未定义书签。
95.5图书信息删除界面:.............................................................. 错误!未定义书签。
5.6图书信息保存界面: (22)5.7 退出程序: (30)5.8图书信息新建界面: (30)5.9修改密码 (23)6.程序调试与测试 (23)6.1程序调试 (23)6.2程序测试 (27)7.问题与不足 (30)8.建议 (31)9.编程体会 (31)10.程序源代码: (31)11.参考文献 (56)12.用户使用手册 (57)1.课程设计目的1)通过课程设计,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。
C语言图书销售管理系统1.doc
C语言图书销售管理系统1 目录图书销售管理系统设计(2)一、设计要求(2)二、总体设计思路(2)1. 主要功能:系统主要包括八个功能模块。
(2)2. 总体思路框图(2)三、主要参数和函数(3)1. 全局变量(3)2. 主要函数(3)四、程序调试及整体实现(10)1. 主菜单运行界面(10)2. 图书信息录入界面(10)3. 图书信息浏览界面(11)4. 图书查询界面(11)5. 图书信息修改界面(12)6. 图书信息删除界面(12)7. 图书信息排序主界面(13)8. 购书清单界面(14)五、体会总结(14)附件(15)图书销售管理系统设计一、设计要求1.图书信息包括:序号、书名、作者、出版单位、价格。
2.系统以菜单方式工作。
3.图书信息录入功能(图书信息用文件保存)--输入。
4.图书信息的删除与修改功能。
5.图书信息浏览功能--输出。
6.查询功能--算法:(按书名/作者查询)。
7.排序功能--算法:(按书名排序/按价格排序)。
8.图书购买功能:统计选购图书的总价,给出清单,屏幕输出参考以下的实际购书单。
二、总体设计思路1.主要功能:系统主要包括八个功能模块。
1)图书信息的录入:将所要录入的图书信息包括序号、书名、作者、出版社、价格等录入一个文本文件中。
每录入一本书,系统提示是否继续,若不继续,则返回主界面。
2)图书信息的查询:将所有图书信息包括序号、书名、出版社、作者、价格等显示在屏幕上,最后返回主界面。
3)图书信息的查询:通过输入图书名称或作者完成图书信息的查找,并在屏幕上显示,返回主界面。
4)图书信息的修改:通过输入序号,判断此图书是否存在,若不存在则提示用户重新输入图书序号,若存在则要求输入要修改图书的序号,对该图书重新录入信息。
录入后,提示是否继续,如不继续,则返回主界面。
5)图书信息的删除:通过输入序号,判断此图书是否存在,若存在,则提示用户是否显示删除后的信息,若不存在则提示用户重新输入图书序号,删除完毕后,返回主界面。
C语言综合项目设计销售监控系统修订版
C语言综合项目设计销售监控系统修订版C语言综合项目设计 IBMT standardization office【IBMT5AB-IBMT08-IBMT2C-ZZT18】修改记录审核记录1.名称C语言综合项目设计1.1实验介绍C语言具有简洁紧凑、灵活方便、运算符丰富、数据结构丰富、语法限制不太严格,程序设计自由度大等优势,而且C语言是一种很基础的语言,它被广泛地应用于很多开发场合,因此,能熟练地掌握C语言项目的设计是很重要的。
本实验通过C语言编程,实现对一个销售监控软件的模拟,来说明C语言综合项目设计的知识。
1.2实验目标1.进一步加深对C语言程序开发的理解;2.更加熟练地使用C语言里面的各种语法和结构;3.通过实验,熟悉C语言程序开发的流程;4.通过实验,进一步规范C语言程序的书写格式。
1.3实验时间3-4天1.4预备知识C语言项目开发是一个复杂的过程,其中涉及的知识很多,因而要很好的实现一个比较好的C语言软件,必须能熟练使用C语言里面的各种结构和数据类型;要熟练地掌握C语言程序的调试方法;对项目开发的流程有比较清楚地认识。
1.5实验项目介绍1、需求概述每个组织都相信应当计划当年的销售目标,并达到这些目标,定期地进行检查来监控目标与实际销售额的对比情况,检查依赖于保存的有关销售项目和销售详细信息的数据,除了数据查询,还可以进行添加、删除和修改操作。
2、整体设计销售项目的详细信息应保存在一个名为 item.dat 的文件中,该文件应包含下列详细信息:1)项目代码(从 1 开始按顺序编码);2)名称(最多 20 个字符);3)目标销售额(数字);4)年初至今销售额(数字);销售的详细信息应保存在一个名为 sales.dat 的文件中,该文件应包含下列详细信息:1)项目代码;2)已销售数量(数字);3、实现说明销售监控系统应以下列菜单开始:SALES MONITORING SYSTEM1)Add new item details2)Record Sale details3)Delete existing Item details4)Display Sale details based on Item number5)Display Report on Sales Target Achieved Items6)QuitEnter choice:根据用户的选择,将执行下列操作:下面显示了相应的图示:图 1:主屏幕1)Add new item details(添加新项目的详细信息)通过从文件中访问最后一个项目的代码并加 1 来生成新项目代码,接受新项目的详细信息,确保名称不为空,不应接受年初至今销售额,而应将其设为 0,将该记录保存到 item.dat 文件中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言图书销售管理系统修订版IBMT standardization office【IBMT5AB-IBMT08-IBMT2C-ZZT18】目录图书销售管理系统设计 (2)一、设计要求 (2)二、总体设计思路 (2)1. 主要功能:系统主要包括八个功能模块。
(3)2. 总体思路框图 (3)三、主要参数和函数 (4)1. 全局变量 (4)2. 主要函数 (5)四、程序调试及整体实现 (14)1. 主菜单运行界面 (14)2. 图书信息录入界面 (14)3. 图书信息浏览界面 (14)4. 图书查询界面 (15)5. 图书信息修改界面 (16)6. 图书信息删除界面 (16)7. 图书信息排序主界面 (17)8. 购书清单界面 (17)五、体会总结 (18)附件 (19)图书销售管理系统设计一、设计要求1.图书信息包括:序号、书名、作者、出版单位、价格。
2.系统以菜单方式工作。
?3.图书信息录入功能(图书信息用文件保存)--输入。
?4.图书信息的删除与修改功能。
5.图书信息浏览功能--输出。
?6.查询功能--算法:(按书名/作者查询)。
7.排序功能--算法:(按书名排序/按价格排序)。
8.图书购买功能:统计选购图书的总价,给出清单,屏幕输出参考以下的实际购书单。
二、总体设计思路1.主要功能:系统主要包括八个功能模块。
1)图书信息的录入:将所要录入的图书信息包括序号、书名、作者、出版社、价格等录入一个文本文件中。
每录入一本书,系统提示是否继续,若不继续,则返回主界面。
2)图书信息的查询:将所有图书信息包括序号、书名、出版社、作者、价格等显示在屏幕上,最后返回主界面。
3)图书信息的查询:通过输入图书名称或作者完成图书信息的查找,并在屏幕上显示,返回主界面。
4)图书信息的修改:通过输入序号,判断此图书是否存在,若不存在则提示用户重新输入图书序号,若存在则要求输入要修改图书的序号,对该图书重新录入信息。
录入后,提示是否继续,如不继续,则返回主界面。
5)图书信息的删除:通过输入序号,判断此图书是否存在,若存在,则提示用户是否显示删除后的信息,若不存在则提示用户重新输入图书序号,删除完毕后,返回主界面。
6)图书信息的排序:通过输入书名或价格,提示用户输入想要使用的排序方式,排序后的信息显示在屏幕上,返回主界面。
7)图书的购买:通过输入要购买的图书序号,计算出总本书和总价格并连同其他购买信息一并显示在屏幕上。
8)退出系统:返回主页面。
2.总体思路框图三、主要参数和函数1.全局变量1)定义一个存放图书信息的结构体struct book,并定义此类型的变量struct book list[N],用来表示图书数组。
struct book /*定义结构体类型*/{int num; /*序号为整型*/char name[40]; /*书名为字符串*/char author[20]; /*作者为字符串*/char publish[50]; /*出版社为字符串*/float price; /*价格为浮点型*/};struct book list[N]; /*定义struct book类型的变量 list N个*/2)int Count=0,定义全局变量,用来表示图书的个数,初始值为0。
2.主要函数1)主函数main(),控制整个系统的执行流程,使系统菜单可以循环执行。
根据图书馆信息管理系统的要求,可设计一个主函数,及定义多个用户自定义函数。
通过将switch语句与break语句联合使用来实现多分支选择结构程序的设计。
case1至case7分别实现不同的功能,并能返回主界面;case0直接返回主界面。
程序代码:void main(){int choice1;printf("*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*\n");printf(" * 欢迎进入图书销售管理系统*\n");printf("*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*\n");do{printf("##################################################"); /*显示菜单*/printf("功能选项: \n");printf(" 1 : 图书信息录入\n");printf(" 2 : 图书信息浏览\n");printf(" 3 : 图书信息查询\n");printf(" 4 : 图书信息修改\n");printf(" 5 : 图书信息删除\n");printf(" 6 : 图书信息排序\n");printf(" 7 : 图书的购买\n");printf(" 0 : 退出系统\n");printf("################################################## #############");printf("\t请选择操作:");scanf("%d", &choice1);switch (choice1) /*菜单选择*/{case 1 : input();break;case 2 : show_bookinformation(list); break ;case 3 : check_bookinformation (list); break ;case 4 : modify_bookinformation (list); break ;case 5 :delete_bookinformation(list);break ;case 6 :reorder_bookinformation(list);break;case 7 :buytotal(list);break;case 0 :break ; }}while (choice1!=0);printf("谢谢! 欢迎下次使用使用!\n");}2)打开数据文件函数open(),把文件的信息打开到一个结构体数组中。
定义指向文件的指针读取数据,若指针指向NULL,则显示“无法操作,无文件信息!!!”,要调用fopen、fclose和fread函数。
程序代码:void open(){ int i;FILE *fp;if((fp=fopen("book.txt","rb+"))==NULL){ printf("无法操作,无文件信息!!!\n");exit(0);}for(i=0;i<N;i++){ if(fread(&list[i],sizeof(struct book),1,fp)==0){ printf("数据输出失败!!!\n");exit(0);} }fclose(fp);}3)信息录入文件函数read(),函数类型为void。
定义指向文件的指针读取数据,把输入的图书信息保存到文件中,若指针指向NULL,则输出无法操作。
利用for循环保存信息到指定文件。
程序代码:void read(){ int i;FILE *fp;if((fp=fopen("book.txt","wr+"))==NULL){ printf("\n不能打开文件!!!\n");exit(0); }for(i=0;i<N;i++)if(fwrite(&list[i],sizeof(struct book),1,fp)!=1)printf("文件写入错误!!!\n");fclose(fp);}4)信息录入系统函数input(),提供录入图书信息功能。
在for循环下,一次提示用户输入图书序号、书名、作者、出版社以及价格。
每循环一次,提示用户是否继续,当选“1”时继续输入图书信息,选“2”时返回主界面;每循环一次Count自增1。
程序代码:void input(){ int i,k,j,t;for(j=0;list[j].num!=0;j++)t=j+1;for(i=t;i<N;i++){ printf("\t请输入您的图书序号:"); scanf("\t%d",&list[i].num);printf("\t请输入书名:");scanf("\t%s",list[i].name);printf("\t请输入作者:");scanf("\t%s",list[i].author);printf("\t请输入出版社:");scanf("\t%s",list[i].publish);printf("\t请输入价格:");scanf("\t%f",&list[i].price);fflush(stdin);printf("\t\n是否继续录入?(1.是 2.否)");scanf("%d",&k);if(k==2) break;} Count=i+1;read();}5)删除图书信息函数delete_bookinformation (struct book list[]),提供对图书信息的删除功能。
此函数运行时利用open函数打开数据文件,读取信息;利用for循环,当输入序号与循环中的某一对应数据相同时,将后一个赋值给前一个从而把要删除的图书信息删除掉。
如果i=0,则直接输出“图书销售系统没有你要输出的图书信息!!!”。
删除后会显示“删除成功”,同时Count自减1;最后还要执行read函数,重新记录图书信息。
程序代码:void delete_bookinformation (struct book list[]){ int j,k,d,i=0;open();printf("请输入要删除的图书的序号:\n");scanf("%d",&d);for(j=0;list[j].num!=0;j++){ if(list[j].num==d){ for(k=j;list[k].num!=0;k++)list[k]=list[k+1];i++;}}if(i==0)printf("图书销售系统没有你输入的图书序号,请重新选择输入!!!\n");elseCount=Count-1;read();printf("删除成功\n");}6)修改图书信息函数modify_bookinformation (struct book list[]),提供对图书信息的修改功能。