实验三 综合程序设计

合集下载

C语言程序设计综合实验3参考答案

C语言程序设计综合实验3参考答案

综合实验三一、实验目的1.综合运用C语言的语法知识。

2.学会指针、结构体和文件的使用方法3.掌握结构化、模块化程序设计方法。

二、实验内容1.学生成绩管理。

具体功能模块包括:(1) 增加学生数据(2) 删除学生数据(3) 查找学生成绩(4) 显示学生名次(5) 显示不及格人员(6) 退出要求:(1)学生数据包括:学生的学号、姓名、成绩,其中学生成绩包括:英语、高数、计算机三门课。

学生数据文件名建议为:student.dat。

(2)按学号删除或查找学生的成绩。

(3)根据学生的平均分排名次。

(4)采用模块化程序程序设计方法,程序可读性强,界面友好。

提示:(1)可定义下面的结构体来表示学生的数据:struct student{ char name[9];int num;int english;int mathmatic;int computer;int average; };(2)建议五个功能模块各是一个独立的文件,文件名分别为:adddata.c 、deldata.c 、dispdata.c 、sortdata.c 、nopass.c,主函数所在文件的文件名为student.c ,最后可通过#include命令或建立工程文件的方式来组合各个文件。

*2.模拟第1题编写一个图书管理程序,功能自定,但自少要有三个功能(例如:图书数据录入、借书、还书等)。

*3.抽签分组:偶数签分到A组,奇数签分到B组,结果各存入相应的数据文件中。

请继续扩充本程序的功能,例如:各种查询等。

二、自测题1.程序改错下面程序中fun函数的功能是:判断两个指针所指存储单元中的值的符号是否相同,若相同函数返回1,否则返回0。

设这两个存储单元中的值都不为0。

请改正函数 fun 中的错误,使它能得出正确的结果。

注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!#include <stdio.h>fun ( double a, b ) /*改为: fun (double *a, double *b)*/{ if ( a * b > 0.0 ) /*改为:if( (*a)*(*b)>0.0)*/return 1;else return 0;}main( ){ double n , m;printf ("Enter n , m : "); scanf ("%lf%lf", &n, &m );printf( "\nThe value is: %d\n", fun ( &n, &m ) );}2.程序填空下面程序把从终端读入的文本(用@作为结束标志)输出到一个名为bi.dat中。

实验三、跑马灯的程序设计

实验三、跑马灯的程序设计

实验三、跑马灯程序设计实验(2学时)一、实验目的1、熟悉89C51单片机系列指令系统;2、掌握软件定时程序的编写方法和子程序的调用方法;3、掌握使用汇编语言来实现跑马灯设计。

二、实验内容参照如下原理图设计一个跑马灯控制程序,让8个led按照自己的设想发光,显示的样式尽可能的丰富,灯的变化延时通过调用软件延时子程序来实现,要求延时时间为0.5S。

LED灯样式参考:1、让8个灯闪烁完后,1个灯向左(RL)或向右(RR)移动(流水灯)。

2、8个灯通过取表格“T AB:DB 81H,0C3H,0E7H,0FFH,18H,3CH,7EH,0FFH”值进行变化。

三、实验设备微机1台,单片机实验板1块四、实验报告要求1、写出实验目的、实验内容、实验设备、程序流程图和源程序清单(加注释);2、写出运行结果,并分析其是否正确;3、说明实验中遇到的问题及解决的方法;4、用实验报告纸手写实验报告。

ORG 0000HSJMP MAINORG 0030H;LCALL MAINMAIN:MOV P1,#00HMOV DPTR,#LIGHTCHU:MOV R3,#06HMOV A,#00HTURN:MOV 20H,AMOVC A,@A+DPTRMOV P1,AMOV A,20HINC ALCALL DELAYDJNZ R3,TURNSJMP CHUDELAY:MOV R0,#05HD1:MOV R1,#250D2:MOV R2,#200D3:DJNZ R2,D3D4:DJNZ R1,D2DJNZ R0,D1RETLIGHT:DB 81H,42H,24H,18H,24H,42H SJMP $END本实验,使我受益良多。

