ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:1,009.82KB ,
资源ID:29481109      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/29481109.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数学与计算机学院1303班实验报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数学与计算机学院1303班实验报告.docx

1、数学与计算机学院1303班实验报告武 汉 轻 工 大 学数 计 学 院C语言课程设计报告班 级:计算机类1303班 学 号:1305110050 姓 名:刘文斌 指导教师:丁月华 日 期:2014 年 6 月 一、实验目的1.在编辑应用程序过程中,逐步加深对C语言编程的理解;2.加强实践的能力,动手能力,同时进一步对所学的知识进行巩固;3.培养初步编程的能力,为以后的学习奠定基础。二、实验内容运用所学的C语言知识编辑应用程序:班级成绩管理系统以及运动的时钟三系统软件环境:本程序主要运行在: Visual C+ 6.0四.课程设计题目:1.必做题:班级成绩管理系统 对一个有N个学生的班级,每个学

2、生有M门课程。该系统实现对班级成绩的录入、显示、修改、排序、保存、查询等操作的管理。功能要求: (1)本系统采用一个结构体数组,每个数据的结构应当包括:学号、姓名、M门课程名称。 (2)本系统显示这样的菜单: 请选择系统功能项: a、成绩录入 b、成绩显示 c、成绩保存 d、成绩排序e、成绩修改(要求先输入密码) f、成绩统计1)显示每门课程成绩最高的学生的基本信息。 2)显示每门课程的平均成绩 ,柱状图显示。3)显示超过某门课程平均成绩的学生人数。 4)显示某门课程每个分数段区间的人数,用饼状图显示。g、退出系统 (3)执行一个具体的功能之后,程序将重新显示菜单。 (4)将学生成绩保存到文件

3、中。2.选做题:运动的时钟目的与要求:目的是让读者掌握调用系统函数及在程序中运用数学原理来制作运动物体的方法,同时学会使用声音函数,以制作出绘声绘色的动画效果。基本要求:运用模块化的设计思想完成各功能模块的设计;程序运行界面美观,运行时伴有声音;写出详细设计说明书。创新要求:在基本要求达到后,进行创新设计,如增加整点报时功能,定时功能等。设计方法与基本原理:1 问题描述利用Turbo C提供的图形库,来制作运动的时钟效果,同时要伴有时钟的滴答声。2 基本原理利用dos.h中的gettime和getdate得到系统的时间和日期,然后利用graphics.h中的绘图函数显示在屏幕上。3 程序总体结

4、构设计主函数由屏幕初始化函数(画出时钟外貌)和时钟运行函数(画出运行的时钟指针及发出滴答声)两部分构成。其主要部分如下:#include #include #include void main() 屏幕初始化函数; 时钟运行函数;五数据结构设计描述:(一)班级成绩管理系统(二)运动的时钟六、源程序代码(一) 班级成绩管理系统#include#define MaxSize 50struct student /声明结构体类型 struct student int num; /学号 char name8; /姓名 float chinese,math,english,politics;/语文、数学、

5、英语、政治四门课 float sum; /四门课总分;void input_student(); /成绩输入函数申明void show_student(); /成绩显示函数申明void sort_student(); /成绩修改函数申明void update_student(); /成绩排序函数申明void statistics_student(); /成绩统计函数申明int count=0; /记录当前录入信息的学生人数struct student stuMaxSize; /定义结构体数组/显示主菜单void print_menu() printf(n); printf(n); printf

6、(n); printf(n); printf( *您好,欢迎使用班级成绩管理系统*n); printf( # #n); printf( # 1.成绩录入 #n); printf( # 2.成绩显示 #n); printf( # 3.成绩排序 #n); printf( # 4.成绩修改 #n); printf( # 5.成绩统计 #n); printf( # 0.退出系统 #n); printf( # #n); printf( *n);int main() int mima; int yonghu; print_menu(); printf( 请输入用户名:); scanf(%d,&yonghu

7、); if(yonghu=1305110050) printf( 请输入密码:); scanf(%d,&mima); if(mima=123456); int choice; do print_menu(); scanf(%d,&choice); switch(choice) case 1:input_student();break; /调用input_student函数 case 2:show_student();break; /调用show_student 函数 case 3:sort_student();break; /调用sort_student 函数 case 4:update_st

