1、 0 C 语言程序设计 课程设计报告 专 业: 班 级: 姓 名: 指导教师: 二零一二年十二月 二十六日 成 绩 1 目 录 一、 设计 题目 2 二、 设计 目的 2 三、 设计 内容 2 3.1 需求分析 2 3.2 概要设 计 3 3.3 详细设计 6 3.5 编写过程中遇到的问题及解决办法 7 3.4 调试结果 8 3.6 课程设计总结 16 四、 参考书目 17 附录 A 程序源代码 18 2 一 、设计题目:课程 信息管理 系统 二、设计目的 1、 熟 练掌握 C语言课程中所学的理论知识; 2、通过综合 C语言的基本知识来解决实际问题; 3、加强分析和解决问题的能力。 三、设计
2、内容 3.1 需求分析 设计对 n 门课程 进行管理的课程信息管理系统 ,每门课程有课程编号,课程名称,课程性质 ( B为必修, X 为选修) ,总学时,学分 等。系统功能包括: 1、 系统以菜单方式工作 ,密码登陆。 2、 课程信息 的 录入功能 (增加数据) 。用 数组数据类型 赋初值的方法把课程信息送到 各个 数组中(但注意要是合法数据),然后把它们输出显示。 3、 课程信息的删除 (删除数据)。任意输入一门 课程 的编号, 将它所有的信息从数组中删除。 4、 课程信息 的 浏览功能 ( 查找 数据) 。任意输入一 门 课程的 编号 ,打印出所有 相关 数据。要求能多次查找。 5、 课程
3、信息的删除 (修改数据)。任意输入一门 课程的 编号,打印出所有相关信息后,可对某一项信息进行修改并保存。 6、 课程信息的计算并排序。计算 所有 课程 的总学分 及平均 学分 ( aver,单精度,输出一位小数),将包括所有数据的数组元素按 价格 从 高 到 低 的顺序排序打印出来。 3 3.2 概要设计 程序流程图: 开始 根据菜单输入 d的值选择程序 Quit()函数 输入 c=1 查询课程信息 课程信息的录入 退 出 删除课程信息 修改课程信息 输入 3 输入 2 输入 1 输入 4 输入 5 浏览课程信息 课程学分排序 保存 是否继续进行 结束 菜单 N Y 4 模块分解: void
4、 pasd(); /声明密码函数 声明部分 ( 1)主函数模块 void zhujie(); /声明 zhujie()函数 zhujie(); /调用 zhujie()函数 调用部分 pasd(); /调用密码函数 联系 联系 声明部分: void yewu(); /声明业务函数 ( 2)密码模块 调用部分: yewu(); /调用业务函数 联系 联系 void inputcouinfo(void); /声明输入函数 void updatecouinfo(void); /声明修改函数 void addcouinfo(void); /声明添加函数 声明部分 void findcouinfo(vo
5、id); /声明查询函数 void ordercouinfo(void); /声明排序函数 ( 3)业务模块 void delcouinfo(void); /声明删除函数 inputcouinfo(); /调用输入函数 case 1:findcouinfo();break; /调用课程信息查询 调用部分 case 2:delcouinfo();break; /调用课程信息删除 case 3:updatecouinfo();break; /调用课程信息修改 case 4:ordercouinfo();break; /调用课程信息排序 case 5:addcouinfo(); break; /调用
6、课程信息添加 5 数据结构 的说明: #define n1 20 /控制课程个数的存储空间 #define m1 5 /控制课程属性个数的存储空间空间 char couinfon1m116; /定义全局数组 char password=“123456“; /原密码 int a, i,j,t=0,c=0,n=4,m=5; /定义全局变量 密码模块: char p9; /定义密码数组 pi=8 /控制退格 pi=13 /回车控制 strcmp(p,password)=0 /密码匹配 字符串比较函数 int n=3; /密码输入次数控制 业务模块: system(“cls“); /清屏函数 6 3.
7、3 详细设计 密码模块: 注释 Y (是) N(否) Y N 删除模块: 结束 始 定义数组密码 int n=3;n=3; n=3; int n=3; int i; n 为控制输入密码次数 密码是否匹配 进 入 业 务 函 数 开 始 7 注释 注释 Y N Y N 3.4 编写过程中遇到的问题及解决办法 ( 1)在调试函数的过程时,一般高级语言要求 函数实参与形参个数与类型一致,但在 C 语言编译在该点检查不严格。当出现实参与形参类型不一致时,编译运行时,系统不报错。因此,错误隐含了下来,给程序调试带来了困难。 解决方法是:一开始,我自己仔细查找自己的程序的错误,但最终在老师的帮 助下,找到了程序的错误。并将其改正,使程序正常运行。 (2)当要求从键盘读入一字符串时,若选用输入的函数不当时,则容易造成错误,并很难发现。解决方法:自己认真并且反复检查以及老师的帮助。 开 始 定义变量数组 char y16; char y116; int d,x,z; 输入一个 X 值 scanf(“%d“, X 值是否等于 0 结 束 输入 Y, Y1 的值 Y 与 Y1 是否相等 结 束 删除该课程 显示没有删除的课程 8 3.5 调试结果 界面 9