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分)提问(答辩)问题情况综合评定指导教师签名:年月日11引言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语言进行开发。22.总体设计2.1功能需求汽车公司急需一款程序化的的会员管理系统,这种需求确定了系统的主要功能,该软件提供了一个对会员信息进行管理和查看的平台,给用户提供了一个简单友好的用户接口。2.2系统功能结构图会员信息管理录入会员信息删除会员信息修改会员信息浏览会员信息查询会员信息保存会员信息图1系统结构功能图33详细设计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,4输出密码正确。*/printf(密码输入正确\n);elseif(a==0)printf(对不起密码输入错误,请从新输入\n);}while(a==0);system(cls);}3.2主函数及主界面函数,就有了程序的框架,有了主调用函数和主菜单,从主界面可以选择所要求的操作,使操作方便,易于进行查找、添加、修改、删除等功能。其代码如下:inti;printf(欢迎进入汽车会员信息管理系统\n);printf(=============================================================================\n);printf(=============================================================================\n);printf(\n);5printf(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(i7&&i1)printf(请您输入有效数字!);}while(i7&&i1);3.3插入模块系统管理员通过此模块可以在原有记录的基础上随意的添加其他会员信息,通过系统的提醒依次的录入所要记录的会员的所有信息,可以添加多个会员信息,并且不需重新回到主界面,直接在系统的提示下进行再次输入。voidcharu(){inti,m;FILE*fp;charch;printf(请输入要插入的会员的个数:);scanf(%d,&m);if((fp=fopen(d:\\filepath,w))==NULL){printf(\n保存失败!);exit(0);6}for(i=0;im;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删除模块7管理员通过这块模块可以对不需要的信息进行删除,使用方便,只需要输入所要删除的会员信息编号即可,系统会自动搜索,确定删除后此信息消失。其代码如下:voidshanchu(){inti,j,flag=0;chars1[30];charch;printf(请输入要删除会员的编号:\n);scanf(%s,s1);for(i=0;iM;i++)if(strcmp(mem[i].num,s1)==0){flag=1;for(j=i;jM-1;j++)mem[j]=mem[j+1];}if(flag==0)printf(该编号不存在!\n);if(flag==1){for(i=0;iM;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'){8system(cls);zonghanshu();}}3.5修改模块考虑到有些信息可能会发生变动,该系统设置了修改模块,如果某个编号的信息发生变动,管理员可以通过此模块对该编号下的其他信息进行修改。其代码如下:voidxiugai(){inti,item,j;intm=1;chars1[20],s2[20];printf(修改前的信息:\n);for(i=0;iM;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;iM;i++)if(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);9printf(6.修改车辆金额\n);printf(7.修改备注\n);printf(8.退出本菜单\n);printf(-----------------------------------------------------\n);while(m=1){printf(请选择子菜单编号:);scanf(%d,