C语言程序设计报告.docx
- 文档编号:6295445
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:20
- 大小:240.82KB
C语言程序设计报告.docx
《C语言程序设计报告.docx》由会员分享,可在线阅读,更多相关《C语言程序设计报告.docx(20页珍藏版)》请在冰豆网上搜索。
C语言程序设计报告
C语言程序设计报告
姓名:
xxx
学院:
xxx
班级:
xxx
学号:
xxx
指导老师:
xxx
电影俱乐部管理系统
1.题目要求
允许俱乐部成员租用DVD。
若想成为会员,首先应签约并且可按月交纳费用。
会员一次可租用三个DVD,没有时间限制。
可浏览所有可租用的DVD,能实现新成员的开户、会员对其帐户状况的查询以及俱乐部管理者对所有交易情况的查看功能
2.需求分析
DVD信息和俱乐部会员信息用文件储存,提供文件的输入输出操作;注册新会员,提供文件的添加操作;实现按月缴纳费用,提供文件的修改工作;浏览信息应提供显示操作;实现查询则提供文件的查找操作;另外提供键盘式选择菜单以实现功能选择。
3.总体设计
整体设计为会员注册模块、会员缴费模块、会员租用DVD模块、会员归还DVD模块、信息浏览模块和信息查询模块等。
4.详细设计
1.主函数
提供密码验证和输入输出功能,各功能用菜单方式选择,使用文件存放,流程图如图所示:
main()
{
printf("*******************************************************************************\n");
printf("******************************欢迎使用电影俱乐部程序***************************\n");
printf("*******************************************************************************\n");
printf("\n\n\n登入请输入密码:
");
if(check())menu1();
else
{
printf("警告:
密码错误!
!
!
\n");
printf("******************请检查******************\n");
quit();
}
}
intcheck()
{
chara[20],str[]="123";
intcount;
for(count=0;count<3;count++)
{
gets(a);
if(strcmp(a,str)==0)return1;
else
continue;
}
return0;
}
intmenu1()
{
FILE*fp1;
inta;
if((fp1=fopen("n.txt","a++"))==NULL)
{
printf("cannotopenfile");
exit(0);
}
{
fread(&N[1],sizeof(int),1,fp1);
fread(&N[2],sizeof(int),1,fp1);
}
fclose(fp1);
n=N[1];
n1=N[2];
moon();
printf("\n1.建立会员档案\n");
printf("\n2.会员注册\n");
printf("\n3.会费功能\n");
printf("\n4.DVD信息\n");
printf("\n5.浏览信息\n");
printf("\n6.查询信息\n");
printf("\n7.退出\n");
printf("\n\n\n请选择编号:
");
scanf("%d",&a);
switch(a)
{
case1:
{create();menu1();}break;
case2:
{add();menu1();}break;
case3:
{monfei();menu1();}break;
case4:
{dvd();menu1();}break;
case5:
menu2();break;
case6:
menu3();break;
case7:
quit();break;
default:
printf("输入编号错误!
\n");
menu1();
}
}
2.各功能模块设计
(1)注册模块
本模块要求用户创建初始会员信息,是后续操作的基础。
以会员名,会员编号,会员性别,会费,DVD信息作为结构体变量。
流程图如下图所示:
[程序]
/****************************注册模块*****************************/
printf("请输入增加会员档案的个数:
");
scanf("%d",&a);
for(i=n;i<(n+a);i++)
{
printf("请输入会员名:
");
scanf("%s",&stu1[i].name);
fflush(stdin);
printf("请输入会员编号:
");
scanf("%d",&stu1[i].num);
fflush(stdin);
printf("请输入会员性别:
男1女2:
");
scanf("%d",&stu1[i].sex);
fflush(stdin);
printf("请输入初始的会费:
");
scanf("%d",&stu1[i].huifei);
stu1[i].day=s1;
stu1[i].dvd1=stu1[i].dvd2=stu1[i].dvd3=0;
getchar();
}
if((fp=fopen("huiyuan.txt","a+"))==NULL)
{
printf("cannotopenfile");
exit(0);
}
for(i=n;i<(n+a);i++)
fwrite(&stu1[i],sizeof(structdvdA),1,fp);
fclose(fp);
n=n+a;
if((fp=fopen("huiyuan.txt","r+"))==NULL)
{
printf("cannotopenfile");
exit(0);
}
for(i=0;i { fread(&stu2[i],sizeof(structdvdA),1,fp); printf("姓名编号性别会费\n"); printf("%4s,%5d,%5d,%4d\n",stu2[i].name,stu2[i].num,stu2[i].sex,stu2[i].huifei); } fclose(fp); N[0]=n; if((fp1=fopen("n.txt","w+"))==NULL) { printf("cannotopenfile"); exit(0); } fwrite(&N[0],sizeof(int),1,fp1); fclose(fp1); (2)浏览模块 本模块进行信息浏览操作,通过调用注册模块中创建的文件信息,来达到浏览信息的目的。 流程图如下图所示: [程序] /****************************浏览模块**************************/ search1()/*按会员姓名查询和浏览信息*/ { FILE*fp,*fp1; inti,c; charname[20]; structdvdAstu2[100]; printf("\n请输入会员姓名: \n"); scanf("%s",&name); if((fp=fopen("huiyuan.txt","r+"))==NULL) { printf("cannotopenfile"); exit(0); } for(i=0;i { fread(&stu2[i],sizeof(structdvdA),1,fp); c=strcmp(name,stu2[i].name); if(c==0) { printf("姓名编号性别会费已租DVD1已租DVD2已租DVD3\n"); printf("%4s%5d%4d%5d%7d%10d%10d\n", stu2[i].name,stu2[i].num,stu2[i].sex,stu2[i].huifei,stu2[i].dvd1,stu2[i].dvd2,u2[i].dvd3);break; } } fclose(fp); menu3(); } search2()/*按DVD编号查询和浏览信息*/ { FILE*fp,*fp1; inti,c; structdvdBdd2[100]; printf("\n请输入DVD编号: \n"); scanf("%d",&c); if((fp=fopen("dvd.txt","r+"))==NULL) { printf("cannotopenfile"); exit(0); } for(i=0;i { fread(&dd2[i],sizeof(structdvdB),1,fp); if(c==dd2[i].num) { printf("编号DVD名数量\n"); printf("%4d%5s%7d\n",dd2[i].num,dd2[i].name,dd2[i].k);break; } } fclose(fp); menu3(); } printhuiyuan() { FILE*fp; inti; structdvdAstu2[100]; if((fp=fopen("huiyuan.txt","r+"))==NULL) { printf("cannotopenfile"); exit(0); } for(i=0;i { fread(&stu2[i],sizeof(structdvdA),1,fp); printf("姓名编号性别会费\n"); printf("%4s%5d%5d%4d\n",stu2[i].name,stu2[i].num,stu2[i].sex,stu2[i].huifei); } fclose(fp); menu2(); } printdvd() { FILE*fp; inti; structdvdBdd2[100]; if((fp=fopen("dvd.txt","r+"))==NULL) { printf("cannotopenfile"); exit(0); } for(i=0;i { fread(&dd2[i],sizeof(structdvdB),1,fp); printf("编号DVD名数量\n"); printf("%4d%5s%4d\n",dd2[i].num,dd2[i].name,dd2[i].k); } fclose(fp); menu2(); (3)缴费模块 会员实施缴费操作(老会员续缴和新会员注册缴费),实际上是对保存的会员文件信息进行修改和保存操作。 流程图如图所示: [程序] /*********************缴费模块*************************/ monfei() { FILE*fp,*fp1; inti,c; charname[20]; structdvdAstu2[100]; printf("\n请输入会员姓名: \n"); scanf("%s",&name); if((fp=fopen("huiyuan.txt","r+"))==NULL) { printf("cannotopenfile"); exit(0); } for(i=0;i { fread(&stu2[i],sizeof(structdvdA),1,fp); c=strcmp(name,stu2[i].name); if(c==0) { printf("姓名编号性别会费dvd1dvd2dvd3\n"); printf("%4s,%5d,%5d,%4d%4d%4d%4d\n",stu2[i].name,stu2[i].num,stu2[i].sex,stu2[i].huifei,stu2[i].dvd1,stu2[i].dvd2,stu2[i].dvd3); printf("请输入您要充入会费\n"); scanf("%d",&stu2[i].huifei); } } fclose(fp); if((fp=fopen("huiyuan.txt","w+"))==NULL) { printf("cannotopenfile"); exit(0); } for(i=0;i fwrite(&stu2[i],sizeof(structdvdA),1,fp); fclose(fp); } (4)查询模块 通过输入会员名或DVD名来查找相应记录,流程图如图所示: [程序] /***********************查询模块********************/ menu3() { inta; printf("\n信息查询\n"); printf("\n1.按会员名查找\n"); printf("\n2.按dvd查找\n"); printf("\n3.返回上级菜单\n"); printf("\n\n\n请输入编号: "); scanf("%d",&a); switch(a) { case1: search1();break; case2: search2();break; case3: menu1();break; default: printf("输入编码错误\n");menu3(); } } (5)租用模块 实现会员DVD租用操作,实际上是对会员信息进行相关的修改和保存操作。 流程图如图所示: [程序] /***********************租用模块*********************/ dvd() { FILE*fp,*fp1; inti,c; charname[20]; structdvdAstu2[100]; printf("\n请输入会员姓名: \n"); scanf("%s",&name); if((fp=fopen("huiyuan.txt","r+"))==NULL) { printf("cannotopenfile"); exit(0); } for(i=0;i { fread(&stu2[i],sizeof(structdvdA),1,fp); c=strcmp(name,stu2[i].name); if(c==0) { printf("姓名编号性别会费dvd1dvd2dvd3\n"); printf("%4s,%5d,%5d,%4d%4d%4d%4d\n",stu2[i].name,stu2[i].num,stu2[i].sex,stu2[i].huifei,stu2[i].dvd1,stu2[i].dvd2,stu2[i].dvd3); printf("请输入你要修改后的dvd1编号: "); scanf("%d",&stu2[i].dvd1); printf("\n请输入你要修改后的dvd2编号: "); scanf("%d",&stu2[i].dvd2); printf("\n请输入你要修改后的dvd3编号: "); scanf("%d",&stu2[i].dvd3); } } fclose(fp); if((fp=fopen("huiyuan.txt","w+"))==NULL) { printf("cannotopenfile"); exit(0); } for(i=0;i fwrite(&stu2[i],sizeof(structdvdA),1,fp); fclose(fp); menu1(); } 4.运行与测试
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)