c 校园超市商品信息管理系统课程设计说明书 含源代码
- 格式:docx
- 大小:982.02 KB
- 文档页数:26
高级语言程序设计(1)课程设计专业数学与应用数学班级1001 学号201001030104姓名张瑶完成日期2011.06.22 指导教师:王小燕1.程序设计说明书【设计题目】大学生超市商品信息管理系统【问题描述】大学生超市有N种商品,每种商品的信息用该软件通过键盘敲入并以文本文件方式存放在磁盘,内容为五列:商品编号、商品名称、商品产地、商品数量、商品单价。
编写一个程序,管理超市物品信息情况。
【软件功能】1. 通过此软件可以直接录入每种商品的信息并将其自动保存到磁盘上;2. 可以对已录入每种商品的信息进行修改,并且修改完成后会将更改后的信息情况自动保存到原磁盘文件中;3. 可以进行商品信息查询以及浏览。
【算法思想】构造一个结构体类型,其成员包括五项:3个字符型数组,分别存放商品编号、商品名称、商品产地;1个整型变量,存放商品数量;1个浮点型变量,存放商品单价。
录入各商品信息时,通过循环语句将商品信息输入到结构体中并写入文本文件中,并存入磁盘。
修改各物品信息时,先将文件读出到结构体中,通过字符的比较查找所修改的商品所在处,如果没有找到则输出警告语句,找到后则通过输入输出函数进行修改,并将修改过后的各个商品信息写入文本文件中,并存入磁盘。
商品信息浏览时,先将文件读出到结构体中,如果文件不存在则输出警告语句,否则通过循环语句和输出函数将结果显示在屏幕上。
商品信息查询时,先将文件读出到结构体中,如果文件不存在则输出警告语句,否则通过输入函数直接输入商品货号,通过条件语句找出该商品货号信息并将输出结果显示在屏幕上。
【模块划分及调用关系】main 函数分别调用: input(); //新购物品录入 correct(); //物品信息修改 lookup(); //物品信息查询 scan(); //物品信息浏览 quit(); //程序退出input 函数调用: save(); //数据存储correct 函数调用: save(); //数据存储scan 函数调用: readfile(); //读文件【模块流程图】main函数input函数correct函数lookup函数scan函数quit函数【程序使用方法】(1)执行程序,按照界面提示进行选择。
课程设计课程设计名称:高级语言程序设计专业班级:计算机科学与技术0802班学生姓名:李旭学号: 2指导教师: X艳峰课程设计时间:2009年7月2号计算机科学与技术专业课程设计任务书1 需求分析:随着现代生活质量的提高,超市这种便利的服务开始走进我们的生活,同时随着超市涌入我们的生活,如何更便利的对超市进行系统和有序的操作,成为了我们需要考虑的问题,本程序运用C语言程序设计了一个超市管理系统。
关系系统的的功能主要有新购物品入库、物品信息删除、物品信息修改、物品信息查询、物品信息浏览功能,在相应的硬盘上面进行存盘以防止部分数据的丢失。
为了更加人性化使用此管理系统,还在MENU选项总添加了系统颜色设置功能,使用户可以根据自己的喜好修改操作界面。
2 概要设计(1)数据结构依据给定的物品信息和数据形式,数组必须用结构体实现。
结构类型的层次结构:struct ima{int id;char name[20];char produce[30];int number;float price;};(2)模块划分依据程序的结构反和功能,遵照“自顶而下”的原则,描述该程序的层次结构图一显示了该程序的层次结构,共 5层:如下图:图一图一的层次结构(3)原函数清单:1、创建函数void chushihua()2、增加物品函数Tianjia();3、删除物品信息函数Shanchu();4、修改物品信息函数Xiugai();5、查询物品信息函数Chazhao();6、浏览物品信息函数Liulan();7、系统颜色设置函数yanseshezhi();8、应用程序退出函数Jieshu();3 运行环境:Win2003, WinXP, Win2000, NT, WinME, Win9X4 开发工具和编程语言:编程语言:C语言开发工具:microsoft visual C++ 6.05详细设计:1、结构体变量的定义:struct ima{int id;char name[20];char produce[30];int number;float price;};3、文件的初始化:void chushihua(){FILE *fp;struct ima i={1,"花生牛奶","XXXX",1200,2.5};fp=fopen("ima.dat","w");if(fp==NULL){printf("\t\t\t系统错误,请重试........");exit(0);}fwrite(&i,sizeof(struct ima),1,fp);fclose(fp);}4、欢迎菜单(主函数):void main(){printf("\n\n");system("color 1a");printf("\t\3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3\n");printf("\t\3 \3\n");printf("\t\3 \3\n");printf("\t\3 欢迎使用 \3\n");printf("\t\3 \3\n");printf("\t\3 \3\n");printf("\t\3 超市库存管理系统 \3\n");printf("\t\3 按任意键继续 \3\n");printf("\t\3 \3\n");printf("\t\3 \3\n");printf("\t\3 \3\n");printf("\t\3 \3\n");printf("\t\3 \3\n");printf("\t\3 \3\n");printf("\t\3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3\3 \3 \3 \3 \3 \3");getch();system("cls");menu();chushihua();menu();}5、选择菜单void menu(){int choice;printf("\n∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞【超市库存管理系统】∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞\n");printf("--------------------------------系统菜单显示如下--------------------------------");printf("\n\t①=====================【新购物品入库】\n");printf("\n\t②=====================【物品信息删除】\n");printf("\n\t③=====================【物品信息修改】\n");printf("\n\t④=====================【物品信息查询】\n");printf("\n\t⑤=====================【物品信息浏览】\n");printf("\n\t⑥=====================【系统颜色设置】\n");printf("\n\t⑦=====================【应用程序退出】\n");printf("\n\t请输入您要选择的菜单......");scanf("%d",&choice);switch(choice){case 1:Tianjia();break;case 2:Shanchu();break;case 3:Xiugai();break;case 4:Chazhao();break;case 5:Liulan();break;case 6:yanseshezhi();break;case 7:Jieshu();break;default:printf("\n\t\t\t\t\t输入无效,请您重新输入......");getch();system("cls");menu();}}6、新购物品入库函数:int panduanID(int id) /*判断所输编号是否已存在*/{FILE *fp;struct ima i;fp=fopen("ima.date","r");if(fp==NULL){printf("\t\t\t系统错误,请您重试........");exit(0);}fread(&i,sizeof(struct ima),1,fp);while(!feof(fp)){if(i.id==id){fclose(fp);return 1;break;}fread(&i,sizeof(struct ima),1,fp);}fclose(fp);return 0;}void Tianjia(){ struct ima i;char choice;FILE *fp;fp=fopen("ima.date","ab");if(fp==NULL){printf("\t\t\t系统错误,请您重试........");exit(0);}labID:printf("\n\t请您输入要入库物品的信息...\n");printf("\t\t\t\t 物品的编号:");scanf("%d",&i.id);if(panduanID(i.id)==1){printf("\t\t\t\t此编号已被使用,请您重新输入......");goto labID;}printf("\t\t\t\t 物品的名称:");scanf("%s",);printf("\t\t\t\t 物品的生产地:");scanf("%s",i.produce);printf("\t\t\t\t 物品的数量:");scanf("%d",&i.number);printf("\t\t\t\t 物品的单价:");scanf("%f",&i.price);fwrite(&i,sizeof(struct ima),1,fp);fclose(fp);printf("\t\t\t\t\t\t 物品信息已入库成功!!!\n");printf("\n您想继续吗?(y/n)");scanf(" %c",&choice);if(choice=='Y'||choice=='y'){Tianjia();}else{system("cls");menu();}}7、物品信息删除函数:void Shanchu(){ struct ima i[1000];struct ima temp;int delID;char choice;int index=0;int j=0;FILE *fp;fp=fopen("ima.date","r");if(fp==NULL){printf("\t\t\t系统错误,请您重试........");exit(0);}fread(&temp,sizeof(struct ima),1,fp);while(!feof(fp)){i[index]=temp;index++;fread(&temp,sizeof(struct ima),1,fp);}fclose(fp);printf("\n\t请输入要删除的物品的编号:");scanf("%d",&delID);fopen("f:\\ima.date","w");if(fp==NULL){printf("\t\t\t系统错误,请您重试........");exit(0);}for( j=0;j<index;j++){if(i[j].id!=delID){fwrite(&i[j],sizeof(struct ima),1,fp);}}fclose(fp);printf("\t\t\t\t\t物品信息已清除!!!\n");printf("\n您想继续吗?(y/n)");scanf(" %c",&choice);if(choice=='Y'||choice=='y'){Shanchu();}else{system("cls");menu();}}8、物品信息修改函数:void Xiugai(){ int index=0;int ID,j;char choice;struct ima i[1000];struct ima temp;FILE *fp;fp=fopen("ima.dat","r");if(fp==NULL){printf("\t\t\t系统错误,请您重试........");exit(0);}fread(&temp,sizeof(struct ima),1,fp);while(!feof(fp)){i[index]=temp;index++;fread(&temp,sizeof(struct ima),1,fp);}fclose(fp);fp=fopen("ima.dat","w");if(fp==NULL){printf("\\t\t\t系统错误,请您重试........");exit(0);}printf("\n\t请输入要修改的信息的物品的编号:"); scanf("%d",&ID);for(j=0;j<=index-1;j++){if(i[j].id!=ID){fwrite(&i[j],sizeof(struct ima),1,fp);}else{printf("\t\t物品名称修改为:");scanf("%s",i[j].name);printf("\t\t物品生产地修改为:");scanf("%s",i[j].produce);printf("\t\t物品数量修改为:");scanf("%d",&i[j].number);printf("\t\t物品单价修改为:");scanf("%f",&i[j].price);}}fclose(fp);printf("\t\t\t\t物品信息已修改......");printf("\n您想继续吗?(y/n)");scanf(" %c",&choice);if(choice=='Y'||choice=='y'){Xiugai();}else{system("cls");menu();}}9、物品信息查询函数:void Chazhao(){FILE *fp;int findID;char choice;struct ima i;fp=fopen("ima.date","r");if(fp==NULL){printf("\t\t\t系统错误,请你重试........");exit(0);}finID:printf("\n\t请输入要查询的物品的编号..");scanf("%d",&findID);fread(&i,sizeof(struct ima),1,fp);while(!feof(fp)){if(i.id==findID){printf("\n\n\t***************物品信息******************");printf("\n\t物品编号...%30d\n",i.id);printf("\n\t-----------------------------------------");printf("\n\t物品名称...%30s\n",);printf("\n\t-----------------------------------------");printf("\n\t生产厂家...%30s\n",i.produce);printf("\n\t-----------------------------------------");printf("\n\t进口数量...%30d\n",i.number);printf("\n\t-----------------------------------------");printf("\n\t批发价格...%30.3f\n",i.price);printf("\n\t-----------------------------------------");printf("\n您想继续吗?(y/n)");scanf(" %c",&choice);if(choice=='Y'||choice=='y'){Chazhao();}else{system("cls");menu();}}fread(&i,sizeof(struct ima),1,fp);}fclose(fp);printf("\t\t\t\t\t输入的编号不存在,请您重新输入......");goto finID;}10、物品信息浏览函数:void Liulan(){ struct ima i;int index=0;char choice;FILE *fp;fp=fopen("ima.date","r");if(fp==NULL){printf("\t\t\t系统错误,请你重试........");exit(0);}fread(&i,sizeof(struct ima),1,fp);while(!feof(fp)){index++;printf("\n\n\t****************物品信息%d*****************",index);printf("\n\t物品编号...%30d\n",i.id);printf("\n\t-----------------------------------------");printf("\n\t物品名称...%30s\n",);printf("\n\t-----------------------------------------");printf("\n\t生产厂家...%30s\n",i.produce);printf("\n\t-----------------------------------------");printf("\n\t进口数量...%30d\n",i.number);printf("\n\t-----------------------------------------");printf("\n\t批发价格...%30.3f\n",i.price);printf("\n\t-----------------------------------------");getch();fread(&i,sizeof(struct ima),1,fp);}fclose(fp);printf("\n您想继续吗?(y/n)");scanf(" %c",&choice);if(choice=='Y'||choice=='y'){Liulan();}else{system("cls");menu();}}11、系统颜色设置函数:void yanseshezhi(){ int a;char choice;system("cls");printf("\n\n\t\t选择以下方案\n");printf("\n\n\t\t1**************红底黑字\n");printf("\n\n\t\t2**************白底黑字\n");printf("\n\n\t\t3**************黑底红字\n");printf("\n\n\t\t4**************绿底蓝字\n");printf("\n\n\t\t5**************黄底紫字\n");printf("\n\n\t\t6**************系统默认\n");printf("\n\n\t\t\t\t\t请挑选您喜爱的颜色<1-5>......");scanf("%d",&a);switch(a){case 1:system("color 40");break;case 2:system("color 70");break;case 3:system("color 04");break;case 4:system("color 21");break;case 5:system("color 65");break;case 6:system("color 1a");break;default:printf("\n\n\t\t\t\t\t输入无效,重新输入......");getch();yanseshezhi();}printf("\n选择的颜色您还满意吗?(y返回主菜单/n继续选择)");scanf(" %c",&choice);if(choice=='Y'||choice=='y'){system("cls");menu();}else{yanseshezhi();}}12、应用程序退出函数:void Jieshu(){char choice;system("cls");printf("\n\n\n\n\n\n\n\t\t\t您确定要退出系统吗?\n\n\n\t\t\t如果您想退出请按'y',其它键将返回主菜单.....");scanf(" %c",&choice);if(choice=='Y'||choice=='y'){system("cls");printf("\n\n\n\n\n\n\n\n\n\n\t\t\t\t谢谢您的使用!!!");printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");}else{system("cls");menu();}}6调试分析:在此程序的编程前,我上网搜集了一些关于超市管理系统的资料,然后大体决定了编程的大致算法,即利用函数贯穿整个程序,通过SWITCH函数进行各个函数的选择;同时,进过查阅,我添加了系统颜色设置功能,同是应用了清屏函数,课下讲程序大致写好后,我上机进行了调试;但却出现了80几处错误,大都是提示 miss“;” before tybe;经过分析,程序算法并无错误;后来询问老师,才发现原来在我所编的程序中,有需要变量时,都是用的时候才定义,但正确的方法是应该在函数的开头就应该将所要用的变量进行生命,否则就出现了编译错误。
超市商品管理系统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语言编程的基本技能,能够运用C语言设计简单的管理系统。
具体目标如下:1.理解C语言的基本语法和数据结构。
2.掌握C语言的函数和数组。
3.理解C语言的面向对象编程思想。
4.能够使用C语言编写简单的程序。
5.能够使用C语言设计简单的管理系统。
6.能够对C语言程序进行调试和优化。
情感态度价值观目标:1.培养学生的编程兴趣,提高学生对计算机科学的热爱。
2.培养学生团队合作的精神,提高学生的沟通协作能力。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、函数和数组、面向对象编程思想,以及C超市管理系统的设计和实现。
具体安排如下:1.C语言的基本语法:介绍C语言的基本语法规则,包括数据类型、变量、运算符等。
2.数据结构:讲解常用的数据结构,如数组、链表、栈和队列等。
3.函数和数组:介绍函数的定义和调用,数组的使用和操作。
4.面向对象编程思想:讲解面向对象编程的基本概念,如类、对象、封装、继承等。
5.C超市管理系统的设计和实现:引导学生运用所学知识,设计和实现一个简单的C超市管理系统。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性。
具体方法如下:1.讲授法:教师讲解C语言的基本语法、数据结构、函数和数组、面向对象编程思想等理论知识。
2.案例分析法:通过分析典型的C超市管理系统的案例,使学生理解和掌握C语言的应用。
3.实验法:安排实验室实践环节,让学生动手编写C语言程序,提高学生的实际操作能力。
4.讨论法:学生进行小组讨论,分享学习心得和经验,培养学生的团队合作精神。
四、教学资源本课程所需的教学资源包括教材、参考书、多媒体资料和实验设备。
具体如下:1.教材:选用权威、实用的C语言教材,为学生提供系统的理论知识学习。
2.参考书:提供丰富的参考书籍,拓展学生的知识面。
3.多媒体资料:制作精美的PPT课件,生动展示C语言编程的原理和技巧。
大连科技学院C语言课程设计题超市商品管理系统学生姓名专业班级指导教师职称所在单位教学部主任完成日期 2014年12月13日课程设计成绩考核表综合评定:(优、良、中、及格、不及格)指导教师签字:2014年12月13 日课程设计任务书1.设计(研究)内容和要求研究内容:设计并编写一个完善的C语言程序,并要求达到以下几点:(1)系统功能要求:系统功能完善,具有简洁的操作流程。
(2)以软件工程理论为指导,按照进度计划,完成系统需求分析、系统的概要设计与系统的详细设计等。
要求能够对系统进行全面测试和调试,及时更正错误,直至系统运行稳定可靠,要求报告中具有系统测试内容。
(3)完成课程设计报告的编辑工作,报告要求在3000字以上,包括综述、系统总体设计、系统实现、运行调试、结论等,参考文献数量至少2篇,论文书写格式按学校规定来写。
(4)工作量要饱满,具备两周课程设计的基本要求,代码行达到300行左右。
原始依据:对学过的C语言程序设计课程进行巩固和加深印象。
了解C语言的基础知识,有一定的语言编程基础,能够熟练运用C语言进行程序设计。
通过用C语言完成的题目的编写与设计,以提高用C语言解决实际问题的能力。
2.系统环境硬件环境:CPU的主频在500MHZ以上,内存在128MB以上软件环境:编程语言及工具:C语言;操作系统:Windows 操作系统3.参考文献[1] 李瑞. 徐克圣. 刘月凡. 戚海英. C程序设计基础[M]. 北京:清华大学出版社.2009.7[2] 布鲁志著.吴丹等译.面向对象的软件工程—构建复杂且多变的系统.清华大学出版社.2002.10[3] 霍顿(美).杨杰(译). 北京:清华大学出版社. 2008[4] 薛圆圆.C语言开发手册. 北京:电子工业出版社. 2011.4[5] 王娣. 安剑. 孙秀梅. 北京:人民邮电出版社.2010目录1 需求分析 (1)1.1 系统概述 (1)1.2 系统运行环境 (1)1.3 功能需求描述 (1)2 总体设计 (2)2.1 开发与设计的总体思想 (2)2.2 系统模块结构 (2)2.3 模块设计 (4)2.4 系统流程描述 (4)2.5 界面设计 (4)3 详细设计 (5)3.1 应用部署图 (6)3.2 查询功能模块 (6)3.3 删除功能模块 (6)3.4 系统维护模块 (6)4 系统测试 (11)总结 (17)参考文献 (18)1 需求分析1.1 系统概述此系统是根据用户的需求,随着社会的发展,琳琅满目的商品在管理方面也是一大问题,超市对商品的管理统计是很重要的。
c校园超市商品信息管理系统课程设计说明书含源代码-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN计算机科学与技术教研室课程设计说明书(2015-2016学年第二学期)注:成绩均用百分制。
总成绩=平时成绩*20%+报告成绩*40%+演示与答辩成绩*40%设计题目:校园超市商品信息管理系统1.课程设计目的本系统的目的在于,可以很好的管理超市商品与销售员之间的关系,使得系统的功能和用途更加的全面和实用,这样两个和在一起可以避免用户使用起来的麻烦,使得可以更好的方便于使用者。
本课程设计的目的就是要通过一次集中的强化训练,能及时巩固已学的知识,补充未学的但又必要的内容。
进行课程设计目的在于加深对程序设计基础理论和基本知识的理解,促进理论与实践的结合,进一步提高程序设计能力。
具体目的如下:(1)更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。
(2) 培养综合运用所学知识独立完成课程设计的能力。
(3) 培养勇于探索、严谨推理、实事求是、有错必改、用实践来检验理论,全方位考虑问题等科学技术人员应具备的素质。
(4) 可以运用自己所学的知识在系统的实现。
2、课程设计正文2.1系统分析从经济、技术、法律、操作四方面的分析可以看出,本系统的开发时机成熟。
从多种角度考虑,都是可行的,采用本系统,能够使整个超市内部所有的信息工作简化、提高工作效益。
由于采用统一的数据信息,使相关资料能够查询所需要的数据、资料及其它信息,使信息快速高效运行。
2.1.2 需求分析该设计是通过计算机设计程序软件来实现校园超市商品信息管理系统的基本业务,商品共包含以下信息项:商品编号、商品名称、商品进货数目、商品销售数目、商品剩余库存数目、商品单价、商品产地、商品销售额等;主要功能包括:创建商品信息文件,增加、删除、修改商品信息,销售商品、通过关键字、厂家名称或者编号来查找商品,按照不同的条件对商品信息进行统计工作。
苏州科技学院二○一三~二○一四学年第一学期电子与信息工程系课程设计报告书课程名称:程序设计基础实践班级:学号:姓名:指导教师:二○一三年十二月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、价格运用“冒泡法”进行升序排序。
沈阳航空工业学院课程设计任务书院系:材料科学与工程学院专业:材料成型及控制工程班级:04110201 学号:2010041102037 题目:超市购物系统一、课程设计时间2011~2012第2学期第16周,共计1周,20学时。
二、课程设计内容用C语言编写软件完成以下任务:1超市的商品保存在file37中;2进货:可以添加商品信息;3卖出商品;该商品数量减少:4 统计一天的销售额:三、课程设计要求1. 程序质量:✧贯彻结构化的程序设计思想。
✧用户界面友好,功能明确,操作方便。
用户界面中的菜单至少应包括显示商品信息、购物、统计等项。
✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。
2. 课程设计说明书:课程结束后,上交课程设计说明书和源程序。
课程设计说明书的格式和内容参见提供的模板。
四、指导教师和学生签字指导教师:________ 学生签名:________五、说明书成绩六、教师评语目录一、需求分析 (1)二、程序流程图 (2)二、程序流程图 (5)四、技术要点 (8)五、个人总结 (13)六、参考文献 (13)七、源程序 (13)一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为5个模块,其中每一个模块对应一个函数,他们的功能分别是:录入并保存超市商品信息函数(add),添加商品信息函数(putin),顾客购买商品函数(que),超市商品信息查询函数(show),商品销售额的统计函数(sum)。
1、录入并保存超市商品信息函数主要实现程序最初运行时商品信息的录入;2、添加商品信息函数主要实现程序运行中商品信息的添加;3、顾客购买商品函数实现的功能是按照商品号码对商品的数据记录进行删除;4、超市商品信息查询函数允许按照商品号对超市的各种商品信息进行查询;5、商品销售额查询可以直接查看当日的销售额:每一个商品记录都包含号码,名称,数量,价格。
在程序当中,将商品记录类型定义为结构体类型,添加以及追加的商品信息直接写入D盘的file37.dat文件中,其他函数每次对商品记录的访问,其数据来源都是file37.dat文件,这样做不但可以保证商品数据的一致性,而且可以对商品数据进行永久保存,保证每次运行程序都可以采用原来的数据,用一个数据库来存储所有数据,保证数据不会丢失。
超市管理系统本设计运用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语言程序设计超市管理系统目录第一章课程设计目的要求设计目的 (3)设计要求 (3)设计思路 (3)第二章课程设计任务内容课程设计题目 (3)课程设计任务 (4)设计内容 (4)各组员任务 (4)第三章详细设计说明系统模块图 (4)主要函数定义 (5)主函数 (5)其他函数 (7)结构体的建立和文件的使用 (8)结构体的建立 (8)文件的使用 (9)第四章课程设计心得与体会 (10)附录·程序源代码参考文献第一章课程设计目的要求设计“超市管理系统”的主要目的是锻炼学生综合运用所学的 C 语言程序设计知识的能力,独自利用 C 语言知识编写承训解决实际问题的能力,培养同学严谨的工作态度和良好的程序设计习惯,让同学们认识到必须重视实践环节,多读程序,多编写程序,多上机实践。
进一步培养结构化程序设计的思想,加深对高级语言要素和控制结构的理解。
通过课程设计的训练,学生能够了解程序设计的基本开发过程,掌握编写、调试和测试 C 语言程序的基本过程,掌握程序设计的技巧的大体流程。
本次程序设计主要侧重于知识的运用,把平时学到的运用到实践中去。
设计目标:1.熟悉c语言的编译连接和运行过程。
2.掌握c语言的数据类型,熟悉整型、实型、字符型变量的定义方式及如何给它们赋值。
3.掌握if语句及switch语句的运用方法及嵌套应用方法。
4.掌握实现循环结构的三种语句while、 do-while.、for 的使用。
5.掌握函数的定义方法和调用方法。
6.能够采用模块化思想调试程序。
7.指针和文件的使用,结构体的使用设计要求:1. 源程序要有适当的注释,使程序容易阅读。
2. 必须用结构体和文件等数据结构。
3. 程序的运行结果要求使用文件作备份。
4. 至少输出一份报表,鼓励自行增加新功能。
第二章课程设计任务内容课程设计题目超市管理系统课程设计任务系统为超市管理系统,在此系统当中需要用到许多函数,包括系统函数以及自定义的函数,在这个系统当中,总共分为五个模块:管理员登陆、客户信息管理、商品管理、购物结算、销售结算。
C语言程序设计超市管理系统目录第一章课程设计目的要求1.1设计目的 (3)1.2 设计要求 (3)1.3设计思路 (3)第二章课程设计任务内容2.1课程设计题目 (3)2.2课程设计任务 (4)2.2.1 设计内容 (4)2.2.2 各组员任务 (4)第三章详细设计说明3.1 系统模块图 (4)3.2 主要函数定义 (5) (5)3.3结构体的建立和文件的使用 (8)3.3.1 结构体的建立 (8)第四章课程设计心得与体会 (10)附录·程序源代码参考文献第一章课程设计目的要求设计“超市管理系统”的主要目的是锻炼学生综合运用所学的 C 语言程序设计知识的能力,独自利用 C 语言知识编写承训解决实际问题的能力,培养同学严谨的工作态度和良好的程序设计习惯,让同学们认识到必须重视实践环节,多读程序,多编写程序,多上机实践。
进一步培养结构化程序设计的思想,加深对高级语言要素和控制结构的理解。
通过课程设计的训练,学生能够了解程序设计的基本开发过程,掌握编写、调试和测试 C 语言程序的基本过程,掌握程序设计的技巧的大体流程。
本次程序设计主要侧重于知识的运用,把平时学到的运用到实践中去。
1.1 设计目标:1.熟悉c语言的编译连接和运行过程。
2.掌握c语言的数据类型,熟悉整型、实型、字符型变量的定义方式及如何给它们赋值。
3.掌握if语句及switch语句的运用方法及嵌套应用方法。
4.掌握实现循环结构的三种语句while、 do-while.、for 的使用。
5.掌握函数的定义方法和调用方法。
6.能够采用模块化思想调试程序。
7.指针和文件的使用,结构体的使用1.2 设计要求:1. 源程序要有适当的注释,使程序容易阅读。
2. 必须用结构体和文件等数据结构。
3. 程序的运行结果要求使用文件作备份。
4. 至少输出一份报表,鼓励自行增加新功能。
第二章课程设计任务内容2.1 课程设计题目超市管理系统2.2 课程设计任务系统为超市管理系统,在此系统当中需要用到许多函数,包括系统函数以及自定义的函数,在这个系统当中,总共分为五个模块:管理员登陆、客户信息管理、商品管理、购物结算、销售结算。
*******************实践教学*******************软件学院(本科)2014年秋季学期计算机应用基础课程设计说明书题目:公司产品管理系统专业班级:2014级软件4班姓名:苏旺春学号:1417700221指导教师:马威成绩:目录1系统分析 (1)1.1课程设计内容 (1)1.2系统功能需求分析 (1)1.3数据结构设计 (2)2系统设计 (3)2.1总体设计 (3)2.2详细设计 (4)2.2.1界面设计 (4)2.2.2各功能模块的设计 (5)3系统编码设计 (11)3.1main 函数 (11)3.2load 函数 (12)3.3creat 创建链表函数 (13)3.4search 函数 (16)3.5add 数 (20)3.6amend 函数 (22)3.7del 函数 (25)3.8purchase 函数 (26)3.9 sales 函数 (28)3.10 print 函数 (29)3.11 save 函数 (33)3.12 menu 函数 (34)4 系统运行 (36)5 总结 (41)1 系统分析1.1 课程设计内容1 设计一商场商品信息管理系统,功能包括:1. 文件操作:可建立、打开、保存、关闭数据文件。
2. 输入商品信息数据:数据包括商品编号、商品名、商品类别、商品数量、商品价格等。
3. 编辑数据:可添加、删除、修改数据。
4. 输入进货、销售信息:输入商品编号、数量完成进货或销售操作。
5. 计算:应在输入进货及销售信息时,自动更改商品数量。
6. 查询:可按商品编号、商品名或类别查询;还可查询需进货的商品。
7. 排序:可按编号、名称或类型排序。
8. 浏览:可浏览输入、查询或排序后的数据。
1.2 系统功能需求分析本系统应具有以下功能:1、文件操作功能:可建立、打开、保存、关闭数据文件。
2、数据输入功能: 数据包括商品编号、商品名、商品类别、商品数量、商品价格等。
《C++程序设计》课程设计说明书超市商品信息管理系统指导教师:XXX设计成员:刘 X王 X赵 X张 X学院:XXXXXXXXXXXXXXX学院班级:XXXX齐齐哈尔大学计算机中心二零零八年九月《C++程序设计》课程设计任务书适用专业:计算机科学与技术设计题目:超市商品信息管理系统一、已知技术参数或设计前提1、中小型超市一般会有上万件商品。
2、每件商品需要记录商品名、条形码、类别、价格、出厂日期等商品的基本信息。
3、除此之外,还需要记录商品的其他相关信息,如生产厂家、供货处代码、厂家网址、厂家电话等。
4、超市商品的相关信息需要存储到文件系统中,同时需要提供对信息的添加、编辑、删除等操作。
5、超市管理员每天会记录购进的商品信息,核销过期的商品等。
二、设计内容及要求1、使用链表结构操作数据,提供创建、插入、删除节点等操作。
2、使用类和结构表示商品信息。
3、实现商品信息的添加、编辑、删除等功能。
4、实现以商品名进行查询和显示所有商品信息的功能。
5、实现使用文本文件保存所有商品信息的存储功能。
三、课程设计工作计划1、确定题目,成立设计小组,做用户需求分析(9月1日-9月5日)2、查阅资料,进行问题分析,制定方案,确定成员分工(9月5日-9月10日)3、根据方案编写程序并进行调试(9月10日-9月25日)4、撰写设计说明书,完成设计(9月25日-10月1日)5、提交设计内容,答辩四、相关教材及参考书目1、C++语言基础教程.吕凤翥编著.清华大学出版社2、C++程序设计教程.钱能编著.清华大学出版社指导教师签字:系主任签字:年月日C++程序设计课程设计目录一、需求分析 (2)二、系统总体设计 (2)三、模块功能实现 (3)四、系统的软硬件环境 (10)五、系统的使用说明 (10)六、结束语 (13)七、参考文献 (14)附录A:程序源代码 (15)附录B:程序调试记录 (18)教师评语 (19)一、需求分析中小型超市采购的商品一般都成千上万件。
计算机科学与技术教研室课程设计说明书(2015-2016学年第二学期)注:成绩均用百分制。
总成绩=平时成绩*20%+报告成绩*40%+演示与答辩成绩*40%设计题目:校园超市商品信息管理系统1.课程设计目的本系统的目的在于,可以很好的管理超市商品与销售员之间的关系,使得系统的功能和用途更加的全面和实用,这样两个和在一起可以避免用户使用起来的麻烦,使得可以更好的方便于使用者。
本课程设计的目的就是要通过一次集中的强化训练,能及时巩固已学的知识,补充未学的但又必要的内容。
进行课程设计目的在于加深对程序设计基础理论和基本知识的理解,促进理论与实践的结合,进一步提高程序设计能力。
具体目的如下:(1)更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。
(2) 培养综合运用所学知识独立完成课程设计的能力。
(3) 培养勇于探索、严谨推理、实事求是、有错必改、用实践来检验理论,全方位考虑问题等科学技术人员应具备的素质。
(4) 可以运用自己所学的知识在系统的实现。
2、课程设计正文系统分析从经济、技术、法律、操作四方面的分析可以看出,本系统的开发时机成熟。
从多种角度考虑,都是可行的,采用本系统,能够使整个超市内部所有的信息工作简化、提高工作效益。
由于采用统一的数据信息,使相关资料能够查询所需要的数据、资料及其它信息,使信息快速高效运行。
需求分析该设计是通过计算机设计程序软件来实现校园超市商品信息管理系统的基本业务,商品共包含以下信息项:商品编号、商品名称、商品进货数目、商品销售数目、商品剩余库存数目、商品单价、商品产地、商品销售额等;主要功能包括:创建商品信息文件,增加、删除、修改商品信息,销售商品、通过关键字、厂家名称或者编号来查找商品,按照不同的条件对商品信息进行统计工作。
在该系统中利用通过类的方式来定义对象以及在类中定义各项的成员函数和数据成员来实现对商品信息的管理。
中小型超市采购的商品一般都成千上万件。
对这些商品进行有效的管理必不可少。
每件商品一般都需要记录商品名、商品编号、产地、价格、出厂日期等商品的基本信息。
除此之外,还需要记录商品的其他相关信息,如生产厂家、进货数量、销售数量、剩余库存数量等。
超市商品的相关信息需要存储到磁盘文件中,一般都需要提供对商品信息的添加、编辑、删除、查找等操作。
超市管理员每天都会记录购进的商品信息,核销过期的商品等。
为了巩固我们所学的C++语言程序设计知识,也为了满足课程设计的要求,我们设计和实现一个小型的超市商品管理系统,提供商品系统的添加、删除、编辑、查找等功能。
同类系统多数使用结构体数组来操作数据,本系统使用类定义对象,以及成员函数和数据成员来完成对增删查改功能的实现,利用链表结构操作数据,提高了数据处理的效率。
(1)分别定义两个类为Supermarket和Supermarketmassage来实现对价格信息、名称信息、数量信息的存储、更正、删除与查询以及其他功能的实现。
(2)初始化功能当系统第一次启动时,系统中没有关于商品的信息,所以要根据商品的类型输入关于商品的一系列信息,把这些信息放在磁盘文件中。
例如:编号、名称、进货总数、销售数目、剩余库存数目、单价、产地、销售额以及生产日期和保质期。
(3)查询功能此时每件商品所包含的信息已经全部在磁盘文件中,所以就要通过一系列的函数来方便使用者查询有关商品的信息,以便更及时地发现商品在销售过程中存在的问题并及时改正或者更新。
输入需要查询的商品名称或者编号,如果搜索到的信息与使用者输入进去的信息相同,则返回此件商品所在的位置,输出商品的各项信息。
反之,如果搜索不到此件商品,则输出无此商品的信息。
(4)修改功能先在磁盘文件中找出是否有该商品,然后提示使用者要进行修改操作的编号,将修改过的商品放到原来那个商品所在的位置,将结果保存到原文件中,就提示使用者按任意字符继续。
(5)销售功能提示使用者输入要进行销售的商品的编号或者名称,通过在函数中搜索,如果系统中有该商品的信息,则提示使用者输入要销售的数量,通过if语句,检查一下输入的数量是否大于库存数量,如果大于库存数量,则提示使用者要重新输入;如果小于库存数量,就将该商品所对应的库存数量减去销售数量,再把剩下的商品数量存入到磁盘文件中,完成了销售功能。
系统设计系统功能结构图如图1所示。
图1 系统功能结构图(1)增加函数的设计该函数实现了对超市商品的增加功能,输入商品的信息,此时磁盘文件中就已经存入了这件商品的信息。
增加函数流程图如图2所示。
图2 增加函数流程图(2)删除函数的设计该函数实现了对超市商品的删除功能,输入商品的生产日期和截止日期,判断是否过期,如果过期就输入这件商品的编号或名称,最后就删除成功。
删除函数流程图如图3所示。
图3 删除函数流程图(3)查找函数的设计该函数实现了对超市商品的查找功能,输入想要查找到商品的编号或名称,如果找到了就显示出来,否则就显示找不到该商品。
查找函数流程图如图4所示。
图4 查找函数流程图(4)修改函数的设计该函数实现了对超市商品信息的修改功能,输入想要修改的商品信息,如果在系统中找到了该商品,则输入该商品修改过的信息,再存入到磁盘文件中去,修改成功。
修改函数流程图如图5所示。
图5 修改函数流程图(5)销售函数的设计该函数实现了对超市商品的销售功能,输入要销售的商品的编号或名称,如果系统中存在该商品信息,则输入要销售的数量,如果小于库存量,则输出销售成功,并将销售过后的剩余库存量存入到磁盘文件中去。
销售函数流程图如图6所示。
图6 销售功能流程图系统实现(1)进入系统进入系统图如图7、图8所示。
图7 进入系统界面图图8 系统菜单图(2)增加界面增加界面图如图9所示。
图9 增加界面图(3)查找界面查找界面图如图10、图11所示。
图10 按名称查找商品界面图图11 按编号查找商品界面图(4)销售界面销售界面图如图12所示。
图12 销售界面图(5)退出系统退出系统界面图如图13所示。
图13退出系统界面图系统测试与维护系统测试(1) void AddItem() /*添加商品信息*/例:input:(商品名称):a output:商品名称:ainput:(商品编号):1001 output:商品编号:1001 input:(进货总数):10 output:进货总数:10input:(销售数目):20 output:销售数目:20input:(剩余库存):10 output:剩余库存:10input:(产地):ss output:产地:ssinput:(单价):10 output:单价:10(2) void Supermarketmassage::RemoveItem() /*删除商品信息*/例:input:(删除商品名称):a output:删除成功(3)void Supermarketmassage::ModifyItem() /*修改商品信息*/例:input:(商品名称):a output:商品名称:ainput:(商品编号):1001 output:商品编号:1001input:(进货总数):10 output:进货总数:10input:(销售数目):20 output:销售数目:20input:(剩余库存):50 output:剩余库存:50input:(产地):ss output:产地:ssinput:(单价):10 output:单价:10(4) void Supermarketmassage::Find() /*查询商品信息*/例:input:(商品名称):a output:商品名称:查找商品名称input:(商品编号):1001 output: 输出商品信息系统测试图如图14、15所示。
图14 系统测试图输入界面图图15 系统测试退出界面图系统维护经过多次的对系统的测试,能够保证系统准确无误的运行,用户可以放心使用。
3、课程设计总结在为期十天的课程设计中,通过完成这次老师布置的任务,体会颇多,收获也很多。
利用设计这次校园超市商品信息管理系统的机会使我比较熟练的掌握了这学期所学习有关c、c++中的一些主要的知识点和应用点。
例如:类和对象的定义、类内数据成员及成员函数的声明和定义、类的实现、构造函数与析构函数的定义等等。
不只是死板的只知道书本上的知识,能够学以致用。
在本次的课程设计中,我不仅仅只学到了利用c++语言来编写程序,还学到了程序开发的一些比较重要的步骤,比如需求分析、总体设计、程序模块设计(包含功能需求、程序代码设计与分析、运行结果等)、对系统的检测和维护等一些中重要的东西。
为整个课程设计中的程序设计模块提供主要思路以及实现功能的主要方法,这个工作说起来简单,却不太容易实现,整体的思路对于能否完成一个比较漂亮的程序是至关重要的,如果最一开始的整体思路都没有明确,或者说我们定下来的主题很难用我们学过的知识去实现,这将会导致以后的一系列工作都无法开展。
所以说,有一个明确的主题是重中之重。
由于我们的人力和所学的知识有限,导致我们此次工作中存在着许多的不足和缺点。
比如,这个系统只能实现简单的增、删、查、改,还有好多的功能不能去实现,比如说打折活动、员工与老板之间的联系、顾客与售货员之间的联系都没有在这个系统中体现出来,这个系统只能体现出来商品与顾客之间的联系,比较单一,纯粹的就是一个单链结构,没有扩散出来。
再比如,这个系统几乎没有亮点可寻,只是普普通通的,规规矩矩的按照学过的或者是从别的书籍中得到的知识来编写的程序,没有让人耳目一新的新颖的地方,创新的东西太少。
其实,我在本次的课程设计中也学到了不少东西,同时也运用到了我们的系统中。
例如:(1)对链表的灵活运用。
链表,是存储数据的一个很方便的工具,简而言之,就是基于链式储存结构下的线性表。
包括单向链表、双向链表以及循环链表。
链表的基本操作包括创建链表、在链表中插入结点、在链表中删除结点、遍历链表中的内容以及销毁链表等。
相对于顺序表来说,它方便进行插入、删除操作,但是,线性表的内容遍历与输出需要从头指针开始。
在这个系统中我们用到了链表的遍历,主要是利用它来查询我们要找的商品信息。
(2)#include <>头文件的应用。
此头文件包含了本程序中的按任意键继续的函数,是库函数。
conio是Console Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比如getch()函数等等。
(3)void ReadFile(istream & in)函数。
它的输入参数是,没有输出。
函数完成的作用是,依次将中的数据读入到变量中。
通过此次课程设计,学到的也不只有这些新知识,对于编程的思想和方法我也颇有感触。