仓库管理系统c语言

合集下载

(完整word版)c语言程序设计超市管理系统

(完整word版)c语言程序设计超市管理系统

实验题目:超市管理系统一、实验目的1.熟悉 c 语言的编译连接和运行过程。

2.掌握 c 语言的数据类型,熟悉整型、实型、字符型变量的定义方式及如何给它们赋值。

3.掌握if 语句及switch 语句的运用方法及嵌套应用方法。

4.掌握实现循环结构的三种语句while 、do-while. 、for 的使用。

5.掌握函数的定义方法和调用方法。

6.能够采用模块化思想调试程序。

二.实验内容1.编写程序并进行调试运行。

2.输入商品资料,并保存于文件。

每件商品包含信息如:商品号、商品名、商品类别、商品总量、商品上限和下限、商品价格、进货日期、生产日期、保质期等。

3.对已存入的商品信息进行更新操作,包括添加一件商品信息、删除某件商品信息和修改商品信息。

4.通过按商品名、商品种类、商品进货量的方式查询商品信息。

5.输入某商品号后对其利润进行统计、对进货价格相同的商品进行统计。

6 对商品的库存量和利润进行排序。

7.最后输出商品信息,供需要时打印。

二、需求分析1.该程序可用于对商品的基本信息的存储、更新、查询、输出、统计、排序等操作,以实现管理者对商品的管理和消费者对商品的了解。

2.其中更新功能包括:添加信息、删除信息、修改信息、可根据需要添加一个或多件商品信息,也可对个别商品信息进行适当的删除或修改。

以便随时更新商品信息。

3.程序中设计的查询功能可根据需要从若干数据中查询某件商品信息,并且可根据三种不同的方法查询:按商品名查询、按商品种类查询和按商品进货量查询。

以满足不同的需要。

四、概要设计1、方案设计对系统进行分析,给出结构图分析:系统要求实现许多的功能,因此遵循结构化程序设计思想来进行本系统的设计—自顶向下、逐步细化,将系统设计任务分解出许多子功能模块进行设计结构图如下:超市管理管理系统查询模块排序模块退出系统退出系统查询模块排序模块统计模块*更新模块*输出信息¥录入信息按商品名查询利润排行库存量排行退出系统第二类商品第一类商品退出系统2 •功能模块说明:对各个模块进行功能的描述(1).输入模块:录入需要管理的商品信息并将信息保存于文件中,以方便日后进行打印、读取、更新等操作。

仓库管理系统源代码

仓库管理系统源代码