8、udent();break; /调用update_student函数 case 5:statistics_student();break;/调用statistics_student函数 case 0:break; while(choice!=0); printf(END!n); /非法输入则跳出菜单 return 0;/录入学生成绩void input_student() struct student s; /定义结构体变量 if(count=MaxSize) printf(内存已满!n); return ; printf(学号tt姓名t语文t数学t英语t政治四门课的成绩n); scanf(%

9、d %s %f %f %f %f,&s.num,&s.name,&s.chinese,&s.math,&s.english,&s.politics); s.sum=s.chinese+s.math+s.english+s.politics; /计算当前每个学生的总分 stucount=s; count+; /当前录入信息的学生人数/显示学生成绩void show_student() int i; if(count=0) printf(没有信息可供查询!n); return ; printf(学号tt姓名t语文t数学t英语t政治n); for(i=0;icount;i+) printf(%dt%

10、st%2.2ft%2.2ft%2.2ft%2.2f,stui.num,stui.name,stui.chinese,stui.math,stui.english,stui.politics); /输出相应的信息 printf(n); /将学生成绩排序void sort_student() int i,j; struct student s; float grade50; /定义新数组 if(count=0) printf(没有存储信息,无法进行排序,请返回主菜单录入信息!n); return ; for(i=0;icount;i+) gradei=stui.sum; /提取结构体数组里的信息

11、for(i=0;icount-1;i+) /进行总分排序 for(j=0;jgradej) s=stuj+1; stuj+1=stuj; stuj=s; printf(学号t姓名t总分n); for(i=0;icount;i+) /输出已排好序的成绩 printf(%dt%st%3.2fn,stui.num,stui.name,stui.sum); printf(n); return ;/修改学生成绩void update_student() int course,i; char num; float score; printf(请输入学号进行修改:); scanf(%d,&num); for

12、(i=0;icount;i+) if(stui.num=num) break; if(icount) do printf(请选择课程:1.语文t2.数学t3.英语t4.政治t0.退出:); scanf(%d,&course); if(course=0) break; printf(请输入新成绩:); scanf(%f,&score); switch(course) case 1:stui.chinese=score;break; /把输入的分数赋值给结构体数组里的成员 case 2:stui.math=score;break; case 3:stui.english=score;break;

13、case 4:stui.politics=score;break; while(1); printf(修改后的成绩为:n); printf(numtchinesetmathtenglishtpoliticsn); /输出科目 printf(%dt%6.2ft%6.2ft%6.2ft%6.2fn,stui.num,stui.chinese,stui.math,stui.english,stui.politics); /输出成绩 else printf(没有找到要修改的学号n);/统计学生成绩void statistics_student() int i; float sum1=0,sum2=0,

14、sum3=0,sum4=0,aver1,aver2,aver3,aver4; for(i=0;icount;i+) /计算当前每个学生单门科目的总分(以下printf语句之前同是) sum1=sum1+stui.chinese; aver1=sum1/count; for(i=0;icount;i+) sum2=sum2+stui.math; aver2=sum2/count; for(i=0;icount;i+) sum3=sum3+stui.english; aver3=sum3/count; for(i=0;icount;i+) sum4=sum4+stui.politics; aver

15、4=sum4/count; /计算当前每个学生的平均成绩 printf(课程t平均分n); printf(chineset%6.2fn ,aver1); /输出当前每个学生的各科平均分(以下同是) printf(matht%6.2fn,aver2); printf(englisht%6.2fn,aver3); printf(politics%6.2fn,aver4); return ;(2)运动的时钟说明:在运行程序前,先将文件夹中名字为ud.jpg的文件存入D盘,因为在程序运行时会调用。#include #include #include #include #define PI 3.1415

16、926 /定义pi/* 出时钟的表盘 */ void Drawbiaopan() /画表盘 setwritemode(TRANSPARENT); int i; int x1, y1, x2, y2, x3, y3, x4, y4, x5, y5; /表心坐标系坐标 char rome3= 12,1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ; /表盘数字 setcolor(GREEN); /画四个圆 circle(350, 350, 300); circle(350, 350, 30); circle(350, 350, 280); circle(350, 350, 27

17、0); for(i = 0; i 59; i+) / 画60条短线 setcolor(RED); x1 = (int)(350 + (sin(i * PI / 30) * 250); y1 = (int)(350 - (cos(i * PI / 30) * 250); x2 = (int)(350 + (sin(i * PI / 30) * 260); y2 = (int)(350 - (cos(i * PI / 30) * 260); line(x1, y1, x2, y2); setfillstyle(BLACK); /设置当前填充模式 画12个三角形 if(i % 5 = 0) x3 =

18、 (int)(x1 + sin(i + 5) * PI / 30) * 12 ); y3 = (int)(y1 - cos(i + 5) * PI / 30) * 12 ); x4 = (int)(x1 + sin(i - 5) * PI / 30) * 12 ); y4 = (int)(y1 - cos(i - 5) * PI / 30) * 12 ); x5 = (int)(340 + (sin(i - 0.2) * PI / 30) * 220); y5 = (int)(340 - (cos(i - 0.2) * PI / 30) * 220); int triangle6 = x1,

