C语言课程设计 杂志阅读管理软件Word下载.docx
- 文档编号:18829492
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:17
- 大小:116.08KB
C语言课程设计 杂志阅读管理软件Word下载.docx
《C语言课程设计 杂志阅读管理软件Word下载.docx》由会员分享,可在线阅读,更多相关《C语言课程设计 杂志阅读管理软件Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
因此,它的应用范围广泛。
C语言在很多方面都可以用,不仅仅是在软件开发上,各类科研都是需要用到C语言的。
具体应用比如我是学硬件的,单片机以及嵌入式系统都可以用C来开发。
C语言发展如此迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。
许多著名的系统软件,如DBASEⅢPLUS、DBASEⅣ都是由C语言编写的。
用C语言加上一些汇编语言子程序,就更能显示C语言的优势了,像PC-DOS、WORDSTAR等就是用这种方法编写的。
在信息化迅速更新的今天,计算机已经普及,而C语言为计算机的更新换代提供了很好的基础平台,作为当代的大学生学好C语言是很重要的。
为此学校为我们提供了提高C语言专业知识的载体,为我们开设了C语言上机实习课程。
设计思路及要求
程序设计思路
C语言程序设计主要是利用C语言的设计操作能力设计出一个杂志订阅管理系统,一个完整的杂志订阅管理软件至少应该具有:
(1)能够提供文件的储存、输入、输出、删除等操作;
(2)能够提供文件的添加操作,增加新用户等操作;
(3)能够提供文件的查询,查找等操作;
(4)能够通过文件的删除操作纪实删除已到期的订户记录;
(5)能够提供统计和显示操作统计本期杂志本期用户数并打印运算结果;
(6)另外文件还要具备提供键盘式选择菜单以实现功能选择.
程序设计要求
C语言程序的设计需要明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识,提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平,并能够初步了解软件开发的一般方法和步骤,提高撰写技术文档的能力。
而对于本次程序设计的要求则是:
使用计算机对一种杂志的订阅进行管理,该杂
志拥有的最多用户不能超过10人,每个订户的信息包括:
姓名,性别,地址,电话号码,杂志单价,订阅数,订阅的期限(至**年**月)。
要求用菜单选择并完成下述功能:
(1)增加新用户,即将订户的全部信息输入的文件中;
(2)根据当天的日期对订户文件进行查询,删除已到期的订户记录:
(3)统计本期杂志订户数并打印运算结果:
本期订户信息表
订户名订阅数单价金额
李平25.511.0
黄海15.55.5
合计31.016.5
程序总体设计流程图
功能模块的调试和测试
1.增加订户模块
2.删除过期订户
在上图中我假设当前时间为2008\08\08对文件中订户信息进行更新。
下面来看看保存有订户信息的文本文件中的数据情况。
在上图中我们可以看出所有的到期时间在2008\08\08之前的订户的信息都被一段特殊的信息所代替。
3.输出所有信息
在上图中我输出了在MSG.txt中的所有订户的信息。
4.统计本月订户
上图中假设这个月是2008\08\08。
注意这个功能与删除过期订户的差异,统计功能只是输出文件中没有过期的订户,而没有在文件中将过期的订户删除,而删除过期订户在文件中将过期的订户删除。
5.查询用户
以上是查询姓名是"
xiao"
的订户的信息。
程序设计的原代码
#include"
stdio.h"
string.h"
stdlib.h"
typedefstructmsg{
charname[20];
charsex[10];
chardialnumber[11];
intcount;
floatprice;
floatmoney;
chardate[20];
charreaderaddr[50];
}msgnode;
voidStart(){
printf("
****************************************************************************\n"
);
******WRITENBYDAVIDX.H.OFCUG******\n"
************\n"
******DAVIDX.H.ALLRIGHTSRESERVED******\n"
}
voidTextOut(){
\t\twannacheckmessage,press------------------0.\n\n"
\t\twannaADDanewreader,press---------------1.\n\n"
\t\twannaupdatethemessagetable,press-------2.\n\n"
\t\twannaoutputallthemessage,press--------3.\n\n"
\t\twannadisplayreadersthismonth.,press---4.\n\n"
\t\twannaexit,press---------------------------5.\n\n"
intCheckDateMon(char*date){
charchdate[3];
chdate[0]=date[5];
chdate[1]=date[6];
chdate[2]='
\0'
;
returnatoi(chdate);
intCheckDateDay(char*date){
chdate[0]=date[8];
chdate[1]=date[9];
intAddReader(){
FILE*fp;
msgnodead;
if((fp=fopen("
MSG.txt"
"
at"
))==NULL){
printf("
CannotopenthefileorCannotfindthefile.pleasecheckout.\n"
getch();
return0;
}
inputstart.^_^\n"
pleaseinputthename:
^_^\n"
scanf("
%s"
ad.name);
pleaseinputthesex[male/female]:
ad.sex);
pleaseinputthedialnumber:
ad.dialnumber);
pleaseinputthecount:
%d"
&
ad.count);
pleaseinputtheprice:
%f"
ad.price);
pleaseinputthedate:
ad.date);
while(ad.date[4]!
='
.'
||ad.date[7]!
||strlen(ad.date)!
=10
||CheckDateMon(ad.date)>
=13||CheckDateDay(ad.date)>
=32){
theformatisnotrightorthedateisnotexisted.\n"
Youshouldinputthedatelikethis'
YYYY.MM.DD'
\n"
pleaseinputthedateagain:
pleaseinputtheaddressofreader:
ad.readeraddr);
fprintf(fp,"
%15s%8s%13s%7d%7.2f%10.2f%13s%-50s\n"
ad.name,ad.sex,ad.dialnumber,ad.count,ad.price,ad.count*ad.price,ad.date,ad.readeraddr);
fclose(fp);
return1;
intUpdateMsg(char*currdate){
msgnodecurrnode,movenode;
inti=0,j=0;
rt+"
%s\n"
CannotopenthefileorCannotfindthefile.pleasecheckout."
i=ftell(fp);
fscanf(fp,"
%s%s%s%d%f%f%s%s"
currnode.name,currnode.sex,currnode.dialnumber
&
currnode.count,&
currnode.price,&
currnode.money,currnode.date,currnode.readeraddr);
j=ftell(fp);
j=j-i;
rewind(fp);
while(!
feof(fp)){
fscanf(fp,"
&
if(feof(fp))
break;
if(strcmp(currdate,currnode.date)>
0){
fseek(fp,-j,1);
%15s%8s%13s%7d%7.2f%10.2f%13s%-50s"
"
NULL"
0
0.0,0.0,"
9999.99.99"
fseek(fp,2L,1);
}
intOutputAll(){
msgnodeoa;
intallcount=0;
floatallmoney=0;
rt"
return0;
%15s%8s%13s%7s%7s%10s%13s%-50s\n"
readername"
readsex"
number"
count"
price"
moneysum"
date"
readeraddress"
oa.name,oa.sex,oa.dialnumber,&
oa.count
oa.price,&
oa.money,oa.date,oa.readeraddr);
allcount+=oa.count;
allmoney+=oa.money;
if(strcmp(oa.sex,"
))
oa.name,oa.sex,oa.dialnumber,oa.count,oa.price,oa.money,oa.date,oa.readeraddr);
heji"
--"
-----------"
allcount,"
----"
allmoney,"
2007.09.04"
intCheckReader(char*name){
inti,j;
charch;
msgnodecr;
getch();
cr.name,cr.sex,cr.dialnumber,&
cr.count,&
cr.price,&
cr.money,cr.date,cr.readeraddr);
cr.name,cr.sex,cr.dialnumber,&
if(!
strcmp(cr.name,name)){
printf("
Thereaderyouarecheckingisexistedinthelist.\n"
fseek(fp,-j,1);
fscanf(fp,"
cr.count
&
if(feof(fp))
break;
%15s%8s%13s%7d%7f%10f%13s%-50s\n"
cr.name,cr.sex,cr.dialnumber,cr.count
cr.price,cr.money,cr.date,cr.readeraddr);
return1;
}
intDisplayReader(char*date){
strcmp("
cr.date))
continue;
if(strcmp(date,cr.date)<
0){
main(){
charstr[30];
intch;
Start();
TextOut();
ch);
while(ch!
=5){
if(ch==0){
Pleaseinputthenameyouwannaindex:
^_^\n"
scanf("
str);
if(CheckReader(str))
printf("
Youhavesuccessfullyindexthereader!
continue;
if(ch==1){
if(AddReader())
Youhavesuccessfullyaddareader!
TextOut();
if(ch==2){
Pleaseinputthecurrentdate:
if(UpdateMsg(str))
Youhavesuccessfullyupdatethelist!
if(ch==3){
if(OutputAll())
Youhavesuccessfullyoutputthelist!
if(ch==4){
Pleaseinputthemonthyouwannadisplay:
if(DisplayReader(str))
Youhavesuccessfullyallthereadersthismonth!
elsereturn;
结束语
通过近八天的C语言上机实习,我基本掌握了程序设计的基本方法和步骤。
程序设计的基础就是基本的C语言知识,无论设计什么样的程序最重要的就是要有自己的设计思路,设计理念,设计过程中当然不能避免会出现漏洞,这需要我们利用所学到的C语言知识大胆的尝试,只有这样我们才能在错误中不断的进步。
学习和练习C程序的设计是一个漫长的过程,这需要我们要有持之以恒的学习态度和不懈的努力。
在当今信息社会高度发展的今天,C语言的重要性是不言而喻的,而实践设计则是巩固C语言的重要渠道之一。
学好C语言无论是对自身素质的提高还是以后走向工作岗位都是很重要的。
在这近八天的时间里,我学到了很多知识,这些少不了老师的辛苦指导,同学之间的帮助,相互鼓励,以及相互探讨,这些给了我极大的信心和跨越式的进步。
在此感谢老师的辛苦指导和同学们的帮助,同时还要感谢为教育事业做出贡献的工作人员!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言课程设计 杂志阅读管理软件 语言 课程设计 杂志 阅读 管理软件
![提示](https://static.bdocx.com/images/bang_tan.gif)