购物卡管理系统设计报告源代码――C语言

合集下载

购物管理系统课程设计c语言

购物管理系统课程设计c语言

购物管理系统课程设计c语言一、教学目标本课程旨在通过购物管理系统的设计与实现,让学生掌握C语言编程的基本技能,培养其逻辑思维能力和问题解决能力。

具体目标如下:•掌握C语言的基本语法和数据结构。

•理解面向对象编程的基本概念。

•学习常用的编程调试技巧。

•能够使用C语言独立完成简单程序的编写与调试。

•学会使用购物管理系统作为案例,进行程序设计。

•培养团队协作和项目管理的技能。

情感态度价值观目标:•培养学生的创新意识和解决问题的决心。

•加强学生对编程语言的兴趣,激发其对计算机科学的热爱。

•培养学生面对编程挑战时的耐心和毅力。

二、教学内容教学内容将依据课程目标进行选择和,确保内容既科学又系统。

具体教学大纲如下:1.C语言基础:–数据类型与变量–运算符与表达式–控制结构(条件语句、循环语句)2.面向对象编程:–继承与多态–封装与抽象3.购物管理系统案例学习:–编码与实现–测试与优化4.编程实践与调试技巧:–常见编程错误分析–调试工具的使用三、教学方法为了激发学生的学习兴趣和主动性,将采用多样化的教学方法:1.讲授法:用于讲解C语言的基础知识和面向对象的理论。

2.案例分析法:通过分析购物管理系统的案例,让学生理解编程实践。

3.实验法:引导学生动手实践,完成系统的设计与实现。

4.讨论法:学生进行团队讨论,培养解决问题的能力和团队协作精神。

四、教学资源教学资源的选择和准备将着重于支持教学内容和教学方法的实施,以及丰富学生的学习体验。

资源包括但不限于:1.教材:选用权威、实用的C语言编程教材。

2.多媒体资料:提供相关的教学视频、演示文稿等。

3.实验设备:确保每个学生都有机会在计算机上进行编程实践。

4.在线资源:利用网络资源,如编程论坛、开源项目等,供学生自主学习和探索。

五、教学评估为了全面反映学生的学习成果,将采取多元化的评估方式:1.平时表现:通过课堂参与度、提问和团队协作等方面评估学生的积极性。

2.作业:布置与课程内容相关的编程作业,评估学生的理解和应用能力。

C语言 超市管理系统源程序

C语言  超市管理系统源程序

