C语言课程设计 (3)

C语言课程设计 (3)
C语言课程设计 (3)

数值分析上机

实验报告

东北大学软件

2011年

姓名闫三木学号20093514 班级软件工程0908 指导教师邵新慧实验名称曲线拟合最小二乘法线性方程组迭代法

开设学期2010 – 2011第二学期

评定成绩

评定人签字

评定日期

课题三 解线性方程组的迭代法

一. 实验内容

1、设线性方程组

?????????????????????

???

???

?????--------------------------1368

2438100

412029137264221234179111016103524312053621775868323376162449113151

20130123122400

1

0563568000

121324??????

???

???

????????????????????10987654321x x x x x x x x x x =??

??

?

??

???

?

??

???

????????????????-2119381346323125

x *= ( 1, -1, 0, 1, 2, 0, 3, 1, -1, 2 )T 2、设对称正定阵系数阵线方程组

??????????????????????????----------------------19243360021411035204111443343104221812334161206538114140231212200420424??????????????????????????87654321x x x x x x x x = ??

??

?

???

????

??????????????---4515229232060

x * = ( 1, -1, 0, 2, 1, -1, 0, 2 )T 3、三对角形线性方程组

????????????????????????????????------------------4100000000141000000001410000000014100000000141000000001410000000014100000000141000000001410000000014???????????????

?????????????????10987654321x x x x x x x x x x = ?????

??

???

?

?????

????????????????----5541412621357

x *= ( 2, 1, -3, 0, 1, -2, 3, 0, 1, -1 )T

试分别选用Jacobi 迭代法,Gauss-Seidol 迭代法和SOR 方法计算其解。

二. 实验要求

1、体会迭代法求解线性方程组,并能与消去法做以比较;

2、分别对不同精度要求,由迭代次数体会该迭代法的收敛快慢;

3、对方程组2,3使用SOR 方法时,选取松弛因子ω=0.8,0.9,1,1.1,1.2等,试看对算法收敛性的影响,并能找出你所选用的松弛因子的最佳者;

4、给出各种算法的设计程序和计算结果。

三. 目的和意义

1、通过上机计算体会迭代法求解线性方程组的特点,并能和消去法比较;

2、运用所学的迭代法算法,解决各类线性方程组,编出算法程序;

3、体会上机计算时,终止步骤∞

