课程设计--订餐管理系统(共67页).docx

上传人:飞****2 文档编号:13731026 上传时间:2022-04-30 格式:DOCX 页数:67 大小:1.12MB
返回 下载 相关 举报
课程设计--订餐管理系统(共67页).docx_第1页
第1页 / 共67页
课程设计--订餐管理系统(共67页).docx_第2页
第2页 / 共67页
点击查看更多>>
资源描述

《课程设计--订餐管理系统(共67页).docx》由会员分享,可在线阅读,更多相关《课程设计--订餐管理系统(共67页).docx(67页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上 成 绩 课 程 设 计设计课程名称 C语言课程设计 题 目 1 多文件系统设计 2链表结构系统设计 3 订餐管理系统设计 学 院 常州大学怀德学院 专 业 班 级 计算机141 学 号 姓 名 周尧明 指 导 教 师 林 荫 部 门 计算机教研室 设 计 时 间 2015 年 6 月 26 日 2015 年 7 月 17 日C语言课程设计任务书 常州大学怀德 学院 计算机141 班 周尧明 同学:一、设计题目 1 多文件系统设计 2链表结构系统设计 3 订餐管理系统设计二、C语言课程设计的目的和意义C语言课程设计是C语言程序设计课程的一个重要的环节。它是根据教学计划

2、的要求,在老师指导下,对学生实施程序设计训练的必要过程,是对前期课堂教学效果的检验。其目标在于培养学生综合应用理论知识来分析和解决实际问题的能力。通过本次课程,要求学生能够遵循软件开发过程的基本规范,应用结构化程序设计的方法,按照题目要求,独立完成设计任务,使学生更加深刻地理解和掌握C语言的基本概念、语言特点和编程技巧,为以后相关课程的学习打下良好基础。三、设计内容本课程设计的内容分三个阶段来完成。各部分目的及内容:任务一 多文件系统设计目的:(1)树立项目意识,体验C语言的模块化设计风格;(2)掌握函数调用及其参数传递的方法;(3)学习多文件程序的编写和调试方法;(4)学习基于软件工程的项目

3、实现方法和文档编写方法。内容和要求:(1)使用多文件结构形式完成本设计。(2)使用数组结构存储学生的成绩,通过函数调用实现学生成绩的增加、显示、指定成绩的删除、查找和排序。(3)为各项操作功能设计菜单。应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。(4)各功能使用相应的函数实现,各函数包含在不同的文件中。(5)构造独立的头文件,包含所需的所有的头文件和函数原型说明。(6)设计报告包括课题的需求分析、系统设计、详细设计、系统实现和测试。(7)扩展: 性能扩展,指用户使用的友好程度体验。(1)成绩的有效性判断;(2)部分选单功能必要的循环操作,等。 功能扩展:(1)添加

4、功能; (2)成绩从文件度读、写功能,等。任务二 链表结构系统设计目的:(1)熟悉使用结构体和链表进行复杂数据的表示方法 ;(2)掌握结构体和链表数据的的常用操作的实现方法;(3)熟悉一个完整的信息管理软件的开发流程、设计和表示方法。内容和要求:(1) 使用多文件结构形式完成本设计。基本要求同任务一:通过函数调用实现学生成绩的增加、显示、指定成绩的删除、查找和排序功能。各功能使用相应的函数实现,各函数包含在不同的文件中。为各项操作功能设计菜单。应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。(2) 使用结构体存储每位学生的信息(包括成绩),将多位学生的信息以链表方式组

5、织。(3)使用指针操作访问学生结构体数组的每一个学生信息。(4)使用动态申请和释放内存函数完成对学生信息的增删操作。(5)构造独立的头文件,包含所需的所有的头文件和函数原型说明。(6)设计报告包括课题的需求分析、系统设计、详细设计、系统实现和测试。(7)扩展:如任务一。任务三 订餐管理系统设计目的:(1)熟悉使用软件工程的思想完成一个信息系统的设计步骤和方法。(2)熟悉软件设计各步骤表示的常用工具。(3)掌握使用C语言进行多文件程序编写和调试的方法。内容和要求:(1)使用多文件结构形式完成本设计。(2)为各项操作功能设计一个菜单。应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的

6、操作项目。(2)使用链表结构存储订餐信息,通过函数调用实现订餐信息添加、查询、删除、输出和排序。(3)为各项操作功能设计菜单。应用程序运行后,先显示主菜单,然后用户通过菜单项选择希望进行的操作项目。(4)各功能使用相应的函数实现,各函数包含在不同的文件中。(5)构造独立的头文件,包含所需的所有的头文件和函数原型说明。(6)设计报告包括课题的需求分析、系统设计、详细设计、系统实现和测试。(7)扩展: 性能扩展,指用户使用的友好程度体验。(1)添加订餐信息;(2)部分选单功能必要的循环操作,等。 功能扩展:(1)添加功能; (2)订餐信息从文件度读、写功能,等。课程设计的排版要求一、总体要求1、

7、纸型:A4;3、页面设置:左、右、下边距为2.5厘米,上边距为2.8厘米,页眉和页脚均为2.0厘米(页眉页脚如该文档);4、行间距:固定值18磅;5、中文采用宋体字体,西文、数字等符号均采用Times New Roman字体。二、课程设计正文排版要求 1 题名(宋体 小四号 粗体)(段前、段后0.5行)说明:章、节编号全部顶格排,编号与标题之间空1个字的间隙。1.1 题名(宋体 五号 粗体)(段前、段后0.5行)1.1.1 题名(宋体 五号 粗体)(段前、段后0.5行)(内容:宋体 五号,段前距和段后距均为0磅;)三、页眉和页脚常州大学怀德学院课程设计(字体:宋体、五号) 学号:姓名:第 页

8、共 页四、设计要求1、编写源程序的要求:(1) 实现任务书中的所有功能,可扩展;(2) 尽可能使界面友好、直观、易操作;(3) 源程序要有注释,使程序容易阅读;(4)使用多文件实现。2、撰写“课程设计报告”,要求如下: (1)封面:统一采用常州大学课程设计说明书封面格式 (2)任务书 (3)目录 (4)正文。每部分按各自的要求编写,依次按照任务一、任务二和任务三完成。3、 “课程设计报告”排版要求:4、课程设计答辩验收要求:(1)运行所设计的系统;(2)回答有关问题;(3)电子稿:提交源程序和课程设计报告电子稿,打包上传至网络课堂相关节点书面稿:提交课程设计报告书面稿五、进度安排1 任务一 多

9、文件系统设计:16学时+课外2 任务二 链表结构系统设计:16学时+课外3任务三 信息系统设计系统分析和系统设计阶段:4学时+课外编程及系统调试阶段:22学时 +课外总结和书写课程设计报告阶段:课外考核阶段:2学时六、设计时间:2015 年 6 月26 日到 2015 年7 月 17 日参考文献(宋体 小四号 粗体)内容: (中文用宋体五号,西文、数字等符号均采用Times New Roman字体):序号作者.文献题名M.出版地:出版者,出版年.起止页码如:1毛利锐,沈灌群.中国教育通史M.济南:山东教育出版社,1988.20-222中国力学学会第三届全国实验流体力学学术会议论文集C天津:19

10、903李晓东,张庆红,叶瑾琳气候学研究的若干理论问题J北京大学学报:自然科学版,1995,35(1):101-106专心-专注-专业目 录任务一 多文件系统设计.11 问题描述.12 系统设计.1 2.1 系统功能结构图.1 2.2 系统流程设计图.1 2.3 系统文件结构图.23 详细设计 .2 3.1文件和自定义函数间的关系. . .2 3.2 函数之间调用关系.3 3.3 函数设计.44 系统实现.75 系统测试和结果.12任务二 链表结构系统设计.161 问题描述.162 系统设计.16 2.1 系统功能结构图. .16 2.2 系统流程设计图.16 2.3 数据设计.17 2.4 系

11、统文件结构图.173 详细设计.18 3.1结构体定义. . .18 3.2文件和自定义函数间的关系. .18 3.3 函数之间调用关系.19 3.4 函数设计.194 系统实现.205 系统测试和结果.25任务三 订餐信息系统设计.271 问题描述.272 系统分析.27 2.1 课题的基本要求.27 2.2 输入/输出要求.28 2.3 数据分析.28 2.4 系统操作流程分析.283 系统设计.29 3.1 数据设计.29 3.2 系统功能结构设计.30 3.3 输入/输出设计.313.3.1 输入设计.313.3.2 输出设计.31 3.4 设计过程中的重点和难点.314 详细设计.3

12、2 4.1数据定义. . .32 4.2文件和自定义函数间的关系. .33 4.3 函数之间调用关系.33 4.4 函数设计.34 5 系统实现.37 5.1 系统构架(文件组织结构)37 5.2 源程序清单37 5.3实现中的重点和难点.50 5.4遇到的问题及解决.506 测试和结果分析总结.50 6.1 测试和结果.51 6.2 结果分析.567 系统使用说明.568 结论.57 8.1课题完成情况说明.57 8.2系统的亮点.57 8.3系统的不足.57 8.4系统可能的改进和扩展 57总结.57参考文献.57致谢.58任务一 多文件系统设计1 问题描述本系统是用于管理学生的成绩,通过

13、本系统可以实现成绩的输入、排序、查询、删除、插入、显示的功能,并且还可以显示所有学生的成绩。2 系统设计2.1系统功能结构图如图1所示学生成绩管理系统删除学生成绩查询学生成绩显示学生成绩排序学生成绩输入学生成绩插入学生成绩 图1 系统功能结构图 学生成绩管理系统分为6个部分,分别为输入学生成绩、删除学生成绩、查询学生成绩、显示学生成绩、排序学生成绩、插入学生成绩。2.2系统流程设计图如图1所示欢迎界面进入菜单选项1.成绩输入,并判断是否有效3.成绩循环查询5.显示成绩2.成绩循环删除4.成绩排序0退出系统.6.循环插入成绩和判断插入的成绩是否有效图1 系统流程设计图该系统会先进入欢迎界面,然后

14、出现7个菜单,1.成绩输入,并判断是否有效,2成绩循环删除,3成绩循环查询,4成绩排序,5显示成绩,6循环插入成绩,0退出系统。3.1数据设计2.3系统文件结构图如图3所示main.c-主函数input.c-成绩输入del.c-成绩删除find.c-成绩查询insert.c-成绩插入menu.c-主菜单sort.c-成绩排序display.c-成绩显示task.h-头文件图3系统文件结构图首先建立一个工程名为task1.h,然后建立8个源文件和一个头文件,分别为删除成绩、显示成绩、查询成绩、输入成绩、插入成绩、主菜单、主函数。3 详细设计3.1文件和自定义函数之间的关系文件名文件所对应的函数功

15、能说明main.cvoid main()主函数,进行选择功能选项menu,cvoid menu()主菜单,输入功能选项input.cint input(floata,int n)输入成绩,并对数据有效判断del.cint del(float a,int n)删除成绩,可以循环删除find.cvoid find(float a,int n)查询成绩,可以循环查询sort.cvoid sort(floata,int n)成绩从高到低排序display.cvoid display(floata,int n) 显示成绩insert.cint insert(float a,int n)插入成绩,如果在成

16、绩表中存在,输出提示信息;如果不在,将其插入在表的末尾。然后输出整个表。 图4文件和自定义函数的关系3.2 函数之间调用关系如图5所示main()menu()input()del()sort()display()insert()exit()find()图5 函数之间调用关系3.3 函数设计(1)主函数A.函数原型:void main( )B.功能:显示学生成绩管理系统的7个功能选项C.入口参数:无D.出口参数:无E.描述:定义一个数组来储存成绩,通过调用函数实现相应的功能。(2)菜单函数A.函数原型:void menu( )B.功能:显示菜单界面C.入口参数:无D.出口参数:无E.描述:输出显

17、示菜单选项 (3)学生成绩的输入A.函数原型:int input(floata,int n)B.功能:输入学生的实际人数与学生的成绩并保存到数组中,然后将输入的数据带回main函数C.入口参数:ai 保存学生的成绩;n:学生人数D.出口参数:n:学生实际人数n:学生实际人数E .描述:先输入学生人数,再输入学生成绩,并判断成绩是否有效,无效从新输入。打开文件,将学生成绩写入文件中,最后关闭文件。(4)删除学生成绩A.函数原型:int del(float a,int n)B.功能:输入要删除的成绩 C.入口参数: ai 保存学生的成绩;n:学生人数D.出口参数:n:学生实际人数E .描述:输入要

18、删除的成绩,若输入数不存在,就输出不存在,并用循环判断是否继续。 (5)查询学生成绩A.函数原型:void find(float a,int n)B.功能:输入要查询的成绩 C.入口参数: ai 保存学生的成绩;n:学生人数D.出口参数:无E .描述:输入要查询的成绩,若输入的成绩不存在,就输出不存在,并用循环判断是否继续。(6)排序学生成绩A.函数原型:void sort(floata,int n)B.功能:成绩排序 C.入口参数:ai 保存学生的成绩; n:学生人数D.出口参数:无E .描述:对成绩排序并输出。(7)查询学生成绩A.函数原型:void find(float a,int n)

19、B.功能:输入要查询的成绩 C.入口参数:ai 保存学生的成绩; n:学生人数D.出口参数:无E .描述:输入要查询的成绩,若输入的成绩不存在,就输出不存在,并用循环判断是否继续。(8)显示学生成绩A.函数原型:void display(floata,int n)B.功能:成绩显示 C.入口参数:ai 保存学生的成绩;n:学生人数。D.出口参数:无E .描述:打开文件将数据从文件中读出,并把成绩输出,最后再关闭文件。(9)插入学生成绩A.函数原型:int insert(float a,int n)B.功能:成绩插入 C.入口参数:ai 保存学生的成绩;n:学生人数D.出口参数:n:学生实际人数

20、E .描述:先输入要插入的成绩,判断数据是否有效,若有效将其插入到数组末端,并用循环判断是否继续。4.系统实现(1) 头文件task.h#includestdio.h/定义输入输出头文件#includestdlib.h/定义清屏头文件#includeconio.h/定义通过控制台进行数据输入和数据输出#define SIZE 80/宏定义,学生人数最大值为80FILE *fp; /定义文件int inpput(float a,int n);int del(float a,int n);void find(float a,int n);void sort(float a,int n);void

21、display(float a,int n);int insert(float a,int n);void menu();(2) 主函数main.c#includetask.hvoid main() /系统主函数int j,num;float scoreSIZE; while(1)menu();scanf(%d,&j); /输入读取的选项的数字switch(j) /判断所选项目case 1: num=inpput(score,num);break; case 2: num=del(score,num);display(score,num);break; case 3: find(score,n

22、um);break; case 4: sort(score,num);display(score,num);break; case 5: display(score,num);break; case 6: num=insert(score,num);display(score,num);break; case 0: exit(0);(3) 主菜单 menu.c#includetask.hvoid menu() /主菜单显示system(cls); /清屏printf(nnnttt 欢迎使用学生成绩管理系统nnn);printf(ttt*n);printf(ttt* 主菜单 *n);printf