C谈话超市管制系统源步调之阳早格格创做超市管制系统源步调代码,要不妨真止的.最佳是文献,链表中的一种.好了一定沉金报问~最佳问案有一个小型超市,出卖N(N>=10)种商品,安排并真止一个系统,完毕下列功能:1.保存及输出.超市中的百般商品疑息保存正在指定文献中,不妨把它们输出隐现.2.估计并排序.估计每类商品的总代价(sum,单粗度)及仄衡价(aver,单粗度,输出一位小数),将每类商品按仄衡价从大到小的程序排序挨印出去.3.统计.统计输出库存量矮于100的货号及类型.统计输出有二种以上(含二种)商品库存量矮于100的商品类型.本步调主要分为八个模块:主模块、疑息输出建改模块、新建疑息模块、排序模块、估计模块、统计模块1、统计模块2、挨印模块.1)主模块:通过调用各分模块真止功能;2)疑息输出建改模块:输出隐现文献中商品疑息真质,增加商品疑息,简略商品疑息,建改商品疑息;3)新建商品疑息模块:建坐一个新结构体,为链表存疑息用,而且将疑息保存正在指定的文献中;4)排序模块:把文献中程序整治的商品疑息按单价的大小从下到矮举止排序,搁到链内中保存;5)估计模块:将所有商品的代价与库存量举止乏加供战;6)挨印模块:将商品疑息按每类仄衡代价排序(从下到矮)按程序挨印出去;7)统计模块1:统计库存量矮于100的货名及类型;8)统计模块2:统计商品库存量有2种以上(含2种)矮于100的商品类型.附录(步调浑单)#include "stdio.h" /*输进,输出头文献*/#include "stdlib.h" /*申请空间头文献*/#include "string.h" /*对于字符串加工头文献*/#include "conio.h" /*浑屏头文献*/FILE *fp;int n=0; /*定义文献指针典型*/int i,j,a[4],m; /*定义整数典型*/float aver[4],sum[4],g[4],h; /*定义浮面典型*/char c[5]="elec"; /*定义字符数组典型*/char d[5]="comm"; /*定义字符数组典型*/char e[5]="food"; /*定义字符数组典型*/char f[5]="offi"; /*定义字符数组典型*/struct good /*定义结构体*/{int num; /*商品编号*/char name[20]; /*商品称呼*/char kind[40]; /*商品典型*/float price; /*商品代价*/char unit[10]; /*商品单位*/int quantity; /*商品数量*/struct good *next; /*定义结构体指针典型*/}*head,*p1,*p2;struct good *createlist() /*创造链表函数*/{struct good *head1,*p1,*p2; /*定义结构体指针典型*/if((fp=fopen("goods message.txt","w"))==NULL) /*推断是可挨启文献*/{printf("can not open the file");exit(0); /*中断步调*/}head1=(struct good *)malloc(sizeof(struct good)); /*申请头结面空间*/ p1=head1;p2=head1;printf("*********************************************\n");printf("请输进疑息:编号,称呼,典型,代价,单位,数目\n");printf(" (以输进“-1”表示中断输进)\n");printf("*********************************************\n");printf("____________________\n");scanf("%d %s %s %f %s %d",&p1->num,p1->name,p1->kind,&p1->price,p1->unit,&p1->quantity); /*输进商品疑息*/printf("____________________\n");p1->next=NULL;fprintf(fp,"%d %s %s %f %s %d ",p1->num,p1->name,p1->kind,p1->price,p1->unit,p1->quantity); /*将商品疑息写进文献*/while(1){p1=(struct good *)malloc(sizeof(struct good)); /*申请新空间*/printf("*********************************************\n");printf("请输进疑息:编号,称呼,典型,代价,单位,数目\n");printf(" (以输进“-1”表示中断输进)\n");printf("*********************************************\n");printf("____________________\n");scanf("%d",&p1->num);if(p1->num==-1) /*申请空间中断条件*/{printf("____________________\n\n");fprintf(fp,"%d",-1);fclose(fp);return head1; /*返转头指针*/}scanf("%s %s %f %s %d",p1->name,p1->kind,&p1->price,p1->unit,&p1->quantity); /*输进商品疑息*/printf("________________\n");fprintf(fp,"%d %s %s %f %s %d ",p1->num,p1->name,p1->kind,p1->price,p1->unit,p1->quantity); /*将商品疑息写进文献*/p1->next=NULL;p2->next=p1;p2=p1;}}struct good *paixu(struct good*head2) /*链表排序函数*/{struct good *p6,*p7,*r,*s; /*定义结构体指针典型*/for(i=0;i<=3;i++) /*赋初值值*/{a[i]=0;sum[i]=0;aver[i]=0;}p6=(struct good *)malloc(sizeof(struct good)); /*申请新空间*/p6->next=head2;head2=p6;while(p6->next!=NULL) /*推断循环中断条件*/{p7=p6->next;r=p6;while(p7->next!=NULL) /*推断循环中断条件*/{if((p7->next->price)>(r->next->price)) /*推断是可变更*/r=p7;p7=p7->next;}if(p6!=r) /*推断循环中断条件*/{s=r->next; /*指针变更*/r->next=s->next;s->next=p6->next;p6->next=s;}p6=p6->next;}p6=head2;head2=head2->next;free(p6); /*释搁第一个无效空间*/return head2;}void jisuan(){p1=head;do{if(strcmp(p1->kind,c)==0) /*推断是可为电器典型*/{sum[0]=sum[0]+(p1->price)*(p1->quantity); /*供电器总价*/a[0]=a[0]+p1->quantity; /*供电器总件数*/}if(strcmp(p1->kind,d)==0) /*推断是可为日用品典型*/{sum[1]=sum[1]+(p1->price)*(p1->quantity); /*供日用品总价*/ a[1]=a[1]+p1->quantity; /*供日用品总件数*/}if(strcmp(p1->kind,e)==0) /*推断是可为办公用品典型*/{sum[2]=sum[2]+(p1->price)*(p1->quantity); /*供办公用品总价*/a[2]=a[2]+p1->quantity; /*供办公用品总件数*/}if(strcmp(p1->kind,f)==0) /*推断是可为食品典型*/{sum[3]=sum[3]+(p1->price)*(p1->quantity); /*供食品总价*/a[3]=a[3]+p1->quantity; /*供食品总件数*/}p1=p1->next;}while (p1!=NULL); /*遍历链表中断条件*/for(i=0;i<4;i++)aver[i]=sum[i]/a[i]; /*供每类商品仄衡价*/printf("****************************************************\n"); printf("商品典型 \t 仄衡价\t 总库存量\n");printf("****************************************************\n"); printf("____________________________________________________\n"); printf("电器总代价:%0.1f\t仄衡价:%0.1f\t总库存量:%d\n",sum[0],aver[0],a[0]);printf("____________________________________________________\n"); printf("日用品总代价:%0.1f\t仄衡价:%0.1f\t总库存量:%d\n",sum[1],aver[1],a[1]);printf("____________________________________________________\n"); printf("食品总代价:%0.1f\t仄衡价:%0.1f\t总库存量:%d\n",sum[2],aver[2],a[2]);printf("____________________________________________________\n"); printf("办公用品总代价:%0.1f\t仄衡价:%0.1f\t总库存量:%d\n",sum[3],aver[3],a[3]);printf("____________________________________________________\n"); }void shuchu() /*输出商品疑息函数*/{do{struct good *p3,*p4,*p5; /*定义结构体指针典型*/int n=0,p=0,q=0,r=0;printf("所有商品疑息:\n");printf("编号,称呼,典型,代价,单位,数目\n");printf("**********************************\n");if((fp=fopen("goods message.txt","rb+"))==NULL) /*推断是可挨启文献*/{printf("can not open the file");exit(0); /*中断步调*/}head=(struct good *)malloc(sizeof(struct good)); /*申请头结面空间*/p3=head;fscanf(fp,"%d %s %s %f %s %d ",&p3->num,p3->name,p3->kind,&p3->price,p3->unit,&p3->quantity); /*从文献中写到链表*/while(1){p4=(struct good *)malloc(sizeof(struct good)); /*申请头结面空间*/fscanf(fp,"%d ",&p4->num);if(p4->num!=-1) /*推断循环中断条件*/{fscanf(fp,"%s %s %f %s %d ",p4->name,p4->kind,&p4->price,p4->unit,&p4->quantity); /*从文献中写到链表*/p4->next=NULL;p3->next=p4;p3=p4;}else{p3->next=NULL;break;}}fclose(fp); /*关关文献*/p3=head;while(p3!=NULL){printf(" %d %s %s %0.1f %s %d\n\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity);printf("__________________________________\n");p3=p3->next;}printf("**********************************\n");printf("//////////////////////////////////\n");while(n!=4){p3=head;printf("**********************************\n");printf("1 增加商品疑息\n");printf("2 简略某商品疑息\n");printf("3 建改某商品疑息\n");printf("4 返回(当您完毕了对于某一商品的增加、简略大概者建改后请按4返回)\n");printf("**********************************\n");scanf("%d",&n);if(n==1) /*增加商品疑息*/{printf("请输进商品编号称呼典型代价单位数目\n");printf("**********************************\n");p4=(struct good *)malloc(sizeof(struct good)); /*申请空间*/scanf("%d %s %s %f %s %d",&p4->num,p4->name,p4->kind,&p4->price,p4->unit,&p4->quantity); /*输进商品疑息*/p4->next=NULL;while(p3->next!=NULL) /*推断循环中断条件*/{p3=p3->next;}p3->next=p4;p3=head;if((fp=fopen("goods message.txt","w"))==NULL) /*推断是可挨启文献*/{printf("can not open the file");exit(0); /*中断步调*/}while(p3!=NULL){fprintf(fp,"%d %s %s %f %s %d ",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity) /*将商品疑息写进文献*/p3=p3->next;}fprintf(fp,"%d",-1);fclose(fp); /*关关文献*/printf("**********************************\n");printf("__________________________________\n");printf("------------请按4返回-------------\n");printf("__________________________________\n");printf("**********************************\n");}if(n==2) /*简略商品*/{printf("**********************************\n");printf("请输进需要简略的商品编号\n");printf("**********************************\n");scanf("%d",&p);printf("**********\n");printf("1 确认简略\n2 与消简略\n");printf("**********\n");scanf("%d",&r);if(r==1){if((head->num)==p){head=head->next;free(p3); /*释搁空间*/}else{p4=head;p3=p4->next;while(p3!=NULL) /*推断循环中断条件*/{if((p3->num)==p){p5=p3->next;free(p3); /*释搁空间*/p4->next=p5;break;}p3=p3->next;p4=p4->next;}}if((fp=fopen("goods message.txt","w"))==NULL) /*推断是可挨启文献*/p3=head;while(p3!=NULL) /*推断循环中断条件*/{fprintf(fp,"%d %s %s %f %s %d ",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); /*将商品疑息写进文献*/p3=p3->next;}fprintf(fp,"%d",-1);fclose(fp); /*关关文献*/}if(r==2)continue; /*继承循环*/printf("**********************************\n");printf("__________________________________\n");printf("------------请按4返回-------------\n");printf("__________________________________\n");printf("**********************************\n");}if(n==3) /*建改某商品疑息*/{printf("请输进需要建改的商品编号\n");scanf("%d",&q);while(p3!=NULL) /*推断循环中断条件*/{if((p3->num)==q) /*推断是可为所需要建改的商品*/{printf("请输进商品单价与库存量(如果单价没有变请输进本去的单价)\n");scanf("%f %d",&p3->price,&p3->quantity); /*输进商品代价与库存量*/}p3=p3->next;}if((fp=fopen("goods message.txt","w"))==NULL) /*推断是可挨启文献*/p3=head;while(p3!=NULL) /*推断循环中断条件*/{fprintf(fp,"%d %s %s %f %s %d ",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); /*将商品疑息写进文献*/p3=p3->next;}fprintf(fp,"%d",-1);fclose(fp); /*关关文献*/printf("**********************************\n");printf("__________________________________\n");printf("------------请按4返回-------------\n");printf("__________________________________\n");printf("**********************************\n");}if(n==4) /*退出*/break;}printf("**********\n");printf("1 继承建改\n---------\n2 返回\n");printf("**********\n");scanf("%d",&p);if(p==1)continue; /*继承循环*/if(p==2)break; /*跳出循环*/}while(n!=2);fclose(fp); /*关关文献*/}void printf0(struct good *p) /*遍历链表并挨印电器类商品函数*/{struct good *p3; /*定义结构体指针典型*/p3=p;while (p3!=NULL) /*推断遍历链表循环中断条件*/{if(strcmp(p3->kind,c)==0) /*推断商品典型是可为电器典型*/{printf("%d\t%s\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); /*输出电器类商品疑息*/printf("________________________________________________\n"); }p3=p3->next;}return;}void printf1(struct good *p) /*遍历链表并挨印日用品类商品函数*/ {struct good *p3; /*定义结构体指针典型*/p3=p;while (p3!=NULL) /*推断遍历链表循环中断条件*/{if(strcmp(p3->kind,d)==0) /*推断商品典型是可为日用品典型*/{printf("%d\t%s\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); /*输出日用品类商品疑息*/ printf("________________________________________________\n"); }p3=p3->next;}return;}void printf2(struct good *p) /*遍历链表并挨印办公用品类商品函数*/ {struct good *p3; /*定义结构体指针典型*/p3=p;while (p3!=NULL) /*推断遍历链表循环中断条件*/{if(strcmp(p3->kind,e)==0) /*推断商品典型是可为办公用品典型*/{printf("%d\t%s\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); /*输出办公用品类商品疑息*/ printf("________________________________________________\n"); }p3=p3->next;}return;}void printf3(struct good *p) /*遍历链表并挨印食品类商品函数*/{struct good *p3; /*定义结构体指针典型*/p3=p;while (p3!=NULL) /*推断遍历链表循环中断条件*/{if(strcmp(p3->kind,f)==0) /*推断商品典型是可为食品典型*/{printf("%d\t%s\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); /*输出食品类商品疑息*/printf("________________________________________________\n"); }p3=p3->next;}return;}void shunxudayin(){for(i=0;i<4;i++)g[i]=aver[i]; /*将仄衡价赋给新数组*/for(j=0;j<3;j++) /*将新数组用冒泡排序法排序*/for(i=j+1;i<4;i++){if(g[j]<g[i]){h=g[j];g[j]=g[i];g[i]=h;}}printf("\n****************************\n");printf("商品仄衡代价排序表(从下到矮)\n");printf("****************************\n");printf("________________________________________________\n"); printf("编号\t称呼\t类型\t单价\t单位\t数量\n");printf("________________________________________________\n"); for(j=0;j<4;j++)for(i=0;i<4;i++){if (aver[i]==g[j]) /*推断每类商品仄衡代价的先后程序*/switch(i){case 0:printf0(head); /*调用遍历链表并挨印电器类商品函数*/break;case 1:printf1(head); /*调用遍历链表并挨印日用品类商品函数*/break;case 2:printf2(head);/*调用遍历链表并挨印办公用品类商品函数*/break;case 3:printf3(head); /*调用遍历链表并挨印食品类商品函数*/break;}}}void tongji1(){p1=head;printf("\n************************\n");printf("库存量矮于100的货名及类型\n");printf("************************\n");printf("________________________\n");printf("商品称呼\t商品典型\n");printf("________________________\n");while(p1!=NULL) /*推断遍历链表循环中断条件*/{if(p1->quantity<100) /*推断库存量是可小于100*/{printf("%s\t%s\n",p1->name,p1->kind); /*输出商品称呼及类型*/printf("________________________\n");}p1=p1->next;}}void tongji2(){printf("\n**********************************************\n");printf("商品库存量有2种以上(含2种)矮于100的商品类型:\n");printf("**********************************************\n");printf("________\n");if((a[0]<100)&&(a[0]>=2)) /*推断电器类库存量是可为2种以上(含2种)矮于100*/{printf("电器\n");printf("________\n");}if((a[1]<100)&&(a[1]>=2)) /*推断日用品类库存量是可为2种以上(含2种)矮于100*/{printf("日用品\n");printf("________\n");}if((a[2]<100)&&(a[2]>=2)) /*推断食品类库存量是可为2种以上(含2种)矮于100*/{printf("食品\n");printf("________\n");}if((a[3]<100)&&(a[3]>=2)) /*推断办公用品类库存量是可为2种以上(含2种)矮于100*/{printf("办公用品\n");printf("________\n");}}int main(int argc, char* argv[]){struct good *p1,*p2; /*定义结构体指针典型*/while(1){。

