杂志订阅管理系统c语言实训报告,杂志订阅管理系统

已结贴√

问题点数:20 回复次数:1

ca56232b3bbedf9a539d07f37fffb99a.gif

3144d8b7615c79d9f638db40d5689d26.gif

a218af6549b45ee526caf607ebff1358.gif

0f8df0e29816ae721419de940fb833d1.gif

杂志订阅管理系统

萌新求教,杂志订阅管理系统的问题。

#include

#include

#include

#include

#define max 50

struct magazine

{

char  name[11];

char  sex[6];

char  addr[11];

char  phone_number[12];

char  unit_price[5];

char  amount[4];

char  time_limit[11];

}

order[max];

void save(int n);//保存函数

int  record();

void search();

void printf_n(int n);//输出n条信息

void printf_one(int i);//输出一条信息

void input(int i);

void statistic();//统计函数

void add();

void menu();

void main()

{

FILE *fp;

fp=fopen("record.txt","w");/*在C:\Documents and Settings\Administrator里建立一个"record.txt"记事本*/

fclose(fp);

menu();

}

void menu()

{

void clrscr();

int w,    n;

do

{

system("color E");

putchar(73);

printf("                    ****************\n");

printf("                 ****                ****\n");

printf("             ****                        ****\n");

printf("           **                                **\n");

printf("         **                                    **\n");

printf("       **                                        **\n");

printf("     **       *******                *******       **\n");

printf("     **   ****    ★   ****        ****   ★    ****   **\n");

printf("   **   *************    **    *************    **   **\n");

printf("   **     ****       **          ****       ****     **\n");

printf(" **                                                     **\n");

printf(" **                                                     **\n");

printf(" **                                                     **\n");

printf(" **                                                     **\n");

printf(" **    **                                        **     **\n");

printf(" **    **                                        **     **\n");

printf(" **    **                                        **     **\n");

printf(" **      **                                    **       **\n");

printf("   **    **                                    **     **\n");

printf("   **      **                                **       **\n");

printf("     **    **                                **     **\n");

printf("     **      **                            **       **\n");

printf("       **      ****                    ****       **\n");

printf("         **        ****            ****         **\n");

printf("           **          ************           ** \n");

printf("             ****                         ****\n");

printf("                * * * * * * QAQ * * * * * * * * * * * *\n");

printf("\t\t*                                                 *\n");

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

printf("\t\t*                       Blibili                   *\n");

printf("\t\t*                  Keshawn7                       *\n");

printf("\t\t*                                                 *\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;

else w=0;

}

while (w==1);

/***************选择功能****************/

switch(n)

{

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

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

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

case 4:break;         /*退出*/

}

}

/*********************添加模块************************/

void add()

{

int t,i,m;

system("cls");

t=record();//负荷记录

printf("您需要添加多少用户的信息?\n");

printf("输入号码:[  ]\b\b\b");

scanf("%d",&m);

for(i=0;i

{

printf("\n输入 %dth subscriber record.\n",i+1);

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

}

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

system("cls")  ;                /*******清屏*********/

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

}

void input(int i)

{

printf("请输入:\n编号 姓名 性别 电话号码 杂志价格 订阅数量 订阅期限");

scanf("%s%s%s%s%s%s%s",&order[i].addr,&order[i].name,&order[i].sex,order[i].phone_number,order[i].unit_price,order[i].amount,order[i].time_limit);

}

/**************************统计模块****************************/

void statistic()

{

int t;

t=record();

printf("订阅者的数量[%d]\b\b\b",t);

printf_n(t);

printf("\n\n\n按任意键返回...\n\n");

getch();

menu();

}

void printf_one(int i)    /*显示一个仪器记录的函数*/

{

printf("%-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,&order[i].time_limit);

}

void printf_n(int n)      /*显示n个仪器记录的函数*/

{

int j;

system("cls");                /**********清屏************/

printf("姓名  性别  地址  电话号码   价格  数量  时间期限\n\n");

for(j=0;j

{

if((j+1)%10==0)         /*控制显示,每屏显示10行*/

{

printf("\n\n按任意键继续 ...");

getch();

puts("\n\n");

}

printf_one(j);            /*调用显示一个仪器记录的函数*/

}

}

/***************查询模块****************/

void search()

{

FILE *fp;

char date[11],str[2];

int t,i,sum=0;

t=record();

system("cls");

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

scanf("%s",date);

printf("\n");

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

{

printf("\n无法打开文件\n");

exit(0);

}

system("cls");

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'or'N'):[ ]\b\b");

scanf("%s",str);;

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

continue;

}

fwrite(&order[i],sizeof(struct magazine),1,fp);

}

fclose(fp);

if(sum==0)

{

printf("***************************************************\n\n");

printf("很遗憾! 无法找到您想要的条件\n\n");

printf("***************************************************\n\n");

}

printf("\n\n\n按任意键返回前一步...\n");

getch();

menu();

}/****************************公共函数************************************/

int record()/***加载仪器信息并计算记录仪器个数的函数***/

{

FILE *fp;

int i;

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

{

printf("\n无法打开文件\n");

exit(0);

}

for(i=0;!feof(fp);i++)/*从文件中读入数据并保存在结构体数组中*/

fread(&order[i],sizeof(struct magazine),1,fp);

fclose(fp);

return(i-1);

}void save(int n)/*n表示保存n组数据,m表示保存在哪个文件夹里*/

{

FILE *fp;

int i;

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

if(fp==NULL)

{

printf("\n无法打开文件\n");

exit(0);

}

for(i=0;i

{

fwrite(&order[i],sizeof(struct magazine),1,fp);

}

fclose(fp);

}

search部分char date[11],str[2];和 if(strcmp(order[i].time_limit,date)<0)怎么理解!

求教!!谢大佬!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值