仓库管理系统源代码#include#include#include#include#includestruct cangku{int num;char name[20];char introdution[50];float square;};typedef struct cangku Cangku;int Input(Cangku t[]);void List(Cangku t[],int n); void SearchOnName(Cangku t[],int n);int DeleteRecord(Cangku t[],int n); int AlterRecord(Cangku t[],int n); int AddRecord(Cangku t[],int n); void SortOnName(Cangku t[],int n); void SortOnSquare(Cangku t[],int n); void SaveRecord(Cangku t[],int n); int LoadRecord(Cangku t[]); int LoadRecord1(Cangku t[]); void Save(Cangkut[],int n); void Load(Cangku t[],int n); void Load1(Cangku t[]);int Menu_select();void main(){Cangku ck[50];int i,l,length,w=1;int q[4]={5,2,1,0};system("cls");printf("请输入第1个密码:\n");for (i=0;i<4;i++){scanf("%d",&l);system("cls");if(l==q[i])printf("正确,继续输入第%d个密码:.\n",i+2); else{w=0;printf ("输入错误!\n");break;}}while(w){switch(Menu_select()){case 1: length=Input(ck);SaveRecord(ck,length);break;case 2: length=LoadRecord(ck); SearchOnName(ck,length); break;case 3: length=LoadRecord(ck); length=DeleteRecord(ck,length); SaveRecord(ck,length);break;case 4: length=LoadRecord(ck); length=AlterRecord(ck,length); SaveRecord(ck,length);break;case 5: length=LoadRecord(ck); length=AddRecord(ck,length); SaveRecord(ck,length);break;case 6: length=LoadRecord(ck); system("cls");List(ck,length);break;case 7: length=LoadRecord(ck); system("cls");SortOnName(ck,length);SaveRecord(ck,length);break;case 8: length=LoadRecord(ck); system("cls");SortOnSquare(ck,length);SaveRecord(ck,length);break;case 9: length=LoadRecord(ck); system("cls");Save(ck,length);break;case 0: length=LoadRecord1(ck);Load1(ck);system("cls");Load(ck,length);break;case 10: exit(0);}}}int Menu_select(){int c;printf("按任意键进入仓库管理菜单\n");getchar();system("cls");system("color F0");printf(" ******************************仓库管理*******************************\n");printf(" * 1. 录入仓库初始记录 *\n");printf(" * 2. 按仓库名称查找记录 *\n");printf(" * 3. 删除仓库记录 *\n");printf(" * 4. 修改仓库记录 *\n");printf(" * 5. 增加仓库信息 *\n");printf(" * 6. 显示全部记录 *\n");printf(" * 7. 按仓库名称排序*\n");printf(" * 8. 按仓库面积排序*\n");printf(" * 9. 备份*\n");printf(" * 0. 恢复*\n");printf(" * 10. 退出*\n");printf("******************************************************************** *\n");do{printf("\n输入您想要进行的操作选项键(0-10):"); if(scanf("%d",&c)!=1){while(getchar()!='\n')continue;}}while(c<0||c>10);return c;}int Input(Cangku t[]){int i,n;system("cls");printf("\n请输入要输入的仓库数目:\n");scanf("%d",&n);printf("开始输入仓库信息:\n");for(i=0;i<n;i++){system("cls");printf("\n第%d个仓库的编号:",i+1);scanf ("%d",&t[i].num);printf("第%d个仓库的名称:",i+1);scanf ("%s",t[i].name);printf("第%d个仓库的面积:",i+1);scanf ("%f",&t[i].square);printf("第%d个仓库的说明:",i+1);scanf ("%s",t[i].introdution); }return (n);}void List(Cangku t[],int n){int i;printf("******************************************************************** *\n");printf(" ** 编号名称面积说明\n");printf("---------------------------------------------------------------------\n");for(i=0;i<n;i++){printf("%17d%13s%20f%14s\n",t[i].num,t[i].name,t[i].square,t[i].intr odution);}printf("******************************************************************** *\n");printf ("\n");getchar();}void SearchOnName(Cangku t[],int n) {char s[20];int i,flag=0;system("cls");printf("请输入要查找的仓库名称:\n");scanf("%s",s);for(i=0;i<n;i++){if(strcmp(s,t[i].name)==0){flag=1;system("cls");printf("\n\n要查找的仓库信息如下:\n");printf("\n");printf("******************************************************************** *\n");printf(" ** 编号名称面积说明\n");printf("---------------------------------------------------------------------\n");{printf("%17d%13s%20f%14s\n",t[i].num,t[i].name,t[i].square,t[i].intr odution);}printf("******************************************************************** *\n");printf ("\n");}}if(flag==0)printf("要查找的仓库不存在!!\n");getchar();}int DeleteRecord(Cangku t[],int n){char s[20];char ch;int i,j,flag=0;system("cls");printf("请输入要删除的仓库名称\n");scanf("%s",s);for(i=0;i<n;i++){if(strcmp(s,t[i].name)==0){flag=1;system("cls");printf("\n\n要删除的仓库信息如下:\n");printf("\n");printf("******************************************************************** *\n");printf(" ** 编号名称面积说明\n");printf("---------------------------------------------------------------------\n");{printf("%17d%13s%20f%14s\n",t[i].num,t[i].name,t[i].square,t[i].intr odution);}printf("******************************************************************** *\n");printf ("\n");printf("确定删除仓库信息吗?(Y/N)\n"); ch=getchar();ch=getchar();if(ch=='Y'||ch=='y'){for(j=i;j<n-1;j++)t[j]=t[j+1];n--;i--;printf ("删除成功.\n");}}}if(flag==0)printf("要删除的仓库不存在!!\n"); getchar();return n;}int AlterRecord(Cangku t[],int n) { int i,flag=0;char s[20],ch;system("cls");printf("请输入要修改的仓库名称\n");scanf("%s",s);for(i=0;i<n;i++){if(strcmp(s,t[i].name)==0){flag=1;system("cls");printf("\n\n要修改的仓库信息如下:\n");printf("\n");printf("*********************************************************************\n" );printf(" ** 编号名称面积说明\n");printf(" ---------------------------------------------------------------------\n");{printf("%17d%13s%20f%14s\n",t[i].num,t[i].name,t[i].square,t[i].intr odution);}printf("******************************************************************** *\n");printf ("\n");printf("确定修改仓库信息吗,(Y/N)\n");ch=getchar();ch=getchar();if(ch=='y'||ch=='Y'){system("cls");printf("请输入修改后的信息:\n");printf("请输入仓库新的名称:");scanf("%s",t[i].name);printf("请输入%s仓库新的编号:",t[i].name); scanf("%d",&t[i].num);printf("请输入%s仓库新的面积:",t[i].name); scanf("%f",&t[i].square);printf("请输入%s仓库新的说明:",t[i].name); scanf("%s",t[i].introdution);}}}if(flag==0)printf("要修改的仓库不存在~~\n"); getchar();return n;}int AddRecord(Cangku t[],int n) {int i,m;system("cls");printf("\n请输入再增加的记录数:\n"); scanf("%d",&m);printf("开始追加记录\n");for(i=n;i<n+m;i++){ system("cls");printf("\n第%d个仓库的编号:",i+1); scanf("%d",&t[i].num);printf("第%d个仓库的名称:",i+1); scanf("%s",t[i].name);printf("第%d个仓库的面积:",i+1); scanf("%f",&t[i].square);printf("第%d个仓库的说明:",i+1); scanf("%s",t[i].introdution);}return (n+m);}void SortOnName(Cangku t[],int n) {int i,j;struct cangku temp ;for(j=1;j<n;j++)for(i=0;i<n-j;i++)if((strcmp(t[i].name,t[i+1].name))>0) {temp=t[i];t[i]=t[i+1];t[i+1]=temp;}printf("排序成功!!!\n");printf("排序后仓库信息列表如下:\n"); List(t,n);}void SortOnSquare(Cangku t[],int n) {int i,j;struct cangku temp ;for(j=1;j<n;j++)for(i=0;i<n-j;i++)if(t[i].square<t[i+1].square){temp=t[i];t[i]=t[i+1];t[i+1]=temp;}printf("排序成功!!!\n");printf("排序后仓库信息列表如下:\n");List(t,n);}void SaveRecord(Cangku t[],int n) {int i;FILE *fp;if((fp=fopen("record.txt","w"))==NULL) {printf("不能打开文件!\n");exit(1);}for(i=0;i<n;i++){fwrite(&t[i],sizeof(struct cangku),1,fp); }fclose(fp);}int LoadRecord(Cangku t[]){int n=0;FILE *fp;if((fp=fopen("record.txt","a+"))==NULL) {printf("不能打开文件!\n");exit(1);}while(fread(&t[n],sizeof(struct cangku),1,fp)) n++; fclose(fp);printf("从文件中成功读出记录!!!\n");return n;}int LoadRecord1(Cangku t[]) {int n=0;FILE *fp;if((fp=fopen("bkrecord.txt","a+"))==NULL){printf("不能打开文件!\n");exit(1);}while(fread(&t[n],sizeof(struct cangku),1,fp)) n++; fclose(fp);printf("从文件中成功读出记录!!!\n");return n;}void Save(Cangku t[],int n) {int i;FILE *fp;if((fp=fopen("bkrecord.txt","w"))==NULL){printf("不能打开文件!\n");exit(1);}for(i=0;i<n;i++){fwrite(&t[i],sizeof(struct cangku),1,fp);}fclose(fp);printf("备份成功.\n");getchar();}void Load1(Cangku t[]) {int n=0;FILE *fp;if((fp=fopen("bkrecord.txt","a+"))==NULL){printf("不能打开文件!\n");exit(1);}while(fread(&t[n],sizeof(struct cangku),1,fp)) n++; fclose(fp);getchar();}void Load(Cangku t[],int n) {int i;FILE *fp;if((fp=fopen("record.txt","w"))==NULL) {printf("不能打开文件!\n");exit(1);}for(i=0;i<n;i++){fwrite(&t[i],sizeof(struct cangku),1,fp); }fclose(fp);printf("恢复成功.\n");}。