超市商品管理系统C语言源代码

超市商品管理系统C语言源代码

超市商品管理系统C语言源代码SANY GROUP system office room 【SANYUA16H-SANYHUASANYUA8Q8-#include <stdio.h>#include <math.h>#include <string.h>#include<conio.h>#include<stdio.h>#include<string.h>#define MAX 20#define PRINT1 printf("---------------------------------------------------------\n")#define PRINT2 printf("商品号--商品名称--商品种类--销售价格--生产日期(年-月-日)--保质期\n")#define PRINT3 printf("M%8s%8s崓----M\n",goods[i].num,goods[i].name,goods[i].kind,goods[i].out_price,goods[i ].pro_time.year,goods[i].pro_time.month,goods[i].pro_time.day,goods[i].s ave_day)int sum;struct date{int year;int month;int day;};struct goods_type /*定义结构体*/{int num;char name[10];char kind[10];int amount;int in_price;int out_price;struct date pro_time;int save_day;int profit;}goods[MAX];Save_Message(int sum); /*函数声明*/void Inquire_message(void);void Inquire_goodskind(void);void Inquire_goodsname(void);int Read_Message(void);void Renew_Messahe(void);void Revise_Message(void);void Delete_Message(void);void Insert_Message();void Show_Message(void);int Input_Message(void);void Count_Message();long Count_Profit();long Count_Amount();void Sort_amount(void);void Sort_Message(void);void Sort_Message(void){int choice;do{clrscr();printf("\n\n\n *******商品信息排行********\n\n");printf(" 1:按库存量排行\n\n");printf(" 0:返回主菜单\n\n");printf(" 请选择(0-1): ");scanf("%d",&choice);switch(choice){case 1:Sort_amount();break;case 0:break;}}while(choice!=0);}void Sort_amount(void) /*库存量排序*/{struct goods_type *p,*q[MAX];int i,j,k;clrscr();printf(" 库存排行");PRINT1;printf("\n\n排名商品号商品名称商品类别库存量\n\n"); p=goods;for(i=0;i<sum;i )q[i]=p ;for(i=0;i<sum;i ){k=i;for(j=i 1;j<sum;j )if(q[k]->amount<q[j]->amount)k=j;if(k!=i){p=q[i];q[i]=q[k];q[k]=p;}}for(i=0;i<sum;i ){printf(" %d ",i 1);printf(" %d ",q[i]->num);printf(" %s ",q[i]->name);printf(" %s ",q[i]->kind);printf(" %d \n ",q[i]->amount);}bioskey(0);}long Count_Amount() /*统计库存量*/ {int i,j=0,choice,count_num,Amount;char inquire_name[10];clrscr();printf("\n 请输入想要统计的商品号: "); scanf("%d",&count_num);for(i=0;i<sum;i )if(goods[i].num==count_num){Amount=goods[i].amount;printf("-------------------------"); printf(" 商品号库存量");printf("\n崓",goods[i].num,Amount); }elsej ;if(j==sum)printf("该商品信息不存在!!!");bioskey(0);}long Count_Profit() /*统计利润模块*/{int i,choice,j=0,count_num,profit;clrscr();printf("\n 请输入想要统计的商品号: ");scanf("%d",&count_num);for(i=0;i<sum;i )if(goods[i].num==count_num){profit=goods[i].out_price-goods[i].in_price;printf("\n 商品利润");printf("\n -------------------------------");printf("\n 商品号利润");printf("\n 崓\n",&goods[i].num,&profit);}elsej ;if(j==sum)printf("\n 该商品不存在!!!");printf("\n 按任意键返回主菜单!!");bioskey(0);}void Count_Message(void) /*统计模块*/{int choice;do{clrscr();printf("**************统计商品信息*************\n\n\n");printf("******* 1:统计库存量 ************\n\n\n"); printf("******* 2:统计利润 ************\n\n\n");printf("******* 0:返回主菜单 ************\n\n\n");printf("******* 请选择(0-2): ************\n\n\n");scanf("%d",&choice);switch(choice){case 1:Count_Amount();break;case 2:Count_Profit();break;case 0:break;}}while(choice!=0);}int Input_Message(void) /*输入模块*/{int i=0,s=MAX;char bd;clrscr();printf("开始输入商品信息.\n");printf("\n\n 商品信息:(最多 %d) \n",s);printf(" ===============================\n");do{printf("\n 第 %d 商品",i 1);printf("\n 商品号: ");scanf("%d",&goods[i].num);if(goods[i].num==0) break;printf("\n 商品名称: ");scanf ("%s",goods[i].name);printf("\n 商品种类: ");scanf ("%s",goods[i].kind);printf("\n 商品库存量: ");scanf ("%d",&goods[i].amount);printf("\n 进货价格: ");scanf ("%d",&goods[i].in_price);printf("\n 销售价格: ");scanf ("%d",&goods[i].out_price);printf("\n 生产日期(yyyy-mm-dd): ");scanf ("%d-%d-%d",&goods[i].pro_time.year,&goods[i].pro_time.month,&goods[i].pro_time. day);printf("\n 保质期: ");scanf ("%d",&goods[i].save_day);printf("继续输入信息,y or n ??");fflush(stdin);scanf("%c",&bd);if(bd=='y')i ;elsebreak;}while(i<MAX);printf("\n--%d 所有商品录入完毕!--\n\n\n",i 1);getch();printf(" 按任意键返回主菜单.");sum=i;printf("输入回车返回主菜单!!!");bioskey(0);}void Show_Message(void) /*显示输出模块*/{int i=0,j=0,count,page=7;clrscr();printf("\n\n --商品信息-- 在第 %d 页\n\n",page);PRINT2;PRINT1;do{if(goods[i].num!=0){j ;if(j%page!=0){PRINT3;PRINT1;}else{PRINT3;PRINT1;if(goods[i 1].num!=0){printf("按任意键继续!");bioskey(0);clrscr();printf("\n\n --------商品信息--------在第 %d 页\n\n", page);PRINT2;PRINT1;}}}i ;}while(goods[i].num!=0);printf("按任意键返回主菜单!!!!!");bioskey(0);}void Insert_Message(void)/*添加商品信息模块*/{int i=sum,j,flag=0;char choice;clrscr();printf("\n\n 添加一种新商品\n\n ");printf("\n-------------------------------------------------\n");do{goods[i].num= sum;printf("\n 新商品号:%d",goods[i].num);printf("\n 新商品名: ");scanf("%s",goods[i].name);printf("\n 新商品种类: ");scanf("%s",goods[i].kind);printf("\n 新商品数量: ");scanf("%d",&goods[i].amount);printf("\n 进价: ");scanf("%d",&goods[i].in_price);printf("\n 售价: ");scanf("%d",&goods[i].out_price);printf("\n 生产日期(yyyy-mm-dd): ");scanf("%d-%d-%d",&goods[i].pro_time.year,&goods[i].pro_time.month,&goods[i].pro_time. day);printf("\n 保质期: ");scanf("%d",&goods[i].save_day);i ;printf("\n\n 想继续添加商品吗?(Y/N)");fflush(stdin);choice=getch();if(choice=='y'||choice=='Y'){printf("继续");flag=1;}elseflag=0;}while(flag==1);printf("\n\n\n 按任意键返回主菜单.........");bioskey(0);}void Delete_Message(void)/*删除商品信息模块*/ {int i,j,numberkey,flag=0;char choice;printf("开始删除......\n\n");do{clrscr();printf("请输入你要删除的商品号: \n");scanf("%d",&numberkey);for(i=0;i<sum;i ){if(goods[i].num==numberkey){for(j=i;j<sum;j )goods[j]=goods[j 1];sum--;flag=1;printf("删除成功!!\n\n\n");break;}}if(flag==0){printf("不存在该商品信息!!!"); bioskey(0);}printf("\n\n是否继续输入(y/n)?\n");getchar();scanf("%c",&choice);}while(choice=='y'||choice=='Y');printf("\n按任意键返回");bioskey(0);}void Revise_Message(void)/*修改商品信息模块*/ {int i,j,flag,choice,revise_num;char ch;do{clrscr();printf("\n\n 开始修改...");printf("\n\n 请输入你想输入的商品号:\n");scanf("%d",&revise_num);for(i=0;i<sum;i ){if(goods[i].num==revise_num){printf("确定修改此商品信息吗?(y/n)");PRINT1;PRINT2;PRINT3;getchar();ch=getchar();if(ch='y'){printf("\n\n\n修改商品信息的哪一项?");printf("\n\n 1:商品名称");printf("\n\n 2:商品类型");printf("\n\n 3:销售价格");printf("\n\n 4:生产日期");printf("\n\n 5:保质期");printf("\n\n 请选择(0-5)\n");scanf("\n %d",&choice);switch(choice){case 1:printf("请输入修改后的商品名\n");scanf("%s",&goods[i].name);break;case 2:printf("请输入修改后的商品类型\n");scanf("%s",&goods[i].kind);break;case 3:printf("请输入修改后的商品销售价格\n"); scanf("%d",&goods[i].out_price);break; case 4:printf("请输入修改后的商品生产日期\n"); scanf("%d-%d-%d",&goods[i].pro_time.year,&goods[i].pro_time.month,&goods[i].pro_time. day);break;case 5:printf("请输入修改后的商品保质期\n");scanf("%d",&goods[i].save_day);break;case 0:break;}printf("修改商品信息:\n");PRINT2;PRINT3;}elsebreak;}elsej ;if(j==sum)printf("不存在该商品信息..");}printf("\n\n 继续修改商品信息吗(y/n)?");getchar();ch=getchar();if(ch=='y'){printf("继续.\n");flag=1;}elseflag=0;}while(flag==1);printf("修改完成!!\n\n");getch();}void Renew_Message(void) /*更新商品信息模块*/{int choice;do{clrscr();printf("\n\n*********更新商品信息*********"); printf("\n\n 1:添加商品信息.\n\n");printf("\n\n 2:删除商品信息.\n\n");printf("\n\n 3:修改商品信息.\n\n");printf("\n\n 0:返回上一级.\n\n");printf("\n\n 请选择(0-3): ");scanf("%d",&choice);switch(choice)case 1:Insert_Message();break;case 2:Delete_Message();break;case 3:Revise_Message();break;case 0:break;}}while(choice!=0);}int Read_Message(void) /*读取信息模块*/{FILE *fp;int i=0;if((fp=fopen("999.txt","rb"))==NULL){printf("\n\t 现在还没有保存全部信息,按回车键回到主菜单输入商品信息!!");printf("\n\t 按任意键返回!!!!\n");getch();return;}while(feof(fp)!=1){fread(&goods[i],sizeof(struct goods_type),1,fp);if(goods[i].num==0)break;elsei ;}fclose(fp);return(i);}void Inquire_goodsname(void)/*按商品名称查询*/{int i,j,choice;char namekey[10];j=0;printf("开始查询...");printf("请输入你要查询的商品号:\n");scanf("%s",namekey);for(i=0;i<sum;i )if(strcmp(goods[i].name,namekey)==0&&goods[i].num!=0)printf(" ---商品信息----");PRINT1;PRINT2;PRINT3;}elsej ;if(j==sum)printf("该商品不存在!");printf("按任意键返回主菜单.");getch();}void Inquire_goodskind(void)/*按商品类型查询*/{int i,j,choice;char kindkey[10];j=0;printf("开始查询...");printf("请输入你要查询的商品种类:\n");scanf("%s",kindkey);for(i=0;i<sum;i )if(strcmp(goods[i].kind,kindkey)==0&&goods[i].num!=0) {printf(" ---商品信息----");PRINT1;PRINT2;PRINT3;}elsej ;if(j==sum)printf("该商品不存在!");printf("按任意键返回主菜单.");getch();}void Inquire_Message(void) /*查询模块*/{int choice;do{printf("\n *****查询商品信息 ***** \n");printf("\n *****1:按商品名称.***** \n");printf("\n *****2:按商品种类.***** \n");printf("\n *****0:返回上一级.***** \n");printf("\n 请选择(0-2): ***** \n");scanf("%d",&choice);switch(choice){case 1:Inquire_goodsname();break;case 2:Inquire_goodskind();break;case 0:break;}}while(choice!=0);}Save_Message(int sum) /*保存模块*/{FILE *fp;int i;if((fp=fopen("999.txt","wb"))==NULL){printf("\n\n不能打开文件!\n\n");exit();}for(i=0;i<=sum;i )if(fwrite(&goods[i],sizeof(struct goods_type),1,fp)!=1) printf("写文件出错!");fclose(fp);}void main(void) /*主函数*/{int choice;clrscr();sum=Read_Message();bioskey(0);do{clrscr();printf("***************************************************\n");printf(" ************ 超市商品管理系统**************\n");printf(" ************\n");printf(" ************\n");printf(" ************\n");printf(" ****** 欢迎登陆******\n");printf(" ************\n");printf(" ************\n");printf(" ************\n");printf("***************************************************\n");printf("***************************************************\n");getchar ();clrscr();printf(" ***************超市商品管理系统***********\n\n"); printf(" ***** 1:输入商品信息 *****\n\n"); printf(" ***** 2:输出商品信息 *****\n\n"); printf(" ***** 3:更新商品信息 *****\n\n"); printf(" ***** 4:查询商品信息 *****\n\n"); printf(" ***** 5:统计商品信息 *****\n\n"); printf(" ***** 6:商品信息排序 *****\n\n"); printf(" ***** 0:退出系统 *****\n\n"); printf(" ***** 请选择(0-6): *****\n"); scanf("%d",&choice);switch(choice){case 1:Input_Message();break;case 2:Show_Message();break;case 3:Renew_Message();break;case 4:Inquire_Message();break;case 5:Count_Message();break;case 6:Sort_Message();break;case 0:break;}}while(choice!=0);Save_Message(sum);printf("\n-信息已经保存!-(file name:999.txt)\n");。