在实验未开始之前,老师给了我们讲解了什么是跑马灯,让我们知道这跑马灯是怎么一回事;后来老师还讲了一两个例子,这让我们在设计程序的时候,有了头绪。

本实验,我的程序是P1两边同时来灯,当两灯相碰撞时,就反弹;反弹到顶/底时,再向内聚;然后再反弹……这是实验最终的程序,但在程序未出炉之前,遇到了一些问题。

程序设计综合设计实训报告

程序设计综合设计实训报告

一、实训目的本次程序设计综合设计实训旨在通过实际项目开发,巩固和深化程序设计相关理论知识,提高学生的编程能力、团队协作能力和问题解决能力。

通过实训,使学生能够熟练掌握程序设计的基本方法、技巧和工具,为今后从事软件开发工作打下坚实基础。

二、实训内容本次实训项目为“学生信息管理系统”,主要包括以下功能:1. 学生信息录入:包括姓名、性别、年龄、班级、学号、联系方式等基本信息。

2. 学生信息查询:根据姓名、学号、班级等条件查询学生信息。

3. 学生信息修改:对已录入的学生信息进行修改。

4. 学生信息删除:删除不需要的学生信息。

5. 数据备份与恢复:对系统数据进行备份和恢复,确保数据安全。

6. 用户权限管理:设置不同用户的登录权限,包括管理员、教师、学生等。

三、实训过程1. 项目需求分析在实训开始前,我们对项目进行了详细的需求分析,明确了项目目标、功能模块、性能指标等。

通过与指导老师、团队成员的讨论,明确了以下需求:(1)系统应具备良好的用户界面,操作简单易懂。

(2)系统应具备数据备份与恢复功能,确保数据安全。

(3)系统应具备用户权限管理功能,满足不同用户的需求。

2. 系统设计根据需求分析,我们制定了以下系统设计方案:(1)采用B/S架构,前端使用HTML、CSS、JavaScript等技术,后端使用Java语言和MySQL数据库。

(2)使用MVC设计模式,将系统分为模型(Model)、视图(View)和控制器(Controller)三个部分。

(3)使用Spring框架进行项目开发,简化开发过程。

3. 系统开发在系统开发过程中,我们遵循以下步骤:(1)前端开发:完成页面布局、样式设计、交互逻辑等。

(2)后端开发:完成业务逻辑处理、数据库操作、接口设计等。

(3)测试与调试:对系统进行功能测试、性能测试、安全测试等,确保系统稳定可靠。

4. 团队协作在实训过程中,我们遵循以下团队协作原则:(1)明确分工:根据团队成员的特长,合理分配任务。

C语言程序设计实验报告-实验单元三综合设计

C语言程序设计实验报告-实验单元三综合设计

C语言程序设计实验报告-实验单元三综合设计《C语言程序设计》实验报告专业:班级:学号:学生姓名:实验日期:成绩:指导老师:实验单元三综合设计一、实验题目实验九文件实验十综合实验:学生成绩管理系统二、实验目的进一步加深、巩固所学课程(《C语言程序设计》)的基本理论知识,理论联系实际,培养自己综合分析问题和解决问题的能力。

掌握运用C语言独立编写、调试应用程序和进行其它相关设计的技能。

三、实验内容假设收集到了一个班学生的所有成绩信息(不低于20人),要求用C语言编写一个简单的成绩管理系统,对学生个人信息进行管理,可进行录入、浏览、查询、修改、排序、统计的功能。

信息内容包含:(1)学生的学号(2)学生的姓名(3)学生的成绩(语文、数学、英语、计算机,课程平均分)。

具体要求实现如下功能:1.录入、浏览功能:按学号顺序录入学生信息(学号、姓名、语文、数学、英语、计算机),显示系统中的所有信息。

