计算机学院《C 语言程序设计》课程设计报告
学号
2016-2017 学年 第二学期
《高级语言程序设计》
课程设计报告
题 目 :
俱乐部会员管理系统
专 业 :
班 级 :
姓 名 :
指 导 教 师 :
成 绩 :
计算机学院
2017 年 4 月 25 日
1
计算机学院《C 语言程序设计》课程设计报告
目 录
1 设计内容及要求.............................3
1.1 题目要求...................................3
1.2 需求分析...................................3
2 概要设计......................................... 3
3 程序代码......................................... 4
3.1 宏定义........................................4
3.2 主函数........................................5
3.3 各功能模块................................5
4 设计结果与分析............................17
2
计算机学院《C 语言程序设计》课程设计报告
1 设计内容及要求
1.1 题目要求
1)[要求]
允许俱乐部成员租用 DVD.若想成为会员,首先应签约并且按月交纳费用。会员一次可
租用三个 DVD,没有时间限制。可浏览所有可租用的 DVD,能实现新成员的开户、会员对其
账户状况的查询以及俱乐部管理者对其所交易情况的查看功能。
2)[提示]
⑴需求分析:DVD 信息和俱乐部会员信息用文件存储,提供文件的输入输出操作;注
册新会员,提供文件的添加操作;实现按月缴纳费用,提供文件的修改操作;浏览信息提供
显示操作;实现查询提供文件的查找操作;另外提供键盘式选择菜单以实现功能选择。
⑵总体设计:整体设计为会员注册模块、会员交费模块、会员租用 DVD 模块、会员
归还 DVD 模块、信息浏览模块和信息查询模块等。
1.2 需求分析
1)【输入要求】
应用程序运行后,在屏幕上显示一个菜单。用户可以根据需求,选定相应的操作项目。
进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。
2)【输出要求】
⑴应用程序运行后,要在屏幕上显示一个菜单;
⑵要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式
及结束方式等。
2 概要设计
根 据 需 求 分 析 , 可 以 对 这 个 系 统 的 设 计 分 为 以 下 几 个 模 块 :
3
计算机学院《C 语言程序设计》课程设计报告
欢迎界面
主菜单
建
立
新
档
案
注
册
会
员
缴
纳
会
费
会
员
D
V
D
信
息
浏
览
信
息
查
询
退
出
3 程序代码
3.1 宏定义
#include
#include
#include
#include
#include
int n,n1; /* 全局*/
int N[3];/* 记录着上次建立的档案数,从新运行程序时,不会丢上次信息*/
int yuefei=30;
menu1();
quit();
menu2();
menu3();
create();/*建立档案 */
add(); /* 增加信息*/
monfei();
dvd();
search1();
search2();
printhuiyuan();
4
计算机学院《C 语言程序设计》课程设计报告
printdvd();
moon();
struct dvdA
{
char name[20];
int num;
int sex;
int huifei;
int day;
int dvd1;
int dvd2;
int dvd3;
}stu1[100];
struct dvdB
{
int num;
char name[20];
int k;
}dd1[100];
3.2 主函数
主函数一般设计得比较简洁,只提供输入输出和功能处理的函数调用。其各功能模块用
菜单方式选择。本题将 main()函数体内的界面选择部分语句单独抽取出来作为一独立函
数,目的在于系统执行完每部分功能模块后能够方便返回到系统界面。
【程序】
main()
{
printf("*******************欢迎使用 dvd 信息管理系统**********************\n");
printf("\n\n\n\n 请输入管理员密码:");
if(check())
else
{
menu1();
printf(" 密码输入错误\n");
printf(" ****************你无权使用本系统*****************\n");
quit();
}
}
3.3 各功能模块
5
计算机学院《C 语言程序设计》课程设计报告
⑴密码验证模块
int check()
{
char a[20],str[]="123";
int count;
for(count=0;count<3;count++)
{ gets(a);
if(strcmp(a,str)==0)
else
return 1 ;
continue;
}
return 0;
}
⑵主菜单功能选择模块
int menu1()
{
FILE *fp1;
int a;
if((fp1=fopen("n.txt","a+"))==NULL)
{
printf("cannot open file");
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("\n 1. 建立新档案\n");
printf("\n 2. 注册会员\n");
printf("\n 3. 缴纳会费\n");
printf("\n 4. 会员 dvd\n");
printf("\n 5. 信息浏览\n");
printf("\n 6. 信息查询\n");
printf("\n 7. 退出\n");
printf("\n\n\n 请选择编号:");
scanf("%d",&a);
switch(a)
{
case 1: {create(); menu1();}break;
6
计算机学院《C 语言程序设计》课程设计报告
case 2: {add(); menu1(); } break;
case 3: {monfei();menu1();}break;
case 4: {dvd();menu1();}break;
case 5: menu2();break;
case 6: menu3();break;
case 7: quit();break;
default: printf("输入编号错误\n");
menu1();
}
}
⑶子菜单功能选择模块
int menu2()
{
int a;
printf(" 信息浏览\n");
printf("\n 1.会员信息浏览\n");
printf("\n 2.dvd 信息浏览\n");
printf("\n 3.返回上级菜单\n");
printf("\n\n\n 请输入编号:");
scanf("%d",&a);
switch(a)
{
case 1: printhuiyuan();break;
case 2: printdvd();break;
case 3: menu1();break;
default:printf("输入编号错误\n");
menu2();
}
}
⑷建立新档案模块
create()
{
FILE *fp,*fp1;
int i;
struct dvdA stu2[100];
struct dvdB dd2[100];
int y,m,d,s1;
time_t timep;
struct tm *p;
time(&timep);
p=localtime(&timep); /*取得当地时间*/
m=1+p->tm_mon;
7
计算机学院《C 语言程序设计》课程设计报告
d=p->tm_mday;
s1=m*30+d;
printf("请输入档案的个数:");
scanf("%d",&n);
N[0]=n;
for(i=0;i