23、(ttt*nnn);printf(tt 1 成绩输入 2 成绩删除n);printf(tt 3 成绩查询 4 成绩排序n);printf(tt 5 显示成绩 6 成绩插入n); printf(tt 0 退出系统n);printf(tt 请选择1/2/3/4/5/6/0:);(4) 成绩输入 input.c#includetask.hint inpput(float a,int n) /成绩输入int i;system(cls);if(fp=fopen(text,wb)=NULL)/打开文件判断printf(cannot openn file);exit(1);printf(n请输入学生人数(1

24、80):);scanf(%d,&n);/学生人数显示printf(n请输入学生成绩:);for(i=0;in;i+)/循环输入学生成绩scanf(%f,&ai);for(i=0;in;i+)if(ai100) /数据是否有效判断printf(数据%.1f无效,继续输入n,ai);scanf(%f,&ai);for(i=0;in;i+) /循环将数据写入文件fprintf(fp,%.1ft,ai);fclose(fp); /关闭文件printf(按回车返回:);getch();return n;(5) 成绩删除 del.c#includetask.hint del(float a,int n)

25、/成绩删除int i,j,k=0,b;float m;system(cls);/清屏if(fp=fopen(text,r)=NULL)/以读的方式打开文件printf(cannot read file);exit(1);for(i=0;in;i+) /从文件中读取数据fscanf(fp,%f,&ai);doprintf(n请输入要删除的成绩:);scanf(%f,&m); /输入要删除的成绩for(i=0;in;i+) /删除成绩if(m=ai) k=1;for(j=i;jn-1;j+)aj=aj+1;n-;break;if(!k)printf(找不到要删除的成绩:);printf(n结束请按

26、0,继续请按1:);scanf(%d,&b);while(b); /循环删除fclose(fp); /关闭文件printf(按回车返回:);getch();return n; (6) 排序学生成绩 sort.c#includetask.hvoid sort(float a,int n) /成绩排序int i,j,b;float t;if(fp=fopen(text,w)=NULL) /以写的方式打开文件printf(cannot openn file);exit(1);for(i=0;in;i+) /从文件中读取数据fscanf(fp,%f,&ai);for(i=0;in-1;i+) /将学生

