当前位置:文档之家› C语言课设之小型快递公司业务管理软件

C语言课设之小型快递公司业务管理软件

沈阳航空航天大学课程设计报告课程设计名称:C语言程序设计课程设计题目:小型快递公司业务管理软件院(系):计算机专业:计算机科学与技术班级:14010103学号:*******************指导教师:***完成日期:2016 年3 月9 日学术诚信声明本人声明:所呈交的报告(含电子版及数据文件)是我个人在导师指导下独立进行设计工作及取得的研究结果。

尽我所知,除了文中特别加以标注或致谢中所罗列的内容以外,报告中不包含其他人己经发表或撰写过的研究结果,也不包含其它教育机构使用过的材料。

与我一同工作的同学对本研究所做的任何贡献均己在报告中做了明确的说明并表示了谢意。

报告资料及实验数据若有不实之处,本人愿意接受本教学环节“不及格”和“重修或重做”的评分结论并承担相关一切后果。

本人签名: 日期:年月日目录第1章需求分析 (1)1.1.解读题意 (1)1.2.程序的功能 (1)1.3.采用的工具 (2)第2章程序设计 (3)2.1概要设计 (3)2.1.1总体模块图 (3)2.1.2 函数 (3)2.2详细设计 (4)2.2.1数据结构 (4)2.2.2子函数的实现 (5)第3章程序调试分析 (8)3.1.出现的错误 (8)3.2.运行结果 (8)第4章用户手册 (9)4.1.程序功能 (9)4.1.操作简介 (9)4.2.存在的缺陷 (10)参考文献 (11)附录 (11)第1章需求分析1.1. 解读题意经过对程序设计题目的分析可知,整个程序的设计实现大致分为5个模块,其中每一个模块对应一个函数,他们的功能分别是:录入函数putin( ),浏览函数lookup( )查询函数search_by( ),这些函数的实现严格按照题目的要求。

1、录入函数主要实现程序最初运行时数据的录入以及其后的运行中数据的追加功能;2、浏览函数实现的功能是浏览全部录入的信息;3、查询函数实现的功能是按照不同的查询条件来进行数据查找;除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。

在程序当中,将订单记录类型定义为结构体类型,添加以及追加的订单信息直接写入shangpin.doc文件中,其他函数每次对订单记录的访问,其数据来源都是shangpin.doc文件,这样做不但可以保证订单数据的一致性,而且可以对订单数据进行永久保存,保证每次运行程序都可以采用原来的数据。

1.2. 程序的功能叙述程序要实现的功能。

该程序要实现的功能主要有四个1.订单基本信息管理;2.商品运送信息管理;3.订单查询;4.订单统计,系统可以根据下单时间,统计该月订单销售量;1.3. 采用的工具Microsoft Visual C++ 6.0 Microsoft Office Word 2010第2章程序设计2.1 概要设计2.1.1总体模块图图2.1 程序总体结构图2.1.2 函数void save()//保存图书信息void lookup()//定义浏览函数void lookup2()//定义浏览函数void search_by_name()//定义按商品名查询void search_by_number()//定义按订单编号查询void search()//定义查询函数void xiaoshou()//定义查询函数2.2 详细设计2.2.1数据结构主函数中定义整型变量a字符数组number[10]; number2[20]; name[20]; weight[50]; baojia[20];fahuo[20];address[20];time[20];dangqian[20];daoda[20];xiayi[20];Yunsong[20];浮点型变量price;整型变量count结构体数组good[100]。

2.2.2子函数的实现都是无参数无返回值的函数Save将订单信息输入shangpin文件中,若文件为空则返回图2.1 save函数图Lookup 输入订单的编号进行查询,如果没有则直接结束输出,若存在该编号则输出该订单的编号,名称,重量,是否保价等。

图2.2 lookup函数图Search 查询时可选择按作者查询按订单编号和商品名称查询,若是没有则返回主界面,否者输出该订单的编号,商品名称,重量,是否保价等。

图2.3search函数图第3章程序调试分析3.1. 出现的错误编写过程中遇到的问题:1.出现缺少{},;等基本的语法错误;2.定义结构体变量时丢掉了关键字struct;3.在定义函数时函数名与标准库函数重名;4.case子句后面的程序段中漏掉了break子句;5.文件读写操作完成后,忘记关闭文件;6.程序无语法错误,但是不能正常运行。