C语言课程设计仓库管理系统

C语言课程设计仓库管理系统

C语言课程设计仓库管理系统一、教学目标本课程旨在通过学习仓库管理系统,让学生掌握C语言编程的基本概念和方法,培养学生具备一定的软件开发能力。

具体的教学目标如下:1.知识目标:(1)理解C语言的基本语法和数据结构;(2)掌握C语言的函数、指针、 arrays等核心概念;(3)熟悉常用的库函数和预处理指令;(4)了解软件开发的基本流程。

2.技能目标:(1)能够使用C语言编写简单的程序;(2)具备基本的代码调试和优化能力;(3)能够独立完成简单的软件项目。

3.情感态度价值观目标:(1)培养学生对计算机科学的兴趣和热情;(2)培养学生良好的编程习惯和团队协作精神;(3)使学生认识到编程对于解决实际问题的价值。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、函数、指针、数组等核心概念,以及软件开发的基本流程。

具体的教学大纲如下:1.C语言的基本语法和数据结构;2.函数、指针和数组的概念及应用;3.常用的库函数和预处理指令;4.软件开发的基本流程;5.综合实例:仓库管理系统的设计与实现。

三、教学方法为了提高教学效果,我们将采用多种教学方法相结合的方式进行教学。

具体包括:1.讲授法:用于讲解C语言的基本语法、数据结构、函数、指针、数组等核心概念;2.案例分析法:通过分析实际案例,使学生更好地理解仓库管理系统的设计与实现;3.实验法:让学生动手编写代码,巩固所学知识,提高编程能力;4.小组讨论法:分组进行讨论,培养学生的团队协作能力和问题解决能力。