+-)()1(k k x x < ε 或k >(予给的迭代次

数),对迭代法敛散性的意义;

4、体会初始解 x )0(,松弛因子的选取,对计算结果的影响。

四. 流程图设计 1.主要部分流程

2.Jacobi 算法流程

3.GS 算法流程图

4.SOR算法流程

五.结构程序设计

#include

using namespace std;

#define N 40

const int n=10;

int jacobi(fl oat *p,float b[],fl oat X[],fl oat x[],int n); int GS(float *p,fl oat b[],float X[],float x[],int n); int SOR(float *p,fl oat b[],float X[],float x[],int n); void print(fl oat *a,int r);

void main()

{

fl oat A[10][10]={4,2,-3,-1,2,1,0,0,0,0,

8,6,-5,-3,6,5,0,1,0,0,

4,2,-2,-1,3,2,-1,1,9,4,

0,-2,1,5,-1,3,-1,1,9,4,

-4,2,6,-1,6,7,-3,3,2,3,

0,2,-1,3,-4,2,5,3,0,1,

16,10,-11,-9,17,34,2,-1,2,2,

4,6,2,-7,13,9,2,0,12,4,

0,0,-1,8,-3,-24,-8,6,3,-1};

fl oat a[10]={7,5,-13,2,6,-12,14,-4,5,-5};

fl oat X1[10]={0,0,0,0,0,0,0,0,0,0};

fl oat x1[10];

fl oat B[8][8]={4,2,-4,0,2,4,0,0,

2,2,-1,-2,1,3,2,0,

-4,-1,14,1,-8,-3,5,6,

0,-2,1,6,-1,-4,-3,3,

2,1,-8,-1,22,4,-10,-3,

4,3,-3,-4,4,11,1,-4,

0,2,5,-3,-10,1,14,2,

0,0,6,3,-3,-4,2,19};

fl oat b[8]={0,-6,6,23,11,-22,-15,45};

fl oat X2[8]={0,0,0,0,0,0,0,0};

fl oat x2[8];

fl oat C[10][10]={4,-1,0,0,0,0,0,0,0,0,

-1,4,-1,0,0,0,0,0,0,0,

0,-1,4,-1,0,0,0,0,0,0,

0,0,-1,4,-1,0,0,0,0,0,

0,0,0,-1,4,-1,0,0,0,0,

0,0,0,0,-1,4,-1,0,0,0,

0,0,0,0,0,-1,4,-1,0,0,

0,0,0,0,0,0,-1,4,-1,0,

0,0,0,0,0,0,0,-1,4,-1,

0,0,0,0,0,0,0,0,-1,4};

fl oat c[10]={7,5,-13,2,6,-12,14,-4,5,-5};

fl oat x3[10];

fl oat X3[10]={0,0,0,0,0,0,0,0,0,0};

fl oat *p[3];

p[0]=&A[0][0];

p[1]=&B[0][0];

p[2]=&C[0][0];

cout<<"Jacobi迭代法解第1个方程:"<

cout<<"Jacobi迭代法解第2个方程:"<

cout<<"Jacobi迭代法解第3个方程:"<

cout<<"Gauss-Seidel迭代法解第1个方程:"<

cout<<"Gauss-Seidel迭代法解第2个方程:"<

cout<<"Gauss-Seidel迭代法解第3个方程:"<

cout<<"SOR迭代法解第1个方程:"<

SOR(p[0],a,X1,x1,10);

cout<<"SOR迭代法解第2个方程:"<

SOR(p[1],b,X2,x2,8);

cout<<"SOR迭代法解第3个方程:"<

SOR(p[2],c,X3,x3,10);

}

int jacobi(fl oat *p,float b[],fl oat X[],fl oat x[],int n) {

int k,i,j;

fl oat m,R,r,e;

cout<<"请输入精度e:";

cin>>e;

for(k=0;k

{

R=0;

for(i=0;i

{

m=0;

for(j=0;j

{

m=m+(*(p+i*n+j))*X[j];

}

x[i]=X[i]+(b[i]-m)/(*(p+i*n+i));

r=x[i]-X[i];

if(r<0)

r=X[i]-x[i];

if(r>R)

R=r;

}

print(x,n);

cout<<"迭代次数为:"<

return k;

}

for(j=0;j<10;j++)

X[j]=x[j];

}

print(x,n);

cout<<"迭代次数为:"<

cout<<"方程解发散,无法用Jacobi方法解此方程!"<

}

int GS(float *p,fl oat b[],float X[],float x[],int n)

{

int i,j,k;

fl oat t,R,r,e;

cout<<"请输入精度e:";

cin>>e;

for(k=0;k

{

for(i=0;i

{

t=0;

for(j=0;j

{

if(j

t+=(*(p+i*n+j))*x[j];

if(j>i)

t+=(*(p+i*n+j))*X[j];

}

x[i]=(b[i]-t)/(*(p+i*n+i));

}

for(i=0;i<10;i++)

{

r=x[i]-X[i];

if(r<0)

r=X[i]-x[i];

}

if(R<=e&&R>0)

{

print(x,n);

cout<<"迭代次数为:"<

return k;

}

for(j=0;j<8;j++)

X[j]=x[j];

}

print(x,n);

cout<<"迭代次数为:"<

cout<<"方程解发散,无法用Gauss-Seidel方法解此方程!"<

}

int SOR(float *p,fl oat b[],float X[],float x[],int n)

{

int i,j,k;

fl oat t,R,r,e,w;

cout<<"请输入松弛因子w(0

cin>>w;

cout<<"请输入精度e:";

cin>>e;

for(i=0;i

x[i]=X[i];

for(k=0;k

{

R=0;

for(i=0;i

{

t=0;

for(j=0;j

t+=(*(p+i*n+j))*x[j];

r=w*(b[i]-t)/(*(p+i*n+i));

x[i]+=r;

if(r<0)

r=-r;

}

if(R<=e&&R>0)

{

print(x,n);

cout<<"迭代次数:"<

return k;

}

}

print(x,n);

cout<<"迭代次数:"<

cout<<"方程解发散,无法使用SOR方法解此方程!!!!"<

}

void print(fl oat *a,int n)

{

int j;

fl oat *t=a;

cout<<"x=( ";

for(j=0;j

cout<<*(t+j)<<",";

cout<<*(t+j)<<")"<

}

六.结果讨论和分析

程序运行截图:

七.小结和体会

通过这次实验,我对线性方程组的迭代算法有了更深的理解。迭代算法给计算机解决问题提供了有效的途径。使得一些人为难以计算出来的复杂线性方程组通过迭代算法交由计算机来进行计算。

同时我也发现了,J,GS和SOR迭代方法各自的特点,对课堂学习的知识有了更好的理解和认识。

课题八曲线拟合的最小二乘法

一.实验内容

利用数据拟合的最小二乘法从一组数据中找出其规律性,并给出其数学模型的近似表达式。

问题提出:

在某冶炼过程中,通过实验检测得到含碳量与时间关系的数据

如下,求含碳量y与时间t内关系的拟合曲线。

用最小二乘法进行三次多项式的曲线拟合,并计算均方误差二.实验要求

1.用最小二乘法进行三次多项式的曲线拟合;

2.计算yj与y(tj)的误差;j=1,2,3….

3.另外选取一个拟合函数,进行拟合效果的比较;

4.绘制出曲线拟合的图形。

三.目的和意义

1.掌握最小二乘法应用方法

2.理解最小二乘法进行曲线拟合的意义

四.结构程序设计

#include

#include

#include

using namespace std;

#define deviation 0.0000000001

#define N 20

class fit

{

protected:

int m, n;

double *a, *x, *y;

double dt;

public:

//构造函数

fit(int m, int n)

{

this->m = m;

this->n = n;

dt = 0;

x = new double[m];//一共有m个数据点,数据点的x值

y = new double[m];

a = new double[n+1];

void input();

//进行最小二乘曲线拟合

void fitting();

double value(double, int);

double* equation(double **, double *);

void deviat();

void output();

};

//从文件读入数据

void fit::input()

{

int i;

char fileName[20];//保存文件名

//提示用户输入用户名n

cout<<"*********请输入数据文件名称:*********\n"; cin>>fileName;

//从文件读取数据点

ifstream fin(fileName);

if(!fin)

{

cout<<"不能正常打开文件"<

exit(1);

}

for(i = 0; i < m; i++)

{

fin>>x[i];

fin>>y[i];

}

fin.close();//关闭文件流

}

//进行最小二乘曲线拟合

void fit::fitting()

{

double *vy = new double[m+1];

double *f = new double[n+1];

int i, j, k;

double **vx = new double*[n+1];

double **coe = new double*[n+1];

for(i = 0; i <= n; i++)

{

vx[i] = new double[m+1];

coe[i] = new double[n+1];

}

for(i = 0; i <= n; i++)

for(j = 0; j < m; j++)

{

vx[i][j] = value(x[j], i);

}

}

for(j = 0; j < m; j++)

{

vy[j] = y[j];

}

//计算方程组的系数矩阵

for(i = 0; i <= n; i++)

{

for(j = 0; j <= n; j++)

{

coe[i][j] = 0;

for(k = 0; k < m; k++)

{

coe[i][j] += vx[i][k] * vx[j][k];

}

}

}

for(i = 0; i <= n; i++)

{

f[i] = 0;

for(j = 0; j < m; j++)

{

f[i] += vx[i][j] * vy[j];

}

}

//解正则方程组,并将结果存储到数组a中

a = equation(coe, f);

//计算均方误差,并将结果存储到统计变量dt中deviat();

}

//计算基函数的函数值

double fit::value(double x, int m)

{

double result = 1;

for(int i = 0; i < m; i++)

{

result *= x;

}

return result;

}

{

double *tx = new double[n+1];

long double r, r1;

int w = 1.5;

int i, j, k;

//初始化初始解

for(i = 0; i <= n; i++)

{

tx[i] = 0;

}

for(k = 0; k < N; k++)

{

r = 0;

for(i = 0; i <= n; i++)

{

//计算误差

r1 = b[i];

for(j = 0; j <= n; j++)

{

r1 -= coe[i][j] * tx[j];

}

r1 /= coe[i][i];

r1 *= w;

//取最大误差

if(fabs(r1) > fabs(r))

{

r = r1;

}

tx[i] += r1;

}

//如果达到精度要求,则结束迭代

if(fabs(r) <= deviation)

{

break;

}

}

//返回计算结果

return tx;

}

//计算误差

void fit::deviat()

{

double *funcValue = new double[m]; double sum = 0;

for(j = 0; j < m; j++)

{

funcValue[j] = 0;

for(i = 0; i <= n; i++)

{

funcValue[j] += a[i] * value(x[j], i);

}

sum += (y[j] - funcValue[j]) * (y[j] - funcValue[j]);

}

this->dt = sqrt(sum);

}

//输出最终拟合结果,并保存到指定文件

void fit::output()

{

int i;

//输出各项系数

cout<<"*********拟合函数的各项系数为(按各项次数从小到大排列):*********\n"<

{

cout<

}

cout<<"*********均方误差为:*********\n"<

}

//main函数

int main()

{

int m, n;

cout<<"*********请输入数据点的个数:*********\n";

cin>>m;

cout<<"*********请输入需要进行拟合的次数:*********\n";

cin>>n;

fit express(m, n);

express.input();

express.fitting();

express.output();

system("Pause");

return 1;

}

五.结果讨论和分析

程序运行结果:

运用MATLAB绘制的拟合图像

六.小结和体会

通过这次实验,我对最小二乘法进行的曲线拟合有了更多的认识。通过几种不同形式的计算,由运行结果可知,三次多项式的均方误差小于二次多项式的均方误差,二次多项式的均方误差小于四次多项式的均方误差,因此,三次多项式的拟合曲线相对较好。

通过这个实验我也理解到了,数值分析是一个工具学科,它

教给了我们分析和解决数值计算问题的方法。使我从中得到很多关于算法的思想,从中受益匪浅。

C语言课程设计总结

C语言课程设计总结 一、设计题目: 猜数字和贪吃蛇小游戏。 专业:09电气工程及其自动化 组号:第十组 组员:马邢(组长)、王维、毛亮、汪小成、魏坤波、陈维康、高裴石、石峰、葛良志、冯鑫源 指导教师:黄莉莉 二、任务分配: 我们组分为两队,一对制作贪吃蛇游戏,另一对制作猜数字游戏。制作贪吃蛇的人员是马邢,葛良志,高裴石,石峰,陈维康。石峰和高裴石负责收集程序材料,马邢和葛良志负责整理和编写程序,陈维康辅助我们工作。制作猜数字的是魏坤波,王维,毛亮,汪小成,冯鑫源。魏坤波和王维负责编写程序,其他三人收集材料并帮助他们人编写和调试程序。 三、心得体会: 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。 回顾起此次课程设计,至今让我我们仍感慨颇多,的确,从从拿到题目到完成整个编程,从理论到实践,几个星期的日子里,可以学

到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识,也懂得集体团队的重要性。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识重新温故。 这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在黄老师的辛勤指导下,终于游逆而解。同时,在黄老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢

C语言课程设计-学生成绩管理系统-完整版

#include<> #include<> #include<> #include<> /* strcmp函数原型包含*/ #define N 100 /*定义最大学生人数为100*/ struct student /*学生结构体定义*/ { char no[11]; /*学号,10位*/ char name[10];/*姓名,3个汉字*/ char grade[10];/*班级*/ char pro[20];/*专业*/ float score[5];/*储存5门功课的成绩*/ float ave;/*储存平均分*/ int year;/*入学年*/ }stu[N]; int num; void panduani(int); /*通过i的值,判断信息要查找的信息是否存在*/ void output(); /*输出学生成绩函数(公共函数)*/ void init(); /*系统初始化函数*/ void newfile(); /*建立新的数据文件*/ void read1(); /*从数据文件中读取数据*/ void weihu(); /*维护界面函数*/ void new1(); /*新增一个学生成绩函数*/ void xiugai(); /*修改学生成绩*/ void xgcj(int); /*修改成绩*/

void delete1(); /*删除学生信息函数*/ void tongji(); /*统计界面函数*/ void tongji1(); /*计算每个学生平均分*/ void tongji2(); /*计算每门课程的平均分*/ void paixu1(); /*排序函数*/ void paino(); /*按学号排序*/ void paiave(); /*按平均分排序*/ void paidkcj(); /*按单科成绩排序*/ void change(int,int); /*交换结构体数组中的两个记录*/ void outputx(int); /*选择输出单科成绩*/ void find1(); /*查找界面函数*/ int find(char sno[]); /*按学号查找*/ int findname(char cname[]);/*按姓名查找*/ void findyear(int cyear); /*按入学年查找*/ void save(); /*保存文件*/ void stop(); /*停顿函数*/ void stop() /*停顿函数(公共函数)*/ { printf("Press Any Key To Continue...\n"); getchar(); } void output() /*输出学生成绩函数(公共函数)*/ { int i,j;

大一C语言课程设计题目

课 程 设 计 任 务 书 信息工程与自动化 学院 计算机科学与技术 专业 2011 年级 学生姓名: 课程设计题目: 程序设计语言课程设计 课程设计主要内容: 一、 基础程序设计: 本设计部分主要完成与链表操作相关的基本运算,其中包含:链表的建立、链表的输出、链表的插入、链表的删除等运算。. 二、 综合程序设计: 该部分主要是培养学生在程序编写方面综合能力的训练,学生选作其中的一至二题程序的编写与实施。 1、设计统计任意文本字数的程序(张力老师组必做): 要求包括:中英文文本的:中文字数、数字数目、英文字符数、英文单词数及其他符号。 2、车票订购统计系统(张力老师组必做): 下图是昆明——北京的沿途车站与票价: 请用C 语言为之开发一个售票程序,要求如下: (1)乘客购票时用菜单选择起点站和终到站。如果选择的起点站和终到站为同一个站则报错,程序退出。 (2)选好起点站和终到站之后,通过调用函数int BuyTicket() 为之计算票价和里程,并在屏幕上显示出来。 (3)用文件类型存储每一次售票记录,包括:售票流水号,起点站,终点站,里程,金额等数据,并统计所有存储记录的总售票金额及各站的旅客流量(进站流量+出站流量)。 3、万年历的设计: 要求: 模仿现实生活中的挂历,能够显示年历、月历、日历,并具备退出功能。 当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几)。 当系统日期变到下一月时,系统自动翻页到下一月。 4、通讯录管理系统:

制作一个通讯录程序,该程序具有查找、添加、修改、删除功能。通讯录包括:姓名,电话,街道,城市,省,邮编等。 模块设计参考: 第一个模块——主函数main()的功能是:根据选单的选项调用各函数,并完成相应的功能。 第二个模块——Menu()的功能是:显示英文提示选单。 第三个模块——Quit()的功能是:退出选单。 第四个模块——Create()的功能是:创建新的通讯录。 第五个模块——Add()的功能是:在通讯录的末尾,写入新的信息,并返回选单。 第六个模块——Find()的功能是:查询某人的信息,如果找到了,则显示该人的信息,如果未找到,则提示通讯录中没有此人的信息,并返回选单。 第七个模块——Alter()的功能是:修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回选单。 第八个模块——Delete()的功能是:删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息,并返回选单。 第九个模块——List()的功能是:显示通讯录中的所有记录。 设计指导教师(签字): 教学基层组织负责人(签字): 年月日

C语言程序设计课程设计题目

1一元稀疏多项式的运算 问题描述:设有两个带头指针的单链表表示两个一元稀疏多项式A、B,实现两个一元稀疏多项式的处理。 实现要求: ⑴输入并建立多项式; ⑵输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……c n,e n,其中n 是多项式的项数,c i,e i分别为第i项的系数和指数。序列按指数降序排列; ⑶多项式A和B相加,建立多项式A+B,输出相加的多项式; ⑷多项式A和B相减,建立多项式A-B,输出相减的多项式; ⑸多项式A和B相乘,建立多项式A×B,输出相乘的多项式; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 测试数据: (1) (2x+5x8-3.1x11)+(7-5x8+11x9) (2) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15) (3)(x+x2+x3)+0 (4)(x+x3)-(-x-x-3) 2成绩排序 假设某年级有4个班,每班有45名同学。本学期有5门课程考试,每门课程成绩是百分制。假定每个同学的成绩记录包含:学号、姓名各门课程的成绩共7项,其中学号是一个10位的字符串,每个学生都有唯一的学号,并且这4个班的成绩分别放在4个数组中,完成以下操作要求: ⑴编写一个成绩生成函数,使用随机数方法,利用随机函数生成学生的各门课程的成绩(每门课程的成绩都是0∽100之间的整数),通过调用该函数生成全部学生的成绩; ⑵编写一个平均成绩计算函数,计算每个同学的平均成绩并保存在成绩数组中; ⑶用冒泡排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进

行班内排序; ⑷用选择排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序; ⑸对已按平均成绩排好序的4个班的同学的构造一个所有按平均成绩的以非递增方式排列的新的单链表; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 3迷宫问题 问题描述:以一个m×n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 实现要求: ⑴实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。 ⑵编写递归形式的算法,求得迷宫中所有可能的通路; ⑶以方阵形式输出迷宫及其通路。 [测试数据] 迷宫的测试数据如下:左上角(1,1)为入口,右下角(8,9)为出口。 1 2 3 4 5 6 7 8 实现提示:

c语言课程设计报告

C语言程序设计B 课程设计报告 设计题目:学生成绩管理系统年级班级: 学号: 姓名: 指导教师: 2020 年 6 月 18 日

目录 一、设计目的 (3) 二、课程设计内容和要求 (4) 三、总体设计 (5) 四、主要步骤 (12) 五、功能实现 (13) 六、功能测试 (64) 七、评价程序 (83) 八、课程设计体会 (84)

一、设计目的 程序设计能力是当代理工类大学生的必备能力,当学生学习了C语言之后,编程能力远远不能达到开发实际应用程序的要求,特备是对其中的指针、结构体、链表和文件部分的理解和应用都比较弱。 程序设计的目的是通过对面向过程的学习,将C语言的主要知识点进行综合,针对提高学生C语言程序设计能力,强化编写较大的应用软件能力,熟练运用已掌握的知识解决实际需要解决的问题,以达到更加熟知指针、链表、结构体、文件读取、标准库的使用。 主要目的为以下几点: 1、熟练掌握面向过程(结构化)程序设计基本知识; 2、综合运用所学知识解决实际问题; 3、受到面向过程(结构化)程序设计的基本训练; 4、体会面向过程(结构化)开发程序的过程。

二、课程设计内容和要求 1.课程设计内容: 学生通过使用C语言进行编写算法,开发学生成绩管理系统,以实现对学生成绩的管理。 2.课程设计要求 1)具有菜单,可以在菜单上进行选择; 2)能实现学生数据录入、修改、删除、查询; 3)能实现数据排序; 4)有数据输出功能; 5)有数据读取与存储功能; 6)一个学生的数据(称为:每条记录)包含姓名、学号、语文、数 学、英语、总分、名次等信息; 7)以结构方式存储每条记录; 8)多条记录以链表方式存储到内存; 9)随时可将全部数据存储到磁盘文件中,方便下次从磁盘读取数据。

C语言课程设计学生选修课程系统设计

学生选修课系统设计 一、设计目的 当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息系统的环境。计算机的最到好处的于利用它能够进行信息管理,使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。 尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好学生选课信息而设计的。 数据处理手工操作,工作量大,出错率高,出错后不易更改,造成了时间上的浪费。 基于这个问题,我认为有必要建立一个学生选课系统,使学生选课信息管理工作规范化、系统化、程序化,避免学生选课管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改选课情况。 二、题目说明 假定有n门课程,每门课程都有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。试设计一选修课程系统,使之能提供一下功能: (1)系统以菜单方式工作; (2)课程信息和学生信息的录入功能(课程信息有文件保 存)----输入; (3)课程信息浏览功能----输出; (4)查询功能(至少一种查询方式)---算法; (5)按学分查询; (6)某门课程学生选修情况(可选项)。 [提示] 数据结构可用结构体,包括课程和选秀两个结构体,其中课程结构体包括课程编号、课程名称、课程性质、总学时、授课学时、实验或上机学时、学分、开课学期。选修结构体成员包括学号,课程编号,该结构体的建立主要是为了查询某门课程学生选修情况.。 三、数据结构设计 本系统的实现,全部采用链表这种数据结构,用链表实现课程的查找、添加、删除、课程的选修、追加选修的课程,课程信息采用结构体这种数据结构。 typedef struct subjects {

C语言课程设计报告

XX大学 课程设计报告 课程设计名称:C语言课程设计 课程设计题目:排班系统 院(系):XX学院 专业:XX 班级:XX 学号:XXXXXXXXXXXXX 姓名:XX 指导教师:XXX 完成日期:XX年X月X日

沈阳航空航天大学课程设计报告 目录 第1章需求分析与概要设计 (1) 1.1需求分析 (1) 1.2概要设计 (1) 第2章详细设计 (2) 2.1排班系统基本结构 (2) 2.1.1 排班系统细节剖析 (2) 2.2程序详细介绍(算法实现) (3) 第3章调试分析 (5) 3.1我的调试: (5) 3.2运行结果 (5) 第4章用户手册及结束语 (8) 4.1用户手册 (8) 4.2结束语 (8) 参考文献 (9) 附录(程序清单) (10)

沈阳航空航天大学课程设计报告第1章需求分析与概要设计第1章需求分析与概要设计 1.1 需求分析 1.题目要求:为多名保安设计一个排班系统,每人可以自行预先选出一天为休息日,系统打印可能的轮班方案并存储结果。尽可能做到令所有人满意,保排班方案的公平性。 2.题目分析:本题的重点和难点在于保安的人数是不确定的,且他们可能选择的休息日也无法确定,所以方案的结果也就不仅仅有一种。由此可以看出只有解决好这两个问题,才能够符合该题目的要求,完成保安的排班工作。 1.2 概要设计 1.总体思路:对于这道题目,我的思路是采用二维数组的方式来解决。大概过程是先假设所有人都上班,即没有休息日。然后再让每个人进行选择自己希望的休息日。先每个人选择出一天,然后系统进行排班,输出其所输入数据的对应方案。然后在第一次所输数据的基础上,若还有其他选择,则进行二次输入,以此更改初始数据,重新设计可能的排班方案。 2.细节实现:因为题目的要求是打印可能的方案,那么如何来实现打印呢?我采用了通过对二位数组中的每一个值用阿拉伯数字0和1来标记,以1来表示工作,0来表示休息。 3.功能作用:本系统系保安的排班系统,可以完成基本的排班功能,在此基础上,还为用户设计了二次输入的选项,以此来解决当所输数据不满足要求,无法完成排班的问题,同时也可以为用户提供更多的可行方案,而不是仅仅局限于一种。

C语言程序设计课程设计报告

C语言程序设计课程设 计报告 内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128)

《C语言程序设计》课程设计报告 (2013— 2014学年第 3 学期) 题目: C语言课程设计 专业:软件工程 班级:软件工程技术2班 姓名学号: 1 林燕萍 指导教师:吴芸 成绩: 计算机科学与技术系 2014 年6月23日

目录 一、课程设计的目的与要求 (1) 二、方案实现与调试 (3) 2.1 掷骰子游戏 (5) 2.2 射击游戏 (7) 2.3 计算存款本息之和 (8) 2.4肇事逃逸 (10) 2.5 礼炮 (12) 2.6 汽车加油 (14) 2.7 大优惠 (16) 2.8 金币 (19) 三、课程设计分析与总结 (23) 附录程序清单 (25) 一、课程设计的目的与要求(含设计指标) C语言是一种编程灵活,特色鲜明的程序设计语言。C语言除了基知识,如概念,方法和语法规则之外更重要的是进行实训,以提高学习者的动手和编程能力,从应试课程转变为实践工具。这是学习语言的最终目的。结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C 语言程序设计任务书》,以在实训过程中给学生提供帮助。达到如下目的: 1.在课程结束之前,让学生进一步了解C程序设计语言的编程功能;

2.让学生扎实掌握C程序设计语言的相关知识; 3.通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。 编写程序要求遵循如下基本要求: ①模块化程序设计 ②锯齿型书写格式 ③必须上机调试通过 二、方案实现与调试 2.1掷骰子游戏 2.1.1 题目内容的描述 1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。 2) 将每人每次的分值累加计分 3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。4) 结束条件:当双方都掷10次或经过5次后一方累计分数多出另一方的30%及以上。最后显示双方分数并判定优胜者。 2.1.2输入数据类型、格式和内容限制和输出数据的说明 数据类型:整型;内容限制:随机数的产生;输入数据结果:胜利的一方 2.1.3主要模块的算法描述