解决方法:1.逐一对照,将缺少的{}及;补全;2.添加关键字struct;3.为函数重新起名;4.添加break跳出语句;5.fclose关闭文件;6.f10单步调试,找出错误并进行改正。

3.2. 运行结果运行主函数,进入选择界面,根据选择界面进入switch循环,调用相应的子函数,对文件进行操作,操作结束后关闭文件退出。

下面以录入函数为例:进入选择界面,选择1进入录入函数输入订单的编号,商品名称,商品数量,是否保价等。

按1继续输入,按0退出;第4章用户手册4.1. 程序功能1.订单基本信息管理;2.商品运送信息管理;3.订单查询;4.订单统计;4.2. 操作简介运行程序,进入选择操作界面图4.1主界面订单信息的录入图4.2录入界面订单信息的浏览图4.3浏览界面4.3. 存在的缺陷1.该程序可录入的书籍数仅有一百!2. 操作画面过于简陋!3.无借阅和修改操作!参考文献[1] 张长海. C语言程序设计[M]. 北京:高等教育出版社,2006[2] 朱振元,朱承. 数据结构- C++语言描述[M]. 北京:北京大学出版社2007[3] 李春葆,魏亮.Visual C++程序设计例学与实践[M]. 北京:北京大学2007[4] 严蔚敏、吴伟民. 数据结构(C语言版)[M]. 北京:清华大学出版社,2009[5] 张乃孝. 算法与数据结构-C语言描述[M]. 北京:高等教育出版社,2002[6] 李大友. 数据结构与算法[M]. 北京:清华大学出版社,1997[7] 付清祥. 算法与数据结构(第二版)[M]. 北京:电子工业出版社,2001附录源代码#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct{char number[10];//订单编号char number2[10];//商品运送订单编号char name[20];//商品名称char weight[20];//商品重量char baojia[20];//是否保价char fahuo[20];//发货地点char address[20];//目的地char time[20];//下单时间char dangqian[20];//当前地点char daoda[20];//到达时间char xiayi[20];//下一地点char zhuangtai[20];//运送状态float price;//商品金额}mgood;typedef struct{int count;//订单数目mgood good[100];}mshangpin;mshangpin shangpin;void save()//保存订单基本信息。