四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用权威、实用的C语言教材;2.参考书:提供丰富的C语言编程参考书籍;3.多媒体资料:制作精美的课件,辅助讲解;4.实验设备:提供足够的计算机设备,让学生进行编程实践。

通过本课程的学习,希望学生能够掌握C语言编程的基本概念和方法,为今后的计算机科学学习和软件开发打下坚实基础。

五、教学评估为了全面、客观地评估学生的学习成果,我们将采用多种评估方式相结合的方法。

c语言管理系统设计源代码

c语言管理系统设计源代码

c语言管理系统设计源代码以下是一个简单的C语言管理系统示例,用于管理学生信息。

该系统可以添加、删除、修改和查找学生信息。

c复制代码#include<stdio.h>#include<stdlib.h>#include<string.h>struct student {char name[50];int roll;float marks;};struct student students[100];int count = 0;void add_student() {struct student new_student;printf("Enter name: ");scanf("%s", new_);printf("Enter roll number: ");scanf("%d", &new_student.roll);printf("Enter marks: ");scanf("%f", &new_student.marks);students[count] = new_student;count++;}void delete_student() {int index;printf("Enter index of student to delete: ");scanf("%d", &index);for (int i = index; i < count - 1; i++) {students[i] = students[i + 1];}count--;}void modify_student() {int index;struct student new_student;printf("Enter index of student to modify: "); scanf("%d", &index);printf("Enter new name: ");scanf("%s", new_);printf("Enter new roll number: ");scanf("%d", &new_student.roll);printf("Enter new marks: ");scanf("%f", &new_student.marks);students[index] = new_student;}void find_student() {char name[50];printf("Enter name of student to find: "); scanf("%s", name);for (int i = 0; i < count; i++) {if (strcmp(students[i].name, name) == 0) { printf("Roll number: %d\n", students[i].roll); printf("Marks: %.2f\n", students[i].marks); return;}}printf("Student not found.\n");}int main() {int choice;do {printf("\nMenu:\n");printf("1. Add student\n");printf("2. Delete student\n");printf("3. Modify student\n");printf("4. Find student\n");printf("5. Exit\n");printf("Enter choice: ");scanf("%d", &choice);switch (choice) {case1: add_student(); break;case2: delete_student(); break;case3: modify_student(); break;case4: find_student(); break;case5: exit(0); break; // exit the program here, otherwise the loop will keep running indefinitely, as it is in the do-while loop above. We are not returning, but rather exiting the program completely, so we do not need to return anything. The return value of main is always 0, and this is how the program exits. If you want to return a value other than 0, you can do so like this: return 1; or return -1; or return any other integer value you want to represent an error condition. The operating system will interpret this as the program's exit status. In this case, it will be seen as successful, as it is returning 0. The return value of main is not used for anything in this program, but it can be used in other programs to determine whether the program exited successfully or with an error. For example, if you were writing a shell script that executed this program and needed to know if it was successful or not, you could check the return value of the program and act accordingly. This is a common practice in programming, and it is important to understand how it works so that you can use it effectively in your own programs.。

C#仓库管理系统论文

C#仓库管理系统论文

目录第一章系统概述 (1)1.1仓库管理信息系统的特点 (1)1.2系统功能与应用背景 (1)第二章系统设计 (2)2.1系统设计思想 (2)2.2 系统功能模块设计 (2)2.3 数据库设计 (3)第三章登录界面与模块设计 (6)3.1 登录界面设计 (7)3.2 用户模块设计 (9)3.3 系统模块设计 (11)第四章物资信息管理 (14)4.1 添加物资信息 (14)4.2浏览物资信息 (16)4.3 修改物资信息 (19)4.4 查询物资信息 (20)第五章入库信息管理 (22)5.1 添加入库信息 (22)5.2 浏览如信息 (24)5.3 修改入库信息 (26)5.4 查询入库信息 (28)第六章出库信息管理 (30)6.1 添加出出库信息 (30)6.2 浏览出库信息 (33)6.3 修改出库信息 (35)6.4 查询出库信息 (37)第七章库存信息管理 (39)7.1 浏览库存信息 (39)7.2 查询库存信息 (40)设计总结 (43)致谢 (44)参考文献 (44).第一章系统概述1.1仓库管理信息系统的特点本仓库管理信息系统具有一下特点:●实现仓库物资的入库、出库、查询等操作;●实现用户权限管理提高系统安全性;●界面设计简单、操作方便;本系统后台数据库采用Microsoft Access,前台采用Visual C#作为主要开发工具。

