C语言程序设计报告.docx
《C语言程序设计报告.docx》由会员分享,可在线阅读,更多相关《C语言程序设计报告.docx(30页珍藏版)》请在冰豆网上搜索。
![C语言程序设计报告.docx](https://file1.bdocx.com/fileroot1/2023-1/29/50c0fbaf-38f6-4d30-ab63-c4c4fca3daf5/50c0fbaf-38f6-4d30-ab63-c4c4fca3daf51.gif)
C语言程序设计报告
个人网络购物管理系统设计报告
题目:
个人网络购物管理系统
班级:
学号
姓名:
成绩:
2012年7月4日北京信息工程学院信息技术教学与实验心
任务书
个人网络购物管理系统
功能:
实现简单的个人网络购物的基本信息管理,基本信息包括编号、货物名称、单价、数量、总价、下单日期、收货日期等
基本要求:
1.设计简单的菜单,能够进行系统功能选择。
2.实现财务项目信息的录入功能。
3.在已有信息的基础上添加新的记录。
4.删除指定编号的记录。
5.修改指定编号的记录
6.实现信息的浏览功能
7.按某年某月查询功能
8.按总价排序功能
9.按时间段统计消费金额、超支提醒功能
目录
1、设计题目--------------------------------------------------------------------------4
2、成员信息及分工------------------------------------------------------------------4
3、设计要求-----------------------------------------------------------------------------5
4、设计作用与目的--------------------------------------------------------------------5
5、程序逻辑图--------------------------------------------------------------------------
6程序流程图----------------------------------------------------------------------------7
7、模块划分------------------------------------------------------------------------8
8、源程序------------------------------------------------------------------------15
9、程序测试结果--------------------------------------------------------------------------9
10、体会--------------------------------------------------------------------------24
11、参考文献--------------------------------------------------------------------------25
1.设计题目
题目:
个人网络购物管理系统
个人网络管理系统是个人不可缺少的一部分,它利用计算机对个人网购进行统一管理,实现网购管理系统的系统化、规范化和自动化,为人们提高购物效率。
本程序旨在训练读者的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和结构数组的各种基本操作。
本程序中涉及结构体、数组、文件等方面的知识。
2.成员信息及分工
测111班
组长潘健
组员王景宇张鑫麟
分工:
组长潘健负责修改指定设备编号的记录,排序和退出程序模块,组员王景宇负责
删除指定编号的记录和按某年某月下单日期查询模块,组员张鑫麟负责财务项目信息的录入和浏览信息模块。
3设计要求
1、实现简易的提示菜单界面,刚运行时应显示版本信息。
用所学的知识尽量实现良好的、美观的“人机界面”,便于软件的操作使用。
2、系统包含以下基本功能:
显示主菜单功能、财务信息输入信息输出、财务信息查询、财务信息修改、排序、财务统计、退出等。
3、查询、排序功能——算法。
1)按编号查询、排序。
2)按姓名查询。
3)按财务排序。
4)基本信息的删除与修改(可选项)。
4设计作用与目的
1、通过这次专题实习,巩固和加深对所学相关知识点的理解。
2、进一步熟悉基本流程控制结构——实现分支的if…else语句、switch语句和实现循环的for、while…、do…while语句、break、continue等。
3、基本数据类型、数组、结构体、自定义类、函数的应用。
4、加强对模块化程序设计和面向对象程序设计的理解。
5、掌握C\C++语言程序设计的基本思想,了解简单的系统分析和
6了解数据库系统的理论
7掌握数据库设计的基本方法,熟悉数据库设计的步骤;
8学习基本数据库编程方法
快速跟踪数据库系统软件的新技术及市场应用动态。
9进一步巩固、加深学生所学专业课程《程序设计语言II》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。
10全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。
11利用所学知识,开发小型应用系统,掌握运用C语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。
12对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。
13掌握面向对象的程序设计方法。
14进一步掌握在集成环境下如何调试程序(单步调试,设置断点、观察表达式,分块调试)、修改程序和程序的测试
5程序逻辑图
图1:
系统结构框图
6程序流程图
按某年某月下单日期查询
选择4
修改指定设备编号的记录
选择5
选择6
排序
退出
选择6
结束
7.模块划分
1.头文件
#include/*I/O函数*/
#include/*标准库函数*/
#include/*字符串函数*/
typedefstruct/*定义数据结构*/
2.声明函数
{
charbianhao[20];/*编号*/
charmingcheng[20];/*名称*/
intdanjian;/*单价*/
intshuliang;/*数量*/
intzongjia;/*总价*/
charxiadanriqi[20];/*日期*/
charshouhuoriqi[20];/*日期*/
}itom;
3.定义函数
itompe[300];/*定义常数表示记录数*/
4.菜单函数
intmenu_select()
{
charc;
do{
system("cls");/*清屏*/
printf("**********************欢迎使用个人网络购物管理系统********************\n");
printf("*******************制作:
测控111*****潘健王景宇张鑫麟**************\n");
printf("********************************菜单*********************************\n");
printf("*#1.财务项目信息的录入*\n");
printf("*#2.浏览信息*\n");
printf("*#3.删除指定编号的记录*\n");
printf("*#4.按某年某月下单日期查询*\n");
printf("*#5.修改指定设备编号的记录*\n");
printf("*#6.排序*\n");
printf("*#0.退出程序*\n");
printf("************************个人购物管理表*****************************\n");
printf("\t\t请输入您选择的操作(0-6):
");
c=getchar();
}while(c<'0'||c>'6');
return(c-'0');
}
5.添加记录函数
intInput(itomper[],intn)//添加记录函数
{
inti=0;
charsign,x[10];
while(sign!
='n'&&sign!
='N')
{
printf("\t编号:
");
scanf("\t%s",per[n+i].bianhao);
printf("\t名称:
");
scanf("\t%s",per[n+i].mingcheng);
printf("\t单价:
");
scanf("\t%d",&per[n+i].danjian);
printf("\t数量:
");
scanf("\t%d",&per[n+i].shuliang);
printf("\t总价:
");
printf("\t%d:
",per[n+i].danjian*per[n+i].shuliang);
per[n+i].zongjia=per[n+i].danjian*per[n+i].shuliang;
printf("\t下单日期:
");
scanf("\t%s",per[n+i].xiadanriqi);
printf("\t收货日期:
");
scanf("\t%s",per[n+i].shouhuoriqi);
gets(x);
printf("\n\t是否继续添加?
(Y/N)");
scanf("\t%c",&sign);
i++;
}
return(n+i);
}
6.显示记录函数
voidDisplay(itomper[],intn)//显示记录函数
{
inti;
printf("----------------------------------------------------------------------\n");/*格式*/
printf("编号名称单价数量总价下单日期收货日期\n");
printf("----------------------------------------------------------------------\n");
for(i=1;i{
printf("%-13s%-10s%-10d%-10d%-10d%-10s%-12s%\n",per[i-1].bianhao,per[i-1].mingcheng,per[i-1].danjian,per[i-1].shuliang,per[i-1].zongjia,per[i-
1].xiadanriqi,per[i-1].shouhuoriqi);
if(i>1&&i%10==0)
{
printf("\t-----------------------------------\n");
printf("\t");
system("pause");
printf("\t-----------------------------------\n");
}
}
printf("----------------------------------------------------------------------\n");
system("pause");
}
7.删除记录函数
intDelete_a_record(itomper[],intn)//删除记录函数
{
chars[20];
inti=0,j;
printf("\t请输入想删除记录中的名称:
");
scanf("%s",s);
while(strcmp(per[i].mingcheng,s)!
=0&&iif(i==n)
{
printf("\t个人网络购物管理系统没有这个货品!
\n");
return(n);
}
for(j=i;j{
per[j].zongjia=per[j+1].zongjia;
per[j].danjian=per[j+1].danjian;
per[j].shuliang=per[j+1].shuliang;
strcpy(per[j].mingcheng,per[j+1].mingcheng);
strcpy(per[j].xiadanriqi,per[j+1].xiadanriqi);
strcpy(per[j].bianhao,per[j+1].bianhao);
strcpy(per[j].shouhuoriqi,per[j+1].shouhuoriqi);
}
printf("\t\t\t已经成功删除!
\n");
return(n-1);
}
8.查找记录函数
voidQuery_a_record(itomper[],intn)//查找记录函数
{
intm;
printf("\t\n请选择查询方式:
\n");
printf("\t┌――――――┐\n");
printf("\t│1------日期│\n");
printf("\t└――――――┘\n");
scanf("%d",&m);
while(m!
=1&&m!
=2&&m!
=3&&m!
=4)
{
printf("输入错误,请重新选择:
");
scanf("%d",&m);
}
if(m==1)
{
chars[20];
inti=0;
printf("\t请输入想查询的下单日期:
");
scanf("\t%s",s);
while(strcmp(per[i].xiadanriqi,s)!
=0&&iif(i==n)
{
printf("\t个人网络购物管理系统没有这个货品!
\n");
return;
}
printf("\t名称:
%s\n",per[i].mingcheng);
printf("\t单价:
%d\n",per[i].danjian);
printf("\t数量:
%d\n",per[i].shuliang);
printf("\t总价:
%d\n",per[i].zongjia);
printf("\t编号:
%s\n",per[i].bianhao);
};
}
9.修改记录函数
voidChange(itomper[],intn)//修改记录函数
{
chars[20];
inti=0;
printf("\t请输入想修改的记录中的名称:
");
scanf("%s",s);
while(strcmp(per[i].mingcheng,s)!
=0&&iif(i==n)
{
printf("\t个人网络购物管理系统没有这个货品!
\n");
return;
}
printf("\t编号:
");
scanf("%d",&per[i].bianhao);
printf("\t名称:
");
scanf("%s",per[i].mingcheng);
printf("\t单价:
");
scanf("%d",&per[i].danjian);
printf("\t数量:
");
scanf("%d",&per[i].shuliang);
printf("\t总价:
");
printf("\t%d:
",per[i].danjian*per[i].shuliang);
per[i].zongjia=per[i].danjian*per[i].shuliang;
printf("\t下单日期:
");
scanf("%s",per[i].xiadanriqi);
printf("\t收货日期:
");
scanf("%s",per[i].shouhuoriqi);
printf("\t修改成功!
");
}
10.排序函数
voidrange(itomper[],intn)//排序
{
inti;
itomt;
for(i=0;i{if(per[i].zongjia>per[i+1].zongjia)
{t=per[i];per[i]=per[i+1];per[i+1]=t;}}
printf("按总价排序为:
\n");
for(i=0;iprintf("%-5s%-8s%-6d%-13d%-15d%-15s%-15s%\n",per[i].bianhao,per[i].mingcheng,per[i].danjian,per[i].shuliang,per[i].zongjia,per[i
].xiadanriqi,per[i].shouhuoriqi);
printf("\n");
return;
}
11.主函数
voidmain()/*主函数*/
{
intn=0;
for(;;)
{
switch(menu_select())
{
case1:
printf("\n\t添加个人网络购物管理系统\n");/*添加记录*/
n=Input(pe,n);
break;
case2:
printf("\n\t\t\t个人网络购物管理系统\n");/*显示记录*/
Display(pe,n);
break;
case3:
printf("\n\t从个人网络购物管理系统中删除记录\n");
n=Delete_a_record(pe,n);/*删除记录*/
printf("\t");
system("pause");
break;
case4:
printf("\n\t在个人网络购物管理系统中查找记录\n");
Query_a_record(pe,n);/*查找记录*/
printf("\t");
system("pause");
break;
case5:
printf("\n\t修改个人网络购物管理系统中的记录\n");
Change(pe,n);/*修改数据*/
printf("\t");
system("pause");
break;
case6:
printf("\n\t排序\n");
range(pe,n);/*排序*/
printf("\t");
system("pause");
break;
case0:
printf("\n\t\t谢谢使用,再见!
\n");/*结束程序*/
printf("\n\t\t");
system("pause");
exit(0);
}
}
}
8源程序
#include/*I/O函数*/
#include/*标准库函数*/
#include/*字符串函数*/
typedefstruct/*定义数据结构*/
{charbianhao[20];/*编号*/
charmingcheng[20];/*名称*/
intdanjian;/*单价*/
intshuliang;/*数量*/
intzongjia;/*总价*/
charxiadanriqi[20];/*日期*/
charshouhuoriqi[20];/*日期*/
}itom;
itompe[300];/*定义常数表示记录数*/
intmenu_select()//定义菜单函数
{
charc;
do{
system("cls");/*清屏*/
printf("**********************欢迎使用个人网络购物管理系统********************\n");
printf("*******************制作:
测控111*****潘健王景宇张鑫麟**************\n");
printf("********************************菜单*********************************\n");
printf("*#1.财务项目信息的录入*\n");
printf("*#2.浏览信息*\n");
printf("*#3.删除指定编号的记录*\n");
printf("*#4.按某年某月下单日期查询*\n");
printf("*#5.修改指定设备编号的记录*\n");
printf("*#6.排序*\n");
printf("*#0.退出程序*\n");
printf("************************个人购物管理表*****************************\n");
printf("\t\t请输入您选择的操作(0-6):
");
c=getchar();//输入前边序号并返回到主函数
}while(c<'0'||c>'6');
return(c-'0');
}
intInput(itomper[],intn)//添加记录函数
{
inti=0;
charsign,x[10];
while(sign!
='n'&&sign!
='N')//分别将值赋给结构体变量中的数
{
printf("\t编号:
");
scanf("\t%s",per[n+i].bianhao);
printf("\t名称:
");
scanf("\t%s",per[n+i].mingcheng);
printf("\t单价:
");
scanf("\t%d",&per[n+i].danjian);
printf("\t数量:
");
scanf("\t%d",&per[n+i].shuliang);
printf("\t总价:
");
printf("\t%d:
",per[n+i].danjian*per[n+i].shuliang);
per[n+i].zongjia=per[n+i].danjian*per[n+i].shuliang;
printf("\t下单日期:
");
scanf("\t%s",per[n+i].xiadanriqi);
printf("\t收货日期:
");
scanf("\t%s",per[n+i].shouhuoriqi);
gets(x);
printf("\n\t是否继续添加?
(Y/N)");
scanf(