c语言进销存管理系统源程序

合集下载

C语言财务管理系统源代码

C语言财务管理系统源代码

#include"stdio.h"#include"stdlib.h"#define MAX_NAME 11#define MAX_DETAIL 21#define MENU_COUNT 9#define DATA_FILE "fa.dat" typedef wnum_fi_type ( income=1,payout=-1}fi_type;typedef struct_fi_info (int year;int month;fi_type type;char name[MAX_NAME];float money;char detail[MAX_DETAIL];}fi_info;typedef struct_fi_data (fi_info info;struct_fi_data *next;}fi_data;void add_income();void search_income();void delete_income();void update_income();void add_payout();void search_payout();void delete_payout();void update_payout();void count_total();void quit();void search_data(fi_type type);void delete_data(fi_type type);void update_data(fi_type type);void initialize();void save_to_file();void clear_data();fi_data *get_last();fi_data *get_previous(fi_data *p);void input_info(fi_info *info);void show_info(fi_data *p[],int count);fi_data *head;char menu[]=" ------------------------------------------------ ==\n""|家庭财务管理系统|\n""+ --------------------------------------- +\n""|收入管理|\n""| 1添加收入|\n""| 2查询收入明细|\n""| 3删除收入|\n""| 4修改收入|\n""|支出管理|\n""| 5添加支出|\n""| 6查询支出明细|\n""| 7删除支出|\n""| 8修改支出|\n""|统计|\n""| 9统计总收入总支出|\n"" --------------------------------------- +\n""| 0退出系统|\n""==============================================+\n"; void(*menu_fun[])()= ( quit,add_income, search_income, delete_income, update_income, add_payout, search_payout, delete_payout, update_payout, count_total };int main() (int selected=0;initialize();while(selected>=0 && selected<=MENU_COUNT) ( system("cls");printf(menu);printf("> 请选择要进行的操作(%d - %d):",0,MENU_COUNT);if(scanf("%d”,&selected)!=1llselected<0llselected>MENU_COUNT) (printf(">输入错误!请选择[%d - %d]之间的数字!按任意键重试…",0,MENU_COUNT);fflush(stdin);getchar();) else(menu_fun[selected]();)selected=0;))void add_income()(fi_data *p=(fi_data *)malloc(sizeof(fi_data));memset(p,0,sizeof(fi_data));p->next=NULL;input_info(&(p->info));p->info.type=income;if(head==NULL)( head=p;) else(get_last(head)->next=p;))void search_income()(search_data(income);)void delete_income()(delete_data(income);)void update_income()(update_data(income);)void add_payout() (fi_data *p=(fi_data*)malloc(sizeof(fi_data)); memset(p,0,sizeof(fi_data));input_info(&(p->info));p->info.type=payout;if(head==NULL)( head=p;) else(get_last(head)->next=p;))void search_payout()(search_data(payout);)void delete_payout()(delete_data(payout);)void update_payout()(update_data(payout);)void count_total()(float total_income=0.0;float total_payout=0.0;fi_data *p=head;while(p!=NULL)(if(p->info.type==income)(total_income+=p->info.money;) else(total_payout+=p->info.money;)p=p->next;)printf("+ ------- + ------- + -------- +\n");printf("|合计收入|合计支出| 结余printf("+|\n");---------------- + ------- + -------- +\n");printf("l%12.2fl%12.2fl%12.2fl\n", total_income, total_payout,total_income - total_payout); printf("+ ------- + -------- + ------- +\n");printfC、按任意键继续返回主菜单…) fflush(stdin);getchar();)void search_data(fi_type type) (int year=0;int month=0;fi_data *p=NULL;fi_data *result[9]={NULL}; int count=0; char input='';while(1) {printfC、请输入要查询的年月(例如:2009/1)"); if(scanf("%d/%d”,&year,&month)!=2) { printf(">输入错误。

超市商品管理系统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语言编写商品管理系统

