c语言学习知识课程教学设计机动车会员管理方案计划系统转载.docx
《c语言学习知识课程教学设计机动车会员管理方案计划系统转载.docx》由会员分享,可在线阅读,更多相关《c语言学习知识课程教学设计机动车会员管理方案计划系统转载.docx(36页珍藏版)》请在冰豆网上搜索。
c语言学习知识课程教学设计机动车会员管理方案计划系统转载
C语言程序设计课程设计
题目汽车会员管理系统
系(部)信息工程系
班级
姓名
学号
指导教师
2015年月日至月日共周
年月日
C语言程序设计课程设计任务书
一、设计题目、内容及要求
题目:
汽车会员管理系统程序设计
内容:
设计一个汽车会员管理系统程序。
基本信息包括:
会员编号、会员名称、会员身份证号码、所购车型、车辆金额、联系电话、备注等。
该程序具有以下功能:
(1)信息的添加;
(2)信息的删除;(3)信息的查询;(4)信息的修改;(5)提供一些统计各类信息的功能等。
要求:
程序结构合理、算法准确、语法正确,并生成可执行文件。
二、要求的设计成果(课程设计说明书、设计实物、图纸等)
1.课程设计说明书:
课程设计说明书1份,不少于2000字。
说明书中要包含需求分析、总体设计、详细设计以及主要的算法描述等内容。
2.源代码:
程序清单,实现应用程序的功能。
注重编码质量,代码要有适当的注释。
三、进程安排
3.2-3.3:
查找资料。
3.4-3.6:
完成程序主体功能的设计。
3.9-3.10:
程序调试无误,生成可执行文件。
3.11-3.12:
撰写课程设计说明书初稿。
3.13:
提交课程设计说明书、程序和数据。
四、主要参考资料
[1]谭浩强,张基温.C语言程序设计教程(第3版)[M].北京:
高等教育出版社,2006
[2]吕凤煮.C语言基础教程——基础理论与案例[M].北京:
清华大学出版社,2005
[3]黄明、梁旭、万洪莉.C语言课程设计[M].北京:
电子工业出版社,2006
[4]郭宁,郑小玲.管理信息系统[M].北京:
人民邮电出版社,2006
[5]赵池龙,杨林,陈伟.实用软件工程[M].北京:
电子工业出版社,2006
指导教师(签名):
教研室主任(签名):
课程设计成绩评定表
出勤
情况
出勤天数
缺勤天数
成
绩
评
定
出勤情况及设计过程表现(20分)
课设答辩(20分)
设计成果(60分)
总成绩(100分)
提问
(答辩)
问题
情况
综
合
评
定
指导教师签名:
年月日
1引言
1.1设计要求
21世纪,我们已经进入了信息时代,计算机的使用大大方便了我们的日常生活,手工的会员信息管理已经不能满足我们的需求,查询困难等缺点是人工的会员信息管理所不能克服的。
在此情况下,就需要一个程序化的自动的会员信息管理系统来满足人们的需求。
在C语言的平台下实现,用户可以方便的进行各项操作。
C语言是一种程序设计语言,早在20世纪90年代,C语言表现出了强劲的生命力,C语言是一种结构化语言。
[1]它层次清晰,便于按模块化方式组织程序,易于调试和维护。
C语言的表现能力和处理能力极强。
[2]它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。
[3]它还可以直接访问内存的物理地址,进行位(bit)一级的操作。
[4]由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体,既可用于系统软件的开发,也适合于应用软件的开发。
[5]此外,C语言还具有效率高,可移植性强等特点。
因此可以广泛地移植到了各类型计算机上,从而形成了多种版本的C语言。
采用结构体数组和文件的方式,完成了对数组的录入、显示、排序、查找、删除、修改、插入、保存等功能。
1.2系统概述
汽车公司的会员管理系统是一个对会员信息进行录入、删除、修改、浏览、查询和存盘等操作的管理应用软件,用户可以对文件中存储的会员进行查找和浏览,了解会员的名称、所购车型、联系电话等信息。
该软件提供了一个简单的人机界面,管理员可以根据提示输入操作项并进行一系列对会员名称和联系方式的管理操作。
1.3开发与设计的总体思想
本系统主要应用结构化的设计思想实现汽车会员信息的增、删、改和查等典型管理功能。
各主要模块的数据均存储在文件中,因此包含对文件的读、写等基本操作。
在软件开发过程中应用了高级语言程序设计中的基本控制结构,如选择、循环、顺序结构。
系统的设计方法是结构化设计方法,采用C语言进行开发。
2.总体设计
2.1功能需求
汽车公司急需一款程序化
的的会员管理系统,这种需求确定了系统的主要功能,该软件提供了一个对会员信息进行管理和查看的平台,给用户提供了一个简单友好的用户接口。
2.2系统功能结构图
会员信息管理
录入会员信息
删除会员信息
修改会员信息
浏览会员信息
查询会员信息
保存会员信息
图1系统结构功能图
3详细设计
3.1系统化分析
将程序整体进行模块化处理,使程序编译思路更加清晰,降低了编译程序的难度。
会员信息中包含编号、名称、身份证号码、所购车型、车辆金额、联系电话、备注等基本信息,程序具有信息录入、删除、修改、浏览、查询和存盘等功能。
3.2密码登陆模块
进入前需输入密码,防止非本公司人员泄露会员的隐私。
其代码如下:
inta;
chars1[10]={"112233"};
chars2[10];
do
{
printf("***************************************************\n");
printf("\n");
printf("★★★★★★★★请输入密码:
★★★★★★★★\n");
printf("\n");
printf("***************************************************\n");
gets(s2);
if(strcmp(s1,s2)==0)
a=1;
else
{
a=0;
}
if(a==1)/*比较输入的密码str1和设定的密码str2,
输出"密码正确"。
*/
printf("密码输入正确\n");
elseif(a==0)
printf("对不起密码输入错误,请从新输入\n");
}while(a==0);
system("cls");
}
3.2主函数及主界面
函数,就有了程序的框架,有了主调用函数和主菜单,从主界面可以选择所要求的操作,使操作方便,易于进行查找、添加、修改、删除等功能。
其代码如下:
inti;
printf("欢迎进入汽车会员信息管理系统\n");
printf("=============================================================================\n");
printf("=============================================================================\n");
printf("\n");
printf("1、会员信息录入\n");
printf("2、会员信息查询\n");
printf("3、会员信息修改\n");
printf("4、删除会员信息\n");
printf("5、插入会员信息\n");
printf("6、保存会员信息\n");
printf("7、退出系统\n");
printf("**请您输入(1-7)数字键**\n");
do
{
scanf("%d",&i);
if(i>7&&i<1)
printf("请您输入有效数字!
");
}while(i>7&&i<1);
3.3插入模块
系统管理员通过此模块可以在原有记录的基础上随意的添加其他会员信息,通过系统的提醒依次的录入所要记录的会员的所有信息,可以添加多个会员信息,并且不需重新回到主界面,直接在系统的提示下进行再次输入。
voidcharu()
{
inti,m;
FILE*fp;
charch;
printf("请输入要插入的会员的个数:
");
scanf("%d",&m);
if((fp=fopen("d:
\\filepath","w"))==NULL)
{
printf("\n保存失败!
");
exit(0);
}
for(i=0;i{
printf("请输入第%d个会员的信息:
\n",i+1);
printf("编号:
");
scanf("%s",&mem[i].num);
printf("\n");
printf("名称:
");
scanf("%s",&mem[i].name);
printf("\n");
printf("身份证号码:
");
scanf("%s",&mem[i].id);
printf("\n");
printf("所购车型:
");
scanf("%s",&mem[i].type);
printf("\n");
printf("联系电话:
");
scanf("%s",&mem[i].phone);
printf("\n");
printf("车辆金额");
scanf("%s",&mem[i].money);
printf("\n");
printf("备注");
scanf("%s",&mem[i].remark);
printf("\n");
}
fclose(fp);
printf("按0返回主菜单\n");
ch=getch();
if(ch=='0')
{
system("cls");zonghanshu();
}
}
3.4删除模块
管理员通过这块模块可以对不需要的信息进行删除,使用方便,只需要输入所要删除的会员信息编号即可,系统会自动搜索,确定删除后此信息消失。
其代码如下:
voidshanchu()
{
inti,j,flag=0;
chars1[30];
charch;
printf("请输入要删除会员的编号:
\n");
scanf("%s",s1);
for(i=0;iif(strcmp(mem[i].num,s1)==0)
{
flag=1;
for(j=i;jmem[j]=mem[j+1];
}
if(flag==0)
printf("该编号不存在!
\n");
if(flag==1)
{
for(i=0;i{
printf("名称");printf("%s\n",mem[i].name);
printf("编号");printf("%s\n",mem[i].num);
printf("身份证号码");printf("%s\n",mem[i].id);
printf("所购车型");printf("%s\n",mem[i].type);
printf("联系电话");printf("%s\n",mem[i].phone);
printf("车辆金额");printf("%s\n",mem[i].money);
printf("备注");printf("%s\n",mem[i].remark);
}
printf("删除成功\n");
}
printf("按0返回主菜单\n");
ch=getch();
if(ch=='0')
{
system("cls");zonghanshu();
}
}
3.5修改模块
考虑到有些信息可能会发生变动,该系统设置了修改模块,如果某个编号的信息发生变动,管理员可以通过此模块对该编号下的其他信息进行修改。
其代码如下:
voidxiugai()
{
inti,item,j;
intm=1;
chars1[20],s2[20];
printf("修改前的信息:
\n");
for(i=0;i{
printf("名称");printf("%s\n",mem[i].name);
printf("编号");printf("%s\n",mem[i].num);
printf("身份证号码");printf("%s\n",mem[i].id);
printf("所购车型");printf("%s\n",mem[i].type);
printf("联系电话");printf("%s\n",mem[i].phone);
printf("车辆金额");printf("%s\n",mem[i].money);
printf("备注");printf("%s\n",mem[i].remark);
}
printf("\n");
printf("请输入要要修改的会员的编号:
\n");
scanf("%s",s1);
for(i=0;iif(strcmp(mem[i].num,s1)==0)/*比较字符串是否相等*/
j=i;
printf("------------------------------------------------------\n");
printf("1.修改名称\n");
printf("2.修改编号\n");
printf("3.修改身份证号码\n");
printf("4.修改所购车型\n");
printf("5.修改联系电话\n");
printf("6.修改车辆金额\n");
printf("7.修改备注\n");
printf("8.退出本菜单\n");
printf("-----------------------------------------------------\n");
while(m=1)
{
printf("请选择子菜单编号:
");
scanf("%d",&item);
switch(item)
{
case1:
printf("请输入新的名称:
\n");
scanf("%s",s2);
strcpy(mem[j].name,s2);break;
case2:
printf("请输入新的编号:
\n");
scanf("%s",s2);
strcpy(mem[j].num,s2);break;
case3:
printf("请输入新的身份证号码:
\n");
scanf("%s",s2);
strcpy(mem[j].id,s2);break;
case4:
printf("请输入新的所购车型:
\n");
scanf("%s",s2);
strcpy(mem[j].type,s2);break;
case5:
printf("请输入新的联系电话:
\n");
scanf("%s",s2);
strcpy(mem[j].phone,s2);break;
case6:
printf("请输入新的车辆金额:
\n");
scanf("%s",s2);
strcpy(mem[j].money,s2);break;
case7:
printf("请输入新的备注:
\n");
scanf("%s",s2);
strcpy(mem[j].remark,s2);break;
case8:
m=0;
}
}
printf("修改之后的数据:
");
for(i=0;i{
printf("名称");printf("%s\n",mem[i].name);
printf("编号");printf("%s\n",mem[i].num);
printf("身份证号码");printf("%s\n",mem[i].id);
printf("所购车型");printf("%s\n",mem[i].type);
printf("联系电话");printf("%s\n",mem[i].phone);
printf("车辆金额");printf("%s\n",mem[i].money);
printf("备注");printf("%s\n",mem[i].remark);
}
printf("\n");
}
/*****************************************************************/
voidshanchu()/*删除函数*/
{
inti,j,flag=0;
chars1[30];
charch;
printf("请输入要删除会员的编号:
\n");
scanf("%s",s1);
for(i=0;iif(strcmp(mem[i].num,s1)==0)
{
flag=1;
for(j=i;jmem[j]=mem[j+1];
}
if(flag==0)
printf("该编号不存在!
\n");
if(flag==1)
{
for(i=0;i{
printf("名称");printf("%s\n",mem[i].name);
printf("编号");printf("%s\n",mem[i].num);
printf("身份证号码");printf("%s\n",mem[i].id);
printf("所购车型");printf("%s\n",mem[i].type);
printf("联系电话");printf("%s\n",mem[i].phone);
printf("车辆金额");printf("%s\n",mem[i].money);
printf("备注");printf("%s\n",mem[i].remark);
}
printf("删除成功\n");
}
printf("按0返回主菜单\n");
ch=getch();
if(ch=='0')
{
system("cls");zonghanshu();
}
}
3.6查询模块
亦称检索模块。
如果信息太多查找起来很不方便,对此我们系统设计了查找模块,使用户可以很方便的找到自己需要的信息。
本模块可通过输入会员的编号或者名称进行查找,之后系统会显示其所有的信息。
输入信息不存在则退出本次查询。
其代码如下:
voidmingcheng()
{
inti;
charName[30],ch;
do
{
printf("请输入您所要查询的会员名称:
");
scanf("%s",Name);
for(i=0;i{
if(strcmp(mem[i].name,Name)==0)
{
printf("名称");printf("%s\n",mem[i].name);
printf("编号");printf("%s\n",mem[i].num);
printf("身份证号码");printf("%s\n",mem[i].id);
printf("所购车型");printf("%s\n",mem[i].type);
printf("联系电话");printf("%s\n",mem[i].phone);
printf("车辆金额");printf("%s\n",mem[i].money);
printf("备注");printf("%s\n",mem[i].remark);
break;
}
}
if(strcmp(mem[i].name,Name)!
=0)
printf("对不起您所要查询的会员不存在。
");
}while(strcmp(mem[i].name,Name)!
=0);
printf("按0返回主菜单\n");
ch=getch();
if(ch=='0')
{system("cls");zonghanshu();}
}
/************************************************************/
voidbianhao()
{
inti;
charnum[15],ch;
do
{
printf("请输入您所要查询的编号:
");
scanf("%s",num);
for(i=0;i{
if(strcmp(mem[i].num,num)==0)
{
printf("名称");printf("%s\n",mem[i].name);
printf("编号");printf("%s\n",mem[i].num);
printf("身份证号码");printf("%s\n",mem[i].id);
printf("所购车型");printf("%s\n",mem[i].type);
printf("联系电话");printf("%s\n",mem[i].phone);
printf("车辆金额");printf("%s\n",mem[i].money);
printf("备注");printf("%s\n",mem[i].remark);
break;
}
}
if(strcmp(mem[i].num,num)!
=0)
printf("对不起您所要查询的会员不存在。
");
}while(strcmp(mem[i].num,num)!
=0);
printf("按0返回主菜单\n");
ch=getch();
if(ch=='0')
{system("cls");zonghanshu();}
}
3.9保存模块
该模块的作用是保存管理员所存信息,以便用户查找。
其代码如下:
voidsave()
{
FILE*fp;
inti;
charfilepath[20],ch;
printf("输入要保存的文件路径:
");
scanf("%s",&filepath);
if((fp=fopen("d:
\\filepath","w"))==NULL)
{
printf("\n保存失败!
");
exit(0);
}
for(i=0;i{
fprintf(fp,"%10s%10s%10s%10s%10s%10s%10s%",mem[i].name,mem[i].num,mem[i].id,mem[i].type,mem[i