c商店购物管理系统课程设计报告

c商店购物管理系统课程设计报告

2016-2017学年第二学期《C语言程序设计》课程设计报告题目:商店购物管理系统专业:网络工程班级:16(3)班姓名:代应豪指导教师:代美丽成绩:计算机学院2017 年 4月 25 日目录1设计的内容及要求 (1)1.1设计内容 (1)2概要设计 (2)2.1系统的功能介绍 (2)2.2总体程序框图 (2)3设计模块或程序代码 (3)3.1模块描述 (3)3.2结构体建立语句 (3)3.3主函数定义 (4)4程序设计心得与体会 (10)致谢 (11)源程序 (12)1设计的内容及要求1.1设计内容《商店购物管理系统》用C语言制作一个商店购物系统,为顾客提供一个查询商品,快捷购物的平台。

该系统主要有以下功能:1)购物包括会员购物和普通顾客购物;2)系统需存储会员的一般信息:卡号,姓名,密码,卡上余额,已消费总额等信息,会员购物享受九折优惠;3)非会员顾客消费满200元即可免费成为会员,如果需要可获会员卡一张,即可享受会员服务;4)对于商品查询,系统存储商品的一些基本信息:商品代码,商品名,存放位置,剩余量,单价等,输入商品名即可调出商品的所有信息。

1.2设计任务及具体要求本次程序设计主要侧重于知识的运用,把平时学到的运用到实践中去,对我们所学的理论知识进一步深化。

其次程序设计也是要求学生遵循软件开发过程的基本规范,按要求独立自主完成课程设计任务。

要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤;提高撰写技术文档的能力。

2概要设计2.1系统的功能介绍该系统的主要功能是实现商品购买,商品信息查询!当购买物品到达一定的金额是,会给出会员来进行打折,会员可进行登录查询,注册!2.2总体程序框图进入购物主界面购物函数模块查询函数模块会员购物函数模块普通顾客购物模块免费注册会员判断暂不注册免费注册会员3 设计模块或程序代码3.1模块描述1.主函数主函数为无返回值空类型函数,主要功能是实现执行购物和查询功能。

C语言课程设计-购物卡管理系统

C语言课程设计-购物卡管理系统

C语言课程设计-购物卡管理系统一、题目要求系统主要功能模块:1,实现系统内制卡,发卡功能。

2,实现系统内购物卡帐户及相关帐户管理。

3,实现购物卡交易和合法性检查。

4,实现购物卡交易积分功能。

5,实现购物卡报表功能。

6,数据以文件形式存储。

提示:制卡:指申请一个购物卡,但还没有使用。

发卡:指该卡已经起用。

实现卡交易:指从卡中消费掉一定金额。

二、需求分析根据题目要求,由于购物卡信息是存放在文件中,所以应提供文件的输入、输出等操作;在程序中需浏览购物卡的信息,应提供报表、查询等操作;另外还应提供键盘式选择菜单实现功能选择。

三、总体设计根据需求分析,可以将系统分为五大模块:制卡、发卡、登陆、报表、积分。

购物卡管理系统制卡发卡登录模积分报表模块模块块模块模块查询储蓄修改密码消费四、详细设计1、主函数将main()函数体内的界面选择部分语句单独抽取出来作为一独立函数,目的在于系统执行完每部分功能模块后能够方便返回到系统界面。