2.查询功能:查询学号尾号为09的学生的所有信息并显示。

3.修改功能:修改学号尾号为12的学生的成绩信息(任意两项即可),并显示该学生的全部信息。

4.排序功能:按语文成绩的顺序,由高到低显示所有学生的信息。

5.统计功能:统计学生的平均成绩,并输出(学号,姓名,平均成绩)。

四、实验环境1. 硬件环境:当前所有电脑硬件环境均支持。

2. 软件环境:Visual C++ 6.0五、实验代码及结果(程序运行结果请以截屏图给出)源程序代码:实验结果:六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进行简单总结)。

程序设计综合实验实验报告

程序设计综合实验实验报告

程序设计综合实验实验报告实验目的本次实验的目的是通过实际编程综合运用所学到的程序设计知识,锻炼学生的问题分析与解决能力,培养独立解决问题的能力。

实验内容本次实验要求设计编写一个学生成绩管理系统,具体要求包括:1. 输入学生信息:学生姓名、学号以及各科成绩(语文、数学、英语);2. 对输入的成绩进行合理性检查,确保输入的成绩在合理范围内;3. 计算每个学生的总分并根据总分进行排序;4. 根据输入的学号查询学生信息并输出。

实验设计设计思路本次实验的设计思路主要包括以下几个关键步骤:1. 设计一个学生结构体,包括学生姓名、学号以及语文、数学、英语成绩;2. 使用动态数组,动态分配存储学生信息的内存空间;3. 设计函数实现学生信息的输入、成绩的合理性检查、计算总分以及根据总分进行排序功能;4. 根据学号查询学生信息并输出。

数据结构设计cstruct Student {char name[20];char id[10];int chinese;int math;int english;};函数设计void input(struct Student *students, int n)该函数用于输入学生信息:学生姓名、学号以及各科成绩(语文、数学、英语)。

void check(struct Student *students, int n)该函数用于对输入的成绩进行合理性检查,确保输入的成绩在合理范围内。

void calculateTotal(struct Student *students, int n)该函数用于计算每个学生的总分。

void sort(struct Student *students, int n)该函数用于根据学生的总分进行排序。

void search(struct Student *students, int n, char *id) 该函数用于根据输入的学号查询学生信息并输出。

实验步骤1. 首先定义一个指针结构体数组`students`,用于存储学生信息。

实验三:综合程序设计1

实验三:综合程序设计1

(3)古代《张丘建算经》中有一道百鸡问题:鸡翁一,值钱五;鸡母 一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何? 其意为:公鸡每只值五元,母鸡每只值三元,三只小鸡值一元。请用穷 举法编程计算,若用一百元钱买一百只鸡,则公鸡、母鸡和小鸡名能买
1/2
实验三:综合程序设计 1.docx
多少只? (4)有一个计算 值的近似公式:
实验要求
要求将上述 6 或 7 个程序的源程序文件(即.c 文件)提交到作业
பைடு நூலகம்
服务器 211.71.149.19 的“\xuqiuhong\homework\自己所在班的班名\
实验三\自己的学号”文件夹中。源程序文件取名为: 自己的学号_自己的姓名_习题编号.c 例如: 130987123_zhangsan_1.c 130987123_zhangsan_2.c …… 130987123_zhangsan_6.c
此实验上交的截止日期是 10 月 23 日。
如果不了解上传作业或实验文件的操作过程及上传的具 体位置,请查看文件《提交作业和实验文件的方法说明.pdf》 的内容。
要求每个人都能够独立地编写源程序代码, 学会编译源程序、 运行 和调试可执行程序,最终使程序执行后能显示正确的结果。
2/2