用c语言编写商品管理系统-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<dos.h>#include<string.h>#define LEN sizeof(struct commdity)#define FORMAT "%-8d%-15s%-12.11f%-12.11f%-12.11f\n"#define DATA comm[i].num,comm[i].name,comm[i].price,comm[i].count,comm[i].total /*定义商品的结构体*/struct commdity{int num;char name[15];double count;double total;}comm[100000],t;/*函数的声明*/void in(); /*商品录入并保存*/void show(); /*显示商品记录*/void order(); /*商品记录排序*/void del(); /*商品记录删除*/void modify(); /*商品记录修改*/void menu(); /*主菜单*/void insert(); /*商品记录插入*/void total(); /*商品统计*/void search(); /*查看商品记录*/void main(){int n;menu();scanf("%d",&n);while(n){switch(n){case 0:break;case 1:in();break;case 2:search();break;case 3:del();break;case 4:modify();break;case 5:insert();break;case 6:order();break;case 7:total();break;default:printf("error! 操作错误.....\n");break;}getch();menu();scanf("%d",&n);}}/**************************自定义主菜单函数************************/ void menu(){system("cls"); /*清屏*/printf("\n\n\n\n\n");printf("\t\t--------欢迎将进入商品管理系统----------------\n");printf("\t\t|\t0.退出 |\n");printf("\t\t|\t1.录入记录 |\n");printf("\t\t|\t2.查找记录 |\n");printf("\t\t|\t3.删除记录 |\n");printf("\t\t|\t4.修改记录 |\n");printf("\t\t|\t5.插入记录 |\n");printf("\t\t|\t6.排序记录 |\n");printf("\t\t|\t7.统计记录 |\n");printf("\t\t|--------------------------------------------|\n");printf("\t\t\t请输入您的操作类型【0-7】: \n");}/**************************自定义商品录入并保存函数************************/void in(){int i,m=0;char ch[2];FILE *fp;if((fp=fopen("data.txt","ab+"))==NULL){ printf("不能打开文件!\n");return; }while(!feof(fp)){if(fread(&comm[m],LEN,1,fp)==1)m++;}fclose(fp);if(m==0)printf("无商品记录........\n");else{ system("cls");show();}if((fp=fopen("data.txt","wb"))==NULL){ printf("不能打开文件!\n");return;}for(i=0;i<m;i++)fwrite(&comm[i],LEN,1,fp);printf("是否输入(y/n):\n");scanf("%s",ch);while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0){ printf("编号:\n");scanf("%d",&comm[m].num);for(i=0;i<m;i++)if(comm[m].num==comm[i].num){ printf("该记录已经存在,按任意键返回......\n"); getch();fclose(fp);return;}printf("商品名:\n");scanf("%s",comm[m].name);printf("单价:\n");scanf("%lf",&comm[m].price);printf("数量:\n");scanf("%lf",&comm[m].num);comm[m].total=comm[m].count*comm[m].price;if(fwrite(&comm[m],LEN,1,fp)!=1){ printf("不能保存!\n");getch();return;}else{ printf("%s 已经保存!\n",comm[m].name);m++;printf("是否继续(y/n):\n");scanf("%s",ch);}fclose(fp);printf("OK!\n");return;}/**************************自定义显示商品记录函数************************/void show(){int i,m=0;FILE *fp;if((fp=fopen("data.txt","ab+"))==NULL){printf("不能打开记录!\n");return;}while(!feof(fp)){if(fread(&comm[m],LEN,1,fp)==1)m++;}fclose(fp);if(m==0){printf("无商品记录........\n");}else{printf("编号商品名称单价数量总金额\t\n");for(i=0;i<m;i++){printf(FORMAT,DATA);}}}/**************************自定义商品查看函数************************/ void search(){ FILE *fp;int snum,i,m=0;char ch[2];if((fp=fopen("data.txt","ab+"))==NULL){printf("不能打开文件!\n");return;}while(!feof(fp)){if(fread(&comm[m],LEN,1,fp)==1)fclose(fp);if(m==0){ printf("无商品记录........\n");return;}printf("编号:\n");scanf("%d",&snum);for(i=0;i<m;i++)if(snum==comm[i].num){printf("已经找到记录,是否显示(y/n):\n");scanf("%s",ch);if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0){printf("编号商品名称单价数量总金额\t\n"); printf(FORMAT,DATA);break;}elsereturn;}if(i==m){printf("没有找到相应的记录....\n");}}/**************************自定义商品记录删除函数************************/void del(){int i,m=0,j,snum;char ch[2];FILE *fp;if((fp=fopen("data.txt","ab+"))==NULL){printf("不能打开文件!\n");return;}while(!feof(fp)){if(fread(&comm[m],LEN,1,fp)==1)m++;}fclose(fp);if(m==0){printf("无商品记录........\n");return;}printf("请输入编号:\n");scanf("%d",&snum);for(i=0;i<m;i++)if(snum==comm[i].num)break;if(i==m){printf("没有找到.....\n");getch();return;}printf("已经找到记录,是否删除(y/n):\n");scanf("%s",ch);if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0){for(j=i;j<m;j++)comm[j]=comm[j+1];m--;printf("删除成功....\n");}if((fp=fopen("data.txt","wb"))==NULL){printf("不能打开文件!\n");return;}for(i=0;i<m;i++)if(fwrite(&comm[j],LEN,1,fp)!=1){printf("不能保存!\n");getch();}fclose(fp);}/**************************自定义商品记录修改函数************************/void modify(){int i,m=0,snum;char ch[2];FILE *fp;if((fp=fopen("data.txt","ab+"))==NULL){printf("不能打开文件!\n");return;}while(!feof(fp)){if(fread(&comm[m],LEN,1,fp)==1)m++;}fclose(fp);if(m==0){printf("无商品记录........\n");fclose(fp);return;}printf("请输入您要修改信息的编号:\n");scanf("%d",&snum);for(i=0;i<m;i++)if(snum==comm[i].num)break;if(i<m){printf("已经找到该记录,是否修改(y/n):\n");scanf("%s",ch);if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0){printf("商品名:\n");scanf("%s",comm[i].name);printf("单价:\n");scanf("%lf",&comm[i].price);printf("数量:\n");scanf("%lf",&comm[i].num);comm[i].total=comm[i].count*comm[i].price;}elsereturn;}else{printf("没有找到......\n");getchar();return;}if((fp=fopen("data.txt","wb"))==NULL){printf("不能打开文件!\n");return;}for(i=0;i<m;i++)if(fwrite(&comm[i],LEN,1,fp)!=1){printf("不能保存!\n");getch();}fclose(fp);}/**************************自定义商品记录插入函数************************/void insert(){int i,m=0,j,k,snum;FILE *fp;if((fp=fopen("data.txt","ab+"))==NULL){printf("不能打开文件!\n");return;}while(!feof(fp)){if(fread(&comm[m],LEN,1,fp)==1)m++;}if(m==0){printf("无商品记录........\n");fclose(fp);return;}printf("请输入要插入记录的位置【即编号】:\n");scanf("%d",&snum);for(i=0;i<m;i++)if(snum==comm[i].num)break;for(j=m-1;j>i;j--)comm[j+1]=comm[j];printf("请输入您要插入的信息:\n");printf("编号:\n");scanf("%d",&comm[i+1].num);for(k=0;k<m;k++)if(comm[k].num==comm[i+1].num&&k!=i+1){ printf("该编号已经存在,按任意键继续......\n"); getch();fclose(fp);return;}printf("商品名:\n");scanf("%s",comm[i+1].name);printf("单价:\n");scanf("%lf",&comm[i+1].price);printf("数量:\n");scanf("%lf",&comm[i+1].num);comm[i+1].total=comm[i+1].count*comm[i+1].price;if((fp=fopen("data.txt","wb"))==NULL){printf("不能打开文件!\n");return;}for(k=0;k<m+1;k++)if(fwrite(&comm[k],LEN,1,fp)!=1){printf("不能保存!\n");getch();}fclose(fp);}/**************************自定义商品记录统计函数************************/void total(){int i,m=0;FILE *fp;if((fp=fopen("data.txt","ab+"))==NULL){printf("不能打开记录!\n");return;}while(!feof(fp)){if(fread(&comm[m],LEN,1,fp)==1)m++;}if(m==0){printf("无商品记录........\n");fclose(fp);}else{printf("编号商品名称单价数量\t\n");for(i=0;i<m;i++){printf("%-8d%-15s%-12.11f%-12.11f\n",comm[i].num,comm[i].name,comm[i].price,comm[i].count);} printf("一共有%d条记录!\n",m);fclose(fp);}}/**************************自定义商品记录排序函数************************/void order(){int i,j,m=0;FILE *fp;if((fp=fopen("data.txt","ab+"))==NULL){printf("不能打开记录!\n");return;}while(!feof(fp)){if(fread(&comm[m],LEN,1,fp)==1)m++;}fclose(fp);if(m==0){printf("无商品记录........\n");}else{for(i=0;i<m;i++)for(j=i+1;j<m;j++){if(comm[i].total<comm[j].total){t=comm[i];comm[i]=comm[j];comm[j]=t;}}printf("编号商品名称单价数量总金额\t\n");for(i=0;i<m;i++){printf(FORMAT,DATA);}}}11。

C语言程序课程设计商品进销存管理系统程序

C语言程序课程设计商品进销存管理系统程序

一题目与运行说明商品进销存管理程序1、题目描述设计一个商品进销管理程序,该程序具有以下功能:(1) 录入商品信息;(2) 给定商品编号,修改该商品信息;(3) 给定商品编号,删除该商品信息;(4) 录入商品的进货和销售信息;(5) 给定商品编号或商品名,查看该商品与库存信息;(6) 统计功能:提供一些统计各类信息的功能。

2、题目要求(1) 按照分析、设计、编码、调试和测试过程完成应用程序;(2) 学习并使用流程图等工具,并在撰写报告中使用;(3) 程序的各项功能在程序运行时,以菜单形式选择并执行;(4) 要求用户输入数据时,要给出清晰、明确的提示,包括:输入数据的内容、格式与其完毕方式等(5) 所有的信息存储在一个文件或多个中,并实现文件读写操作。

(6) 程序中用链表存放商品与进销存信息并实现增删减功能。

3、提示(1) 提醒事件信息可以设计一个结构体类型(2) 自己构思并增加的除规定功能之外的新功能,酌情加分。

(1)程序中主要变量Struct goods *head 结构体指针Int n,kstruct goods{int number;char name[20];int shumu;float jiage;struct goods *next;};int n,k;struct goods *head;等一些变量。

(2)数据输入的形式和输入值的X围字符不超过20位整型变量输入大于0浮点型变量也大于0商品编号为四位整数(3)数据输入的形式按程序运行的提示操作※(4)程序所能达到的功能与出错处理该程序具有以下功能:(1) 录入商品信息;(2) 给定商品编号,修改该商品信息;(3) 给定商品编号,删除该商品信息;(4) 录入商品的进货和销售信息;(5) 给定商品编号或商品名,查看该商品与库存信息;(6) 统计功能:提供一些统计各类信息的功能。

二程序设计思路根据要求首先设计一个结构体类型,设计好界面,设计好主函数。

C语言编写的销售管理系统