采用ADO技术链接数据库,完成数据库的一系列操作。

本系统按照面向对象的思想,进行程序开发,程序设计调理清楚。

1.2系统功能与应用背景仓库关系系统在企业的整个管理过程中起着至关重要的作用,如果不能保证正确的进货、库存控制及发货,将会导致管理费用的增加,服务质量也难以得到保证,从而影响企业的竞争力。

仓库管理涉及计划、物料平衡、采购、入库、出库、库存等业务,这些业务涉及大量的数据和信息,而且对这些数据和信息的准确性、及时性都要求非常高,任何错误和遗漏都会造成公司的损失,若采用纯人工的方法进行管理有一定的难道。

仓库管理系统课程设计

仓库管理系统课程设计

仓库管理系统一、课程设计的内1、学习与实践数据库应用程序开发流程;2、学习使用某一种数据库服务,学会数据库应用程序编程,安装配置系统开发环境;3、设计和实现仓库管理系统;4、撰写课程设计报告。

二、课程设计的要求与数据系统应该实现以下功能:(1) 进、出库管理。

对进、出库信息进行记录。

(2) 查询功能。

仓库管理对查询要求高,通过主菜单记录当前操作用户的用户编号,保证了对进、出库信息录入负责人的确认。

(3) 部门资料管理与库存报表生成。

资料管理包括了人员信息管理,财政支出信息管理,以及各项业务单据的资料管理。

报表主要分类为:日报表,月报表,销售报表,入库报表等等。

(4) 由于计算机能存贮大量的数据,而且数据只要一次存入,便可多次重复使用,所以管理数据达到完整,统一,原始记录能保证及时,准确。

(5) 许多重复性的工作,都可由计算机去执行,从而使管理人员从事务性工作解脱出来,真正变为从事一些信息的分析,判断,决策等创造性的工作。

数据自己自行编造测试。

论文要求结构严谨、格式规范,内容正确、文字通顺。

三、课程设计应完成的工作该系统主要分为三大功能: 管理员功能、信息安全功能、一般用户功能、报表生成。

(1) 管理员功能:产品入库登记、确认入库信息、删除库内信息、借出信息登记、产品分类管理、添加人员、删除人员、查询库内信息。

(2) 信息安全功能:人员权限区分、事件记录、数据警告、数据备份、数据恢复;(3) 一般用户功能:查询库内信息、查询出库信息、查询入库信息、修改本用户密码;(4) 报表生成:库存信息报表生成。

五、应收集的资料及主要参考文献[1] MySQL 5.1参考手册/doc/refman/5.1/zh/introduction.html#features[2] /mydac/[3] 数据库系统概论(第四版)王珊萨师煊高等教育出版社 2006.5[5] MySQL开发者SQL权威指南(荷)Rick F.van der Lans 著许杰星李强等译机械工业出版社 2008.1[6] 学习MySQL(影印版) Seyed M.M."Saied" Tabagbogbi & Hugb E.Williams 著南京:东南大学出版社 2007.6[7] C++Builder程序员成长攻略蒙祖强龚涛等编著北京:中国水利水电出版社 2007.1目录一、相关技术介绍 (3)1.1 MySQL (3)1.2 Borland C++Builder集成开发环境 (4)1.3 MyDAC组件库 (5)二、需求分析 (6)2.1 功能需求及用户需求 (6)2.1.1 功能需求 (6)2.1.2 用户需求 (6)2.2 系统流图 (6)2.3 数据描述 (7)2.3.1 数据字典 (7)2.3.1.1 基本数据项及数据结构 (7)2.3.1.2 数据流条目 (8)2.3.1.3 数据存储条目 (8)2.3.1.4 加工条目 (8)2.3.2 数据流图 (9)2.4 安全性和完整性要求 (11)2.4.1 安全性要求 (11)2.4.2 完整性要求 (12)三、概念结构设计 (12)四、逻辑结构设计 (14)4.1 关系模型设计 (14)4.2 用户子模式设计 (19)4.3 系统结构图 (23)4.4 安全性和完整性设计 (23)4.4.1 安全性设计 (23)4.4.2 完整性设计 (23)五、数据库物理设计 (24)5.1 建立索引 (24)5.2 确定数据的存放位置 (25)5.3 确定系统配置 (25)5.4 模块设计 (26)六、数据库实施 (27)6.1 创建数据库及数据库对象SQL脚本 (27)6.2数据库备份和恢复方案 (40)6.2.1 静态备份 (40)6.2.2 动态备份 (41)6.2.3 恢复备份 (41)6.3 界面设计 (41)6.4 关键代码 (44)七、系统测试方案 (46)7.1 登录测试 (47)7.2 新建用户测试 (47)7.3 更改用户测试 (47)7.4 删除用户测试 (47)7.5 数据录入测试 (47)7.6 查询测试 (48)八、系统主要功能和使用说明 (48)九、系统安装说明 (49)十、心得体会 (51)参考文献: (51)相关技术介绍1.1 MySQLMySQL是最受欢迎的开源SQL数据库管理系统,它由MySQL AB开发、发布和支持。