c语言课程设计体会

体会 通过这次C语言的课程设计,我明白了很多也知道了很多,更收获了很多。在课程设计的过程中出现过困难, 三周的课程设计已经结束了。回想学习C语言的过程中,既有快乐又有烦恼, 回顾这次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论和知识是远远不够的,只有把所学的理论知识与实际相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考能力。在设计的过程中遇到的问题,这毕竟独立做的,难免会遇到各种各样的问题,同时在设计的过程中发现自己的不足之处,对以前所学的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识从新温故。这次课设终于顺利完成了,在设计中遇到了很多编程问题 做完这个课程设计,我们的自信一下子提高了,我们也会写程序了;尽管对于有些人这种程序会很简单,可对于我们C语言初学者来说,已经很不容易了。这次体验为以后的学习计算机的我们增强了信心。享受劳动成果的滋味实在美妙啊! 很感谢这次的课程设计,它使我更加地体会到多看专业书的重要性,只有掌握了一定量的专业知识才能得心应手地解决诸多问题;另外,在做任何事倒要有耐心,不要一遇到困难就退缩;在学习和工作中要时刻谨记“团结”二字,它好比通向成功的铺路石,不可或缺。 人生的道路是曲折的,但正是因为曲折人生才光彩夺目,在人生的道路上,总遇到重重困难,但正是因为困难我们才变得更坚强。今后的路还很长,面对困难,让我们用行动去俘虏它吧!

