杂志订阅系统

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

C语言课程设计报告

——杂志订阅系统

学院:计算机学院

班级:

姓名:

学号:

指导老师:

C语言课程设计报告

——杂志订阅系统

1、题目要求

使用计算机对一种杂志的订阅进行管理,该杂志拥有最多订户不超过10人,每个订户的信息包括:姓名、性别、地址、电话号码、杂志单位,订阅数、订阅期限。

现要求用菜单选择并完成下述的功能:

(1)增加新订户,即将订户的全部信息输入到文件中。

(2)根据当天的日期对订户文件进行查询,删除已到期的订户记录。

(3)统计本期杂志订户数并打印运算结果。

2、需求分析

根据题目要求,由于订户信息要求存放在文件中,所以应提供文件的输入、输出等操作;在程序中需要对订户文件进行添加和查询,所以应提供添加、显示、查找等操作;另外还应提供选择菜单实现功能选择。

3、总体设计

下面来分析一下整个系统,根据上面的需求分析,可以将这个系统的设计分为四大模块:添加、查询、统计、退出。其中主要功能是查询和统计两个模块。

││││

4、详细设计

1、主函数

主函数设计得比较简洁,只提供菜单界面及各模块函数的调用。

main()

{

FILE *fp;

fp=fopen("record.txt","w"); /*建立一个"record.txt"记事本*/

fclose(fp);

menu();

}

void menu()

{

int n,w; /*n表示菜单选择数字*/

do

{

printf("\t\t ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ \n\n\n"); printf("\t\t 欢迎来到杂志订阅系统! \n\n\n");

printf("\t\t ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ \n");

printf("\n\n\t\t ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ \n\n"); printf("\t\t 1:订户信息添加 \n");

printf("\t\t 2:订户信息浏览 \n");

printf("\t\t 3:订户信息统计 \n");

printf("\t\t 4:退出系统 \n\n");

printf("\t\t ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ \n\n");

printf("选择您的操作(1-4):[ ]\b\b");

scanf("%d",&n);

if(n<1||n>4)

{

w=1;

getchar();

}

else w=0;

}

while (w==1); /*选择功能*/

switch(n)

{

case 1:add();break; /*增加新订户记录*/

case 2:search();break; /*查找过期的订户记录并删除*/

case 3:statistic();break; /*统计*/

case 4:exit(0);break; /*退出*/

}

}

2、各功能模块设计

(1)添加模块

主要用于添加订户信息。

void add()

{

int t,i,m;

t=load_record();

printf("您希望添加几组订户的信息?\n");

printf("请输入数字:[ ]\b\b\b");

scanf("%d",&m);

for(i=0;i

{

printf("\n请输入第d%组订户记录!\n",i+1);

input(t+i); /*调用输入函数*/

}

save(t+m); /*调用保存函数,保存t+m组数据*/

menu(); /*返回登陆界面*/

}

void input(int i)

{

printf("请输入:\n姓名性别地址电话号码杂志单价订阅数订阅期限\n"); scanf(" %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)查询模块

主要用于根据日记查询订户信息,并可以选择是否删除过期订户信息。

void search()

{

FILE *fp;

char date[11],str[2];

int t,i,sum=0;

t=load_record();

printf("请输入日期:[ ]\b\b\b\b\b\b\b\b\b");

scanf("%s",date);

printf("\n");

if((fp=fopen("record.txt","w"))==NULL) /*以只写方式打开*/

{

printf(" 对不起,文件打不开! \n\n");

exit(0);

}

printf("\n");

for(i=0;i

{

if(strcmp(order[i].time_limit,date)<0)

{

sum++;

printf("\n");

printf_one(i); /*把符合条件的记录显示出来*/

printf("\n\n 此订户信息已过期!");

printf("\n\n 您希望删除此条信息吗?(‘Y’或‘N’):[ ]\b\b");

scanf("%s",str);;

if(strcmp(str,"Y")==0||strcmp(str,"y")==0)

相关文档
最新文档