仓库管理 python 源码

仓库管理 python 源码

仓库管理系统是一个用于管理存储在仓库中的物品的系统。

以下是一个简单的仓库管理系统的Python源代码示例。

python复制代码class Item:def__init__(self, name, quantity): = nameself.quantity = quantityclass Warehouse:def__init__(self):self.items = {}def add_item(self, item):if in self.items:self.items[].quantity += item.quantityelse:self.items[] = itemdef remove_item(self, name, quantity):if name in self.items:if self.items[name].quantity >= quantity:self.items[name].quantity -= quantityelse:print("Insufficient quantity")else:print("Item not found")def print_inventory(self):for item in self.items.values():print(f"{}: {item.quantity}")warehouse = Warehouse()warehouse.add_item(Item("Apple", 100))warehouse.add_item(Item("Banana", 50))warehouse.remove_item("Apple", 20)warehouse.print_inventory()这个简单的仓库管理系统包括两个类:Item和Warehouse。

算法与数据结构课程设计任务书

算法与数据结构课程设计任务书

算法与数据结构课程设计任务书1、实训意义和目的使学生巩固和加强《C语言程序设计》和《数据结构与算法》课程的理论知识。

使学生掌握C语言的基本概念、语法、语义和数据类型的使用特点。

使学生掌握C语言程序设计的方法及编程技巧,能正确使用C语言编写程序。

进一步理解和运用结构化程设计的思想和方法;学会利用流程图或N-S图表示算法。

使学生掌握调试程序的基本方法及上机操作方法。

掌握书写程设计开发文档的能力,使学生学会撰写课程设计总结报告。

课学生做毕业设计打好基础。

初步掌握开发一个小型实用系统的基本方法:结合实际应用的要求,使课程设计既覆盖知识点,又接近工程实际需要。

通过激发学习兴趣,调动学生主动学习的积极性,并引导他们根据实际编程要求,训练自己实际分析问题的能力及编程能力,并养成良好的编程习惯。

培养学生的创新能力和创新思维。

学生可以根据指导书和相关文献上的参考算法,自己设计出相应的应用程序。

培养学生良好的程序设计风格。

在实际编程中,为了提高编程质量,对空行、空格和注释均有要求。

学生在课程设计书写代码时,应该严格按要求处理,以便建立良好的程序设计风格。

2、实训目标及要求参加本课程设计的学生,应当认真完成本课程设计的全部过程。

并以最终课程设计成果来证明其独立完成各种实际任务的能力。

从而,反映出理解和运用本课程知识的水平和能力。

A、分析问题。

各种简单的与计算机有关的案例中所需要的输出结果,把大问题分解成小问题,使用自顶向下或类似设计方法给出模块化或计划。

B、提出算法执行特定任务。

模块表示为算法,使用自顶向下或伪代码等设计手段将模块细化成更详细的成分,清楚地表明顺序、选择和重复等到控制结构。

C、把一个算法变为用C语言编写的结构化程序。

D、用合适的测试方法检查程序是否符合最初的要求,为不合适数据设计错误陷阱,并提供错误信息来帮助用户。

E、写出清晰的用户文档,确保用户或者通过遵循程序中的指示或者使用程序设计者编写的文档能成功地运行程序。

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

作品名称开发者:一、系统背景:本软件能减轻对货物数目管理及价格盈亏等信息处理的工作量以便能快捷及时准确的调整货物的仓储量达到最合理化。