C语言课程设计(1)

C语言课程设计 学院:机电 专业:机械设计制造班级:数控(2)班学号:2520110201 姓名:徐莹 指导教师:宋亚岚2012年6月22日

目录 第一章选择和循环程序设计 (3) 第二章数组 (7) 第三章函数 (9) 第四章指针 (11) 第五章课程设计总结 (14)

例1:输入任意的三位整数以反向形式输出。如输入678则输出876。 【算法分析】(用文字或流程图进行描述) 对于三位数n以反向输出要求将构成这三位数的元素进行拆分。个位上的元素乘100加上十位上的元素乘10加上百位上的元素乘1得到一个新三位数。将新的三位数输出即可。如何将三位数进行拆分则需用到表达式中整除和求余运算具体方法如下: 用x1,x2,x3分别存放拆分后的百位、十位个位数 x1=n/100 则得到百位数 x2=n/10%10 则得到十位数 x3=n%10 则得到个位数 y=x3*100+x2*10+x1*1 【源程序代码】 #include void main() { int x1,x2,x3,n,y ; printf(“please input number n :”); scanf(“%d”,&n); x1=n/100 ; x2=n/10%10 ; x3=n%10 ; y=x3*100+x2*10+x1*1 ; printf(“y= %d”,y) ; } 【编译示图】(示图中要有0 error,0 warning的提示)

