课程设计目录和正文模板

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

1 问题描述 (1)

2 需求分析 (1)

3 概要设计 (1)

3.1设计思路 (1)

3.2模块划分 (2)

3.3流程图 (2)

4 详细设计 (3)

4.1数据类型的定义 (3)

4.2程序分析 (3)

4.3程序清单 (6)

5 测试分析 (8)

6 课程设计总结 (9)

参考文献 (10)

1 问题描述

设计一个职工管理程序,输出10个职工的姓名和职工号,按职工号由大到小排序,姓名顺序也随之调整,要求输入一个职工号,用折半查找法找出该职工的姓名。从主函数输入要查找的职工号,输出该职工姓名。

2 需求分析

从问题描述中可知:要编写一个职工数据管理程序,输入职工号和姓名并按职工号由大到小排序,则需建立一个子函数input-e(),其功能是输入职工的数据。输入完成后,我们需对职工信息进行排序,此时需用到sort函数。为提高效率,sort函数是用选择法进行排序。排序后就是查找,题目要求输入一个职工号,用折半查找找出该职工的姓名。所以查找需建立子函数search,用来查找职工的信息。那么,整个程序主函数main就包括三个子函数,分别是输入函数input-e、排序函数sort和查找函数search。

3 概要设计,

3.1设计思路

(1)首先建立主函数main,在main中有三个子函数,输入、排序、查找。Main函数中用flag作为循环开关变量。先赋值flag=1,输入要查找的职工号,显示查找结果,当不再继续查找时,flag=0. 循环结束。否则flag=1.

(2)接下来分析第一个子函数---输入函数input-e。用一个一维数组存储职工号,为整型。职工的姓名用一个二维数组存储,为字符串。定义一个变量i 用i的循环递增输入职工号和职工姓名。

(3)接着用选择法进行排序,建立子函数sort。每趟排序从待排记录中找到最大的记录,并与第一个记录进行交换。这样就完成了从大到小排序,是整个记录成递减序列。

(4)建立一个查找函数search。功能为对指定的职工号查找出职工的姓名。用loca作为开关变量,赋值loca=0。用一个if语句判断待查的职工号与输入的职工姓名是否相符。若待查找的变量n不在查找范围,则loca=-1.结束。折半查找算法思想是考察表中中间记录,其关键字与给定的信息相符,则查找成功。

若大于给定值,则在前半部分再实施折半查找;若小于给定值,则下一步在后半部分查找。一直到查找成功,或确定关键字与所给信息不存在。

3.2模块划分

本程序包括四个模块:

(1)主程序模块,

void main()

{

初始化;

输入职工号和职工姓名;

按职工号从大到小排序;

输入职工号查找职工姓名;

}

(2)输入模块——实现职工号与职工姓名的输入

(3)排序模块——实现将职工号从大到小排序

(4)查找模块——实现输入一个职工号查找该职工的姓名

3.3 N-S图

调用input_e函数输入职工的数量

调sort函数进行排序

循环开关变量flag=1

输入要查找的职工号

调search函数进行查找并显示结果

T

不查找了?

F Flag=0

图 3.3 实验系统N-S图

4 详细设计

4.1数据类型的定义

(1)数组类型

#define N 10

char name[N][8]

(2)整数类型

int i,j,min,temp1,top,bott,loca;

4.2程序分析

此程序分为四个部分:(1)主函数部分;(2)输入部分;(3)选择排序部分;

(4)查找部分。

(1)主函数

void main()

{ int num[N],number,flag,c,;

char name[N][8];/*定义num[]来存储职工号,name[N][8]来存储职工的姓名*/

input_e(num,name);/*输入职工信息*/

sort(num,name);/*由大到小排序*/

for(flag=1;flag;)

{ printf("\n qing shu ru yao cha zhao de zhi gong ming :");

scanf(“%d”,&number);/*从键盘输入要查找的职工号*/

search(number,num,name);/*通过职工号查找职工姓名*/

printf(" shi fou ji xu cha zhao? y/n!");

getchar();

c=getchar();

if(c=='N'||c=='n')/*判断是否继续查找*/

flag=0;

}

}

(2)输入职工号与职工姓名部分(input_e)

void input_e(num,name)

int num[];

char name[N][8];/*定义num[]来存储职工号,name[N][8]来存储职工的姓名*/

{ int i;

for(i=0;i

{ printf("\n shu ru zhi gong hao: ");

scanf("%d",&num[i]);/*输入职工号*/

printf("\n shu ru zhi gong ming: ");

getchar();

gets(name[i]);/*输入职工的姓名*/

}

}

(3)选择法排序部分(sort)

void sort(num,name)

int num[];

char name[N][8];

{

int i,j,max,temp1;

char temp2[8];

for(i=0;i

{

max=i;

for(j=i;j

if(num[max]>num[j])/*选择*/

max=j;

temp1=num[i];/*排序*/

strcpy(temp2,name[i] );/*交换*/、

num[i]=num[max];

strcpy(name[i],name[max]);

num[max]=temp1;

相关文档
最新文档