可以使店主不失效率的节省大量精力用于其他方面符合当今社会的商业形式而且本软件体积小操作简单是管理仓库的不二选择二、系统简介:设计亮点:◆三级菜单使操作更简便明了◆密码操作能有效保证客户信息的安全性◆独特的dos命令调用使信息存储的实体属性为隐藏且无扩展名大大增大了安全系数◆数据结构为链表摆脱了数据数量的限制◆提供三种查看模式并会标出排名◆退出店主模式时会提示是否保存若选择yes着进行保存操作基本功能:·在员工模式下可输入卖出货物的名称和数目程序自动在后台进行一系列的操作·新建数据并同时对其处理·修改数据·插入数据·删除数据·查找数据·查看数据·数据存档·修改密码三、系统结构图#define LEN sizeof(struct shop) #include<>#include<>#include<>#include<>struct shop{char name[30];float price_in;float price_out;int num_in;int num_now;int num_sold;float win;float percent;struct shop *next;};int n=0;void main(void){void auto1(struct shop **h_p);int menu1(struct shop **h_p);void print1(void);void assistant(struct shop *head); int password(void);int menu2(struct shop **h_p);void print2(void);void creat(struct shop **h_p); void rewrite(struct shop **h_p); void insert(struct shop **h_p); void deleat(struct shop **h_p);void search(struct shop **h_p);void printall(struct shop **h_p);void save(struct shop *head);void password_set(void);int password_exi(struct shop **h_p);int data_exi(struct shop **h_p);void load(struct shop **h_p);void save(struct shop *head);struct shop *addbuild(struct shop **h_p); void sort0(struct shop **h_p);int search1(struct shop **h_p,char a[30]); void sort1(struct shop **h_p);void sort2(struct shop **h_p);void sort3(struct shop **h_p);void print3(void);void password_create(void);struct shop *addbuild(struct shop **h_p); int a;struct shop *head,**h_p;head=NULL;h_p=&head;auto1(h_p);do{a=menu1(h_p);}while(a!=3);system("cls");printf("谢谢使用^_^");getch();}int menu1(struct shop **h_p) {int a,b;struct shop *head;head=*h_p;print1();scanf("%d",&a);putchar('\n');getchar();do{switch(a){case 1:assistant(head);break; case 2:if(password())do{b=menu2(h_p);}while(b!=9);break;default:break;}if(a!=3){system("cls");print1();scanf("%d",&a);}}while(a!=3);return(a);}int menu2(struct shop **h_p){int b;char a;struct shop *head;head=*h_p;print2();scanf("%d",&b);putchar('\n');getchar();do{switch(b){case 1:creat(h_p);break;case 2:rewrite(h_p);break;case 3:insert(h_p);break;case 4:deleat(h_p);break;case 5:search(h_p);break;case 6:printall(h_p);break;case 7:head=*h_p;save(head);break; case 8:password_set();break;default:break;}if(b!=9){system("cls");print2();scanf("%d",&b);getchar();}}while(b!=9);printf("\n保存吗(y/n):"); putchar('\n');scanf("%c",&a);if(a=='y'){head=*h_p;save(head);}return(b);}void auto1(struct shop **h_p){if(password_exi(h_p) && data_exi(h_p))load(h_p);}void print1(void){system("cls");printf("********************************************************************************\n");printf(" 仓库管理系统\n");printf("********************************************************************************\n");printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");printf(" #******************* 菜单*****************# \n");printf(" #| 1.员工模式|# \n");printf(" #| 2.店主模式|# \n");printf(" #| 3.退出|# \n");printf("#*********************************************# \n");printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");printf("\n请选择(1-3):");}void assistant(struct shop *head){char a[50],c='y';int b;struct shop *i;i=head;while(c=='y'){system("cls");printf("\n请输入卖出的商品名称:\n");gets(a);putchar('\n');printf("\n请输入卖出的商品数量:\n");scanf("%d",&b);putchar('\n');while(strcmp(i->name,a)!=0&&i->next!=NULL)i=i->next;if(i->next!=NULL){i->num_now-=b;i->win=(i->num_in-i->num_now)*(i->price_out-i->price_in); }elseprintf("\n此商品不存在或通知店主更新数据库\n");printf("\n继续吗(y/n):");putchar('\n');c=getchar();getchar();}save(head);}int password(void){FILE*fp;char a[50],b[50];int i;system("cls");fp=fopen("c:\\y_secrea","rb"); fscanf(fp,"%s",&a);fclose(fp);printf("请输入密码:\n"); putchar('\n');i=0;do{b[i]=getch();printf("*");i++;}while(b[i-1]!=13&&i<19);b[i-1]='\0';if(strcmp(a,b)==0)return(1);elsereturn(0);}void print2(void){system("cls");printf("********************************************************************************\n");printf(" 店主模式\n");printf("********************************************************************************\n");printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");printf(" #******************* 菜单*****************# \n");printf(" #| 1.新建 2.修改|# \n");printf(" #| 3.插入 4.删除|# \n");printf(" #| 5.查找 6.查看|# \n");printf(" #| 7.保存 8.改密|# \n");printf(" #| 9.上一层|# \n");printf("#*********************************************# \n");printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");printf("请选择(1-9):");}void creat(struct shop **h_p){struct shop *head,*i,*j;int f=1;head=NULL;n=0;printf("\n请输入数据若完成请在名称处输“0”.\n\n");i=j=addbuild(&head);if(strcmp(i->name,"0")==0)f=0;while(f){n++;if(n==1)head=j;f=1;printf("\n请输入下一种货物的数据.\n\n"); i=addbuild(&head);if(strcmp(i->name,"0")==0){free(i);f=0;break;}j->next=i;j=i;}j->next=NULL;*h_p=head;}void rewrite(struct shop **h_p){char a[30];struct shop *i,*j,*head;head=*h_p;i=head;do{printf("\n请输入要修改货物的名称:"); putchar('\n');gets(a);if(n>=1&&!search1(h_p,a)){printf("\n不存在的货物名称!\n"); getch();if(head==NULL) goto end;}}while(n>=1&&!search1(h_p,a));while(strcmp(a,i->name)!=0&&i->next!=NULL) {i=i->next;}if(strcmp(a,i->name)==0){printf("\n真的要修改吗(y/n):");putchar('\n');if(getchar()=='y'){getchar();j=addbuild(h_p);strcpy(i->name,j->name);i->price_in=j->price_in;i->price_out=j->price_out;i->num_in=j->num_in;i->num_now=j->num_now;i->num_sold=j->num_sold;i->win=j->win;i->percent=j->percent;free(j);printf("\n修改完成^_^\n\n");}end:;}void insert(struct shop **h_p){struct shop *i,*j,*x,*head;head=*h_p;x=addbuild(h_p);i=j=head;while(strcmp(i->name,x->name)<0&&i->next!=NULL) {j=i;i=i->next;}if(strcmp(i->name,x->name)>=0){if(i==head)head=x;elsej->next=x;x->next=i;else{i->next=x;x->next=NULL;}printf("\n插入完成^_^\n\n.");*h_p=head;}void deleat(struct shop **h_p){struct shop*i,*j,*head;char a[30],b;head=*h_p;do{system("cls");printf("\n请输入你要删除的货物的名称:\n"); putchar('\n');gets(a);if(n>=1&&!search1(h_p,a)){printf("\n不存在的货物名称!\n");if(head==NULL) goto end;}}while(n>=1&&!search1(h_p,a));printf("\n真的要删除吗(y/n):");putchar('\n');b=getchar();getchar();if(b=='y'){i=head;while(strcmp(i->name,a)!=0&&i->next!=NULL) {j=i;i=i->next;}if(strcmp(i->name,a)==0){if(i==head){head=i->next;free(i);}elsej->next=i->next;n--;printf("\n删除完成^_^.\n\n"); *h_p=head;}}end:;}void search(struct shop **h_p){int begin,end,mid,t;char a[30];struct shop *i,*head;head=*h_p;i=head;printf("\n请输入要查询货物的名称:");putchar('\n');gets(a);while((strcmp(i->name,a)!=0)&&i->next!=NULL){i=i->next;}if((strcmp(i->name,a)==0)){printf("\n名称\t进价\t售价\t进货数目存货数目销量\t赢利\t利率\n");printf("\n================================================== =============================\n");printf("%s%10.2f%10.2f%10d%10d%10d%9.2f%10.2f",i->name,i->pr ice_in,i->price_out,i->num_in,i->num_now,i->num_sold,i->win,i->percent);}elseprintf("\n此货物不存在!\n");getch();}void printall(struct shop **h_p) {int a,c;char b='y';struct shop *i;while(b=='y'){do{system("cls");print3();scanf("%d",&a);}while(a!=1&&a!=2&&a!=3);switch(a){case 1:sort1(h_p);break;case 2:sort2(h_p);break;case 3:sort3(h_p);break;default:break;}for(c=1,i=*h_p;i->next!=NULL;i=i->next,c++){printf("\n名称\t进价\t售价\t进货数目存货数目销量\t赢利\t利率\t排名\n");printf("\n================================================== =============================\n");printf("%s%10.2f%10.2f%10d%10d%10d%9.2f%10.2f%8d",i->name,i->price_in,i->price_out,i->num_in,i->num_now,i->num_sold,i->win,i->percent,c);if(c%8==0){getch();getchar();printf("按任意键继续。

相关文档
最新文档