void menu(){int v,w1;do{printf("\t\t*********************MENU*********************\n\n");printf("\t\t\t\t 1.card-made\n");printf("\t\t\t\t 2.card-life\n");printf("\t\t\t\t 3.card-enter\n");printf("\t\t\t\t 4.card-browse\n");printf("\t\t\t\t 5.exit\n");printf("\n\n\t\t **********************************************\n");printf("Choice your number(1-5):[]\b\b");scanf("%d",&v);if(v<1||v>5){w1=1;getchar();}else w1=0;}while(w1==1);switch(v){case 1:made();break;case 2:life();break;case 3:enter();break;case 4:browse();break;case 5:exit(0);}}2、各功能模块设计(1)制卡模块【数据结构】struct credicard{int number;char name[20];char ID[20];char word[8];int flag;float account;int integal;}card[M];/*card[M]中每个数组元素对应一个运动员信息* / 【程序】void made(){int i;char h[20];do{printf("\n\n\t Input your number:<\t\t\t>\b\b\b\b\b\b\b");scanf("%s",h);if(strlen(h)!=6){printf("\n\n\n\t\t***************Wrong!Inputagain****************\n\n");continue;}for(i=0;i<n;i++)if(strcmp(card[i].ID,h)==0){printf("\n\n\t\t***********The number exist,inputagain************\n\n");break;}}while(((strlen(h))!=6)||strcmp(card[i].ID,h)==0);card[n].number=n;strcpy(card[n].name,"***");strcpy(card[n].ID,h);strcpy(card[n].word,"000000");card[n].flag=0;card[n].account=0.00;card[n].integal=0;printf("\n\n\n\t\t********************The card ismade!**********************\n\n");print_one(n);n++;add();menu();}print_one(n):显示一张卡信息的函数。

C语言课程设计报告—购物卡管理系统

C语言课程设计报告—购物卡管理系统

C语言课程设计报告一、前言(C语言课程设计目的)C语言课程设计目的很多,如:1、根据课堂讲授内容,学生做相应的自主练习,消化课堂所讲解的内容;2、通过调试典型例题或习题积累调试C程序的经验;3、通过完成辅导教材中的编程题,逐渐培养学生的编程能力、用计算机解决实际问题的能力等等。

总之C语言课程设计是对我们学习C语言十分重要的实践环节!二、正文(一)题目原文及要求:题目:购物卡管理系统系统主要功能模块:(1)实现系统内制卡、发卡功能。

(2)实现系统内购物卡帐户及相关帐户管理。

(3)实现购物卡交易和合法性检查。

(4)实现购物卡交易积分功能。

(5)实现购物卡报表功能。

(6)数据以文件形式存储。

提示:制卡:指申请一个购物卡,但还没有使用。

发卡:指该卡已经起用。

实现卡交易:指从卡中消费掉一定金额。

(二)题目及要求的分析:根据题目要求,系统应该实现以下功能:(1)制卡:主要是新建出一张购物卡,并输入了顾客部分信息,如姓名、密码等,但卡没有激活,依然不可使用。

(2)发卡:激活新建的购物卡,用户能够使用卡进行各项活动。

(3)消费:进入帐户后,取走少于帐户金额的钱款进行消费,并在帐户少减少相应的金额,增加相应的积分。

(4)存款:进入帐户后,在金额项加上用户要存入的钱款。

(5)报表:显示顾客购物卡上记录的所有信息,除密码外。

(6)存储:购物卡内的信息以文件形式存储。

(7)退出:从系统中退出。

(8)菜单:提供良好的界面,方便用户的操作。

(三)整体设计与模块划分:根据以上的分析,可以将系统整体划分为以下大致几部分:购物卡管理系统制卡发卡消费存款报表退出函数及结构模块有:1、数据结构结构体:struct card /*定义购物卡的几要素*/{char name[20]; /*顾客姓名(即卡号)*/long int password; /*购物卡密码*/char start[4]; /*购物卡是否激活*/float account; /*余额*/float score; /*积分*/} card[100];2、main() /*主函数*/3、void menu() /*菜单*/4、make_card() /*制卡*/5、start_card() /*激活*/6、get_card() /*消费*/7、put_card() /*存款*/8、display_card() /*报表*/9、read_card() /*读卡(读取数据)*/10、write_card() /*写卡(记录数据)*/11、getch();的功能是等待你按键(有时候,需要程序停一下,以便查看结果)它不影响程序的输出结果。

c语言课程设计超市购物系统

c语言课程设计超市购物系统

c语言课程设计超市购物系统一、教学目标本课程的目标是使学生掌握C语言编程的基本知识,能够运用C语言设计并实现一个简单的超市购物系统。

在知识目标方面,要求学生掌握C语言的基本语法、数据类型、运算符、控制结构等。

在技能目标方面,要求学生能够熟练使用C语言进行程序设计,具备解决实际问题的能力。

在情感态度价值观目标方面,要求学生培养对编程的兴趣和热情,培养团队合作意识和自主学习能力。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构等。

具体安排如下:1.第一章:C语言概述,介绍C语言的发展历程、特点及应用领域。

2.第二章:基本数据类型和运算符,介绍整型、浮点型、字符型数据及其运算符。

3.第三章:控制结构,介绍顺序结构、选择结构、循环结构。

4.第四章:函数,介绍函数的定义、声明、调用及返回值。

5.第五章:数组和字符串,介绍一维数组、多维数组、字符串的基本操作。

6.第六章:指针,介绍指针的概念、运算及应用。

7.第七章:结构体和联合体,介绍结构体、联合体的定义和应用。

8.第八章:文件操作,介绍文件的基本操作及其应用。

三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法。

在讲授法中,教师通过讲解、示范等方式传授知识;在案例分析法中,教师通过分析实际案例,引导学生运用所学知识解决问题;在实验法中,学生通过动手实践,加深对知识的理解和运用。

四、教学资源本课程的教学资源包括教材、多媒体资料和实验设备。

教材选用《C程序设计原理与应用》,多媒体资料包括教学PPT、视频教程等,实验设备包括计算机、网络设备等。

这些资源将有助于学生更好地学习C语言,提高编程能力。

五、教学评估本课程的评估方式包括平时表现、作业、考试等。

平时表现主要评估学生的课堂参与度、提问回答、团队合作等情况,占总评的30%。

作业主要评估学生的编程能力和理解力,占总评的30%。

考试分为期中考试和期末考试,期中考试占40%,期末考试占60%,考试内容主要包括理论知识及编程实践。

C语言超市购物管理系统报告

C语言超市购物管理系统报告

1题目描述 (1)2 系统分析 (1)2.1 题目要求 (1)2.2 输入/输出要求 (2)2.3 分析要处理的数据 (2)2.4 分析功能及其具体含义 (2)3 系统设计 (3)3.1 数据定义 (3)3.2 系统功能设计 (3)3.3 函数调用关系 (3)3.4 文件组织结构 (3)3.5设计过程的重点和难点设计过程的重点和难点 (4)4详细设计 (4)4.1流程图 (4)5 系统实现 (5)5.1源程序清单 (5)5.1.1 头文件 (5)5.1.2 主函数 (5)5.1.3 菜单 (10)5.2遇到的问题及解决 (11)5.3重点难点技术分析 (11)6 调试运行 (11)6.1测试和结果 (11)7 系统使用说明 (14)8 结论 (14)8.1课题完成情况说明 (14)8.2系统的亮点 (14)8.3系统的不足 (14)8.4系统可能的改进和扩展 (14)1题目描述假设某超市购物信息主要包括:会员编号,会员名,商品编号,商品名,商品价格,商品数量,商品日期等,本系统应能对这些基本信息进行管理,具有会员信息录入、查看、保存至文件、从文件中读出、增加购买信息,修改购买信息,删除购买信息,按商品项查询。

2 系统分析2.1 题目要求(1) 为各项操作功能设计一个菜单。

应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目;(2) 会员购买信息按记录完整地录入、查看、保存至文件、从文件中读出、查看各会员购买信息、增加购买信息,修改购买信息,删除购买信息,按商品项查询。

(3) 要求以上功能分别用函数实现。

并要求用C语言的文件操作语句将以上所有结果保存在文件wuyao.c中。

2.2 输入/输出要求(1) 应用程序运行后,先显示一个菜单,然后用户根据需要选择相应的操作项目。

进入每个操作后,根据程序的提示输入相应的信息;(2) 要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。

超市商品信息系统设计报告及程序C语言

超市商品信息系统设计报告及程序C语言

苏州科技学院二○一三~二○一四学年第一学期电子与信息工程系课程设计报告书课程名称:程序设计基础实践班级:学号:姓名:指导教师:二○一三年十二月1.题目《超市商品信息管理系统》的设计与实现2.功能(1)每一条记录包括一个商品的ID、名称、价格、保质日期。

(2)信息录入功能:可以完成信息记录的追加与插入。

(3)信息排序功能:按商品ID、商品价格进行排序。

(4)信息查询功能:完成按商品ID、商品名称查找商品记录,并显示。

(5)读取功能:将保存在文件中的商品记录读取出来。

(6)修改信息功能:按商品的ID进行读取未修改前的数据,输入新信息,保存。