C语言编写的销售管理系统
printf("\n");
printf("................................................................................");
printf(" 退出主界面请按 0\n");
int chushihua() //初始化函数
{
int i=0,j=0;
for(i=0;i<M;i++)
{
suml[i].number=lackl[i].number=base[i].number=-1;
base[i].amount=0;
#include<stdio.h> //头文件
#include<string.h> //头文件
#include<stdlib.h> //头文件
#define M 100 //货物种类
#define N 100 //顾客数目
struct goods //单个货物信息格式
fprintf(fp," 本销售系统仅是一个销售部门管理系统的的简单模型,功能少,不太稳定,不太安全。\n");
fprintf(fp," 主要分为三个模块。客户--销售部门--公司经理。\n");
fprintf(fp," 1--客户。客户主要是通过该系统进行订货。进入系统后,需要注册,登陆。系统会自主分配\n");
printf("\n");
printf("..............................................................................\n");

c语言销售管理系统

c语言销售管理系统

C语言销售管理系统—课设满分作品带报表和折线图显示#include<stdio.h>#include<windows.h>#include<wincon.h>#include<string.h>#include<stdlib.h>#include<conio.h>#include<math.h>#define NULL 0CONSOLE_SCREEN_BUFFER_INFO csbiInfo;extern WINBASEAPI HWND WINAPI GetConsoleWindow();void input();//实现手动输入销售信息void menu();//程序菜单主界面显示void daoru(); //函数声明void seek();//销售信息查询void save();//销售信息保存void del();//销售信息删除void def();//销售信息初始化void history(people);//实现销售历史查询void clear();//实现清屏void filepath();//判断是否为默认文件位置,及询问是否要求修改文件位置void baobiao();//打印报表void txt(zx);//折线图void sxt(g1, g2, g3, g4, g5);//扇形图int ghj = 1;int file_choose = 0;//文件导入初始状态 //全局变量char filename[30] = "sell.txt";//默认文件位置int price[5] = { 2, 2, 2, 2, 2 }; //默认商品价格struct good{int num;//产品编号int f_name[10];//产品名称float price;//产品价格商品属性int date;//销售日期int sum;//销售数量} good[5]; // 定义商品属性结构体,及五个商品struct seller{int num;//销售员编号char name[8];//销售员姓名char sex;//销售员性别struct good good[5]; //五种商品} sell[4]; //定义销售员结构体,及四个销售员struct day{struct seller sell[4];} d[31];struct year{struct day d[31];} m[12];int main(int argc, char* argv[]){int x = 0;x = MessageBox(NULL, "欢迎使用销售管理系统\n作者:xx\n班级:xxxx", "欢迎", MB_YESNO);if (x == 6) menu();return 0;}/************************************************************函数名:daoru()*描述:从文件导入数据*入口参数:无;*出口参数:无;******************************************************************/void daoru(){FILE *fp;int i, day, month;if ((fp = fopen(filename, "r")) == NULL){printf("文件不存在!");return;}for (month = 0; month<12; month++)for (day = 0; day<31; day++) //把文件读取到内存中for (i = 0; i<4; i++)fscanf(fp, "%6d%6d%6d%6d%6d\n", &m[month].d[day].sell[i].good[0].sum,&m[month].d[day].sell[i].good[1].sum, &m[month].d[day].sell[i].good[2].sum,&m[month].d[day].sell[i].good[3].sum, &m[month].d[day].sell[i].good[4].sum);fclose(fp);}/************************************************************函数名:inpit()*描述:数据的手动输入*入口参数:无;*出口参数:无;******************************************************************/void input(){int i = 0, day = 0, x = 0, month = 0;filepath();daoru();//文件导入及判断printf("请输入要查找的日期如1 1即一月一日:");scanf("%d%d", &month, &day);month--;day--;////保持实际时间与数组一致printf("请输入销售人员编号:\n1:xx 2:xx 3:xx 4:xx:");scanf("%d", &i);i--;printf("请输入具体要录入的商品种类1~5对应商品1-5:"); //用于查找所需的具体数据scanf("%d", &x);x--;printf("输入销售数量:");scanf("%d", &m[month].d[day].sell[i].good[x].sum);printf("完成!");save();}/************************************************************函数名:seek()*描述:查找*入口参数:无;*出口参数:无;******************************************************************/void seek(){char ch;int i = 0, j = 0, choose = 0, day = 0, t = 0, all = 0, month;filepath();daoru();printf("请输入要查找的日期如1 1即一月一日:");scanf("%d%d", &month, &day);month--;day--;//保持实际时间与数组一致printf("请输入销售人员编号:\n1:xx 2:xx 3:xx 4:xx:");scanf("%d", &i);i--;printf("请选择1,当天具体商品销售情况 2,当天该销售员销售情况:");scanf("%d", &choose);switch (choose){case 1:{printf("请输入具体要查找的商品种类1~5对应商品1-5\n");scanf("%d", &t);t--;printf("该销售员这天销售本商品的数量为:%d",m[month].d[day].sell[i].good[t].sum);}break;case 2:{printf(" 产品代号\n");printf("1.牛奶 2.西瓜 3.苹果 4.白菜 5.萝卜销售之和\n");for (j = 0; j<5; j++) all += m[month].d[day].sell[i].good[j].sum;printf("%-8d%-8d%-8d%-8d%-8d%-10d\n", m[month].d[day].sell[i].good[0].sum, m[month].d[day].sell[i].good[1].sum, m[month].d[day].sell[i].good[2].sum,m[month].d[day].sell[i].good[3].sum, m[month].d[day].sell[i].good[4].sum, all);}default:break;}}/************************************************************函数名:baobiao()*描述:打印报表*入口参数:无;*出口参数:无;******************************************************************/void baobiao(){char choose = 'y';int i, j, x = 0, a = 0, b = 0, mo = 0, th = 0, partsum = 0, month = 0, sj = 0;int day = 0, alldat = 0, partallsum[5] = { 0 };int mx[4][5] = { 0 }, mxsum = 0; //用于存放明细filepath();daoru(); //读取数据及判断printf("请选择1销售数量报表 2销售额报表:");scanf("%d", &i);if (i == 1){for (i = 0; i<5; i++)price[i] = 1;//利用价格为1时计算数量}else{sj = 1;x = MessageBox(NULL, "是否使用内置价格?", "提示", MB_YESNO);if (x == 7){printf("请依次输入五种商品价格:");scanf("%d%d%d%d%d", &price[0], &price[1], &price[2], &price[3], &price[4]);//上次输入作为内置价格}}printf("输入两个月份及日期:例如3 15 12 6(前者早上到后者晚上):");scanf("%d%d%d%d", &mo, &a, &th, &b);a--;b--;//保持实际时间与数组一致mo--;th--;clear();if (sj == 0){printf("时间段:%d月%d日--%d月%d日的销售数量汇总报表\n", mo + 1, a + 1, th + 1, 1 + b);}else{printf("时间段:%d月%d日--%d月%d日的销售额汇总报表\n", mo + 1, a + 1, th + 1, 1 + b);printf("五种商品对应价格为:%d %d %d %d %d\n", price[0], price[1], price[2], price[3], price[4]);}printf("\n 产品代号及名称\n");printf("姓名编号\t1.牛奶\t2.西瓜\t3.苹果\t4.白菜\t5.萝卜\t销售之和\n");//计算间隔整月if (th - mo>0){for (month = mo + 1; month <= (th - 1); month++){for (day = 0; day<31; day++){for (i = 0; i<4; i++){for (j = 0; j <= 4; j++){mx[i][j] = mx[i][j] + m[month].d[day].sell[i].good[j].sum*price[j];//累加计算所有他的所有销售情况}}for (i = 0; i<5; i++){for (j = 0, partsum = 0; j<4; j++){partsum += m[month].d[day].sell[j].good[i].sum*price[i];}//统计同种商品数目,一维数组当天4个销售员同种商品数目partallsum[i] += partsum;}}}//间隔整月前一段for (day = a; day<31; day++){for (i = 0; i<4; i++){for (j = 0; j <= 4; j++){mx[i][j] = mx[i][j] + m[mo].d[day].sell[i].good[j].sum*price[j]; //累加计算所有他的所有销售情况}}for (i = 0; i<5; i++){for (j = 0, partsum = 0; j<4; j++){partsum += m[mo].d[day].sell[j].good[i].sum*price[i];}partallsum[i] += partsum; //统计同种商品数目,一维数组当天4个销售员同种商品数目}}//间隔整月后一段for (day = 0; day <= b; day++){for (i = 0; i<4; i++){for (j = 0; j <= 4; j++){mx[i][j] = mx[i][j] + m[th].d[day].sell[i].good[j].sum*price[j]; //累加计算所有他的所有销售情况}}for (i = 0; i<5; i++){for (j = 0, partsum = 0; j<4; j++){partsum += m[th].d[day].sell[j].good[i].sum*price[i];}partallsum[i] += partsum; //统计同种商品数目,一维数组当天4个销售员同种商品数目}}}else if ((th - mo) == 0){for (day = a; day <= b; day++){for (i = 0; i<4; i++){for (j = 0; j <= 4; j++){mx[i][j] = mx[i][j] + m[mo].d[day].sell[i].good[j].sum*price[j]; //累加计算所有他的所有销售情况}}for (i = 0; i<5; i++){for (j = 0, partsum = 0; j<4; j++){partsum += m[mo].d[day].sell[j].good[i].sum*price[i];}partallsum[i] += partsum; //统计同种商品数目,一维数组当天4个销售员同种商品数目}}}//输出报表for (i = 0; i<4; i++){printf("%-6s ", sell[i].name);//销售员姓名for (j = 0; j<5; j++){printf("\t%d", mx[i][j]);mxsum += mx[i][j];//二维数组记录销售员}mxsum = 0;//用于下次循环的初始化}//输出表格同类商品总计printf("同类商品");for (i = 0; i<5; i++){printf("\t%d", partallsum[i]);//统计同种商品数目,一维数组alldat += partallsum[i];//合计所有的商品}printf("\t合计:%d", alldat);//所有商品合计x = MessageBox(NULL, "是否打印扇形形图?", "提示", MB_YESNO);if (x == 6){clear();printf("时间段:%d月%d日--%d月%d日", mo + 1, a + 1, th + 1, 1 + b);printf(" 销售扇形图");sxt(partallsum[0], partallsum[1], partallsum[2], partallsum[3], partallsum[4]);}}/************************************************************函数名:del()*描述:删除*入口参数:无;*出口参数:无;******************************************************************/void del(){int i = 0, day = 0, x = 0, month;int choose;filepath();daoru();printf("请输入要查找日期如1月1日输入1 1:");scanf("%d%d", &month, &day);month--;day--;//保持实际时间与数组一致printf("请输入销售人员编号:\n1:xx 2:xx 3:xx 4:xx:");scanf("%d", &i);i--;printf("请选择1.删除该销售员整天的销售信息 2.具体商品销售信息:");scanf("%d", &choose);switch (choose){case 1:{for (x = 0; x<5; x++) m[month].d[day].sell[i].good[x].sum = 0;}break;case 2:{printf("请输入具体要删除的商品种类1~5对应商品1-5 :");x--;m[month].d[day].sell[i].good[x].sum = 0;}break;default:break;}printf("已删除指定销售员信息");save();}/************************************************************函数名:def()*描述:销售数据初始化*入口参数:无;*出口参数:无;******************************************************************/void def(){FILE *fp;int i, day, month;filepath();fp = fopen(filename, "w");for (month = 0; month<12; month++)for (day = 0; day<31; day++){for (i = 0; i<4; i++) //保存信息到文件fprintf(fp, "%-6d%-6d%-6d%-6d%-6d\n", m[month].d[day].sell[i].good[0].sum = 0, m[month].d[day].sell[i].good[1].sum = 0, m[month].d[day].sell[i].good[2].sum = 0,m[month].d[day].sell[i].good[3].sum = 0, m[month].d[day].sell[i].good[4].sum = 0);fprintf(fp, "\n");//日期间隔}printf("初始化操作完成!");fclose(fp);}/************************************************************函数名:filepath()*描述:判断及修改文件位置*入口参数:无;*出口参数:无;******************************************************************/void filepath(){char choose;int x;clear();if (file_choose == 0){x = MessageBox(NULL, "现在为默认文件\n是否使用?", "提示", MB_YESNO);if (x == 7){printf("请输入文件绝对路径:");fflush(stdin);gets(filename);file_choose = 1;//其他位置文件标志}else{x = MessageBox(NULL, "不在提醒?", "提示", MB_YESNO);if (x == 6){file_choose = 2;//其他位置文件标志printf("设置成功\n");}}}}/************************************************************函数名:save()*描述:保存数据*入口参数:无;*出口参数:无;******************************************************************/void save(people){FILE *fp;int day, i, month;fp = fopen(filename, "w");for (month = 0; month<12; month++)for (day = 0; day<31; day++){for (i = 0; i<4; i++)fprintf(fp, "%-6d%-6d%-6d%-6d%-6d\n", m[month].d[day].sell[i].good[0].sum, m[month].d[day].sell[i].good[1].sum, m[month].d[day].sell[i].good[2].sum,m[month].d[day].sell[i].good[3].sum, m[month].d[day].sell[i].good[4].sum);fprintf(fp, "\n");}//写入文件fclose(fp);}/************************************************************函数名:clear()*描述:清屏*入口参数:无;*出口参数:无;******************************************************************/void clear(){int i;HWND hwnd;HANDLE hOut;HDC hdc, hdc1;HPEN ypn, p_pn, p1_pn, p2_pn, p3_pn, p4_pn, p5_pn;HPEN hPen, hOldPen;HBRUSH hBrush, hOldBrush, hbr;COORD pos = { 1, 4 };hwnd = GetConsoleWindow();hdc = GetDC(hwnd);hOut = GetStdHandle(STD_OUTPUT_HANDLE);hbr = CreateSolidBrush(RGB(0, 0, 0));SelectObject(hdc, hbr);Rectangle(hdc, 0, 65, 670, 470);SetConsoleCursorPosition(hOut, pos);for (i = 0; i<19; i++)printf(" \n ");SetConsoleCursorPosition(hOut, pos);Rectangle(hdc, 0, 65, 670, 470);ReleaseDC(hwnd, hdc);}/************************************************************函数名:history()*描述:历史销售查询*入口参数:people;*出口参数:无;******************************************************************/void history(people){int i, j, x = 0, a = 0, b = 0, mo = 0, th = 0, partsum = 0, month = 0;int day = 0, sumall = 0, more = 1;int mx[6] = { 0 }; //用于存放明细char choose;filepath();daoru();clear();printf("输入两个月份及日期:例如7 15 12 6(前者早上到后者晚上):");scanf("%d%d%d%d", &mo, &a, &th, &b);a--;b--;//保持实际时间与数组一致mo--;th--;printf("销售员:%s 时间段:%d月%d日--%d月%d日\n", sell[people].name, mo + 1, a + 1, th +1, 1 + b);printf("日期 \t1.牛奶\t2.西瓜\t3.苹果\t4.白菜\t5.萝卜\t销售之和\n");if (th - mo>0){//间隔整月前一段for (day = a; day<31; day++){if (more >= 16){x = MessageBox(NULL, "是否显示更多?", "提示", MB_YESNO);if (x == 6){clear();printf("日期 \t1.牛奶\t2.西瓜\t3.苹果\t4.白菜\t5.萝卜\t销售之和\n");}else goto end;}printf("%d月%d日 ", mo + 1, day + 1);for (j = 0; j <= 4; j++){sumall += m[mo].d[day].sell[people].good[j].sum;printf("\t%d", m[mo].d[day].sell[people].good[j].sum);mx[j] += m[mo].d[day].sell[people].good[j].sum;}printf("\t%d\n", sumall);more++;mx[5] += sumall;sumall = 0;}//计算间隔整月for (month = mo + 1; month <= (th - 1); month++){for (day = 0; day<31; day++){if (more >= 16){x = MessageBox(NULL, "是否显示更多?", "提示", MB_YESNO);if (x == 6){clear();printf("日期 \t1.牛奶\t2.西瓜\t3.苹果\t4.白菜\t5.萝卜\t销售之和\n");more = 0;}else goto end;}printf("\n%d月%d日 ", month + 1, day + 1);for (j = 0; j <= 4; j++){sumall += m[month].d[day].sell[people].good[j].sum;printf("\t%d", m[month].d[day].sell[people].good[j].sum);mx[j] += m[month].d[day].sell[people].good[j].sum;}printf("\t%d", sumall);more++;mx[5] += sumall;sumall = 0;}}//间隔整月后一段for (day = 0; day <= b; day++){{x = MessageBox(NULL, "是否显示更多?", "提示", MB_YESNO);if (x == 6){clear();printf("日期 \t1.牛奶\t2.西瓜\t3.苹果\t4.白菜\t5.萝卜\t销售之和\n");more = 0;}else goto end;}printf("\n%d月%d日 ", th + 1, day + 1);for (j = 0; j <= 4; j++){sumall += m[th].d[day].sell[people].good[j].sum;printf("\t%d", m[th].d[day].sell[people].good[j].sum);mx[j] += m[th].d[day].sell[people].good[j].sum;}printf("\t%d", sumall);more++;mx[5] += sumall;sumall = 0;}}//一个月内时间段else if ((th - mo) == 0){for (day = a; day <= b; day++){if (more >= 18){x = MessageBox(NULL, "是否显示更多?", "提示", MB_YESNO);if (x == 6){clear();printf("日期 \t1.牛奶\t2.西瓜\t3.苹果\t4.白菜\t5.萝卜\t销售之和\n");more = 0;}else goto end;}printf("%d月%d日 ", mo + 1, day + 1);for (j = 0; j <= 4; j++){sumall += m[mo].d[day].sell[people].good[j].sum;printf("\t%d", m[mo].d[day].sell[people].good[j].sum);mx[j] += m[mo].d[day].sell[people].good[j].sum;}printf("\t%d\n", sumall);more++;mx[5] += sumall;sumall = 0;}}end:printf("\n合计: ");for (j = 0; j <= 4; j++){printf("\t%d", mx[j]);}printf("\t总计:%d\n完成!", mx[5]);x = MessageBox(NULL, "是否打印条形图?", "提示", MB_YESNO);if (x == 6){clear();printf("销售员:%s 时间段:%d月%d日--%d月%d日\n", sell[people].name, mo + 1, a + 1, th + 1, 1 + b);printf("\n\n\n\n 历史销售统计条形图");for (j = 0; j <= 4; j++){txt(mx[j]);}}x = MessageBox(NULL, "是否打印扇形形图?", "提示", MB_YESNO);if (x == 6){clear();printf("销售员:%s 时间段:%d月%d日--%d月%d日", sell[people].name, mo + 1, a + 1, th + 1, 1 + b);printf(" \t销售扇形图");sxt(mx[0], mx[1], mx[2], mx[3], mx[4]);}}/************************************************************函数名:txt(zx)*描述:绘制折线图*入口参数:zx;*出口参数:无;******************************************************************/void txt(zx){static int i = 1;float sum;HWND hwnd;//窗口句柄HANDLE hOut;HDC hdc, hdc1;HPEN ypn, p_pn, p1_pn, p2_pn, p3_pn, p4_pn, p5_pn;HPEN hPen, hOldPen; //画笔HBRUSH hBrush, hOldBrush; //画刷hwnd = GetConsoleWindow();hdc = GetDC(hwnd);hOut = GetStdHandle(STD_OUTPUT_HANDLE);//得到标准的输出设备句柄(显示器等) ypn = CreatePen(PS_SOLID, 5, RGB(0, 200, 255));p_pn = CreatePen(PS_DASHDOTDOT, 1, RGB(255, 0, 0));p1_pn = CreatePen(PS_SOLID, 15, RGB(255, 0, 0));p2_pn = CreatePen(PS_SOLID, 15, RGB(0, 255, 0));p3_pn = CreatePen(PS_SOLID, 15, RGB(0, 0, 255));p4_pn = CreatePen(PS_SOLID, 15, RGB(255, 255, 0));p5_pn = CreatePen(PS_SOLID, 15, RGB(255, 0, 255));if (i == 1){hPen = CreatePen(PS_SOLID, 1, RGB(255, 0, 0)); //画笔hOldPen = (HPEN)SelectObject(hdc, hPen);hBrush = CreateHatchBrush(HS_CROSS, RGB(0, 100, 0)); //方格刷hOldBrush = (HBRUSH)SelectObject(hdc, hBrush);RoundRect(hdc, 20, 170, 530, 350, 5, 5); //画矩形}if (i == 1){SelectObject(hdc, p1_pn);}else if (i == 2){SelectObject(hdc, p2_pn);}else if (i == 3){SelectObject(hdc, p3_pn);}else if (i == 4){SelectObject(hdc, p4_pn);}else SelectObject(hdc, p5_pn);MoveToEx(hdc, i * 100, 344, NULL);LineTo(hdc, i * 100, 350 - zx * 30);SelectObject(hdc, p_pn);LineTo(hdc, 20, 350 - zx * 30);i++;SetTextColor(hdc, RGB(255, 0, 0));////设颜色TextOut(hdc, 1, 320, TEXT("1"), 1);//输出文本TextOut(hdc, 2, 290, TEXT("2"), 1);//输出文本TextOut(hdc, 2, 260, TEXT("3"), 1);//输出文本TextOut(hdc, 2, 230, TEXT("4"), 1);//输出文本TextOut(hdc, 2, 200, TEXT("5"), 1);//输出文本TextOut(hdc, 85, 360, TEXT("牛奶"), 4);//输出文本TextOut(hdc, 185, 360, TEXT("西瓜"), 4);//输出文本TextOut(hdc, 285, 360, TEXT("苹果"), 4);//输出文本TextOut(hdc, 385, 360, TEXT("白菜"), 4);//输出文本TextOut(hdc, 485, 360, TEXT("萝卜"), 4);//输出文本SelectObject(hdc, ypn);MoveToEx(hdc, 20, 170, NULL);LineTo(hdc, 20, 350);LineTo(hdc, 530, 350);ReleaseDC(hwnd, hdc);ReleaseDC(hwnd, hdc1);}/************************************************************函数名:sxt(zx)*描述:绘制扇形图*入口参数:g1,g2,g3,g4,g5;//五种商品数量*出口参数:无;******************************************************************/void sxt(g1, g2, g3, g4, g5){int sellsum = 0;//定义弧度统计总数量int time = 0, x = 0, y = 0, radian = 0;//int ex, ey, radius;//定义圆心半径int i, a, b, c, d, cx = 3;int smx1 = 450, smx2 = 500, smx3 = 510, smy = 175;//图解说明位置COORD pos = { 0, 5 };HWND hwnd;HANDLE hOut;HDC hdc;HPEN gpn, rpn, bpn, blue, yellow;hwnd = GetConsoleWindow();hdc = GetDC(hwnd);hOut = GetStdHandle(STD_OUTPUT_HANDLE);//得到标准的输出设备句柄(显示器等)rpn = CreatePen(PS_SOLID, cx, RGB(255, 0, 0));blue = CreatePen(PS_SOLID, cx, RGB(0, 0, 255));bpn = CreatePen(PS_SOLID, cx, RGB(255, 255, 255));gpn = CreatePen(PS_SOLID, cx, RGB(0, 255, 0));yellow = CreatePen(PS_SOLID, cx, RGB(255, 255, 0));sellsum = g1 + g2 + g3 + g4 + g5;a = g1 * 360 / sellsum;b = (g1 + g2) * 360 / sellsum;c = (g1 + g2 + g3) * 360 / sellsum;d = (g1 + g2 + g3 + g4) * 360 / sellsum;radius = 140;//半径ex = 240;ey = 240;time = 1;SelectObject(hdc, gpn);while (radian <= a){y = radius*sin(radian / 180.0*3.14);x = radius*cos(radian / 180.0*3.14);MoveToEx(hdc, ex, ey, NULL);LineTo(hdc, ex + x, ey + y);radian++;Sleep(time);}SelectObject(hdc, blue);while (radian <= b){y = radius*sin(radian / 180.0*3.14);x = radius*cos(radian / 180.0*3.14);MoveToEx(hdc, ex, ey + 1, NULL);LineTo(hdc, ex + x, ey + y);radian++;Sleep(time);}SelectObject(hdc, rpn);while (radian <= c){y = radius*sin(radian / 180.0*3.14);x = radius*cos(radian / 180.0*3.14);MoveToEx(hdc, ex, ey, NULL);LineTo(hdc, ex + x, ey + y);radian++;Sleep(time);}SelectObject(hdc, bpn);while (radian <= d){y = radius*sin(radian / 180.0*3.14);x = radius*cos(radian / 180.0*3.14);MoveToEx(hdc, ex, ey, NULL);LineTo(hdc, ex + x, ey + y);radian++;Sleep(time);}SelectObject(hdc, yellow);while (radian <= 359){y = radius*sin(radian / 180.0*3.14);x = radius*cos(radian / 180.0*3.14);MoveToEx(hdc, ex, ey - 2, NULL);LineTo(hdc, ex + x, ey + y);radian++;Sleep(time);}SelectObject(hdc, gpn);MoveToEx(hdc, smx1, smy, NULL);LineTo(hdc, smx2, smy);TextOut(hdc, smx3, smy, TEXT("牛奶"), 4);//输出文本SelectObject(hdc, blue);MoveToEx(hdc, smx1, smy += 40, NULL);LineTo(hdc, smx2, smy);TextOut(hdc, smx3, smy, TEXT("西瓜"), 4);//输出文本SelectObject(hdc, rpn);MoveToEx(hdc, smx1, smy += 40, NULL);LineTo(hdc, smx2, smy);TextOut(hdc, smx3, smy, TEXT("苹果"), 4);//输出文本SelectObject(hdc, bpn);MoveToEx(hdc, smx1, smy += 40, NULL);LineTo(hdc, smx2, smy);TextOut(hdc, smx3, smy, TEXT("白菜"), 4);//输出文本SelectObject(hdc, yellow);MoveToEx(hdc, smx1, smy += 40, NULL);LineTo(hdc, smx2, smy);TextOut(hdc, smx3, smy, TEXT("萝卜"), 4);//输出文本TextOut(hdc, smx3, smy, TEXT("萝卜"), 4);//输出文本SetConsoleCursorPosition(hOut, pos); // 设置光标位置printf("牛奶:%d %%%2.1f西瓜:%d %%%2.1f苹果:%d %%%2.1f白菜:%d %%%2.1f萝卜:%d %%%2.1f", g1, g1*100.0 / sellsum, g2, g2*100.0 / sellsum, g3, g3*100.0 / sellsum, g4, g4*100.0 / sellsum, g5, g5*100.0 / sellsum);ReleaseDC(hwnd, hdc);}/************************************************************函数名:menu()*描述:显示菜单*入口参数:无;*出口参数:无;******************************************************************/void menu(){int d1, d2, d, x, xy = 0, i, k;struct re{int top;int left;int right;int bottom;} rt[7];HWND hwnd;//窗口句柄HDC hdc, dc;//画图设备HBRUSH hbr;COORD pos3_1 = { 1, 4 }, pos2_1 = { 1, 4 }, pos2_2 = { 1, 5 }, pos2_3 = { 1, 6 }, pos2_4= { 1, 7 };INPUT_RECORD mouseRec;DWORD state = 0, res = 0;POINT pt;HPEN pn;HANDLE hOut, hIn;COLORREF c;//颜色c = RGB(0, 255, 0);hbr = CreateSolidBrush(c);hwnd = GetConsoleWindow();//得到控制台窗口句柄hdc = GetDC(hwnd); //得到画图设备句柄dc = GetDC(hwnd);//画刷hbr = CreateSolidBrush(RGB(255, 0, 0));SelectObject(dc, hbr);for (rt[1].left = 20, i = 2; i <= 6; i++) rt[i].left = rt[i - 1].left + 110;for (rt[1].right = 82, i = 2; i <= 6; i++) rt[i].right = rt[i - 1].right + 112; //绘制窗口for (i = 0; i <= 6; i++) rt[i].top = 40;for (i = 0; i <= 6; i++) rt[i].bottom = 60;strcpy(sell[0].name, "1 xx");sell[0].sex = 'M';strcpy(sell[1].name, "2xx");sell[1].sex = 'M';strcpy(sell[2].name, "3xx");sell[2].sex = 'M'; //初始化销售员姓名strcpy(sell[3].name, "4xx");sell[3].sex = 'M';hOut = GetStdHandle(STD_OUTPUT_HANDLE);//得到标准的输出设备句柄(显示器等)hIn = GetStdHandle(STD_INPUT_HANDLE);//得到标准的输入设备句柄(鼠标、键盘等)pn = CreatePen(PS_SOLID, 1, RGB(255, 0, 255));GetClientRect(hwnd, &rt);//得到控制台客户区的大小SelectObject(hdc, pn);//选画笔SetBkMode(hdc, TRANSPARENT);//设置背景保持方式MoveToEx(hdc, 1, 35, NULL);LineTo(hdc, 650, 35);LineTo(hdc, 650, 62);LineTo(hdc, 1, 62);LineTo(hdc, 1, 35);hbr = CreateSolidBrush(c);SelectObject(dc, hbr);for (i = 1; i <= 6; i++)Rectangle(dc, rt[i].left, rt[i].top, rt[i].right, rt[i].bottom);SetTextColor(hdc, RGB(255, 255, 0));////设颜色TextOut(hdc, 280, 10, TEXT("销售管理系统"), 12);//输出文本SetTextColor(hdc, RGB(255, 0, 0));////设颜色TextOut(hdc, 20, 40, TEXT("数据导入"), 8);//输出文本TextOut(hdc, 130, 40, TEXT(" 初始化"), 8);//输出文本TextOut(hdc, 240, 40, TEXT("数据查询"), 8);//输出文本TextOut(hdc, 350, 40, TEXT("删除修改"), 8);//输出文本TextOut(hdc, 460, 40, TEXT("打印报表"), 8);//输出文本TextOut(hdc, 570, 40, TEXT(" 退出"), 8);//输出文本TextOut(hdc, 8, 64, TEXT("若首次使用先点击初始化"), 22);//输出文本ShowWindow(hwnd, SW_SHOW);for (;;) // 循环{//读取输入的信息SetConsoleTextAttribute(hOut, 10);ReadConsoleInput(hIn, &mouseRec, 1, &res);Sleep(100);if (mouseRec.EventType == MOUSE_EVENT){//if (mouseRec.Event.MouseEvent.dwEventFlags == DOUBLE_CLICK) break; // 双击鼠标退出循环if (mouseRec.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED){GetCursorPos(&pt);ScreenToClient(hwnd, &pt);if (pt.x>rt[1].left && pt.x<rt[1].right &&pt.y>rt[1].top &&pt.y<rt[1].bottom){clear();printf("输入数据方式:1手动输入,2文件导入其他:返回");scanf("%d", &x);if (x == 1) input();else if (x == 2){printf("请输入要导入的文件及其位置:");fflush(stdin);gets(filename);daoru();file_choose = 1;//指定文件导入成功的标志printf("导入成功");}continue;}else if (pt.x>rt[2].left && pt.x<rt[2].right &&pt.y>rt[2].top &&pt.y<rt[2].bottom){clear();def();continue;}else if (pt.x>rt[3].left && pt.x<rt[3].right &&pt.y>rt[3].top &&pt.y<rt[3].bottom){clear();printf("输入数据查询方式:1具体查询,2报表输出 ,3历史查询,其他:返回:");scanf("%d", &x);if (x == 1) seek();if (x == 2) baobiao();if (x == 3){printf("请输入销售人员编号:\n1:xx 2:xx 3:xx 4:xx:");scanf("%d", &i);i--;history(i);};continue;}else if (pt.x>rt[4].left && pt.x<rt[4].right &&pt.y>rt[4].top && pt.y<rt[4].bottom){clear();printf("数据修改:1.删除 2.修改,其他:返回:");scanf("%d", &x);if (x == 1) del();else if (x == 2) input();continue;}else if (pt.x>rt[5].left && pt.x<rt[5].right &&pt.y>rt[5].top && pt.y<rt[5].bottom){clear();baobiao();continue;}else if (pt.x>rt[6].left && pt.x<rt[6].right &&pt.y>rt[6].top && pt.y<rt[6].bottom){x = MessageBox(NULL, "确定退出?", "是否退出", MB_YESNO);if (x == 6)break;if (x = 7)continue;}};}}ReleaseDC(hwnd, hdc);}。

C语言进销存管理系统源程序

C语言进销存管理系统源程序

參止头埒秦皇岛分校NorthEastern University At QinHuangDaoC语言课程设计综合性程序设计报告之源程序设计题目:电脑公司进销存管理系统专业:冶金工程学号:8090507姓名:刘欢成绩: ________________设计时间: 2010年11月03日二•开题说明1•问题概要该系统用于处理某电脑公司的设备买入,卖出,仓储等设备账目。

在买入设备时,记录设备的数量型号(如computer,keyboard和价钱,并在库房记录中添加设备,在卖出设备时从库房中减掉该设备,并根据卖出的数量型号和价钱得出每一笔买出的利润。

每个一段时间盘点库房和账目计算出利润等数据。

基本要求:有货物管理(设备的添加,删除,修改)有账目管理可以查询账目清单可以计算年度或月份或季度利润。

2•问题分析:先定义合适的结构体,存储物品信息。

在程序中建立一个文件用于存储,凡进行了进货操作的物品在文件中都有记录,进货时由于尚不知售货时间与售价、利润,故此三项(实际为四项,时间分为年、月两项)暂先赋值为零,待进行售货操作时再输入各数值,其中利润由系统自动计算得出并保存。

账目清单分为已售、仓储两部分,由此可看到所有购进、卖出的货物信息。

月利润查询可查得所输入年月的各类所售货物数量与利润。

功能模块四•源程序#i nclude <stdio.h>#i nclude <stdlib.h>#i nclude vconi o.h>#in clude <dos.h>#i nclude <stri ng.h>#define LEN sizeof(struct object)#defi ne FORMAT1 "\t%-8d%-11s%-9.2f%-6d%-4d\n"#defi ne DATA1 (p1+i)->nu m,(p1+i)->n ame,(p1+i)->i nprice,(p1+i)->i ny ear,(p1+i)->i nmonth#defi ne FORMAT2 "\t%-8d%-11s%-9.2f%-9.2f%-7.2f%-6d%-4d%-6d%-4d\n"#defi ne DATA2 (p1+i)->nu m,(p1+i)->n ame,(p1+i)->inprice,(p1+i)->outprice,(p1+i)->profit,(p1+i)- >iny ear,(p1+i)->inmonth,(p1+i)->outyear,(p1+i)->outm onthvoid in();void show();void modify();void sell();void menu();void mon thearn();struct object{int nu m,i ny ear,i nmon th,outyear,outmo nth;char n ame[10];float in price,outprice,profit;} obj[100];struct object *p1=obj;mai n(){int n;menu();while( n)switch( n){case 1: in( );break;case 2:sell();break;case 3:modify();break;case 4:show();break;case 5:m on thear n( );break;default:break;}getch();menu();sca nf("%d",&n);}}void menu ()// 菜单{system("cls");prin tf("\n\n\n\n\n\n");*************** 菜单************** \n");prin tf("\t\t 0.退出\n ”);printf("\t\t 1.进货操作\n");printf("\t\t 2.售货操作\n");prin tf("\t\t 3•修改信息\n");prin tf("\t\t 4.账目清单\n");prin tf("\t\t 5月利润查询\n");printf("\t\t********************************\n")・}void in() //进货操作{int i,m=0;char ch[2];FILE *p;if( (p=fope n( "data","a+"))==NULL){printf("打不开文件!\n"); //打开文件retur n;}while(!feof(p)){if(fread(&obj[m] ,L EN,1,p)==1)m++; //将数据读入内存}fclose(p);if(m==0)printf("无记录!\n");printf("请确认是否进货?( y/n)");sea nf("%s",ch);while(strcmp(ch,"y")==0||strcmp(ch,"y")==0){printf("请输入设备编号:");sca nf("%d", &obj[m]. nu m);for(i=0;i<m;i++)if((p1+i)->num==obj[m]. num){printf("此号已存在,按任意键继续!");getch();fclose(p);return;}printf("设备名称:");sca nf("%s",obj[m]. name);printf("进价:");sca nf("%f",&obj[m].i nprice);printf("进货年、月:");sea nf("%d%d",&obj[m].i nyear,&obj[m].i nmon th);obj[m].outprice=0;obj[m].outyear=0;(p1+m)->outm on th=0;fope n( "data","w"); //打开文件用以向磁盘导入数据for(i=0;i<=m;i++)fwrite(&obj[i],LEN,1,p);if(fwrite(&obj[m] ,L EN,1,p)!=1){printf("无法保存!");getch();}else{printf("%s 保存成功!\n",obj[m].name);m++;}printf("继续?( y/n)");sca nf("%s",ch);}fclose(p);printf("保存完毕!\n");printf("进价:");}void sell() //售货操作{FILE *p;int snu m,i,j,m=0;char ch[2];if((p二fope n("data","rb"))==NULL){prin tf("无法打开文件! \n"); retur n;}while(!feof(p))if(fread(&obj[m] ,L EN,1,p)==1) m++;fclose(p);if(m==0){printf("无记录! \n"); return;} sca nf("%d", &sn um);//打开文件//读入printf("请输入编号:");for(i=0;i<m;i++)if(snum==(p1+i)->num)break;if(i<m) // 判断1{printf("查得此物品,确认出售? ( y/n) ”);sca nf("%s",ch);if(strcmp(ch,"y")==O||strcmp(ch,"Y")==0) //判断2 {printf("请输入售价:");sca nf("%f",&(p1+i)->outprice);(p1+i)->profit=((p1+i)->outprice-(p1+i)->i nprice);printf("\n请输入售出年、月:");sca nf("%d%d",&(p1+i)->outyear,&(p1+i)->outmo nth);if((p=fope n("data","wb+"))==NULL){printf("打不开文件! \n ”);return;}for(j=0;j<m;j++)if(fwrite(&obj[j],LEN,1,p)!=1) printf("无法保存! \n”); getch();}printf("售货成功!"); fclose(p);retur n;}elsereturn; //判断2}elseprintf("无此物品!");return; 〃判断1}void modify() // 修改信息FILE *p;int i,j,m=O,s num;if((p二fope n( "data","rb"))==NULL) {printf("打不开文件!\n”);return;}while(!feof(p))if(fread(&obj[m] ,L EN,1,p)==1)m++;if(m==0){printf("无记录! \n");fclose(p);return;}printf("请输入欲修改信息的货物编号:");sca nf("%d",&sn um);for(i=0;i<m;i++)if(snum==(p1+i)->num)break;if(i<m){prin tf("找到此货物! \n");printf("\n 名称:”);sea nf("%s",(p1+i)-> name);printf("\n 进价:");sea nf("%f",&(p1+i)->i npriee);printf("\n 进货年、月:");sea nf("%d%d",&(p1+i)->i nyear,&(p1+i)->i nmon th); if((p=fope n("data","wb+"))==NULL){printf("打不开文件! \n");return;}for(j=0;j<m;j++)if(fwrite(&obj[j],LEN,1,p)!=1){printf("无法保存!");getch();}fclose(p);}else return;printf("无此货物!");printf("\t 编号 名称 进价进货时间\t\n"); void show() //账目清单 {FILE *p; int i,m=0;if((p 二fope n( "data","rb"))==NULL)printf("打不开!"); while(!feof(p))if(fread(&obj[m] ,L EN,1,p)==1)m++;fclose(p);printf("已售\n\t 编号 名称进价 售价 利润间出售时间\t\n");for(i=0;i<m;i++) {if((p1+i)->profit!=0)printf(FORMAT2,DA TA2);}printf("仓储 \n"); for(i=0;i<m;i++)进货时{if((p1+i)->profit==0)prin tf(F0RMAT1,DATA1);}} void mon thearn()〃月利润{FILE *p;int m=0,s=0,a=0,b=0,c=0,d=0,y,z;float sum1=0,sum2=0,sum3=0,sum4=0;if((p=fope n( "data","rb"))==NULL){printf("打不开文件! \n");retur n;} //打开文件while(!feof(p))if(fread(&obj[m] ,L EN,1,p)==1)m++;fclose(p); //将数据读入内存printf("请输入欲查询的年份、月份:");sea nf("%d%d", &y,& z);for(s=0;s<m;s++){if((strcmp(obj[s].name,"zhuji")==0)&&(y==obj[s].outyear)&&( z==obj[s].outm on th)) {a++;sum1+=obj[s].profit;}if((strcmp(obj[s]. name,"xianshiqi")==0)&&(y==obj[s].outyear)&&( z==obj[s].outm on th)){b++;sum2+=obj[s].profit;}if((strcmp(obj[s]. name,"jianpan ”)==0)&&(y==obj[s].outyear)&&( z==obj[s].outmo nth))c++;sum3+=obj[s].profit;if((strcmp(obj[s].name,"shubiao")==0)&&(y==obj[s].outyear)&&( z==obj[s].outmo nth)) {d++;sum4+=obj[s].profit;}}printf("本月共售出\n");printf("\t 主机%d 台,总利润%7.2f 元\n",a,sum1);printf("\t 显示器%d 台,总利润%7.2f 元\n",b,sum2);printf("\t 键盘%d 台,总利润%7.2f 元\n",c,sum3);printf("\t 鼠标%d 台,总利润%7.2f 元\n",d,sum4);。

C语言程序课程设计报告商品进销存管理程序

C语言程序课程设计报告商品进销存管理程序

一题目及运行说明商品进销存管理程序1、题目描述设计一个商品进销管理程序,该程序具有以下功能:(1)录入商品信息;(2)给定商品编号,修改该商品信息;(3)给定商品编号,删除该商品信息;(4)录入商品的进货和销售信息;(5)给定商品编号或商品名,查看该商品及库存信息;(6)统计功能:提供一些统计各类信息的功能。

2、题目要求(1)按照分析、设计、编码、调试和测试过程完成应用程序;(2)学习并使用流程图等工具,并在撰写报告中使用;(3)程序的各项功能在程序运行时,以菜单形式选择并执行;(4)要求用户输入数据时,要给出清晰、明确的提示,包括:输入数据的内容、格式及其结束方式等(5)所有的信息存储在一个文件或多个中,并实现文件读写操作。

(6)程序中用链表存放商品及进销存信息并实现增删减功能。

3、提示(1)提醒事件信息可以设计一个结构体类型(2)自己构思并增加的除规定功能之外的新功能,酌情加分(1)程序中主要变量Struct goods *head 结构体指针Int n,k struct goods {int nu mber; char n ame[20];int shumu;float jiage;struct goods *n ext;};int n,k;struct goods *head;等一些变量。

(2)数据输入的形式和输入值的范围字符不超过20位整型变量输入大于0浮点型变量也大于0商品编号为四位整数(3)数据输入的形式按程序运行的提示操作※(4)程序所能达到的功能及出错处理该程序具有以下功能:(1)录入商品信息;(2)给定商品编号,修改该商品信息;(3)给定商品编号,删除该商品信息;(4)录入商品的进货和销售信息;(5)给定商品编号或商品名,查看该商品及库存信息(6)统计功能:提供一些统计各类信息的功能。

二程序设计思路根据要求首先设计一个结构体类型,设计好界面,设计好主函数。

程序各功能通过调用子函数来实现用switch来实现菜单的选择一切数据信息通通存在文件中,并实现文件读写操作。

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

C语言课程设计
综合性程序设计报告之源程序
设计题目:电脑公司进销存管理系统
专业:冶金工程
学号:8090507
姓名:刘欢
成绩: ____________
设计时间: 2010年 11月 03 日
二.开题说明
1.问题概要
该系统用于处理某电脑公司的设备买入,卖出,仓储等设备账目。

在买入设备时,记录设备的数量型号(如computer,keyboard)和价钱,并在库房记录中添加设备,在卖出设备时从库房中减掉该设备,并根据卖出的数量型号和价钱得出每一笔买出的利润。

每个一段时间盘点库房和账目计算出利润等数据。

基本要求:
有货物管理(设备的添加,删除,修改)
有账目管理
可以查询账目清单
可以计算年度或月份或季度利润。

2.问题分析:
先定义合适的结构体,存储物品信息。

在程序中建立一个文件用于存储,凡进行了进货操作的物品在文件中都有记录,进货时由于尚不知售货时间与售价、利润,故此三项(实际为四项,时间分为年、月两项)暂先赋值为零,待进行售货操作时再输入各数值,其中利润由系统自动计算得出并保存。

账目清单分为已售、仓储两部分,由此可看到所有购进、卖出的货物信息。

月利润查询可查得所输入年月的各类所售货物数量与利润。

三.功能模块
四.源程序
#include <>
#include <>
#include <>
#include <>
#include <>
#define LEN sizeof(struct object)
#define FORMAT1 "\t%-8d%-11s%%-6d%-4d\n"
#define DATA1 (p1+i)->num,(p1+i)->name,(p1+i)->inprice,(p1+i)->inyear,(p1+i)->inm onth
#define FORMAT2 "\t%-8d%-11s%%%%-6d%-4d%-6d%-4d\n"
#define DATA2 (p1+i)->num,(p1+i)->name,(p1+i)->inprice,(p1+i)->outprice,(p1+i)->p rofit,(p1+i)->inyear,(p1+i)->inmonth,(p1+i)->outyear,(p1+i)->outmon
th
void in();
void show();
void modify();
void sell();
void menu();
void monthearn();
struct object
{
int num,inyear,inmonth,outyear,outmonth;
char name[10];
float inprice,outprice,profit;
} obj[100];
struct object *p1=obj;
main()
{
int n;
menu();
while(n)
{
switch(n)
{
case 1: in();break;
case 2:sell();break;
case 3:modify();break;
case 4:show();break;
case 5:monthearn();break;
default:break;
}
getch();
menu();
scanf("%d",&n);
}
}
void menu()出\n");
printf("\t\t 1.进货操作\n");
printf("\t\t 2.售货操作\n");
printf("\t\t 3.修改信息\n");
printf("\t\t 4.账目清单\n");
printf("\t\t 5.月利润查询\n");
printf("\t\t********************************\n");
}
void in() um);
for(i=0;i<m;i++)
if((p1+i)->num==obj[m].num)
{
printf("此号已存在,按任意键继续!");
getch();
fclose(p);
return;
}
printf("设备名称:");
scanf("%s",obj[m].name);
printf("进价:");
scanf("%f",&obj[m].inprice);
printf("进货年、月:");
scanf("%d%d",&obj[m].inyear,&obj[m].inmonth);
obj[m].outprice=0;obj[m].outyear=0;(p1+m)->outmonth=0;
fopen("data","w"); ame);
m++;
}
printf("继续(y/n)");
scanf("%s",ch);
}
fclose(p);
printf("保存完毕!\n");
}
void sell() ame,"zhuji")==0)&&(y==obj[s].outyear)&&(z==obj[s].outmonth))
{
a++;
sum1+=obj[s].profit;
}
if((strcmp(obj[s].name,"xianshiqi")==0)&&(y==obj[s].outyear)&&(z ==obj[s].outmonth))
{
b++;
sum2+=obj[s].profit;
}
if((strcmp(obj[s].name,"jianpan")==0)&&(y==obj[s].outyear)&&(z==obj [s].outmonth))
{
c++;
sum3+=obj[s].profit;
}
if((strcmp(obj[s].name,"shubiao")==0)&&(y==obj[s].outyear)&&(z==obj [s].outmonth))
{
d++;
sum4+=obj[s].profit;
}
}
printf("本月共售出\n");
printf("\t主机 %d台,总利润 % 元\n",a,sum1);
printf("\t显示器 %d台,总利润 % 元\n",b,sum2);
printf("\t键盘 %d台,总利润 % 元\n",c,sum3);
printf("\t鼠标 %d台,总利润 % 元\n",d,sum4);
}。

相关文档
最新文档