网吧电影管理系统zuixin.docx
《网吧电影管理系统zuixin.docx》由会员分享,可在线阅读,更多相关《网吧电影管理系统zuixin.docx(17页珍藏版)》请在冰豆网上搜索。
网吧电影管理系统zuixin
网吧电影管理系统
1.课程设计的目的
C语言课程设计是我们电子专业学生重要的实践性学习环节,只有在实践中我们才能找到问题,解决问题,才能学到更多有用的知识,为此我运用所学知识在TC上编了一个关于网吧电影管理的系统,它可以用来存放电影的信息,用来查看电影列表,能够实现输入电影,查找电影,修改信息,保存退出等简单的功能。
另外,大多数操作系统书籍都没有给出实验内容,而在日益注重实践的今天,本程序也有助于学习枯燥的操作系统,加深对操作系统对内存管理的理解,为用C语言编写程序打下良好的基础。
2.设计方案论证
2.1设计思路:
我运用结构体来存放电影的基本信息,运用自定义的list函数来实现查看电影列表的功能,运用自定义的input函数来实现输入电影的功能,运用自定义的search函数来实现查找电影的功能,运用自定义的alter函数来实现修改信息的操作,其中还大量运用了选择语句,循环语句,还运用了文件指针。
还运用了printf,scanf,getche等基本函数。
2.2程序流程图:
主程序流程图如下:
图2输入电影流程图
2、3程序如下:
#include
#definemax50
structfilm
{
charname[40];
charnum[10];
charkind[30];
charactor[30];
}film[max];
typedefstructinode
structinode*next;
}listnode,*linklist;
linklisthead=NULL,r=NULL;
listnode*s,*p0,*p1,*p2,*p3,*p4,*p5,*p6,*p7;
inti;
charname1[10],ch;
charstr1[20];
FILE*fp;
voidcreate()
intj;
longk;
fp=fopen("film.txt","r+t");
if(fp!
=NULL)
for(i=1;i{j=fgetc(fp);if(j==EOF)return;k=i-1;fseek(fp,k*sizeof(structfilm),0);fread(&film[i],sizeof(structfilm),1,fp);s=(linklist)malloc(sizeof(listnode));strcpy(s->name,film[i].name);strcpy(s->num,film[i].num);strcpy(s->kind,film[i].kind);strcpy(s->actor,film[i].actor);if(head==NULL)head=s;elser->next=s;r=s;}}else{fp=fopen("film.txt","w");i=1;}} voidlist(){clrscr();printf("\nwanbadianyingliebiaoruxia:");p1=head; while(p1!=NULL){printf("\nmingcheng:%s\tbianhao:%s\tlixing:%s\tyanyuan:%s\t",p1->name,p1->num,p1->kind,p1->actor);getch();p1=p1->next;}getch();} voidinput(){clrscr();s=(linklist)malloc(sizeof(listnode));printf("\nqingshurudianyingxinxi:");printf("\nmingcheng:");scanf("%s",s->name);printf("bianhao:");scanf("%s",s->num);printf("lixing:");scanf("%s",s->kind);printf("yanyuan:");scanf("%s",s->actor);if(head==NULL)head=s;elser->next=s; r=s;printf("shurudianyingchenggong");getch();}voidsearch(){clrscr();printf("\nqingshurudianyingmingcheng:");p0=head;gets(name1);while(strcmp(name1,p0->name)!=0&&p0!=NULL)p0=p0->next;if(p0==NULL)printf("\nzhebudianyingbucunzai,wufazhaodao!");else{printf("yichazhaodao,dianyingxinxiruxia:");printf("\nmingcheng:%s\tbianhao:%s\tlixing:%s\tyanyuan:%s\t",p0->name,p0->num,p0->kind,p0->actor);}getch();} voidalter(){intj;clrscr(); printf("\nqingshuruyaoxiugaidedianyingmingcheng:"); gets(name1);p3=head; while(strcmp(name1,p3->name)!=0&&p3!=NULL) p3=p3->next;if(p3==NULL)printf("\nzhebudianyingbucunzai!");else{printf("\nqingshuruxindedianyingxinxi!");printf("\nmingcheng:");scanf("%s",name1);strcpy(p3->name,name1);printf("\nbianhao:");scanf("%s",name1);strcpy(p3->num,name1);printf("\nlixing:");scanf("%s",name1);strcpy(p3->kind,name1);printf("\nyanyuan:");scanf("%s",name1);strcpy(p3->actor,name1);printf("dianyingxingxixiugaichenggong!");}getch();}voidsave(){intj;fp=fopen("film.txt","w");for(p2=head,j=0;p2!=NULL;j++,p2=p2->next){strcpy(film[j].name,p2->name);strcpy(film[j].num,p2->num);strcpy(film[j].kind,p2->kind);strcpy(film[j].actor,p2->actor);fwrite(&film[j],sizeof(structfilm),1,fp);}} main(){create();do{clrscr();printf("\n\n*********************huanyingshiyong***********************");printf("\n\n*************wangbadianying**************");printf("\n\n*******guanlixitong*******");printf("\n\n******06xinan\DiHongLiangzhizuo");printf("\n\n\tgongnengliebiao:");printf("\n\n\t1.shurudianying");printf("\n\n\t2.dianyingliebiao");printf("\n\n\t3.chazhaodianying");printf("\n\n\t4.xiugaixinxi");printf("\n\n\t5.baocuntuichu");printf("\n\nqingxuanze:");ch=getche();switch(ch) {case'1':input();break;case'2':list();break;case'3':search();break; case'4':alter();break;case'5':save();fclose(fp);exit(0);break;default:printf("\n\n\t*************************************"); printf("\n\n\tshurudexuanxiangbuzhengque!"); printf("\n\n\t*************************************"); break; } }while(1); } 3.设计结果与分析3.1菜单信息界面图5菜单该界面为菜单信息界面,通过switch语句,分别控制五个菜单,通过键盘输入数字即可实现各个功能块的操作。 3.2输入电影界面在输入1按回车后会提示输入电影的名称,编号,类型,演员等信息,用户可以把要记得的信息进行输入。如图6所示。图6输入电影界面电影基本信息存进structfilm结构体中。 3.3电影列表界面在输入2按回车后进入电影列表界面,如下图所示:图7电影列表界面该界面由while语句来控制循环 3.4查找电影界面在输入3按回车后进入查找电影界面,如下图所示:图8查找电影界面此时系统进入了search函数,查找电影,函数中有选择语句。若电影列表中存在此电影。 4.设计体会经过一个星期的课程设计,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对C语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对语言中经常出现的错误也不了解,通过实践,使我在这几个方面的认识有所提高。当然不仅仅是学习C语言,还是学习其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。同时在设计的过程中发现了其他的不足,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,指针通过这次课程设计之后,一定把以前所学过的知识重新温故。而且,要想真正学好C语言的确是个不简单的事,它要求的不是每个人的天分,而是在于个人的努力成果,看来还真得下苦工夫了!明年学习数据结构我必须更加努力! 5.参考文献[1]鲁沐浴.C语言最新编程技巧200例[M].北京:电子工业出版社,1997.1:30-42[2]吕国英.C语言程序设计教程[M].北京:龙门书局,2003.1:72-83[3]苏小红.C语言程序设计[M].北京:电子工业出版社,2002.6:52-63
j=fgetc(fp);
if(j==EOF)
return;
k=i-1;
fseek(fp,k*sizeof(structfilm),0);
fread(&film[i],sizeof(structfilm),1,fp);
s=(linklist)malloc(sizeof(listnode));
strcpy(s->name,film[i].name);
strcpy(s->num,film[i].num);
strcpy(s->kind,film[i].kind);
strcpy(s->actor,film[i].actor);
if(head==NULL)
head=s;
else
r->next=s;
r=s;
}
fp=fopen("film.txt","w");
i=1;
voidlist()
clrscr();
printf("\nwanbadianyingliebiaoruxia:
");
p1=head;
while(p1!
printf("\nmingcheng:
%s\tbianhao:
%s\tlixing:
%s\tyanyuan:
%s\t",p1->name,p1->num,p1->kind,p1->actor);
getch();
p1=p1->next;
voidinput()
printf("\nqingshurudianyingxinxi:
scanf("%s",s->name);
printf("bianhao:
scanf("%s",s->num);
printf("lixing:
scanf("%s",s->kind);
printf("yanyuan:
scanf("%s",s->actor);
printf("shurudianyingchenggong");
voidsearch()
printf("\nqingshurudianyingmingcheng:
p0=head;
gets(name1);
while(strcmp(name1,p0->name)!
=0&&p0!
p0=p0->next;
if(p0==NULL)
printf("\nzhebudianyingbucunzai,wufazhaodao!
printf("yichazhaodao,dianyingxinxiruxia:
%s\t",p0->name,p0->num,p0->kind,p0->actor);
voidalter()
printf("\nqingshuruyaoxiugaidedianyingmingcheng:
p3=head;
while(strcmp(name1,p3->name)!
=0&&p3!
p3=p3->next;
if(p3==NULL)
printf("\nzhebudianyingbucunzai!
printf("\nqingshuruxindedianyingxinxi!
scanf("%s",name1);
strcpy(p3->name,name1);
printf("\nbianhao:
strcpy(p3->num,name1);
printf("\nlixing:
strcpy(p3->kind,name1);
printf("\nyanyuan:
strcpy(p3->actor,name1);
printf("dianyingxingxixiugaichenggong!
voidsave()
for(p2=head,j=0;p2!
=NULL;j++,p2=p2->next)
strcpy(film[j].name,p2->name);
strcpy(film[j].num,p2->num);
strcpy(film[j].kind,p2->kind);
strcpy(film[j].actor,p2->actor);
fwrite(&film[j],sizeof(structfilm),1,fp);
main()
create();
do
printf("\n\n*********************huanyingshiyong***********************");
printf("\n\n*************wangbadianying**************");
printf("\n\n*******guanlixitong*******");
printf("\n\n******06xinan\DiHongLiangzhizuo");
printf("\n\n\tgongnengliebiao:
printf("\n\n\t1.shurudianying");
printf("\n\n\t2.dianyingliebiao");
printf("\n\n\t3.chazhaodianying");
printf("\n\n\t4.xiugaixinxi");
printf("\n\n\t5.baocuntuichu");
printf("\n\nqingxuanze:
ch=getche();
switch(ch)
{case'1':
input();break;
case'2':
list();break;
case'3':
search();break;
case'4':
alter();break;
case'5':
save();
fclose(fp);
exit(0);
break;
default:
printf("\n\n\t*************************************");
printf("\n\n\tshurudexuanxiangbuzhengque!
}while
(1);
3.设计结果与分析
3.1菜单信息界面
图5菜单
该界面为菜单信息界面,通过switch语句,分别控制五个菜单,通过键盘输入数字即可实现各个功能块的操作。
3.2输入电影界面
在输入1按回车后会提示输入电影的名称,编号,类型,演员等信息,用户可以把要记得的信息进行输入。
如图6所示。
图6输入电影界面
电影基本信息存进structfilm结构体中。
3.3电影列表界面
在输入2按回车后进入电影列表界面,如下图所示:
图7电影列表界面
该界面由while语句来控制循环
3.4查找电影界面
在输入3按回车后进入查找电影界面,如下图所示:
图8查找电影界面
此时系统进入了search函数,查找电影,函数中有选择语句。
若电影列表中存在此电影。
4.设计体会
经过一个星期的课程设计,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对C语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对语言中经常出现的错误也不了解,通过实践,使我在这几个方面的认识有所提高。
当然不仅仅是学习C语言,还是学习其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。
同时在设计的过程中发现了其他的不足,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,指针通过这次课程设计之后,一定把以前所学过的知识重新温故。
而且,要想真正学好C语言的确是个不简单的事,它要求的不是每个人的天分,而是在于个人的努力成果,看来还真得下苦工夫了!
明年学习数据结构我必须更加努力!
5.参考文献
[1]鲁沐浴.C语言最新编程技巧200例[M].北京:
电子工业出版社,1997.1:
30-42
[2]吕国英.C语言程序设计教程[M].北京:
龙门书局,2003.1:
72-83
[3]苏小红.C语言程序设计[M].北京:
电子工业出版社,2002.6:
52-63
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1