【运行结果示图】 第一章选择和循环程序设计 1、企业发放的奖金根据利润提成。利润I低于或等于100000元的,奖金可提10%,利润高于100000元,低于200000元(1000001000000时,超过1000000元的部分按1%提成。从键盘输入当月利润I,求应发奖金总数。 要求: (1)用if 语句编程 (2)用switch语句编程序 【算法分析】(用文字或流程图进行描述)根据利润的范围,确定可提成的百分比,利润为i 1.i<=100000,w=i*0.1 2.100000

C语言程序设计课程设计

《C语言程序设计》课程设计 1课程设计目的 C语言课程设计是在“C语言程序设计”课程后集中安排的1周相关的实践技能训练环节。它的目的是通过实践环节的训练,培养学生查阅资料的能力、分析与解决问题的能力、应用C语言开发与设计程序的能力。 2课程设计选题 2.1 题目1 必做题目,其余题目任选一题完成 题目1:年历显示。 功能要求: (1)输入一个年份,输出是在屏幕上显示该年的日历。假定输入的年份在1940-2040年之间。 (2)输入年月,输出该月的日历。 (3)输入年月日,输出距今天还有多少天,星期几,是否是公历节日。 题目2:小学生测验 面向小学1-2年级学生,随机选择两个整数和加减法形成算式要求学生解答。 功能要求: (1)电脑随机出10道题,每题10分,程序结束时显示学生得分; (2)确保算式没有超出1-2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0-50的范围,负数更是不允许的; (3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案; (4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分; (5)总成绩90以上显示“SMART”,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN” 题目3:学生学籍管理系统(可以2人合作完成) 用数据文件存放学生的学籍,可对学生学籍进行注册,登录,修改,删除,查找,统计,学籍变化等操作。 功能要求: (1)系统以菜单方式工作。 (2)登记学生的学号,姓名,性别,年龄,籍贯,系别,专业,班级;修改已知学号的学生信息; (3)删除已知学号的学生信息; (4)查找已知学号的学生信息; (5)按学号,专业输出学生籍贯表。 (6)查询学生学籍变化,比如入学,转专业,退学,降级,休学,毕业。 题目4:通讯录程序设计 设计一个实用的小型通讯录程序,具有添加,查询和删除功能。由姓名,籍贯,电话号码1,电话号码2,电子邮箱组成,姓名可以由字符和数字混合编码。电话号码可由字符和数字组成。实现功能:(1)系统以菜单方式工作 (2)信息录入功能 (3)信息浏览功能

C语言课程设计题目汇总

目录 题目6:通讯录程序设计(限2人)........................................................................................................................................... 题目10:机房机位预定系统(限2人)..................................................................................................................................... 题目13:工资纳税系统............................................................................................................................................................. 题目41:条件编译.....................................................................................................................................................................

题目6:回文数的形成............................................................................................................................................................... 杨顺民题目 C语言程序课程设计题目 题目1:年历显示 功能要求: (1)输入一个年份,输出是在屏幕上显示该年的日历。假定输入的年份在1940-2040年之间。(2)输入年月,输出该月的日历。 (3)输入年月日,输出距今天还有多少天,星期几,是否是公历节日。 题目2:小学生测验 面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。 功能要求: (1)电脑随机出10道题,每题10分,程序结束时显示学生得分; (2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的; (3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案; (4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分; (5)总成绩90以上显示“SMART” ,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN”

C语言课程设计学生考勤系统

附件:《学生考勤系统》主要源程序代码 #include #include /*头文件。*/ int SIZE; /*宏定义。*/ int CLASS;

struct student /*定义一个结构体数组,包含学生信息。*/ { char name[9]; char sex[4]; int number; int count; int score; }stu[300]; void main() /*主函数,选择界面。*/ { void start(); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("######################################\n"); printf("# 学生考勤系统 #\n"); printf("# 欢迎您 #\n"); printf("######################################\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("######################################\n"); printf("\t请输入班级人数:\n"); printf("######################################\n"); scanf("%d",&SIZE); printf("\n"); printf("######################################\n"); printf("\t请输入课程节数:\n"); printf("######################################\n"); scanf("%d",&CLASS); printf("\n"); printf("\n"); printf("\n"); printf("\n"); start(); } void start() /*主函数的辅助函数——start函数。*/ { char x; void found(); void search();

c语言课程设计题目

c语言课程设计题目 Revised by BETTY on December 25,2020

C语言课程设计题目 一、实训要求 1)C语言课程设计要求 1.可自己选定一题目,限1人选的题目只能由1人单独完成,如限3人选的题目可由1-3人 完成。 2.模块化程序设计 3. 4.锯齿型书写格式 5. 6.必须上机调试通过 7. 2)课程设计报告内容要求: 1.课程设计题目 2.总体设计(程序设计组成框图、流程图) 3.详细设计(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等) 4.调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的 解决措施 5.源程序清单和执行结果:清单中应有足够的注释 6.具体格式另附说明。 3)检查要求: 1.每个人必须有程序运行结果; 2.每个人必须交《课程设计报告》打印稿---—注:各班班长将本班学生的课程设计报告电 子版用优盘拷贝(标上学号、姓名、班级)上交。 4)打分标准: 1.根据平时上机考勤;注重平时上机成绩,教师要不定期检查学生进度,学生不得以自己 有私人电脑为借口而不来上机。 2.根据程序运行结果; 3.根据《C语言课程设计报告》,学生能对自己的程序面对教师提问并能熟练地解释清楚以上三项缺一不可,否则不能到得相应学分 二、课程设计题目: 1:职工信息管理系统设计(限最多3人完成) 职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。试设计一职工信息管理系统,使之能提供以下功能: 系统以菜单方式工作 职工信息录入功能(职工信息可用文件保存)--输入 职工信息浏览功能--输出 查询和排序功能:(至少一种查询方式)--算法 按工资查询 按学历查询等

c语言课程设计报告书

课程设计报告书 所属课程:c语言 项目:库函数模拟系统 指导老师:邹姝稚 班级:软件1401 姓名:江闯 学号:141403107 分数:

1.任务描述: 本系统开发的代码模拟了下列库函数的功能: (1).模拟gets和puts的功能:能接收一个字符串,将其写入ASCII文件,并且可以读出显示。 (2).在不使用字符串库函数的条件下,编程实现字符串的拷贝,连接,求长,倒置功能。 (3).字符串加密功能:将一段明文建立到一个ASCII文件中,按加密的算法加密后写入密文文件,最终实现将明文和密文文件都显示出来。 (4).编程实现字符串与对应数字的相互转换功能。 2.总体设计: 模块调用图: 图1

函数调用图: 图2 函数功能: (1)函数gp( ):模拟gets和puts的功能 (2)函数kaobei( ):实现字符串的拷贝 (3)函数lianjie( ):实现字符串的连接 (4)函数qiuchang( ):实现字符串的求长 (5)函数daozhi( ):实现字符串的倒置 (6)函数jiami( ):实现字符串的加密功能,最后将明文和密文文件都显示出来 (7)函数zhuanhuan1( ):将数字字符串转换为对应的数字 (8)函数zhuanhuan2( ):将数字转换为对应的数字字符串 3.详细设计: (1).模仿gets和puts功能: gets和puts功能与scanf和printf函数的功能相似,但是也不是完全相同,本系统模拟功能的程序总共运用了两次函数调用技术,模拟gets运用了一次,模拟puts运用了一次。 (2)..字符串的拷贝功能: 字符串的拷贝功能程序设计源于strcpy的功能,其中运用了字符串数组和指针的相关技术,还运用了一组while语句,实现语句的循环,从而将一个字符串拷贝到一个空数组中。

C语言课程设计题目

C语言程序课程设计题目 一、程序设计题目:简单的学生成绩管理程序 程序设计功能及要求: (1) 总人数定义为宏,数据使用文件存放; (2) 输入学生姓名学号,及五门成绩,并计算每个学生五门功课的平均分,并按平均分排列名次,若平均分相同则名次并列;结果写入文件并按格式打印在屏幕上。 ⑶ 统计全班每门课程的平均分,并计算各分数段(60以下,60~69,70~79,80~89,90以上)的学生人数;结果写入文件,并按格式在屏幕上打印; ⑷ 在屏幕上打印出所有不及格学生的下列信息:学号,不及格的课程名,该不及格课程成绩; ⑸ 在开始画面加入简单的菜单便于选择各种功能。 例: 1学生条目输入 2 成绩统计 3分数段统计 4不及格学生筛选 ⑹文件格式要求 1.原始数据文件格式(具体数据和项目自行编写) 学号姓名英语C语言高等数学………….. 1 张三76 89 78 2 李四…. …. …. 2.输出数据文件(由程序自动生成) 1)学生综合成绩文件。 2)学号姓名英语C语言高等数学…………….平均成绩名次 1张三76 89 78 ………….. 2李四…. …. …. 3)统计结果文件。 4)分数段英语C语言高等数学…………………. <60 2 … 60~69 8 … 70~79 5 … 80~89 10 … ⑺加入优等生统计功能,要求按优等生条件筛选出优等生的条目存入单独文件,并输出到屏幕。 优等生标准(满足之一即可): 1 平均成绩上80。 2平均成绩及格但未上80,有单科成绩上90。 3平均成绩未及格,有单科满分。 二、程序设计题目:简单的同学通讯录程序设计 [问题描述]

