高级语言程序

发布 2021-05-13 05:50:28 阅读 1342

课程实训报告。

题目:多功能菜单选择程序设计与实现。

设计者:专业班级:

学号:指导教师:

2023年 01 月 17 日。

计算机工程系。

1 题目与要求。

1.1 问题提出。

本人计划编写一个多功能菜单选择程序设计与实现,主要用来实现解一元二次方程、解决josephus问题、学生信息管理。

1.2 本系统涉及的知识点。

结构、数组、循环、函数、分支、指针、结构体,结构体数组、文件的操作等知识。

1.3 功能要求:

一、建立一元二次方程的运算:输入方程的系数a,b,c,求解该方程的根。

二、建立一个程序,解决josephus问题。

三、建立一个程序,实现通讯录管理。

1.输入学生的信息:包括姓名、**号码、类别、电子邮件等;

2 . 从键盘输入通讯录的信息。

3.从指定的文件中读入学生的信息;

4.按姓名查询通讯录的信息。;

5.按分类查询通讯录的信息;

6.删除指定姓名的通讯录的信息。

7将通讯录信息保存在指定的文件中。

2 功能设计(左对齐,宋体粗四号)

2.1 算法设计(左对齐,宋体粗小四号)

首先编写一个菜单驱动程序,输入1~4之间的任意一个数字,即可进入相应选择项。当选择相应选项时,其输出信息分别为:解一元二次方程、出圈游戏、功能3和退出程序。

1)实现循环和功能选择。

假设输入选择用变量cn存储,它作为menu_select()函数的返回值提供给switch语句。使用for循环实现重复选择,并在函数handle_menu()中实现。

菜单处理函数。

void handle_menu()for

实际使用时,只有选择4,程序才能结束运行,这就要使用循环控制。

这里使用for循环语句实现菜单的循环选择,为了结束程序的运行,使用“return”语句即可,也可以使用“exit(0);”语句。

2)得到cn的合理值。

如前所述,应该设计一个函数用来输出信息和处理输入,这个函数应该返回一个数值cn,以便供给switch语句使用。假设函数名为menu_select,设计的参考程序如下:

菜单选择函数。

int menu_select()

char s[2];

int cn;

printf("\t1. 解一元二次方程");

printf("\t2. 出圈游戏");

printf("\t3. 功能3");

printf("\t4. 退出程序 ")

printf("\t选择1-4: "

forreturn cn;

语句“cn=atoi(s);”是为了使输入的字符串转变为数字,以便使switch中的case语句对应数字1~4。对于不符合要求的输入,将被要求重新输入。

3)设计头文件。

将函数原型声明在头文件中,假设头文件为。

#if !defined(c_h)

#define c_h

#include <>

void handle_menu();

int menu_select();

#endif

4)设计主程序。

主程序非常简单,只有一条语句。假设使用文件其内容如下:

主程序文件。

#include ""

void main()

handle_menu();

编译运行,即可检查并验证菜单选择是否正确。

本系统需要实现的功能要求:

利用switch语句设计如图1所示的主菜单(图中的文字宋体5号):

请输入选项编号(1~6),

图1 多功能菜单选择程序系统主菜单。

所有的图统一编号,宋体5号,置于图下的中间,)

2、选择3后,调用排序函数,进入函数后利用switch语句实现一个如图2所示的菜单,该菜单中分为6个小模块:,

图2 排序子菜单。

3、根据所选菜单编写相应**:

1)输入函数input:利用循环输入的方式,将有关信息存入结构数组,结构数组根据实际的人数,采用动态方式建立。

2)求开根函数sqrt():利用数学公式x1.2=

图3 系统模块图2.2 部分模块流程图。

流程图的画法参阅第二章。

3 程序**设计(左对齐,宋体粗四号)

内容:分模块(函数)简述其功能;模块中使用的各变量的类型及作用,包括声明数据类型(如结构体);设计过程;并列出该模块(函数)的**。(宋体小四号)。

