2022年C语言杂志订阅管理软件 .pdf
《2022年C语言杂志订阅管理软件 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言杂志订阅管理软件 .pdf(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C 语言程序设计- 上机实习报告学院 :资源学院班级 :021094 姓名 :柴杉学号 :20091001131 指导老师 :赵曼名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 17 页 - - - - - - - - - 前言我们学习 C 语言课程设计的主要目的是为了了解和熟悉C 语言的编程。学习C 语言要经过一个“理论实践在理论在实践”的过程。而学习C 语言课程设计就是要我们进行实践,从中发现问题,解决问题,提高我们运用C 语言的能力。是我们能够运用C 语言解决一些问
2、题。 通过不断的编程,熟能生巧,是我们的理论学习也有了实践基础,学习理论知识就较为容易一些,然后再通过实践不断的提高,如此良性循环就能是我们的C 语言编程能力更上一成楼。正文一、题目要求杂志订阅管理软件要求 使用计算机对一种杂志的订阅进行管理,该杂志拥有的最多订户不超过10 人,每个订户的信息包括 :姓名 ,性别 ,地址 ,电话号码 ,杂志单价 ,订阅数 ,订阅的期限 (至 XX 年 XX 月 ). 现在要求用菜单选择并完成下述的功能: (1) 增加新订户 ,即将订户的全部信息输入到文件中; (2) 根据当天的日期对订户文件进行查询,删除已经到期的订户记录; (3) 统计本期杂志的订户数并打印
3、运算结果; 本期订户信息表: 订户名订阅数单价金额李平2 5.5 11.0 黄海1 5.5 5.5 合计3 1.0 16.5 二、需求分析根据题目要求, 由于订户信息放在文件中,所以应提供文件的输入,输出,删除等操作;在程序中需要浏览订户的信息,应提供显示、 查找等操作; 另外还应提供键盘式选择菜单实现功能等。三、总体设计根据上面的需求分析,可以将这个系统的设计分为四大模块:添加、查询、 统计、退出。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 17 页 - - - -
4、 - - - - - 其中主要功能是添加、查询、统计三个模块。杂志订阅管理系统四、详细设计1、主函数主函数只提供输入、处理和输出部分的函数调用。其中各功能模块用菜单方式选择。其流程图如图所示。N Y 【程序】void menu() /*主界面 */ int w,n; /*变量 n 保存选择菜单数字,w 判断输入的数字是否在功能菜单对应数字范围内*/ do clrscr(); printf(n); printf(tt* * * * * * * * * * * * * * * * * * * * * * * * *n); printf(tt n); printf(tt n); printf(tt
5、Welcome to the magazine order system !_ n); printf(tt n); printf(tt n); 添 加查 询统 计退 出开 始显示一系列功能选项输入 n, 判断 n 是否是 14?根据n 的值调用各功能模块函数结 束名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 17 页 - - - - - - - - - printf(tt* * * * * * * * * * * * * * * * * * * * * * * * *n
6、); printf(nntt *nn); printf(tt 1:add_new_subscribern); printf(tt 2:browsen); printf(tt 3:statisticn); printf(tt 4:exitnn); printf(tt *nn); printf( Choice your number(1-4): bb); scanf(%d,&n); if(n4) /*对选择的数字作判断*/ w=1; else w=0; while (w=1); /* 选择功能 */ switch(n) case 1:add();break;/*增加新订户记录*/ case 2:s
7、earch();break;/*查找过期的订户记录并删除*/ case 3:statistic();break;/*统计 */ case 4:exit();break;/*退出 */ /*主函数 */ main() FILE *fp; fp=fopen(record.txt,w);/*建立一个 record.txt记事本 */ fclose(fp); menu(); 2、各功能模块设计(1)添加模块【需求分析】名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 17 页 -
8、- - - - - - - - 该模块的功能是需要增加新的订户的记录,从键盘输入并逐条写到原来的文件中,添加模块流程图如图所示。【程序】/*添加模块 */ void add() int t,i,m; clrscr(); t=load_record(); printf(How many groups information do you want to add?n); printf(Enter the number: bbb); scanf(%d,&m); /*输入要添加的记录个数*/ for(i=0;im;i+) printf(nInput %dth subscriber record.n,i
9、+1); input(t+i);/*调用输入函数 */ save(t+m);/*调用保存函数保存 t+m 组数据 */ clrscr();/*清屏 */ menu();/*返回登陆界面*/ void input(int i) printf(Please input:nName sex address phone_number unit_price amount time_limit n); scanf(%s%s%s%s%s%s%s,&orderi.name,&orderi.sex,&orderi.address,&orderi开 始调用加载函数t=load_record() 输入要添加的新订户
10、记录个数m 调用输入函数input(t+i) 调用保存函数save(t+m),保存 t+m 组数据结 束名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 17 页 - - - - - - - - - .phone_number,&orderi.unit_price,&orderi.amount,&orderi.time_limit); (2) 查询模块【需求分析】该模块的功能是根据目前的日期对订户文件进行查询,删除已到期的订户记录。【程序】/*查询模块 */ void se
11、arch() FILE *fp; char date11,str2; int t,i,sum=0; t=load_record(); printf(Please input the current date: bbbbbbbbbbb); scanf(%s,date); printf(n); if(fp=fopen(record.txt,w)=NULL)/*以只写方式打开*/ printf(nCannot open filen); exit(0); printf(n); for(i=0;it;i+) if(strcmp(orderi.time_limit,date)0) 开 始输入当天日期比较当
12、天日期和订阅期限的日期,把符合条件的记录显示出来删除到期订户记录结 束名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 17 页 - - - - - - - - - sum+; printf(n); printf_one(i);/*把符合条件的记录显示出来*/ printf(nnThe record is out of date!); printf(nnDo you want to delete its information?(YorN): bb); scanf(%s,s
13、tr); if(strcmp(str,Y)=0|strcmp(str,y)=0) continue; fwrite(&orderi,sizeof(struct magazine),1,fp); fclose(fp); if(sum=0) printf(*nn); printf(Sorry! Cannot find the equipment which you want to.nn); printf(*nn); printf(nnnPress any key to go back the former step.n); getchar(); menu(); (3)统计模块【需求分析】该模块的功
14、能是统计所有订户的资料并显示结果。【程序】/*统计模块 */ void statistic() int t; 开 始统计并显示订户资料结 束名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 17 页 - - - - - - - - - t=load_record(); printf(The amount of subscriber is%dbbb,t); printf_n(t); printf(nnnPress any key to go back.nn); getchar
15、(); menu(); void printf_one(int i)/*显示一个仪器记录的函数*/ printf(%-10s %-5s %-10s %-11s %-4s %-3s %-10snn,orderi.name,orderi.sex,orderi.addr,orderi.phone_number,orderi.unit_price,orderi.amount,&orderi.time_limit); void printf_n(int n)/*显示 n个仪器记录的函数*/ int j; printf(Name sex address phone_number price amount
16、time_limitnn); for(j=0;jn;j+) if(j+1)%10=0)/*控制显示,每屏显示10 行*/ printf(nnPress any key to continue .); getchar(); puts(nn); printf_one(j);/*调用显示一个仪器记录的函数*/ 3、公共函数/*公共函数 */ int load_record()/*加载仪器信息并计算记录仪器个数的函数*/ FILE *fp; int i; if(fp=fopen(record.txt,r)=NULL)/*以只读方式打开*/ printf(nCannot open filen); exi
17、t(0); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 17 页 - - - - - - - - - for(i=0;!feof(fp);i+)/*从文件中读入数据并保存在结构体数组中*/ fread(&orderi,sizeof(struct magazine),1,fp); fclose(fp); return(i-1); void save(int n)/*n表示保存n 组数据, m表示保存在哪个文件夹里*/ FILE *fp; int i; fp=fopen(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年C语言杂志订阅管理软件 2022 语言 杂志 订阅 管理软件
限制150内