(7)删除功能:按商品ID删除商品信息记录,并保存。

(8)退出:退出主菜单,退出程序。

3. 系统流程图4.设计内容整个系统除了主函数外,另外还有一三个函数,实现八大功能:录入功能(追加、插入)、显示功能、查询功能、排序功能、删除功能、保存功能、读取功能。

各个函数的详细设计说明分别如下:4.1主函数main()利用无限次循环while (select!='0')和swithch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。

4.2菜单选择函数void DisMainMenu();这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的七大功能,根据每个功能前面的序号进行选择。

等执行完每一个函数功能后,按任一键回到主界面也要通过这个函数来实现!4.3信息录入函数int InformationInput(GOODS goo[],int cn)这是一个含参函数,用来执行商品信息的追加、插入。

其中GOODS goo[]是结构体数组,cn是本次录入商品记录的总数。

信息录入函数的流程图如下:信息录入函数的程序如下:int InformationInput(GOODS goo[],int cn){int number,i,m,n,a1,j,a2=0;char a3;printf("\n请输入本次录入的商品品种的总数: ");scanf("%d",&number);if(number>MAX_NUM-cn){printf("您输入的人数太多,大于%d人!\n",MAX_NUM-cn);system("pause");return(0);}printf("\n****1. 信息的追加****\t****2.信息的插入****\n");scanf("%d",&m);if(m==1){for(i=cn;i<number+cn;i++){printf("\t商品ID :\t");scanf("%d",&goo[i].ID);printf("\t商品名称:\t");fflush(stdin);scanf("%s",goo[i].name);for(j=0;j<i;j++){if(goo[j].ID==goo[i].ID || strcmp(goo[j].name,goo[i].name)==0){printf("\n警告:您输入的商品ID或商品名称与已有的数据文件相同,是否继续Y / N ?");fflush(stdin);scanf("%c",&a3);if(a3=='Y'||a3=='y')break;elsereturn(0);}elsecontinue;}printf("\t商品单价:\t");scanf("%f",&goo[i].price);printf("\t商品保质日期:\t");scanf("%d%d%d",&goo[i].guarant.year,&goo[i].guarant.month,&goo[i].guarant.day);printf("\n");}printf("\n本次输入的信息是:\n");DisplayInformation2(goo,cn,cn+number);printf("\n");return(number+cn);}else if(m==2){printf("该数据插入在商品ID ? 之前: ");scanf("%d",&n);for(i=0;i<cn;i++){if(goo[i].ID==n){a1=i;break;}elsecontinue;}if(i<=cn-1){for(i=cn-1;i>=a1;i--){goo[i+number].ID=goo[i].ID;strcpy(goo[i+number].name,goo[i].name);goo[i+number].price=goo[i].price;goo[i+number].guarant.year=goo[i].guarant.year;goo[i+number].guarant.month=goo[i].guarant.month;goo[i+number].guarant.day=goo[i].guarant.day;}for(i=a1;i<a1+number;i++){printf("\t商品ID :\t");scanf("%d",&goo[i].ID);printf("\t商品名称:\t");fflush(stdin);scanf("%s",goo[i].name);printf("\t商品单价:\t");scanf("%f",&goo[i].price);printf("\t商品保质日期:\t");scanf("%d%d%d",&goo[i].guarant.year,&goo[i].guarant.month,&goo[i].guarant.day);printf("\n");}for(i=a1;i<a1+number;i++){for(j=0;j<a1;j++){if(goo[j].ID==goo[i].ID || strcmp(goo[j].name,goo[i].name)==0){printf("\n警告:您输入的商品ID或商品名称与已有的数据文件相同,是否继续Y / N ?");fflush(stdin);scanf("%c",&a3);if(a3=='Y'||a3=='y'){break;break;}elsereturn(0);}elsecontinue;}for(j=a1+number;j<cn+number;j++){if(goo[j].ID==goo[i].ID || strcmp(goo[j].name,goo[i].name)==0){printf("\n警告:您输入的商品ID或商品名称与已有的数据文件相同,是否继续Y / N ?");fflush(stdin);scanf("%c",&a3);if(a3=='Y'||a3=='y'){break;break;}elsereturn(0);}elsecontinue;}}printf("\n本次输入的信息是:\n");DisplayInformation2(goo,a1,a1+number);printf("\n");return(number+cn);}else{printf("\n输入插入位置有误,请查询数据文件后重新插入!");system("pause");return(0);}}else{printf("输入错误!");return(0);}}4.4信息排序函数void Sort(GOODS goo[],int max);这是一个不返回值的有参函数,形参为max,负责对全部商品信息分别按商品ID、价格运用“冒泡法”进行升序排序。

C语言商店商品管理系统设计报告及源代码

C语言商店商品管理系统设计报告及源代码
switch(k)
k=1 k=2
add(); dele();
break; break;
(6)void correct():< 修改数据函数 >
对有错误信息商品进行修改,输入需要修改的商品编号,用for 循环与if语句找到此商品,重新输入该商品的新信息,并输出:
long temp;scanf(temp);
for(i=0;i<n;i++)
if(temp==goods[i].num)
输入新信息
for(i=0;i<n;i++)
输出修改后商品信息
(7)void search():< 查询函数 >
用switch(k)语句可分别按商品编号、名称、类别或需要进货商品查询;每个case选择中均用for语句查找要查询的商品,并输出查询结果。
for(i=0;i<n;i++)
输出销售商品
(5)void edit():< 添加/删除商品 >
因为在进货函数已经实现对已有商品的数量的增加,此模块函数主要实现对新商品的添加或对旧商品的删除,并自动处理数据,可以在浏览中输出,用选择语句switch进行俩者操作的选择:
定义变量long temp;声明函数void add();void dele();
Return
(4)void sale():< 销售函数 >
要求用户输入所销售的编号,系统用for 循环查询该商品是否存在,不存在要求再进行输入,直到输入正确,输出销售商品:
for(i=0;i<n;i++)
if(k==goods[i].num)
if(a>goods[i].count)

超市管理系统(C语言课程设计报告)

超市管理系统(C语言课程设计报告)

超市管理系统本设计运用C语言程序设计了一个超市管理系统。

主要实现得功能有进货功能、退货功能、商品销售功能、商品信息查询功能、商品信息浏览功能。

1、开发工具与编程语言:开发工具:MicrosoftVisual C++6、0编程语言:C语言2.模块划分3、系统功能与函数得对应关系本系统包括一个主函数与6个被调函数,分别如下:(1)主函数void main()(2)功能选择函数 void gongneng()(3)进货功能函数 void jinhuo()(4)退货功能函数 void tuihuo()(5)商品销售函数 void spxs()(6)信息查询函数void xxcx()(7)信息浏览函数 void spxxpx()4、结构体类型说明商品信息包括:商品编号、商品名称、商品进价、商品售价、商品库存数量。

结构体类型定义为:structxinxi//结构体char bh[30];//商品编号char bhstr[30];//商品名称float jinjia;//商品进价float shoujia;//商品售价int kucun;//商品库存数量};5、系统函数得设计与实现5.1主函数主函数中运行功能选择函数,运行时可以显示系统界面,系统界面如图5-1所示。

图5-1 系统主界面主函数中可以实现各种功能得选择。

5、2进货功能函数(1)流程图进货功能函数实现进货功能,能够实现要进货商品得信息添加或录入。

进货时,先检测本商品就是否存在,若存在则修改库存数量等相关信息;否则添加本商品得相关信息。

进货流程图如图5-2所示。

开始菜单进货功能输入商品得名称ﻩﻩ(2)系统代码voi d jin hu o()//进货处理函数 {ch ar str[30]; i nt i,a=2; wh ile(a ==2) {print f("请输入商品得名称:"); sca nf("%s",s tr); for(i=0;i<b ;i++)if(strcmp(st r,s[i]、bhst r)==0)//查找要进货得商品 {pr intf("编号:%s ,进价:%5.1f,售价:%5.1f,库存数量:%d\n",s[i]、bh,s[i]、jinj ia,s [i]、shoujia,s[i ]、kucun); print f("请输入新库存数量:");s canf ("%d ",&s[i]、kuc un);//修改库存信息 pri ntf ("库存信息修改完成\n "); ﻩbr eak; }if(i>=b)//如果没有找到要进货得商品,则添加商品信息 {printf("添加商品信息:\n");printf("请输入商品编号:");scanf("%s",s[i]、bh);printf("请输入商品名称:");scanf("%s",s[i]、bhstr);printf("请输入商品进价:");scanf("%f",&s[i]、jinjia);printf("请输入商品售价:");scanf("%f",&s[i]、shoujia);printf("请输入商品库存数量:");scanf("%d",&s[i]、kucun);printf("商品信息添加完成\n");b++;}printf("请选择:");printf("1、返回开始菜单");printf("2、继续进行进货处理");scanf("%d",&a);}}(3)运行效果输入:选项1输出:请输入商品得名称:输入:1输出:添加商品信息请输入商品编号:……输入:1输出:商品信息添加完成请选择:1、返回开始菜单2、继续进行进货处理输入:2输出:请输入商品名称:输入:1输出:编号:1,进价:1、0,售价:1、0,库存数量:1请输入新库存:输入:2输出:库存信息修改完成请选择:1、返回开始菜单2、继续进行进货处理输入:1返回开始菜单运行效果图如图5-3所示。