27、成绩从高到底排序for(j=0;jn-i-1;j+) /采用冒泡排序法if(ajaj+1)t=aj;aj=aj+1;aj+1=t;printf(n输出排序结果:); for(i=0;in;i+) /输出排序结果printf(%.1ft,ai);printf(n);for(i=0;in;i+)fprintf(fp,.1%ft,ai);fclose(fp); /关闭文件printf(按回车返回:);getch();(7) 显示学生成绩 display.c#includetask.hvoid find(float a,int n) /成绩查询int i,b;float m;system(cls);

28、/清屏if(fp=fopen(text,r)=NULL) /以读的方式打开文件printf(cannot read file);exit(1);for(i=0;in;i+)fscanf(fp,%f,&ai); /从文件中读取数据doprintf(n请输入要查询的成绩:);scanf(%f,&m); /输入要查询的成绩for(i=0;i=n)printf(找不到!n);printf(n结束请按0,继续请按1:);scanf(%d,&b);while(b);/循环查找ifclose(fp);printf(按回车返回:);getch(); (8) 学生成绩查询find.c#includetask.h

29、void find(float a,int n) /成绩查询int i,b;float m;system(cls); /清屏if(fp=fopen(text,r)=NULL) /以读的方式打开文件printf(cannot read file);exit(1);for(i=0;in;i+)fscanf(fp,%f,&ai); /从文件中读取数据doprintf(n请输入要查询的成绩:);scanf(%f,&m); /输入要查询的成绩for(i=0;i=n)printf(找不到!n);printf(n结束请按0,继续请按1:);scanf(%d,&b);while(b); /循环查找ifclose(fp);printf(按回车返回:);getch();(9)学生成

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