19、y1, x3, y3, x4, y4; setcolor(BLACK); fillpoly(3, triangle); /画填充的多边形 setbkmode(TRANSPARENT); / 设置背景混合模式 setcolor(RED); /写表盘数字 setfont(24, 0,); outtextxy(x5 , y5, romei / 5); /*画出时针、分针、秒针(以直线来表示)*/void Drawzhizheng(int hour, int minute, int second) /画指针 int xhour, yhour, xminute, yminute, xsecond, ys

20、econd; /表心坐标系指针坐标 / 对时针、分针、秒针的位置进行计算 xhour = (int)(130 * sin( hour * PI / 6 + minute * PI / 360 + second * PI / 1800); yhour = (int)(130 * cos( hour * PI / 6 + minute * PI / 360 + second * PI / 1800); xminute = (int)(145 * sin( minute * PI / 30 + second * PI / 1800); yminute = (int)(145 * cos( minut

21、e * PI / 30 + second * PI / 1800); xsecond = (int)(200 * sin( second * PI / 30); ysecond = (int)(200 * cos( second * PI / 30); setlinestyle(PS_SOLID,7,NULL, 10); /画时针 setcolor(LIGHTGRAY); line(350 + xhour, 350 - yhour, 350 -xhour / 6, 350 + yhour / 6); setlinestyle(PS_SOLID, 5,NULL, 7); /画分针 setcolo

22、r(RGB(222, 158, 107); line(350 + xminute, 350 - yminute, 350 -xminute / 4, 350 + yminute / 4); setlinestyle(PS_SOLID, 3,NULL, 3); /画秒针 setcolor(RED); line(350 + xsecond, 350 - ysecond, 350 -xsecond / 3, 350 + ysecond / 5); int main(void) /函数原型声明 void Drawbiaopan(); void Drawzhuangshi(); void Drawzhi

23、zheng(int hour, int minute, int second); initgraph(1000, 1000); /初始化600600的绘图窗口 setbkcolor(RGB(245, 247, 222); /设置背景色 cleardevice(); /清空屏幕 int gdriver=700,gmode=700; initgraph(gdriver,gmode); loadimage(NULL,D:123.jpg,700,700); Drawbiaopan(); /画表盘 setcolor(BLUE); /在表盘上加上字 setfont(32, 0, 华文新魏); outtex

24、txy(300, 220, 皮卡丘); setwritemode(R2_XORPEN); /设置异或绘图方式 SYSTEMTIME t; /定义变量保存当前时间 while(!kbhit() GetLocalTime(&t); /获取当前时间 Drawzhizheng(t.wHour, t.wMinute, t.wSecond); /画表针 Sleep(1000); Drawzhizheng(t.wHour, t.wMinute, t.wSecond); /擦表针 closegraph(); /关闭绘图窗口 return 0; 七、运行结果(一)1、主界面2、成绩录入3、成绩输出4、成绩排序5

25、、成绩统计(二)、运动的时钟八、出现的问题以及解决方法1、问题:在本实验室中用Turbo C进行此题目实验,系统环境不配套。解决方法:(1)、使用其他系统环境。(2)、下载EasyX库。EasyX 是针对 C+的图形库,可以帮助 C 语言初学者快速上手图形和游戏编程。EasyX 20140321(beta)(上为下载地址)EasyX安装说明:系统支持操作系统版本:Windows 2000 及以上操作系统。编译环境版本:Visual C+ 6.0 / Visual C+ 2008 2013(x86 & x64)。安装请先将下载的压缩包解压缩,然后执行 Setup.hta,并跟随提示安装。安装程序

26、会检测您已经安装的 VC 版本,并根据您的选择将对应的 .h 和 .lib 文件安装至 VC 的 include 和 lib 文件夹内。安装程序不会修改注册表或者您本机的任何文件。如果您需要手动安装,请根据下面的文件列表说明将安装包里的相关文件分别拷贝到 VC 对应的 include 和 lib 文件夹内,或者将 include 和 lib 文件夹放到任意位置,然后修改 VC 中的 Lib 和 Include 的引用路径。卸载由于安装程序并不改写注册表,因此您在“添加删除程序”中不会看到 EasyX 的卸载项。如需卸载,请执行相应版本的 Setup.hta,并根据提示卸载。也可以手动将相关的 .h 和 .lib 删除,系统中不会残留任何垃圾信息。文件列表说明下载的压缩包里文件列表及对应说明如下: include easyx.h / 头文件 graphics.h/ 头文件(模拟 BGI 绘图库) lib amd64 easyx.lib / VC2008 2013 MBCS 库文件(x64) easyxw.lib/ VC2008 2013 Unicode 库文件(x64) easyx6.lib/ VC6 MBCS 库文件 easyxw6.lib / VC6 Unicode 库文件 easyx.lib

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1