C语言-论文.doc_第1页
C语言-论文.doc_第2页
C语言-论文.doc_第3页
C语言-论文.doc_第4页
C语言-论文.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

唐山学院课程设计课程设计说明书1. 需求分析 客户管理系统的需求分析主要确定系统的主要功能,对系统进行概要描述,对系统的各个主要功能分别进行需求描述,目的是使软件在设计过程中尽量符合客户的需要。1.1 系统概述 客户管理系统是一个对不同身份的客户进行录入、增加、删除、修改、排序和查询的管理应用软件。管理者可以对文件中存储的客户资料进行查询和排序浏览,了解客户的姓名、单位、类别、职务、手机、邮箱、备注等信息。该软件给管理者提供了一个简单的人机界面,管理者可以根据提示输入操作项并进行一系列对客户的基本信息进行管理操作。1.2 功能需求 该软件提供了一个对客户信息进行管理和查看的平台,给管理者提供了一个简单友好的客户接口,功能需求如下:1.2.1 输入 管理者可以根据提示输入客户的编号、姓名、单位、类别、职务、手机、邮箱、备注等信息。可一次性输入多条客户的信息记录。系统将客户信息记录存储在系统磁盘的文件中,以便进行管理、查找和备份。1.2.2 添加可在原有客户信息文件的基础上增加新的客户信息记录。在增加新信息记录的过程中,系统提示管理者输入相关信息,系统自动存入文件中对应的记录中。1.2.3 删除删除客户信息:提示管理者输入要进行删除操作的客户编号,如果在文件中有该客户的信息存在,则将该编号所对应的姓名、单位、类别、职务、手机、邮箱、备注等信息在对应文件中加以删除。1.2.4 修改 提示管理者输入要进行修改操作的客户编号,如果在文件中有该客户的信息存在,则将提示管理者输入该编号对应的客户需要修改的选项,并将修改结果存储于文件。1.2.5 浏览查询 管理者输入要浏览或查询的文件,便可逐条浏览显示的全部记录 1.2.6 排序 该项需求可以根据客户的姓名、单位、类别、职务、手机、邮箱、备注等信息进行排序,在排序的过程中还需要选择排序的方式,即从大到小或从小到大(数字按大小,文字按拼音)。以便管理者对客户信息有较为直观和方便的了解。2. 总体设计 进行总体设计的目标是用比较抽象概括的方式确定系统如何完成预定的任务,进而确定组成系统的每个程序的结构。2.1开发与设计的总体思想 本系统主要应用结构化的设计思想实现客户信息的增、删、改和查等典型管理功能。各主要模块的数据均存储在文件中,因此包含对文件的读、写等基本操作。在软件开发过程中应用了高级语言程序设计中的基本控制结构,如选择、循环、顺序结构。系统的设计方法是结构化设计方法,采用C语言进行开发。2.2 系统功能结构图客户资料管理程序保存载入退出资料浏览浏览全部浏览单个资料编辑插入资料修改资料删除资料选择排序标准选择排序方式图1 系统功能结构图 3. 详细设计我们的总体思路是模块化程序设计。将程序功能分割成浏览、编辑等几个模块,通过函数之间的调用实现总功能。本程序提供资料浏览及排序、资料编辑、保存等多种功能,并实现了对错误输入的检测,有效地防止了缓冲区溢出和程序的崩溃。3.1主界面此模块用于显示主目录并等待用户的输入。用户只需按屏上显示输入对应数字便可进行相应操作。图2 系统主页面 3.1.1信息浏览当用户输入数字1时,便进入资料浏览界面,在此界面中输入数字1可以浏览全部资料,输入数字2可以浏览个人资料。如发现自己进错了界面可以按数字3键返回上一级界面。如果用户输入的是数字1,进入全部资料的浏览,在浏览之前系统会提示选择浏览时的排序标准,用户必须在17之间作出选择,然后系统提示选择排序方式,必须在1、2数字键之间选择方式,最后可以看到用户满意的输出资料。图3 资料浏览菜单 图5 资料输出图4 排序标准界面3.1.2信息编辑此模块可实现对客户资料的插入、删除及修改的功能。如果用户在图2的主页面中输入数字2,则进入资料的编辑界面如图6。在此页面中同样可以通过选择数字按键14,进行相应的操作。图6 资料编辑菜单3.1.3插入资料 用户在图6界面输入数字1,进入插入资料菜单,此时用户可以加入新客户,按照图7的提示便可完成操作。图7 插入资料3.1.4删除资料用户在图6界面输入数字2,进入删除资料菜单,在此菜单中用户只能输入客户的编号进行删除。删除成功按任意键返回主菜单。图8 资料删除3.1.5修改资料 用户在图6界面输入数字3,进入资料修改菜单,在此页面可根据提示进行相应修改。图9资料修改3.2资料保存当完成资料的编辑,即插入、删除、修改后,按任意键会返回图2的主页面,此时点击数字3进行资料的保存。按照提示输入文件名,回车,保存成功。图10资料保存3.3资料载入 用户在进行浏览或查询之前,必须载入资料,此时按数字键4,界面中会提示用户输入载入文件的文件名,输入文件名,回车,载入成功,便可进行资料的浏览、编辑等相应操作。图11载入资料4. 总结在这次c语言课程设计的是实习中,充分的应用了所学的知识。通过去图书馆查阅相关资料和上网搜索相关知识,我们颇有收获,粗略设计出该系统。总体来说还是比较成功。运用了所学的模块设计方法、结构体、指针、循环语句、选择语句、文件的读写等实现了基本功能。当然,由于学的不够扎实,在课程设计过程中遇到很多困难。尤其是在根据模块排序标准进行排序的过程中,耗费了很多的时间与精力。同时,在各功能的设计过程中好多问题的考虑还不够全面。这次学习使我感触最大的一点就是必须亲自动手,以往总是眼高手低,当然也使我感受到团队精神的重要性,大家在一起互相讨论,互相帮忙,冲破了各个难关。最后还要感谢老师的帮助,感谢您为我们提供一个把理论应用到实践的机会!感谢帮助我冲破难关的同学,谢谢你们!参考文献1 谭浩强,张基温C语言程序设计教程(第3版)M北京:高等教育出版社,20062 吕凤煮C语言基础教程基础理论与案例M北京:清华大学出版社,20053 黄明、梁旭、万洪莉C语言课程设计M北京:电子工业出版社,20064 郭宁,郑小玲管理信息系统M北京:人民邮电出版社,20065 赵池龙,杨林,陈伟实用软件工程M北京:电子工业出版社,2006附录:程序清单#include stdio.h#include stdlib.h#include conio.h#include process.h#include string.h#define N 100typedef struct khzl char bh10; /*编号*/ char xm15; /*姓名*/ char dw40; /*单位*/ char lb15; /*类别*/ char zw15; /*职务*/ char sj15; /*手机*/ char yx30; /*邮箱*/ char bz80; /*备注*/khzl;khzl zlN;int p=-1; /保存资料条数p的值为数组下标的上限void init_main();/初始化主菜单void init_zlll();/初始化资料浏览菜单void init_zlbj();/初始化编辑菜单void init_save();/初始化保存菜单void init_load();/初始化载入主菜单void init_exit();/初始化退出菜单void list(khzl stru,int n);/排序并列出客户资料main()int i;for(i=0;i=1&k=1&k=3)break;else k=getch();switch(k)case 1:khzl struN;for(i=0;i=p;i+)strui=zli;list(stru,p);case 2:khzl stru1;printf(请输入编号。n);gets(n);for(;)if(strlen(n)0&atoi(n)100)printf(对不起,您的输入有误!按任意键返回。);getch();init_zlll();elsek=atoi(n);for(i=0;i=p;i+)if(k=atoi(zli.bh)stru0=zli;list(stru,1);printf(对不起,没有您所查找的编号。按任意键返回。);getch();init_zlll();case 3:init_main();void init_zlbj()int i,k;int flag=0;char n10;system(cls);printf(n);printf( 资料编辑 n);printf(n);printf( 1.插入资料 n);printf( 2.删除资料 n);printf( 3.修改资料 n);printf( 4.返回 n);printf(n);printf( 请选择: n);printf(n);for(i=1;i=1&k=4)break;else k=getch();switch(k)case 1:/插入资料flag=0;system(cls);printf( n);printf( 插入资料n);printf( n);for(i=0;i0)printf(%02d 姓名:%sn,atoi(zli.bh),(zli.xm);printf( 单位:%sn,(zli.dw);printf( 类别:%sn,(zli.lb);printf( 职务:%sn,(zli.zw);printf( 手机:%sn,(zli.sj);printf( 邮箱:%sn,(zli.yx);printf( 备注:%snn,(zli.bz);printf(请输入编号:); /输入编号p+;gets(zlp.bh);for(;) /以下检验编号合法性for(i=0;i99|atoi(zlp.bh)1) flag=1;/检验编号是否超出范围if(flag=1)printf(编号必须在99之间!按任意键返回。n);itoa(-1,zlp.bh,10);flag=0;getch();init_zlbj();else if(flag=2)printf(编号重复,按任意键返回。n);itoa(-1,zlp.bh,10);flag=0;getch();init_zlbj();else break;while(strlen(zlp.xm)1)/输入姓名system(cls);printf(请输入姓名(不能为空)。n);gets(zlp.xm);printf(请输入单位:);/输入单位gets(zlp.dw);printf(请输入类别:);/输入类别gets(zlp.lb);printf(请输入职务:);/输入职务gets(zlp.zw);printf(请输入手机:);/输入手机gets(zlp.sj);printf(请输入邮箱:);/输入邮箱gets(zlp.yx);printf(请输入备注:);/输入备注gets(zlp.bz);printf(添加信息成功!n按任意键返回。);getch();init_zlbj();case 2:/删除资料flag=0;system(cls);printf( n);printf( 删除资料n);printf( n);if(p=-1)/若无资料就返回printf(暂无资料!按任意键返回。);getch();init_zlbj();for(i=0;i0)printf(%02d 姓名:%sn,atoi(zli.bh),(zli.xm);printf( 单位:%sn,(zli.dw);printf( 类别:%sn,(zli.lb);printf( 职务:%sn,(zli.zw);printf( 手机:%sn,(zli.sj);printf( 邮箱:%sn,(zli.yx);printf( 备注:%snn,(zli.bz);printf(请输入编号:);gets(n);if(!(atoi(n)=1&atoi(n)=99) flag=0;/检验编号是否存在for(i=0;i=p;i+)if(atoi(n)=atoi(zli.bh)flag=1;break;if(!flag)printf(对不起,您所输入的编号不存在!n按任意键返回。);getch();init_zlbj();elseitoa(-1,zli.bh,10);printf(删除成功!n按任意键返回。);getch();init_zlbj();case 3:/修改资料flag=0;system(cls);printf( n);printf( 修改资料n);printf( n);if(p=-1)/若无资料则返回printf(暂无资料!按任意键返回。);getch();init_zlbj();for(i=0;i0)printf(%02d 姓名:%sn,atoi(zli.bh),(zli.xm);printf( 单位:%sn,(zli.dw);printf( 类别:%sn,(zli.lb);printf( 职务:%sn,(zli.zw);printf( 手机:%sn,(zli.sj);printf( 邮箱:%sn,(zli.yx);printf( 备注:%snn,(zli.bz);printf(请输入编号:);gets(n);if(!(atoi(n)=1&atoi(n)=99) flag=0;/检验编号是否存在for(i=0;i=p;i+)if(atoi(n)=atoi(zli.bh)flag=1;break;if(!flag)printf(对不起,您所输入的编号不存在!n按任意键返回。);getch();init_zlbj();elseprintf(请输入姓名(不能为空)。n);gets(n); /输入姓名if(strlen(n);gets(n);while(strlen(n)1) /检验文件名是否为空printf(请输入文件名。n);gets(n);fp=fopen(n,w); if(fp=NULL)printf(n文件创建失败!n按任意键返回。);getch();init_main();else while(count);gets(n);while(strlen(n)1) /检验文件名是否为空printf(请输入文件名。n);gets(n);fp=fopen(n,r); if(fp=NULL)printf(n文件打开失败!n按任意键返回。);getch(); init_main();elsefor(i=0;i=1&k=2)break;else k=getch();switch(k)case 1:exit(0);break;case 2:init_main();break;void list(khzl stru,int n)khzl temp;int i,j,k,m=0;char *t;char *dat100;for(i=0;i=1&k=7)break;else k=getch();switch(k)case 1:for(i=0;i=n;i+)memccpy(dati, strui.bh,0,10); ;break;case 2:for(i=0;i=n;i+)memccpy(dati, strui.xm,0,10); ;break;case 3:for(i=0;i=n;i+)memccpy(dati, strui.dw,0,10); ;break;case 4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论