例如:输入模块(模块名宋体粗小四号,其余宋体小四号)

一.1)void menu_select();函数。

2)功能:显示子菜单;

二.1).input()函数;

2)功能:利用for循环语句和scanf、gets、getchar函数完成对结构数组的输入,存放n个学生的信息(学号、姓名、性别、4门成绩)。

3)变量及类型:

int a[5][4] :整型形参数组,接收main函数传过来的二维数组的首地址。

int i , j :循环控制变量。

int n :整型形参变量,接收main()传过来的数组人数。

struct student stu[ ]接收主函数传过来的数组首地址。

4)说明:执行完输入函数后,会在键盘缓冲区中保存回车键,后面再对字符型变量赋值时,会将缓冲区中的回车键当成数据存入变量中,所以要在某些输入语句后面加getchar()函数。(若不需说明部分可省略)

4 c程序设计总结(左对齐,宋体粗四号)

1. 在程序调试的过程中,有很多细节错误,比如:忘记了在语句后加分号,忘记加&,搞错变量的定义类型,内循环和外循环没有弄清,循环的次数控制不合理,函数的调用问题没有更深层次地去理解,调试出错但是不知道错在**,也不知道怎么去处理该错误等。

2. 经过这次实训,我学到了很多,程序的设计和**的输入都要非常细心和有耐心,很多问题都是在细节上出错。还有就是通过实训巩固了自己所学的知识,在实训中还懂的了一些以前不懂的知识,明白了只有在实训中才能提高能力!

(小四,宋体)

5 结束语(可省略)

这次实训有不小的收获,发现实践是学习必不可少的而且是非常重要的过程,同时也体会到软件的应用是一定要与实际问题相结合的,很感谢同学、老师帮助和指导。

小四,宋体)

6 程序如下:

#if !defined(c_h)

#define c_h

#include <>

void handle_menu();

int menu_select();

#include<>

void a();

void b();

void c();

#include<>

#endif

#include""

void main()

handle_menu();

#include""

void a()

float a,b,c;

double x1,x2;

printf("a*x*x+b*x+c=0");

printf("a,b,c=")

scanf("%d,%d,%d",&a,&b,&c);

printf("");

x1=(-b+sqrt(b*b-4*a*c))/2*a;

printf("x1=%d",x1);

x2=(-b-sqrt(b*b-4*a*c))/2*a;

printf("x2=%d",x2);

#include""

void b()

void a(int ar,int size);

int n,a[1000];

char b;

dowhile(b=='y');

return 0;

void a(int ar,int size)

int x,y=0,i,m;

printf("m=")

scanf("%d",&m);

x=1;for(i=0;i<=size-1;i++)

while(y!=size-1)

y=0;for(i=0;i<=size-1;i++)

if(ar[i]!=0)

ar[i]=x;

高级语言程序报告

石家庄经济学院。高级语言程序设计 课程实习报告。班级 4101090301 姓名 梁立建 学号 410109030121 日期 2012.5.7 目录。1 概述 3 2 系统的分析与设计 3 2.1 系统设计目标 3 2.2 系统的功能分析 3 2.3 系统的结构和工作原理 或流程 5 2.3.1 ...

高级语言程序设计

总分 100.00,做题时间 90分钟 一 单项选择题 总题数 15,分数 30.00 语言早期规定建立文件缓冲区采用的形式是 分数 2.00 a.缓冲文件系统。b.非缓冲文件系统。c.分页文件系统。解析 2.以下是对二维数组的正确说明的是 分数 2.00 a 3,4 a 1 4 a 3 4 解析 ...

复习,高级语言,c程序

所谓标识符,就是你起的一个名字。c c 中,是你用来标识变量名 符号常量名 函数名 数组名 文件名 类名 对象名等的。就好像你父母有了你以后给你起的名字 c c 有效标识符的构成规则如下 1 第一个字符必须是字母 不分大小写 或下划线 2 后跟字母 不分大小写 下划线 或数字组成 3 标识符中的大小...