1 1 1 1 1 1 ...... 4 3 5 7 9 11
编程计算 的近似值,直到公式中再要累加的那个数据项的绝对值小 于 10 时为止,输出 的值,并统计累加的项数。
-5
(5)选做:修改第(4)题,将计算 值的过程设计为一个自定义函数(函 数名自定) 。设计一个主函数 main()调用它,通过主函数去输出 值。
实验三:综合程序设计 1.docx

程序设计综合训练实验指导书

程序设计综合训练实验指导书

《程序设计综合训练》实验指导书石家庄铁道学院经济管理学院前言《程序设计综合训练》是电子商务专业、信息管理与信息系统专业的小学期集中实践。

它与《程序设计基础》课程配合,通过集中训练提高学生的程序设计能力。

本实验指导书按照课程实验大纲进行编写。

希望同学们在使用本实验指导书及进行实验的过程中,能够帮助我们不断地发现问题,并提出建议,进一步提高《程序设计综合训练》课程的质量。

本实验指导书由贾玉锋编写。

编者目录说明 (3)实验一基本知识综合训练(一) (4)实验二基本知识综合训练(二) (5)实验三基本知识综合训练(三) (6)实验四综合性应用程序设计 (7)附录:错误信息 (13)说明本课程是信息管理与信息系统、电子商务专业的小学期集中实践环节课程。

主要目的和任务是通过在Turbo C或VC++集成开发环境中进行综合性、集中程序设计训练。

使学生掌握高级语言的程序设计方法,培养学生严谨、朴实的程序设计风格;针对在正常的教学过程中学生暴露出来的各种各样的问题,有针对性的进行的上机实践,在C 语言环境下独立地编制正确、高效的程序,以达到深刻理解和巩固所学的理论知识的目的,为后续课程的学习打下良好基础。

实验报告要求1.每次实验前,认真预习本次实验内容,按实验指导书的要求,需编写的程序,应书写整齐,经检查无误后方能上机。

2.上机输入和调试程序,调试通过后,打印出程序清单并把运行结果记录下来(在条件允许下)。

3.上机结束后,按照实验指导书的具体要求,整理出实验报告(字迹工整),下次上机交给指导教师。

4.实验报告应包括以下内容:(1)实验题目;(2)实验目的和要求;(3)实验内容(附:程序流程图和程序清单有条件用打印机打印出来);(4)实验步骤及结果;(5)分析与体会:对运行情况作分析,以及本次实验所取得的经验。

如程序未能通过,应分析错误原因。

本课程上机时间为3周,分为4个实验项目。

实验项目及学时分配如下表所示。

说明:具体实验题目任课老师可以根据授课对象做相应的调整。

实验3 M文件及程序设计实验

实验3 M文件及程序设计实验