具有数据插入、修改、删除、显示、查询和统计功能的电话簿管理程序。 [程序设计功能及要求] ⑴人数不定,数据使用文件存放。 ⑵记录每位同学的学号、姓名、性别、工作单位、电话号码和E-mail地址建立单独的条目,存入数 据文件。 ⑶可对记录中的姓名和电话号码等进行修改。 ⑷可增加或删除记录 ⑸可显示所有保存的记录 ⑹加入统计功能,可以统计男女同学或总人数。 ⑺加入查询功能,通过姓名、学号或电话号码查询到同学的条目。 ⑻在开始画面加入简单的菜单便于选择功能。 ⑼文件格式 1.储存数据文件格式 学号姓名性别工作单位电话号码E-mail 1 李四…. …. …. ⑽选做:加入文件加密系统,对储存数据文件进行简单的加密,要求通过直接打开储存数据文件无法获得其中的数据。但同时不影响程序对储存数据文件的调用。 [设计提示] 本程序建议采用结构体类型和文件系统实现。 三、程序设计题目:图书管理系统 [问题描述] 设计一个具有数据插入、修改、删除、显示和查询功能的图书管理程序。 [设计要求] (1)用户登录功能; (2)设计程序运行界面; (3)能用菜单选择各功能。 说明: (1)数据包括:书名、作者、书号、出版社、出版日期和单价; (2)可对图书信息修改; (3)可增加或删除图书信息; (4)可显示所有保存的图书信息; (5)可按书名、作者、书号或出版社进行图书信息的查询。 四、职工信息管理系统设计 1. 目的: (1)要求学生熟练掌握C语言的基本知识和编程技能; (2)基本掌握结构化程序设计的基本思路和方法; 2. 要求 基本要求: (1)试设计一个职工信息管理系统,使之能提供以下功能: (2)系统以菜单方式工作