购物卡管理系统设计(报告源代码)――C语言.

购物卡管理系统设计(报告源代码)――C语言.

购物卡管理系统【题目要求】设计购物卡管理系统,系统主要模块:(1 实现系统内制卡、发卡功能;(2 实现系统内账户及相关账户管理;(3 实现卡交易和合法性检查;(4 实现卡交易积分功能;(5 实现卡报表功能;(6 数据以文件形式存储。

【提示】制卡:指申请一张购物卡,但还没有使用。

发卡:该购物卡已经启用。

实现卡交易:指从卡中消费掉一定的金额。

一、系统需求分析根据题目要求, 由于数据要以文件形式存储, 所以应提供文件的输入、输出等操作;在程序中要实现银行卡的各项功能,应提供制卡、发卡、存款、消费、查询账户相关信息、查询账户交易记录、查询全部信息、退出程序等一系列操作;另外还应提供键盘式选择菜单实现功能选择。

二、系统总体设计分析了整个系统之后,根据上面的系统需求分析,可以将这个系统的设计分为如下七大模块:制卡、发卡、存款、消费、查询账户相关信息、查询账户交易记录、查询全部信息。

三、系统详细设计1. 主函数设计主函数的设计比较简介,只包括一个菜单函数,主要实现菜单功能, 提供了菜单输入、模块选择、退出系统等模块的调用。

其中各功能模块用菜单方式选择。

【流程图】1N23 【小结】函数开头有“文件包含”的预处理命令,所谓“文件包含”处理是指一个源文件可以将另外一个源文件的全部内容包含进来,即将另外的文件包含到本文件之中。

C 语言提供了 #include命令用来实现“文件包含”的操作。

在本程序中包含了一下头文件:"string.h" 、 "ctype.h" 、 "stdio.h" ,方便调用库函数实现某些功能。

在程序设计中,只使用一些基本类型(或称简单类型的变量(如整型、实型、字符型变量等和构造类型数据——数组,是远远不够的。

有时候需要将不同类型的数据组合成一个有机的整体,以便于引用。

这些组合在一个整体中的数据是相互联系的。

在这个程序中,定义了一个结构体数组来存放购物卡用户的各种信息,包括账户卡号、户主姓名、账户余额、账户状态、账户积分,结构体如下:struct user{int num;/*账户号码 */char name[20];/*户主名称 */float surplus;/*账户余额 */char state[2];/*账户状态, y :已启用, n :未启用 */int point;/*账户积分 */}u[100];同时在各分函数中,定义了 int 、 float 、 char 等一系列变量类型,用来实现函数功能。

超市管理系统(C语言课程设计报告)

超市管理系统(C语言课程设计报告)

超市管理系统本设计运用C语言程序设计了一个超市管理系统。

主要实现的功能有进货功能、退货功能、商品销售功能、商品信息查询功能、商品信息浏览功能。

1.开发工具和编程语言:开发工具:MicrosoftVisualC++6.0编程语言:C语言2.模块划分3.系统功能与函数的对应关系本系统包括一个主函数和6个被调函数,分别如下:(1)主函数voidmain()(2)功能选择函数voidgongneng()(3)进货功能函数voidjinhuo()(4)退货功能函数voidtuihuo()(5)商品销售函数voidspxs()(6)信息查询函数voidxxcx()(7)信息浏览函数voidspxxpx()4.结构体类型说明商品信息包括:商品编号、商品名称、商品进价、商品售价、商品库存数量。

结构体类型定义为:structxinxi//结构体{charbh[30];//商品编号charbhstr[30];//商品名称floatjinjia;//商品进价floatshoujia;//商品售价intkucun;//商品库存数量};5.系统函数的设计与实现5.1主函数主函数中运行功能选择函数,运行时可以显示系统界面,系统界面如图5-1所示。

图5-1系统主界面主函数中可以实现各种功能的选择。

5.2进货功能函数(1)流程图进货功能函数实现进货功能,能够实现要进货商品的信息添加或录入。

进货时,先检测本商品是否存在,若存在则修改库存数量等相关信息;否则添加本商品的相关信息。

进货流程图如图5-2是(2)系统代码voidjinhuo()//进货处理函数{charstr[30];inti,a=2;while(a==2){printf("请输入商品的名称:");scanf("%s",str);for(i=0;i<b;i++)if(strcmp(str,s[i].bhstr)==0)//查找要进货的商品{printf("编号:%s,进价:%5.1f,售价:%5.1f,库存数量:%d\n",s[i].bh,s[i].jinjia,s[i].shoujia,s[i].kucun);printf("请输入新库存数量:");scanf("%d",&s[i].kucun);//修改库存信息printf("库存信息修改完成\n");break;}if(i>=b)//如果没有找到要进货的商品,则添加商品信息{printf("添加商品信息:\n");printf("请输入商品编号:");scanf("%s",s[i].bh);printf("请输入商品名称:");scanf("%s",s[i].bhstr);printf("请输入商品进价:");scanf("%f",&s[i].jinjia);printf("请输入商品售价:");scanf("%f",&s[i].shoujia);printf("请输入商品库存数量:");scanf("%d",&s[i].kucun);printf("商品信息添加完成\n");b++;}printf("请选择:");printf("1.返回开始菜单");printf("2.继续进行进货处理");scanf("%d",&a);}}(3)运行效果输入:选项1输出:请输入商品的名称:输入:1输出:添加商品信息请输入商品编号:……输入:1输出:商品信息添加完成请选择:1.返回开始菜单2.继续进行进货处理输入:2输出:请输入商品名称:输入:1输出:编号:1,进价:1.0,售价:1.0,库存数量:1 请输入新库存:输入:2输出:库存信息修改完成请选择:1.返回开始菜单2.继续进行进货处理输入:1返回开始菜单运行效果图如图5-3所示。

购物系统课程设计c语言

购物系统课程设计c语言

购物系统课程设计c语言一、教学目标本课程旨在通过购物系统的设计与实现,让学生掌握C语言编程的基本语法、数据结构及算法,培养学生的实际编程能力和问题解决能力。

具体目标如下:1.理解C语言的基本语法和编程规范。

2.掌握常用的数据结构如数组、链表、栈和队列。

3.学习基本的算法设计与分析方法。

4.能够使用C语言编写简单的程序。

5.能够运用数据结构解决实际问题。

6.能够独立分析问题,设计并实现算法。

情感态度价值观目标:1.培养学生对编程的兴趣和热情。

2.培养学生的团队协作精神和自主学习能力。

3.培养学生面对编程挑战时的耐心和毅力。

二、教学内容教学内容围绕C语言编程展开,具体包括:1.C语言基础:变量、数据类型、运算符、控制结构。

2.函数:递归、参数传递、全局和局部变量。

3.数组和字符串:排序、查找、文本处理。

4.链表:单向链表、双向链表、链表操作。

5.栈和队列:数据结构定义、基本操作。

6.算法:排序算法、搜索算法、图算法。

7.文件操作:文件读写、文件权限。

三、教学方法为了提高学生的编程能力,将采用以下教学方法:1.讲授法:系统讲解C语言的基本概念和语法。

2.案例分析法:通过分析具体的案例,让学生理解数据结构和算法的应用。

3.实验法:上机实验,让学生亲手编写代码,巩固理论知识。

4.讨论法:分组讨论,培养学生的团队协作能力和问题解决能力。

四、教学资源为了支持教学,将准备以下教学资源:1.教材:《C程序设计语言》(K&R)或《C Primer Plus》。

2.多媒体资料:PPT课件、视频教程。

3.实验设备:计算机、网络环境。

4.在线资源:编程练习、开源项目代码。

5.辅助软件:集成开发环境(IDE)、调试工具。

五、教学评估为了全面、公正地评估学生的学习成果,将采用以下评估方式:1.平时表现:考察学生在课堂上的参与度、提问和回答问题的积极性等。

2.作业:布置课后编程作业,评估学生的编程能力和应用能力。

3.实验报告:评估学生在实验过程中的问题解决能力和团队合作精神。

购物管理系统c语言课程设计

购物管理系统c语言课程设计

购物管理系统c语言课程设计一、课程目标知识目标:1. 理解C语言在购物管理系统中的应用,掌握基本数据类型、变量、运算符和表达式;2. 学会使用C语言控制结构(如顺序、选择、循环结构),实现购物管理系统的功能模块;3. 掌握数组、函数、指针在购物管理系统中的运用,实现商品信息、用户信息的存储和管理;4. 了解文件操作在购物管理系统中的应用,实现对数据的持久化存储。

技能目标:1. 能够运用C语言编写简单的购物管理系统程序,实现商品浏览、购买、支付等基本功能;2. 学会使用调试工具,分析并解决程序中出现的错误;3. 能够根据实际需求,设计和优化购物管理系统的功能模块,提高程序的可用性和可维护性;4. 培养良好的编程习惯,编写规范、简洁、高效的代码。

情感态度价值观目标:1. 激发学生对C语言编程的兴趣,培养主动学习和解决问题的能力;2. 培养学生的团队协作精神,学会与他人共同分析和解决问题;3. 增强学生的实践能力,认识到编程在实际应用中的重要性;4. 培养学生诚实守信、认真负责的品质,树立正确的价值观。

本课程旨在帮助学生将所学的C语言知识应用于购物管理系统的实际开发中,通过实践提高编程能力,培养良好的编程习惯,同时关注团队协作和价值观的培养,为将来的学习和工作打下坚实基础。

二、教学内容1. C语言基础知识回顾:- 变量、数据类型、常量- 运算符、表达式、语句- 顺序结构程序设计2. 控制结构:- 选择结构(if、switch)- 循环结构(for、while、do-while)3. 函数与模块化设计:- 函数定义、调用、声明- 作用域规则、局部变量、全局变量- 模块化设计理念4. 数组与指针:- 数组的定义、初始化、访问- 指针的概念、操作、应用- 指针与数组的关系5. 文件操作:- 文件打开、关闭、读写- 文件存储格式、数据持久化6. 购物管理系统功能模块设计:- 商品信息管理- 用户信息管理- 购物车功能实现- 订单管理7. 编程规范与调试:- 代码风格、命名规则- 调试技巧、错误处理8. 实践项目:- 搭建购物管理系统框架- 编写各功能模块代码- 系统测试、优化教学内容将按照以上大纲进行安排和进度规划,与课本内容紧密关联,确保学生能够将所学知识应用于实际项目中。

c语言购物系统

c语言购物系统

C语言课程设计报告班学号:*******姓名:*******指导老师:*******日期:*******中国地质大学(武汉)计算机学院一、题目要求系统主要功能模块:1,实现系统内制卡,发卡功能。

2,实现系统内购物卡帐户及相关帐户管理。

3,实现购物卡交易和合法性检查。

4,实现购物卡交易积分功能。

5,实现购物卡报表功能。

6,数据以文件形式存储。

提示:制卡:指申请一个购物卡,但还没有使用。

发卡:指该卡已经起用。

实现卡交易:指从卡中消费掉一定金额。

二、需求分析根据题目要求,由于购物卡信息是存放在文件中,所以应提供文件的输入、输出等操作;在程序中需浏览购物卡的信息,应提供报表、查询等操作;另外还应提供键盘式选择菜单实现功能选择。

三、总体设计根据需求分析,可以将系统分为五大模块:制卡、发卡、登陆、报表、积分。

四、详细设计1、主函数将main()函数体内的界面选择部分语句单独抽取出来作为一独立函数,目的在于系统执行完每部分功能模块后能够方便返回到系统界面。

void menu(){int v,w1;do{printf("\t\t*********************MENU*********************\n\n");printf("\t\t\t\t 1.card-made\n");printf("\t\t\t\t 2.card-life\n");printf("\t\t\t\t 3.card-enter\n");printf("\t\t\t\t 4.card-browse\n");printf("\t\t\t\t 5.exit\n");printf("\n\n\t\t **********************************************\n");printf("Choice your number(1-5):[]\b\b");scanf("%d",&v);if(v<1||v>5){w1=1;getchar();}else w1=0;}while(w1==1);switch(v){case 1:made();break;case 2:life();break;case 3:enter();break;case 4:browse();break;case 5:exit(0);}}2、各功能模块设计(1)制卡模块【数据结构】struct credicard{int number;char name[20];char ID[20];char word[8];int flag;float account;int integal;}card[M];/*card[M]中每个数组元素对应一个运动员信息* /【程序】void made(){int i;char h[20];do{printf("\n\n\t Input your number:<\t\t\t>\b\b\b\b\b\b\b");scanf("%s",h);if(strlen(h)!=6){printf("\n\n\n\t\t***************Wrong!Input again****************\n\n");continue;}for(i=0;i<n;i++)if(strcmp(card[i].ID,h)==0){printf("\n\n\t\t***********The number exist,input again************\n\n");break;}}while(((strlen(h))!=6)||strcmp(card[i].ID,h)==0);card[n].number=n;strcpy(card[n].name,"***");strcpy(card[n].ID,h);strcpy(card[n].word,"000000");card[n].flag=0;card[n].account=0.00;card[n].integal=0;printf("\n\n\n\t\t********************The card is made!**********************\n\n");print_one(n);n++;add();menu();}print_one(n):显示一张卡信息的函数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

购物卡管理系统
【题目要求】
设计购物卡管理系统,系统主要模块:
(1 实现系统内制卡、发卡功能;
(2 实现系统内账户及相关账户管理;
(3 实现卡交易和合法性检查;
(4 实现卡交易积分功能;
(5 实现卡报表功能;
(6 数据以文件形式存储。

【提示】
制卡:指申请一张购物卡,但还没有使用。

发卡:该购物卡已经启用。

实现卡交易:指从卡中消费掉一定的金额。

一、系统需求分析
根据题目要求, 由于数据要以文件形式存储, 所以应提供文件的输入、输出等操作;在程序中要实现银行卡的各项功能,应提供制卡、发卡、存款、消费、查询账户相关信息、查询账户交易记录、查询全部信息、退出程序等一系列操作;另外还应提供键盘式选择菜单实现功能选择。

二、系统总体设计
分析了整个系统之后,根据上面的系统需求分析,可以将这个系统的设计分为如下七大模块:制卡、发卡、存款、消费、查询账户相关信息、
查询账户交易记录、查询全部信息。

三、系统详细设计
1. 主函数设计
主函数的设计比较简介,只包括一个菜单函数,主要实现菜单功能, 提供了菜单输入、模块选择、退出系统等模块的调用。

其中各功能模块用菜单方式选择。

【流程图】
1
N
2
3 【小结】
函数开头有“文件包含”的预处理命令,所谓“文件包含”处理是指一个源文件可以将另外一个源文件的全部内容包含进来,即将另外的文件包含到本文件之中。

C 语言提供了 #include命令用来实现“文件包含”的操作。

在本程序中包含了一下头文件:"string.h" 、 "ctype.h" 、 "stdio.h" ,方便调用库函数实现某些功能。

在程序设计中,只使用一些基本类型(或称简单类型的变量(如整型、实型、字符型变量等和构造类型数据——数组,是远远不够的。

有时候需要将不同类型的数据组合成一个有机的整体,以便于引用。

这些组合在一个整体中的数据是相互联系的。

在这个程序中,定义了一个结构体数组来存放购物卡用户的各种信息,包括账户卡号、户主姓名、账户余额、账户状态、账户积分,结构体如下:
struct user
{
int num;/*账户号码 */
char name[20];/*户主名称 */
float surplus;/*账户余额 */
char state[2];/*账户状态, y :已启用, n :未启用 */
int point;/*账户积分 */
}u[100];
同时在各分函数中,定义了 int 、 float 、 char 等一系列变量类型,用来实现函数功能。

在主函数前面,要加上对各功能函数的声明,声明的作用是把函数的
4
名字、函数的类型以及形参的类型、个数和顺序通知编译系统,以便在调用该函数时系统按此进行对照检查,例如函数名是否正确,实参与形参的类型和个数是否一致等。

主函数比较简单,但是函数的调用很多,所以,在程序的开头就加上了各函数的声明,如下:
void c_c(;/*制卡函数模块 */
void s_u(;/*发卡函数模块 */
void in_m(;/*存款函数模块 */
void out_m(;/*取款函数模块 */
void c_i(;/*查询账户相关信息函数模块 */
void c_r(;/*查询账户交易记录函数模块 */
void check(;/*查询全部信息函数模块 */
void menu(;/*主菜单函数模块 */
void back(;/*返回函数模块 */
void check_b(;/*给用户提示已有信息 */
实现菜单选择功能,使用的是 switch 语句,根据用户输入的菜单选项 a ,调用不同的函数实现各种功能:
switch(a
{
case 1:c_c(;break;/*制卡模块 */
case 2:s_u(;break;/*发卡模块 */
case 3:in_m(;break;/*存款模块 */
case 4:out_m(;break;/*取款模块 */
case 5:c_i(;break;/*查询账户相关信息模块 */ case 6:c_r(;break;/*查询交易记录模块 */ case 7:check(;break;/*查看所有信息模块 */ case 8:exit(0;break;/*退出模块 */
}
2. 各功能模块设计
2.1 制卡模块
【流程图】
2.2 发卡模块【流程图】
N
2.3 存款模块【流程图】
10
2.4 消费模块
【流程图】
11
12
2.5 查询账户相关信息模块
【流程图】
13
N
14
2.7 查询全部信息模块【流程图】 15
开始打开存有数据的文本文件将文件中的用户信息输入到系统定义的结构体中关闭文本文件将全部用户的信息输出到屏幕结束 3. 公共函数设计返回模块,即在完成一项命令之后,可以选择返回主菜单或者是退出程序。

【流程图】 16
开始输出菜单供用户选择输入菜单编号判断编号是否为“1” N Y 返回主菜单结束 17。

相关文档
最新文档