杂志订阅系统Word格式文档下载.docx
- 文档编号:20864673
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:16
- 大小:48.76KB
杂志订阅系统Word格式文档下载.docx
《杂志订阅系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《杂志订阅系统Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
1、主函数
主函数设计得比较简洁,只提供菜单界面及各模块函数的调用。
main()
{
FILE*fp;
fp=fopen("
record.txt"
"
w"
);
/*建立一个"
记事本*/
fclose(fp);
menu();
}
voidmenu()
intn,w;
/*n表示菜单选择数字*/
do
{
printf("
\t\t^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^\n\n\n"
\t\t欢迎来到杂志订阅系统!
\n\n\n"
\t\t^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^\n"
\n\n\t\t^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^\n\n"
\t\t1:
订户信息添加\n"
\t\t2:
订户信息浏览\n"
\t\t3:
订户信息统计\n"
\t\t4:
退出系统\n\n"
\t\t^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^^-^\n\n"
选择您的操作(1-4):
[]\b\b"
scanf("
%d"
&
n);
if(n<
1||n>
4)
w=1;
getchar();
}
elsew=0;
while(w==1);
/*选择功能*/
switch(n)
case1:
add();
break;
/*增加新订户记录*/
case2:
search();
/*查找过期的订户记录并删除*/
case3:
statistic();
/*统计*/
case4:
exit(0);
/*退出*/
2、各功能模块设计
(1)添加模块
主要用于添加订户信息。
voidadd()
intt,i,m;
t=load_record();
您希望添加几组订户的信息?
\n"
请输入数字:
[]\b\b\b"
m);
for(i=0;
i<
m;
i++)
\n请输入第d%组订户记录!
i+1);
input(t+i);
/*调用输入函数*/
save(t+m);
/*调用保存函数,保存t+m组数据*/
/*返回登陆界面*/
voidinput(inti)
请输入:
\n姓名性别地址电话号码杂志单价订阅数订阅期限\n"
%s%s%s%s%s%s%s"
&
order[i].name,&
order[i].sex,&
order[i].addr,&
order[i].phone_number,&
order[i].unit_price,&
order[i].amount,&
order[i].time_limit);
(2)查询模块
主要用于根据日记查询订户信息,并可以选择是否删除过期订户信息。
voidsearch()
chardate[11],str[2];
intt,i,sum=0;
请输入日期:
[]\b\b\b\b\b\b\b\b\b"
%s"
date);
if((fp=fopen("
))==NULL)/*以只写方式打开*/
对不起,文件打不开!
\n\n"
exit(0);
t;
if(strcmp(order[i].time_limit,date)<
0)
sum++;
printf_one(i);
/*把符合条件的记录显示出来*/
\n\n此订户信息已过期!
"
\n\n您希望删除此条信息吗?
(‘Y’或‘N’):
str);
;
if(strcmp(str,"
Y"
)==0||strcmp(str,"
y"
)==0)
continue;
fwrite(&
order[i],sizeof(structmagazine),1,fp);
fclose(fp);
if(sum==0)
对不起,找不到您要的信息!
\n\n\n任意键返回上一步…\n"
getchar();
(3)统计模块
主要用于显示全部订户的具体信息,包括姓名、性别、地址、电话号码、杂志单价、订阅数、订阅期限。
statistic()
intt;
printf_n(t);
\n\n\n任意键返回…\n\n"
voidprintf_one(inti)/*显示一个仪器记录的函数*/
%-10s%-5s%-10s%-11s%-4s%-3s%-10s\n\n"
order[i].name,order[i].sex,order[i].addr,order[i].phone_number,order[i].unit_price,order[i].amount,&
voidprintf_n(intn)/*显示n个仪器记录的函数*/
intj;
姓名性别地址电话号码杂志单价订阅数订阅期限\n\n"
for(j=0;
j<
n;
j++)
if((j+1)%10==0)/*控制显示,每屏显示10行*/
\n\n任意键继续…"
puts("
\n\n"
printf_one(j);
/*调用显示一个仪器记录的函数*/
3、公共函数
下面介绍在每个功能模块中都有可能用到的一些公共函数。
(1)统计功能函数
intload_record()/*加载仪器信息并计算记录仪器个数的函数*/
inti;
r"
))==NULL)/*以只读方式打开*/
\n文件无法打开\n"
!
feof(fp);
i++)/*从文件中读入数据并保存在结构体数组中*/
fread(&
return(i-1);
(2)保存功能函数
voidsave(intn)/*n表示保存n组数据,m表示保存在哪个文件夹里*/
/*以只写方式打开*/
if(fp==NULL)
i++)
{
fwrite(&
}
}
4、数据结构
本设计通过结构体的形式存储订户信息,且之后的一系列模块均为针对结构体操作。
structmagazine
charname[6];
charsex[2];
charaddr[13];
charphone_number[11];
charunit_price[5];
charamount[4];
chartime_limit[8];
5、上机操作
为证实本程序的可运行性,我进行了上机操作,并根据操作时发现的一些问题优化了程序。
下面是该程序运行时的一些截图。
图1、登陆和选择界面
图2、添加订户信息
图3、订户信息统计
图4、根据日期查询过期订户并删除相关信息
图5、删除过期订户后的统计信息
6、设计体会
经过几星期的上机实践学习,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它。
通过实践,我也发现我的许多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;
再有对C语言的一些标准库函数不太了解,对函数调用的正确使用也不够熟悉,还有对C++语言中经常出现的错误也不了解。
通过实践,使我在这几个方面的认识有所提高。
通过实践的学习,我认到学好计算机要重视实践操作,不管是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以在以后的学习过程中,我会更加注视实践操作,使自己便好地学好计算机。
7、附件
源代码:
#include<
stdio.h>
string.h>
#definemax10
order[max];
voidsave(intn);
intload_record();
voidsearch();
voidprintf_n(intn);
voidprintf_one(inti);
voidinput(inti);
voidadd();
voidmenu();
/*添加模块*/
\n请输入第%d组订户记录!
/*查询模块*/
/*统计模块*/
/*公共函数*/
FILE*fp;
inti;
for(i=0;
i++)/*从文件中读入数据并保存在结构体数组中*/
fread(&
return(i-1);
fp=fopen("
if(fp==NULL)
printf("
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 杂志 订阅 系统