{FILE *fp;if((fp=fopen("shangpin.doc","w"))==NULL){printf("\n不能保存订单信息\n");return;}fwrite(&shangpin.count,sizeof(int),1,fp);fwrite(shangpin.good,sizeof(shangpin.good[0]),shangpin.count,fp); }void putin() /*定义录入函数*/{int y=1;system("cls");while(y){printf("\t请输入您的订单编号:");scanf("%s",shangpin.good[shangpin.count].number);printf("\t请输入商品名称:");scanf("%s",shangpin.good[shangpin.count].name);printf("\t请输入商品重量:");scanf("%s",shangpin.good[shangpin.count].weight);printf("\t是否保价:");scanf("%s",shangpin.good[shangpin.count].baojia);printf("\t请输入商品的发货地点:");scanf("%s",shangpin.good[shangpin.count].fahuo);printf("\t请输入商品的目的地:");scanf("%s",shangpin.good[shangpin.count].address);printf("\t请输入商品的下单时间:");scanf("%s",shangpin.good[shangpin.count].time);printf("\t请输入商品的金额:");fflush(stdin);scanf("%f",&shangpin.good[shangpin.count].price);shangpin.count++;printf("\n是否继续录入(1.继续;0,退出录入):");fflush(stdin);scanf("%d",&y);if (y!=1){y=0;break;}}save();}void putin2() /*录入函数*/{int y=1;system("cls");while(y){printf("\t请输入运送订单编号:");scanf("%s",shangpin.good[shangpin.count].number2);printf("\t请输入当前地点:");scanf("%s",shangpin.good[shangpin.count].dangqian);printf("\t请输入到达时间:");scanf("%s",shangpin.good[shangpin.count].daoda);printf("\t请输入下一地点:");scanf("%s",shangpin.good[shangpin.count].xiayi);printf("\t请输入运送状态:");scanf("%s",shangpin.good[shangpin.count].zhuangtai);shangpin.count++;printf("\n是否继续录入(1.继续;0,退出录入):");fflush(stdin);scanf("%d",&y);if (y!=1){y=0;break;}}save();}void lookup(){system("cls");printf("订单编号\t商品名称\t商品重量\t是否保价\t发货地点\t目的地\t下单时间\t商品金额\n");for (int i=0;i<shangpin.count;i++){printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%6.2f\n",shangpin.good[i].number,shangpin.good[i].name,shangpin.go od[i].weight,shangpin.good[i].baojia,shangpin.good[i].fahuo,shangpin.good[i].address,shangpin.good[i].time,shang pin.good[i].price);}fflush(stdin);getchar();}void lookup2(){system("cls");printf("订单编号\t当前地点\t到达时间\t下一地点\t运送状态\n");for (int i=0;i<shangpin.count;i++){printf("%s\t%s\t%s\t%s\t%s\n",shangpin.good[i].number2,shangpin.good[i].dangqian,shangpin.good[i].daoda, shangpin.good[i].xiayi,shangpin.good[i].zhuangtai);}fflush(stdin);getchar();}void search_by_name() /*定义按商品名查询*/{char s2[20];int flag=1;printf("\n请输入要查询的商品名: ");fflush(stdin);scanf("%s",s2);printf("订单编号\t商品名称\t商品重量\t是否保价\t发货地点\t目的地\t下单时间\t商品金额\n");for(int i=0;i<shangpin.count;i++ )if(strcmp(s2,shangpin.good[i].name)==0){flag=0;printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%6.2f\n",shangpin.good[i].number,shangpin.good[i].name,shangpin.go od[i].weight,shangpin.good[i].baojia,shangpin.good[i].fahuo,shangpin.good[i].address,shangpin.good[i].time,shang pin.good[i].price);}if (flag){printf("cannot found!");}fflush(stdin);getchar();}void search_by_number() /*定义按订单编号查询*/{char s3[10];int flag=1;printf("\n请输入要查询的订单编号: ");fflush(stdin);scanf("%s",s3);printf("订单编号\t商品名称\t商品重量\t是否保价\t发货地点\t目的地\t下单时间\t商品金额\n");for(int i=0;i<shangpin.count;i++ )if(strcmp(s3,shangpin.good[i].number)==0){flag=0;printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%6.2f\n",shangpin.good[i].number,shangpin.good[i].name,shangpin.go od[i].weight,shangpin.good[i].baojia,shangpin.good[i].fahuo,shangpin.good[i].address,shangpin.good[i].time,shang pin.good[i].price);}if (flag){printf("cannot found!");}fflush(stdin);getchar();}void xiaoshou(){int k;system("cls");k=shangpin.count;printf("%d\n",k);fflush(stdin);getchar();}void search() /*定义查询函数*/{int a;system("cls"); /*进行清屏*/printf("\t\t******************************\n");printf("开始查询\n");printf("\t\t\t1---------------按商品名查找\n");printf("\t\t\t2---------------按订单编号查找\n");printf("\t\t\t0---------------退出\n");printf("\t\t******************************\n") ;printf("\t\t请选择你想要的查询方式:");fflush(stdin);scanf("%d",&a);switch(a){case 1:search_by_name();break;case 2:search_by_number();break;case 0:return;}}void main(){int a;do{system("cls");printf("\n\n\n\n\n\t\t\t\t业务管理软件\t\t\t\t\n");printf("\t\t*********************************************\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\t0 -----------------退出业务管理软件\n");printf("\t\t*********************************************\n");printf("\t\tPlease Enter Choose: \n");printf("\t\t***************首次运行请选择1***************\n");fflush(stdin);scanf("%d",&a);switch(a){case 1:putin();break;case 2:lookup();break;case 3:putin2();break;case 4:lookup2();break;case 5:search();break;case 6:xiaoshou();break;case 0:printf("\n\n退出\n\n");break;default:printf("\n序号不对\n");}}while(a!=0);save();}沈阳航空航天大学课程设计报告-18-。

相关主题