杂志订阅系统
- 格式:doc
- 大小:156.00 KB
- 文档页数:15
杂志报刊订阅管理系统简介杂志报刊订阅管理系统是一种用于管理杂志报刊订阅的系统。
该系统实现了用户订阅杂志报刊、管理订阅信息、生成订阅报告等功能,帮助杂志报刊发行商更好地管理订阅信息和了解读者需求。
功能特性用户订阅用户可以通过系统进行杂志报刊的订阅。
用户首先需要注册一个账户,并提供必要的个人信息。
然后,他们可以浏览系统中的杂志报刊列表,并选择想要订阅的杂志报刊。
用户可以选择订阅的时长(例如一年、半年或季度),并支付订阅费用。
系统会自动更新用户的订阅信息。
个人信息管理用户可以在系统中管理自己的个人信息。
他们可以查看和编辑个人资料,包括姓名、联系方式、收货地址等。
用户还可以修改登录密码和账户安全设置。
订阅信息管理系统管理员可以在系统中管理所有的订阅信息。
管理员可以查看订阅列表,包括订阅人姓名、订阅杂志报刊、订阅时长等信息。
管理员可以手动添加新的订阅,也可以修改或删除现有的订阅。
订阅报告生成系统可以根据订阅信息生成订阅报告。
订阅报告可以包括各种指标和统计数据,例如订阅人数、订阅时长分布、最受欢迎的杂志报刊等。
这些订阅报告可以帮助发行商了解读者的需求和市场趋势,从而做出更好的商业决策。
技术实现杂志报刊订阅管理系统可以使用现代的Web开发技术来实现。
以下是一些可能使用的技术和工具:•前端开发:使用HTML、CSS和JavaScript开发用户界面。
可以使用流行的前端框架,如React或Vue.js来简化开发过程。
•后端开发:使用服务器端编程语言,如Python、Java或Node.js来处理用户请求、管理数据和生成报告。
可以使用Web框架(如Django、Spring Boot或Express)来加快开发速度。
•数据库管理:使用关系型数据库(如MySQL或PostgreSQL)来存储用户信息和订阅数据。
可以使用ORM (对象关系映射)工具来简化数据库操作。
•支付集成:集成第三方支付服务(如支付宝或微信支付)来处理用户的订阅费用支付。
目录1 需求分析 (1)2 概要设计 (3)3详细设计 (6)4调试分析 (14)5用户使用说明 (15)6测试结果 (22)7结论 (23)8致谢 (24)9附录 (25)10参考文献 (32)摘要随着社会发展的多元化、信息化,订阅报刊的管理已经成为一个令人头痛的事情。
由于现在报刊总类繁多,需求量大,交易速度快,如何在最短的时间内,对各种报刊进行有效的管理,已成为十分迫切的问题。
本系统是一个基于JAVA和数据库的企业报刊订阅管理系统。
系统是智能化的管理系统,它面向企业所有的部门的职业用户,但具有安全性。
它能够实现报刊订阅的基本功能,包括对用户、报刊信息的录入、统计、增删改查等操作。
用户合法注册后必须输入有效密码才能成功进入此系统,可以进行报刊订阅与退订,修改个人信息和订单信息等操作。
关键词:报刊订阅管理系统,JAVA,数据库引言随着社会不断的发展,人们的生活水平越来越高,对知识和时事的渴求也越来越高,人们希望能够方便快捷地订阅各种报刊杂志。
但是各种各样的报刊名目和详细信息以及订阅,为相关企业的管理造成很大的麻烦。
因此我们想到开发一个报刊订阅管理系统。
在本系统中,需要实现:管理员可以录入用户信息,报刊信息,同时可按用户名、报刊名、部门对系统进行相应的查询信息以及统计信息等功能;用户可以注册、更新自己的信息,同时还可以订阅、退订报刊和查询、修改订单。
1 需求分析一直以来,人们在企业单位中都是使用传统人工方式管理单位的报刊订阅,这种管理方式存在着许多缺点,譬如,效率低,保密性差,而且时间一长,将产生大量的文件和数据,难以归类整理,这对于查找、更新和维护都带来了不少的麻烦。
通过学习,了解了JAVA、数据库,并在本次课程设计中利用这些知识点,实现一个面向于企业的报刊订阅管理系统,能够通过计算机和数据库对本单位的报刊订阅进行一系列的管理,实现智能化管理,克服了传统人工管理方式的缺点以及弊端。
在报刊订阅管理系统中,要实现:管理员可以录入用户信息,报刊信息,同时可按用户名、报刊名、部门对系统进行相应的查询信息以及统计信息等功能;用户可以注册、更新自己的信息,同时还可以订阅、退订报刊和查询、修改订单。
第一章前言随着计算机的不断普及,社会上的各行各业都开始由计算机主宰着,不论是政府、企业、教育等各个单位的各个部门都有计算机来完成各种各样的工作,所以计算机知识的普及,计算机技术的广泛应用是势在必然的趋势,各个大中型企业、公司都会订阅一些关于本单位的杂导和期刊,这就会给杂志社带来很大的工作量,为使期操作更加简单、快捷我计划设计开发本系统——报刊杂志订阅系统。
学习计算机知识的目的在于更加准确、快捷的解决现实生活中的各种问题。
我们只有不断的更新和完善自己的知识、在实践中积累经验,才能做出好的软件为社会服务,为使用者提供便利我以这个标准要求自己应用JSP平台+ACCESS;用到的主要技术:HTML、CSS、B/S,逐步实现杂志订阅管理和公司信息管理的全部功能。
一、报刊杂志订阅系统的简介本系统是一个基于JA V A平台技术的B/S结构的管理信息系统,主要作用是帮助杂志社完成杂志社管理和公司信息管理。
所以整个系统分为两个主要功能模块:杂志订阅管理模块和公司信息管理模块。
开发环境:JA V A平台+Access+JSP;用到的主要技术:JSP。
其中杂志订阅管理模块侧重点是维护公司订阅杂志的信息,强调的是哪些公司在什么时期订阅了什么杂志;公司管理模块侧重点是维护所有公司的一些基本信息和数据信息。
本系统具有良好的可维护性和可伸缩性,并具有较高的稳定性。
二、报刊杂志订阅系统的用户需求(一) 总体功能需求报刊杂志订阅系统是针对杂志社的大量处理工作用计算机进行全面现代化管理。
系统开发的总任务是实现杂志社各种信息的系统化、规范化和自动化。
系统功能分析是在系统开发的总体任务的基础上完成的。
本系统主要完成的功能包括杂志订阅模块,公司管理模块,公司数据模块三个主要模块及一些辅助模块。
以实现用户方便的输入、查询、统计相关报表的业务需求。
(二) 系统具体功能描述1.杂志订阅模块完成杂志订阅信息的添加、删除、修改、批量修改、查询、数据导出、数据统计。
分析邮局订阅管理系统中各个模式的范式
在邮局订阅管理系统中,常见的模式包括以下几种:
1. 用户模式:用于管理用户的个人信息、订阅情况以及相关操作。
该模式的范式通常包括用户的基本信息(如姓名、地址、联系方式等),订阅的期刊、报纸或杂志的选择,订阅时间和费用等。
2. 订阅模式:用于管理期刊、报纸或杂志的信息以及订阅规则。
该模式的范式通常包括期刊、报纸或杂志的名称、出版社、发行周期、价格等基本信息,以及不同订阅规则(如选定期限、递送方式、续订方式等)的设置。
3. 订单模式:用于管理用户的订单信息,跟踪订单状态和处理相关操作。
该模式的范式通常包括订单号、订阅的期刊、报纸或杂志的信息、订单生成时间、付款方式、送货地址等。
4. 支付模式:用于管理用户的支付信息和相关操作。
该模式的范式通常包括支付方式(如在线支付、货到付款等)、付款金额、付款时间、支付状态等。
5. 统计模式:用于统计系统中的各项数据,如用户数量、订阅情况、销售额等。
该模式的范式通常包括各类统计指标的定义和计算方法。
需要注意的是,范式的具体实现可能会因邮局订阅管理系统的需求而有所不同,上述模式仅提供了一个常见的参考。
具体的范式设计应根据具体业务需求进行分析和设计。
1、在人工智能领域,目前最广泛使用的高级语言是( )。
1.LISP2. Ada3. FORTRAN4. COBOL2、软件测试中根据测试用例设计的方法的不同可分为黑盒测试和白盒测试两种,它们()1. B. 前者属于动态测试,后者属于静态测试2.都属于静态测试3.都属于动态测试4.前者属于静态测试,后者属于动态测试3、软件工程学是应用科学理论和工程上的技术指导软件开发的学科,其目的是()。
1.引入新技术提高空间利用率2.硬软件结合使系统面向应用3.用较少的投资获得高质量的软件4.缩短研制周期扩大软件功能4、下列叙述中,()不属于数据字典的作用。
1.用户中系统的直接使用者2.用户和软件人员的中间人3.软件的编程人员4.用户和软件人员的领导5、软件设计中划分模块的一个准则是()。
1.低内聚高耦合2.高内聚低耦合3.低内聚低耦合4.高内聚高耦合6、提高程序可读性的有力手段是()。
1.给程序加注释2.选好一种程序设计语言3.显示说明一切变量4.使用三种标准控制语句7、SA法的主要描述手段有()1.系统流程图和模块图2. DFD图、数据词典、加工说明3.功能结构图、加工说明4.软件结构图、加工说明8、结构化分析,简称()1. SC2. CASE3. SA4. SD9、模块内聚度越高,说明模块内各成分彼此结合的程度越()。
1.无法判断2.松散3.紧密4.相等10、PDL是()语言。
1.高级程序设计语言2.中级程序设计语言3.伪码式4.低级程序设计语言11、采用甘特图表示软件项目进度安排,下列说法中正确的是()。
1.能够反映多个人物之间的复杂关系2.能够直观表示任务之间相互依赖的制约关系3.能够表示哪些任务是关键任务4.能够表示字人物之间的并行和串行关系12、软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是()1.软件开发工具和软件开发的环境2.软件开发环境3.硬件环境4.开发人员的素质13、软件产品的生产主要()1.研制2.生产3.再生产4.开发14、数据字典是数据流图中所有元素的定义的集合,一般由以下4类条目组成()。
软件工程课程设计说明书题目:邮局报刊订阅管理系统的设计与实现专业:网络工程班级:网络10-1学号:***********姓名:指导老师:***日期:2013.09.11.需求分析2.1系统需求和功能现在随着网络、计算机以及数据库的快速发展,报刊的订阅也不再是传统低效的纸笔记录了,已经转向网络。
本系统就是面向一个企业的报刊订阅管理系统。
此系统是一种比较智能化的管理系统,它面向所有企业部门的职工用户,但具有比较高的安全性能。
它能够实现报刊订阅的基本功能,包括新报刊信息的录入、订阅、查询等操作以及后台数据库的备份和恢复。
用户合法注册后必须输入有效密码才能成功进入此系统,可以进行订阅报刊,查询信息,统计信息等操作。
对于非法操作,系统有识别和防护措施本系统主要有以下功能模块:●(1)登陆功能:登陆系统为身份验证登录。
分为管理员登录和一般用户登录。
分别通过不同的用户名和密码进入报刊订阅管理界面。
●(2)录入新信息功能:对于管理员,包括新用户信息和新报刊信息的录入功能,信息一旦提交就存入到后台数据库中;普通用户自行注册进行录入个人信息。
●(3)订阅功能:用户可以订阅报刊,系统自动计算所需金额,并显示在界面上;管理员不可订阅报刊,必须以用户身份订阅报刊。
●(4)查询功能:用户可以查询并显示自己所订阅的信息;管理员可以按人员、报刊、部门分类查询。
查询出的信息显示在界面上。
●(5)统计功能:管理员可以按用户、部门、报刊统计报刊的销售情况,并对一些重要的订阅信息进行统计;普通用户可以统计出自己的订阅情况。
●(6)系统维护功能:管理员可以对用户、报刊、部门、订阅等信息进行添加、删除、更改等维护工作;管理员还要经常备份数据库,以备出现故障后恢复。
用户可以更改自己的注册信息,但用户名不能更改。
系统框架报刊订阅管理系统主要是由登录、录入、订阅、信息查询、统计、系统维护等主要模块构成。
本系统的结构功能图:概念结构设计概念结构设计的方法与步骤概念结构独立于数据库逻辑结构和支持数据库的DBMS。
(完整)杂志订阅管理系统源码 C++课程设计编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)杂志订阅管理系统源码C++课程设计)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整)杂志订阅管理系统源码 C++课程设计的全部内容。
#include〈stdio.h>#include<stdlib。
h>#include〈string.h>#include<iostream.h〉struct subscriberInfo{char name[20];char sex[4];char addr[30];char tel[11];float price;int num;char date[10];}subInfo;void insert();void del();void total();int main(){int ch;char ch1;cout〈<”********************************************************************************”<<endl;cout<<" 欢迎使用杂志订阅管理软件”<<endl;cout〈〈”********************************************************************************"〈<endl;cout<<” 按回车键进入主菜单!”〈<endl;getchar();system("cls");do{cout<<”********************************************************************************"<〈endl;cout〈〈” 欢迎使用杂志订阅管理软件 "<〈endl;cout<<”********************************************************************************"<〈endl;cout<<" 1键增加新订户”〈〈endl;cout〈<” 2键删除到期用户"<〈endl;cout〈〈" 3键统计订户数”<<endl;cout〈<” 0键退出程序”<〈endl;printf(" 请选择您需要的功能:");scanf("%d”,&ch);getchar();switch(ch){case 1:insert();break;case 2:del();break;case 3:total();break;bb:case 0:system("cls");cout<〈”********************************************************************************"〈<endl;cout〈〈endl;cout<<” 谢谢您的使用! ”<<endl;cout<〈” 请按任意键退出!”〈<endl;cout〈〈endl;cout〈〈”********************************************************************************”<〈endl;exit(0);default:printf("输入有误,请重新输入!\n”);break;}printf(”是否继续其他操作(Y/N)?”);scanf(”%c",&ch1);if (ch1=='n'||ch1=='N'){goto bb;}system("cls”);}while(ch1=='y’||ch1=='Y’);return 0;}/*-—-—————--——---—-----——-————————---—--—-——-—---—-———---——————---—-——-—增订新用户-———-—-————————--—--——-————----———-—-—-—-——--—--*/void insert(){FILE *fp;struct subscriberInfo subInfo;int i=0;char ch;cout〈<”********************************************************************************”<〈endl;cout<〈" 增加新订户”〈<endl;cout〈<””<〈endl;if((fp=fopen("SubscriberInfo。
说明书设计题目:杂志订阅管理系统目录:1.设计任务---------------------------------------------------------------------------------------------12.正文-----------------------------------------------------------------------------------------------------------2 (1).系统模块图------------------------------------------------------------------------------------------3 (2).模块说明---------------------------------------------------------------------------------------------3 (3).用户使用说明---------------------------------------------------------------------------------------3(4).测试结果---------------------------------------------------------------------------------------------33.设计小结--------------------------------------------------------------------------------------------------94.附录-----------------------------------------------------------------------------------------------------------10一.设计任务1、需求分析:订户的信息要用文件存储,所以要提供文件的输入输出操作;要实现增加新订户的功能,所以要提供文件的添加操作;要实现对订户文件的查询,所以要提供文件的查找操作;要删除已到期的订户记录,所以要提供文件的删除操作;要统计本期杂志订户数并打印运算结果,所以要提供统计和显示操作;另外还要提供键盘式选择菜单以实现功能选择。
C 语言课程设计题目:图书信息管理系统设计者:所属院系:工程学院专业:安全工程班级:055101学号:指导教师:吴湘宁C语言课程设计报告一.题目要求杂志订阅管理软件[要求]使用计算机对一种杂志的订阅进行管理,该杂志拥有的最多订户不超过10人,每个订户的信息包括:姓名,性别,位置,电话号码,杂志单价,订阅数,订阅的期限(至XX年XX月).现在要求用菜单选择并完成下述的功能:(1)增加新订户,即将订户的全部信息输入到文件中;(2)根据当天的日期对订户文件进行查询,删除已经到期的订户记录;(3)统计本期杂志的订户数并打印运算结果;本期订户信息表:订户名订阅数单价金额李平 2 5.5 11.0黄海 1 5.5 5.5合计 3 1.0 16.5二.需求分析根据题目要求,由于杂志的订户信息要用文件存储,所以要提供文件的输入输出操作;提供文件的添加操作增加新订户;对订户文件的查阅,提供文件的查找操作;通过文件的删除操作删除已经到期的订户记录;提供统计和显示操作统计本期杂志订户数并打印运算结果;另外还要提供键盘式选择菜单以实现功能选择.三.总体设计经过分析整个系统,根据上面的需求分析,可以将整个系统的设计分为如下三大模块:增加新订户,查询,统计.四.1.主函数.主函数只提供输入,处理和输出部分的函数调用.每个功能模块用菜单方式选择.设置一个menu()函数,再用主函数调用menu()函数,使系统执行完每部分功能模块后能够方便返回到系统界面.[流程图]N[程序]void 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 ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ ^-^ \n\n");printf("选择您的操作(1-3):[ ]\b\b");scanf("%d",&n);if(n<1||n>3){w=1;getchar();}else w=0;}While(w==1); /*选择功能*/switch(n){case 1:add();break; /*增加新订户记录*/case 2:search();break; /*查找过期的订户记录并删除*/ case3:statistic();break; /*统计*/case4:exit(); /*退出*/}}2.各功能模块设计(1)增加新订户模块[数据结构]单独看各个信息,姓名,性别和位置是字符型的,电话号码,订阅数和订阅期限是整型的,杂志单价是实数型的.数据信息以文件的形式存放,一条记录对应一个订户.由于信息有整型,实数型和字符型,所以应采用结构体数组来存放信息.如下:struct magazine{char name[6];char sex[2];char addr[13];char phone_number[11];char unit_price[5];char amount[4];char time_limit[8];}由于题目中明确订户最多不超过10人,所以这里定义reader[10]就够了.使用宏定义(#define N 2)方便改变每次要输入新订户的个数.[流程图]【程序】void add(){int t,i,m;t=load_record();printf("您希望添加几组订户的信息?\n");printf("请输入数字:[ ]\b\b\b");scanf("%d",&m);for(i=0;i<m;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,&ord er[i].addr,&order[i].phone_number,&order[i].unit_price,&ord er[i].amount,&order[i].time_limit);}(2)查询订户信息模块【需求分析】需要根据现在日期删除已经过期订户的信息。
C语言课程设计报告——杂志订阅系统1、题目要求使用计算机对一种杂志的订阅进行管理,该杂志拥有最多订户不超过10人,每个订户的信息包括:姓名、性别、地址、电话号码、杂志单位,订阅数、订阅期限。
现要求用菜单选择并完成下述的功能:(1)增加新订户,即将订户的全部信息输入到文件中。
(2)根据当天的日期对订户文件进行查询,删除已到期的订户记录。
(3)统计本期杂志订户数并打印运算结果。
2、需求分析根据题目要求,由于订户信息要求存放在文件中,所以应提供文件的输入、输出等操作;在程序中需要对订户文件进行添加和查询,所以应提供添加、显示、查找等操作;另外还应提供选择菜单实现功能选择。
3、总体设计下面来分析一下整个系统,根据上面的需求分析,可以将这个系统的设计分为四大模块:添加、查询、统计、退出。
其中主要功能是查询和统计两个模块。
杂志订阅系统││││││││添加查询统计退出图1、系统功能模块图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<m;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<t;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)continue;}fwrite(&order[i],sizeof(struct magazine),1,fp);}fclose(fp);if(sum==0){printf(" 对不起,找不到您要的信息! \n\n");}printf("\n\n\n 任意键返回上一步… \n");getchar();menu();}(3)统计模块主要用于显示全部订户的具体信息,包括姓名、性别、地址、电话号码、杂志单价、订阅数、订阅期限。
statistic(){int t;t=load_record();printf_n(t);printf("\n\n\n 任意键返回… \n\n");getchar();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;printf("姓名性别地址电话号码杂志单价订阅数订阅期限\n\n");for(j=0;j<n;j++){if((j+1)%10==0) /*控制显示,每屏显示10行*/{printf("\n\n 任意键继续… ");getchar();puts("\n\n");}printf_one(j); /*调用显示一个仪器记录的函数*/}}3、公共函数下面介绍在每个功能模块中都有可能用到的一些公共函数。
(1)统计功能函数int load_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);}(2)保存功能函数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<n;i++){fwrite(&order[i],sizeof(struct magazine),1,fp);}fclose(fp);}4、数据结构本设计通过结构体的形式存储订户信息,且之后的一系列模块均为针对结构体操作。
struct magazine{char name[6];char sex[2];char addr[13];char phone_number[11];char unit_price[5];char amount[4];char time_limit[8];}5、上机操作为证实本程序的可运行性,我进行了上机操作,并根据操作时发现的一些问题优化了程序。
下面是该程序运行时的一些截图。
图1、登陆和选择界面图2、添加订户信息图3、订户信息统计图4、根据日期查询过期订户并删除相关信息图5、删除过期订户后的统计信息6、设计体会经过几星期的上机实践学习,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它。
通过实践,我也发现我的许多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对C语言的一些标准库函数不太了解,对函数调用的正确使用也不够熟悉,还有对C++语言中经常出现的错误也不了解。