C语言程序课程设计猜数字游戏

C语言程序设计课程设计 : 自 动 化 级 : 名: 学号: 指导教师: 兰州交通大学自动化与电气工程学院 2015年07月21日

一.引言 设计目的 复习和巩固C语言基础知识,进一步加深对C语言的理解和掌握。提高同学将课本上的理论知识和实际结合的能力,锻炼同学的分析解决实际问题的能力,提高同学团队合作的能力。使同学们善于观察和思考,善于合作,具备实践编程的基础素质,和实际问题分析的思考方式。 设计要求 在设计时充分地分析和理解问题本身,综合考虑系统功能,怎样使系统结构清晰、合理、简单和易于调试。然后详细设计,确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系。最后认真完成课程设计说明书,并对设计方法,结果等进行总结。 充分地分析和理解问题本身,弄清要求做什么(What to do)。在确定解决方案框架过程中(How to do),综合考虑系统功能,考虑怎样使系统结构清晰、合理、简单和易于调试。最后确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系。 确定算法的主要流程,在此基础上进行代码设计(Coding),每个明确的功能模块程序一般不超过60行,否则要进一步划分。 上机前程序静态检查可有效提高调试效率,减少上机调试程序时的无谓错误。静态检查主要有两种途径:(1)用一组测试数据手工执行程序;(2)通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑。 二.基础题 题目 用选择法对10个数进行排序。 有一个已排好序的数组。现输入一个数,要求按原来的规律插入到原数组中。解题思路 程序的主要功能是对数组元素用排序函数按从小到大的顺序进行排序。 先定义一个10个元素的一维数组a[10],然后从电脑输入10个数(也就是对数组赋值),然后使用一次fun()函数,对这10个数进行排序;然后再定义一个11个元素的一维数组b[11],同时再从电脑输入一个数同a[10]一起赋值给b[11],然后再使用fun()函数,重新排序的到最后的有顺序的一组数据。 流程图 子函数流程图如图1所示:

c语言课程设计

课程设计报告 课程设计名称:学生成绩管理系统 系别:三系 学生姓名: 班级: 学号: 成绩: 指导教师: 开课时间:2013-2014 学年二学期 目录

一、课程设计目的 (2) 二、课程设计内容 (2) 三、学生成绩管理系统概要设计(包含几大功能模块) (4) 3.1、各个模块功能 (4) 3.2、各函数的功能和实现 (4) 四、成绩管理系统详细设计(各功能模块的具体实现算法——流程图) (5) 4.1、本人所负责的部分: (5) 4.2、其他附带源程序: (7) 五、总结 (18)

学生成绩管理系统 一、课程设计目的 建立学生成绩管理系统,利用计算机对学生成绩进行管理,方便学生查看自己成绩,对学生的基本信息,成绩录入,修改,删除,查询统计等提供一系列的操作。帮助广大师生提高工作效率,实现学生成绩管理工作流程的系统化,规范化,减少人力投资。 二、课程设计内容 对学生信息(包括学号、语文、数学、英语、)进行管理,包括学生成绩的信息保存,输入、输出、查询、删除、统计、修改、退出.将学生的成绩信息进行记录,信息内容包含:(1)学生的学号(2)学生的姓名(3)学生的成绩。假设,现收集到了一个班学生的所有成绩信息,要求用C语言编写一个简单的成绩管理系统,可进行录入、查询、修改和浏览等功能。学习相关开发工具和应用软件,熟悉系统建设过程。 1、用C语言实现系统; 2、对学生信息(包括学号、姓名、语文、数学、英语)进行管理,包括学生成绩的信息输入、输出、查询、删除、统计、保存、退出; 3、学生信息包括:其内容较多,为了简化讨论,要求设计的管理系统能够完成以下功能: (1) 每一条记录包括一个学生的学号、姓名、3门课成绩 (2) 录入功能:从键盘输入学生的姓名学号及三科成绩 (3) 输出功能:完成全部学生记录的显示 (4)、查询功能:完成按姓名或者学号查找学生记录,并显示 (5)删除功能:按学号进行删除某学生的成绩

C语言课程设计小学生四则运算

#include"stdio.h" #include"stdlib.h" void main() { int a,b,c,d,e,f,g,t; printf("****************************欢迎使用!************************\n"); printf("\n"); printf("1.加法运算\n"); printf("2.减法运算\n"); printf("3.乘法运算\n"); printf("4.除法运算\n"); printf("*****************************请选择运算类型:"); scanf("%d",&a); while(a<1||a>4) { printf("输入错误,请重新输入"); scanf("%d",&a); } if(a==1) { printf("5,一位数加一位数\n"); printf("6,一位数加两位数\n"); printf("7,两位数加两位数\n"); printf("*********************************请输入题型:"); scanf("%d",&a); while(a<5||a>7) { printf("输入错误,请重新输入"); scanf("%d",&a); } if(a==5) { loop:b=rand()%10; c=rand()%10; d=b+c; printf("%d+%d=?\n",b,c); printf("请输入答案:"); scanf("%d",&e); while(e!=d) { printf("回答错误,请重做"); printf("%d+%d=?\n",b,c); printf("请输入答案:"); scanf("%d",&e);

相关文档
最新文档