实验三 M 文件及程序设计实验一、实验目的1. 掌握M 文件与M 函数的编写与应用;2. 掌握if 语句、switch 语句的使用;3. 掌握利用for 语句、while 语句实现循环结构的方法二、实验内容1.创建一个函数文件, 建立如下函数⎩⎨⎧<+-≥++=00),(2222y x y x y x y x y x fx,y 由键盘赋值,采用调用方法计算f 值,试编写程序(M 文件),并以x=6,y= -3及x= -6,y=3二种情况运行,写出运行结果。

x=input('input x=');y=input('input y=');if x+y>=0fun=x^2+y^2elsefun=x^2-y^2end>> numb1input x=6input y=-3fun =45>> numb1input x=-6input y=3fun =272. 已知一元函数323220y x x x =+++,编写程序求23(1)y (2)y (3)y ++ function y=y(x)y=3*x^3+2*x^2+x+20;end>> y(1)+y(2)^2+y(3)^3ans =18187903. 已知23120(x)201312x x f x x x x +-≤<⎧⎪=+≤<⎨⎪+≤≤⎩,计算f(-1),f(0.5),f(1.5)的值function f=f(x) if x>=-2&x<0f=x+1;elseif x>=0&x<1 f=x^2+2;elseif x>=1&x<=2 f=x^3+3;end>> f(-1)ans =>> f(0.5)ans =2.2500>> f(1.5)ans =6.37504. 分别用for循环语句、while循环语句求100! 和100i i=∑clearresult=1;for i=1:100result=result*i;endresult>> expresult =9.3326e+157clearresult=0;for i=1:100result=result+i;endresult>> expresult =5050clearresult=1;i=0;while i<100i=i+1;result=result*i;endresult>> expresult =9.3326e+157clearresult=0;i=0;while i<100i=i+1;result=result+i;endresult>> expresult =50505. 若一个三位整数的各位数字的立方和等于该数本身,则称该整数为水仙花数,例如333153=1+5+3,153就是个水仙花数,编程序计算出所有的水仙花数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
测试用例:
学号: 1121486
姓名: 周鹏飞
专业班级:( 电科 )(1 )班
实验体会
实验过程评价:碰到什么问题?如何解决? 1.第二次做指针的实验,明显比第一次熟练了,不过细节上的小错误还是很多。 2.三个数比大小调试用例的时候,发现最小的数总在中间不会跑到最后面去,然后发现要一 共比较三次大小才行,交换后的第一第二个数需要重新再比较一次大小才能保证三个数一定 是降序排列。在编写天数中,虽然不报错但是发现结果也不对,跟同学仔细看程序了好几遍 才发现,case 46911 月的天数也不小心写成了 31 天 还有 case 2:days+=isLeap(y)?29:28;中间 的“+”没有加上,导致统计天数老是不能到三位数。编程还是要非常细心的。最后一题统 计用电量中间,客户编号这行语下面的数据总是对不齐,老师说过“\t”是制表符自动空行 的,实在没有办法改第一列的空行,所以只能手动的敲打了几个空格,让它手动的对齐了。
}
void exchange(int *pa, int *pb)
{
int temp;
temp=*pa; *pa=*pb; *pb=temp;
}
学号: 1121486
姓名: 周鹏飞
专业班级:( 电科 )(1 )班
测试用例:
任务三 日期换算 ex02_11.cpp
打开程序文件 ex02_11.cpp #include <stdio.h> int isLeap(int year); void getDate(int y,int days,int*pm,int *pd); int getDays(int y,int m,int d);
int main (void) {
学号: 1121486
姓名: 周鹏飞
专业班级:( 电科 )(1 )班
return 0; }
//编写子函数求某天是该年的几月几日
void getDate(int y,int days,int*pm,int *pd)
/*y 为年份,days 为该年的某天,pm 指向主调函数中存放某天的月值变量, */
int a=10,b=20; swap(a,b); printf("a=%d,b=%d\n",a,b);
return 0; }
void swap(int *pa,int *pb) {int t;
t=pa,pa=pb,pb=t; }
#include<stdio.h> void swap(int *pa,int *pb); int main() {
}
while(!feof(fin)) { fscanf(fin,"%d",&w); m=getmoney(w); fprintf(fout,"电费=%d",m); } fclose(fin); fclose(fout); return 0; }
int getmoney(int w) {
int money; if(w<=300)
{printf("can not open file !");
return -1;
}
if( (fout=fopen("用电费用.txt","w"))==NULL )
学号: 1121486
姓名: 周鹏飞
专业班级:( 电科 )(1 )班
{printf("can not open file 用电费用.txt!"); return -1;
//编写子函数求某天是该年的几月几日
void getDate(int y,int days,int *pm,int *pd)
/*y 为年份,days 为该年的某天,pm 指向主调函数中存放某天的月值变量, */
/*
pd 指向主调函数中存放某天的日值变量*/
{int m,d,i;
int day;
for(i=1;i<=12;i++)
} //编写子函数判断闰年。 int isLeap(int year) {
} 1.要求: (1)编写子函数判断闰年:int isLeap(int year) (2)编写子函数求某天是该年的几月几日: (3)编写子函数求某年某月某日是该年的第几天 (4)main 函数中设计步骤验证函数的正确性 2.提示 (1)求某年某月某日是该年的第几天 思路:累计从 1 月到该日期的前一月的每月天数再加上该日期的天数。2 月份的天数要判断 闰年。累计可使用循环完成也可利用 switch 语句无 break 的特性完成。 (2)求某天是该年的几月几日
上海建桥学院
程序设计基础 C 语言(本科) 实验报告
模块名称: 实验类型: 实验环境:
院别: 专业: 学号: 学生姓名: 指导老师: 学期:
第一模块 简单 C 程序设计 综合型
( 415 )机房 VC++6.0 机电学院
电科 B13-1 1121486 周鹏飞 成长生
2015 年-2016 第一学期
学号: 1121486
姓名: 周鹏飞
专业班级:( 电科 )(1 )班
}
if(days<=day)
学号: 1121486
姓名: 周鹏飞
专业班级:( 电科 )(1 )班
break; else
days=days-day; } m= i; /* m:某天计算后的月值 */ d= days; /* d:某天计算后的日值 */ *pm= m ; *pd= d ; }
//编写子函数求某年某月某日是该年的第几天 int getDays(int y,int m,int d) {
void main()
{
int a, b, c;
printf("input a b c:");
scanf("%d %d %d",&a,&b,&c);
if(c>b)
exchange(&c,&b);
if(b>a)
exchange(&b,&a);
if(c>b)
exchange(&c,&b);
printf("%d %d %d\n",a,b,c);
任务二 3 个数排序
利用指针实现输入 a,b,c 共 3 个整数,按大小顺序输出。要求:编写 exchange 函数,功能
是交换两个数的值。在 main 函数中输入 3 个数,调用 exchange 函数实现 3 个数按大小顺序
输出。
源程序清单:
#include <stdio.h>
void exchange(int *pa, int *pb);
学号: 1121486
姓名: 周鹏飞
专业班级:( 电科 )(1 )班
思路:循环 i 从 1 月开始如果天数 days 比第 i 月的天数大则天数 days 减去第 i 月的天数否则 结束循环。i 即为所求月份,days 的值为所求日数。每月的天数仍需区分处理。 3.源程序清单: #include <stdio.h> int isLeap(int year); void getDate(int y,int days,int *pm,int *pd); int getDays(int y,int m,int d);
int a=10,b=20; swap(&a,&b); printf("a=%d,b=%d\n",a,b);
return 0; }
学号: 1121486
姓名: 周鹏飞
专业班级:( 电科 )(1 )班
void swap(int *pa,int *pb) {int t;
t=*pa;*pa=*pb;*pb=t; }
void main () { int y,m,d,days;
int *pm,*pd; printf("输入年份和天数:"); scanf("%d%d",&y,&d); getDate(y,d, &m, &d); printf("这天是%d 年的%d 月%d 日\n",y,m,d); printf("输入年月日:"); scanf("%d%d%d",&y,&m,&d); days=getDays(y,m,d); printf("这天是%d 年的第%d 天\n",y,days); }
打开程序文件 error02_04.cpp 改正程序中的错误。Swap 函数的功能是交换两个数的值,在 main 函数中指定两个数的大小,调用 swap 函数交换两个数的值输出。 正确的程序输出: a=20,b=10
#include<stdio.h> void swap(int *pa,int *pb); int main() {
/*
pd 指向主调函数中存放某天的日值变量*/
{inபைடு நூலகம் m,d,i;
int day;
m= ; /* m:某天计算后的月值 */ d= ; /* d:某天计算后的日值 */
*pm= ; *pd= ; }
//编写子函数求某年某月某日是该年的第几天 int getDays(int y,int m,int d) {
money=9*w; else
if(w<=600) money=300*9+8*(w-300);
else if (w<=1000) money=300*9+300*8+6*(w-600); else money=300*9+300*8+400*6+3*(w-1000);
相关文档
最新文档