应物20##级C语言课程设计
一、C语言课程设计题目:课程设计共提供4个题目供学生选择
题目编号:
(1) 学生信息管理系统 (2)伸长法测钢丝杨氏模量数据处理
(3) 数值积分函数设计 (4)落球法测量液体粘度的数据处理
二、学生选题情况表:
应物 班
三、课程设计报告的格式、内容及注意事项:
1、设计方案概述
论述方案的目的、意义;简介方案的设计思想,方案的正确以及可行性。
2、设计方案的数据结构选择和算法说明
说明方案的算法,对相关的物理或数学问题加以必要的理论分析。
对方案设计中的采用的输入输出接口和数据管理采用的数据结构进行必要说明。
3、设计方案的程序设计模块
说明程序各模块的功能,并给出相应的源程序。
4、程序测试数据与结果
(1)说明测试方法:根据程序的功能列出测和测试方法。
(2)列出各测试项目所用的测试数据和测试结果。
(3)分析测试结果。
5、小结
根据设计要求及实际测量分析结果,并做出相应的结论。并书写心得体会。
四、题目设计任务:
题目一:学生信息管理系统
1、 建立数据结构用于存放学生个人信息:学号、姓名、年龄、联系方式和学科成绩。
2、 建立主循环菜单系统。
3、 建立函数完成信息的输入、输出、读取、存盘等功能。
4、 建立函数完成数据按学号、姓名等排序。
题目二:伸长法测钢丝杨氏模量数据处理
1、 建立数据结构用于存放实验相关数据。
2、 建立主循环菜单系统。
3、建立函数完成实验数据的输入和结果输出。
4、建立函数完成实验数据处理,包括杨氏模量的计算,误差的分析、不确定度的估计。
题目三:数值积分函数设计
数值积分函数用于实现一般函数的数值积分,具体要求如下:
1、 能对任意给定的实函数实现数值积分。
2、 能设置数值积分的精度,当积分达到精度时返回积分值。
3、 能处理积分中可能出现的异常情况,如无法达到指定的精度时退出积分,返回积分值并给出相应信息说明未能达到指定精度。
4、 能自适应函数变化,动态、非均匀细分积分区间,提高积分速度。
题目四:落球法测量液体粘度的数据处理
1、 建立数据结构用于存放实验相关数据。
2、 建立主循环菜单系统。
3、 建立函数完成实验数据的输入和结果输出。
4、 建立函数完成实验数据处理,包括液体粘度的计算,误差的分析、不确定度的估计。
第二篇:C课程设计
C语言综合实验设计报告
题目:猜数字游戏
学院:电气与电子工程学院
专业:电气工程及其自动化
班级:080308
姓名:常亚梅
设计日期:20090621
总分:
一、设计题目:猜数字游戏
二、题目阐述及设计思路:
猜数字是一种开发智力的游戏,在现代社会中越来越流行,现用已学的C语言程序的各种知识练习编写简单的应用的程序来实现游戏的功能。该游戏的实现主要用到C语言中的库函数来实现图形界面能 并运用各种循环结构和分支结构来实现选择功能,以次完成整个 游戏的制作。
三、主要知识点:
C语言中的库函数来实现图形界面能 并运用各种循环结构和分支结构来实现选择功能
四、程序清单:
#include<stdio.h>
#include<graphics.h>
#include<stdlib.h>
#include<bios.h>
#include<dos.h>
#define up 0x4800
#define down 0x5000
#define left 0x4b00
#define right 0x4d00
#define esc 0x11b
static int kkk=1;
int currenti=1;
int rpiao[5];
int xpiao[5];
int com[16];
int money=100;
void initmu(void)
{
int i;
char s[3];
char m[5];
char n[2];
n[0]=157;
n[1]=NULL;
setcolor(2);
rectangle(100,20,500,120);
rectangle(90,0,510,130);
setcolor(14);
rectangle(100,220,500,420);
rectangle(90,210,510,430);
setfillstyle(9,2);
floodfill(91,1,2);
setfillstyle(9,14);
floodfill(91,211,14);/*编框,大小,位置,颜色*/
setcolor(4);
for(i=0;i<=14;i++)
{
setcolor(4);
rectangle(110+i*25,230,135+i*25,265);
itoa(i+1,s,10);
setcolor(15);
outtextxy(115+i*25,245,s);
outtextxy(120,300,"please choose the five number you want!!!"); }
outtextxy(120,330,"use UP choose,use LEFT and RIGHT move"); outtextxy(120,400,"press esc to quit");/*向图内添加字母*/ itoa(money,m,10);
outtextxy(230,180,n);
outtextxy(250,180,m);
if(kkk==1)
{
setfillstyle(1,4);
bar(115+(currenti-1)*25,255,130+(currenti-1)*25,260);
kkk=kkk-1;
}
}
void initcom(void)
{
int i;
for(i=0;i<=15;i++)
com[i]=i;
}
void rrrpiao(void)
{
int i;
int k;
for(i=0;i<=4;i++)
{
rpiao[i]=random(15)+1;
k=rpiao[i];
if(com[k]==0)
i=i-1;
else
com[k]=0;
}
} /*选择数字*/
void show(int k)
{
if(k==2)
outtextxy(120,40,"you get the fourth prize 5 yuan"); if(k==3)
outtextxy(120,40,"you get the third prize 20 yuan"); if(k==4)
outtextxy(120,40,"congratulations!!! you get 1000 yuan"); if(k==5)
outtextxy(120,40,"great!!!!!,you get 10000 yuan!!!!!"); }/*每局结束后显示的结果*/
void jisuan(void)
{
int k=0;
int i,j;
for(i=0;i<=4;i++)
for(j=0;j<=4;j++)
if(rpiao[i]==xpiao[j])
k=k+1;
if(k==0||k==1)
money-=10;
if(k==2)
money-=5;
if(k==3)
money+=10;
if(k==4)
money+=990;
if(k==5)
money+=9990;
show(k);
}/*总钱数的计算*/
void xxxpiao(void)
{
static int i=0;
int j;
int k;
int key;
char s[3];
key=bioskey(1);
if(key)
key=bioskey(0);
if(key==esc)
{
closegraph();
exit(0);
}
if(key==up)
{
xpiao[i]=currenti;
for(j=0;j<i;j++)
if(xpiao[j]==xpiao[i])
i=i-1;
i=i+1;
setfillstyle(1,14);
bar(115+(currenti-1)*25,235,130+(currenti-1)*25,240); }
if(key==left)
{
setfillstyle(1,0);
bar(115+(currenti-1)*25,255,130+(currenti-1)*25,260); if(currenti==1)
currenti=15;
else
currenti=currenti-1;
setfillstyle(1,4);
bar(115+(currenti-1)*25,255,130+(currenti-1)*25,260);
}
if(key==right)
{
setfillstyle(1,0);
bar(115+(currenti-1)*25,255,130+(currenti-1)*25,260); if(currenti==15)
currenti=1;
else
currenti=currenti+1;
setfillstyle(1,4);
bar(115+(currenti-1)*25,255,130+(currenti-1)*25,260);
}/*键盘的控制*/
if(i==5)
{
for(k=0;k<=4;k++)
{
itoa(rpiao[k],s,10);
outtextxy(230+k*30,350,s);
}
outtextxy(120,350,"the number:");
outtextxy(120,370,"you choose:");/*选择完毕后,显示相同的个数*/
for(k=0;k<=4;k++)
{
itoa(xpiao[k],s,10);
outtextxy(230+k*30,370,s);
}
jisuan();
sleep(3);
cleardevice();
currenti=1;
i=0;
kkk=1;
}
}/*选择完毕后,停留的时间并清屏*/
void dead(void)
{
if(money<10)
{
outtextxy(120,40,"you have not enough money");
sleep(2);
closegraph();
exit(0);
}
}/*游戏结束的条件*/
void main(void)
{
int gd=DETECT,gm;
initgraph(&gd,&gm,"");
while(1)
{
initmu();
initcom();
rrrpiao();
xxxpiao();
dead();
}
}
五、设计结果说明:
1、设计优点:此程序比较容易理解和使用,操作方便。用到的知识比较全面很好的总结和复习了我们以前学过的知识。
2、设计不足:用到的结构比较简单,无复杂的结构