1、k=N;for(i=0,j=1;k!=1;j+) if(p(a+N) if(*p!=0) i+;if(i%3=0&i!*p=0;i=0;k-; p+;for(i=1;ia+NN p=a+N Y *p!=0 i+ Y i%3!=0*p=0,i=0,k- p+,j+=N 输出最后留下的值N i+ 结束 图1.1 基本题目的流程图 1.5程序的运行结果 基本体运行结果如图1.2所示:图1.2 基本题目运行结果 2 改错题目 2.1 改正后程序 int x=1; int y;y=x+;printf(y=%d ,y);int z;z=+x;printf(z=%dn,z) 2.2 程序运行结果 程序完成的
2、功能:用x的初始值算出y与z的值。改正后的运行结果如图2.1所示: 语言课程设计自动化与电气工程学院 C 改正后的运行结果图2.1 综合题目3. 题目3.1 门课程。该系统实MN个学生的班级,每个学生有班级成绩管理系统,对一个有 现对班级成绩的录入、显示、修改、排序、保存等操作的管理。 3.2 程序的主要功能本程序实现对一个班学生某几门课程的录入,成绩的显示、成绩的保存、对成绩进行排、对成绩进行修改、对成绩进行统计(包括每门课程的最高分、平均分、超过 每门平均分的人数等),运行程序后退出程序。 3.3 各函数的功能 函数input(1) 门课程的输入。N位学生,M利用嵌套循环语句,实现对 函数
3、)output(2 实现对先前输入学生成绩的输出。 save函数(3) 将输入数据存入指定文件中。 函数4)rank( 计算出所有学生的成绩总分,并按照分数从高到低,进行输出。)change函数(5 判断密码是否正确,并对选中学生成绩进行修改。3.4程序流程图 开x输aAfFBbeEDdi=0icCgG输输fo科目科目Ycoui+定文YRetui+n 0,i=M总tra的统NiMi=0数,进N加密码i=0修改学名、学成绩fo详见5j=0生姓输出成输j+输学YYY输jM成Ni+i+NNN While (1) 结束 综合题目的流程图3.1 图 3.4 源程序 #include#includewin
4、dows.h#define N 10 /*学生人数*/ #define M 4 /*课程数*/ #define PASS 890508 /*修改密码*/ void input(); /*成绩输入*/ void output(); /*成绩显示*/ void save(); /*成绩保存*/ void rank(); /*成绩排序*/ void tran(); /*成绩修改*/ void coun(); /*成绩统计*/ void errorinput(); /*出错输出*/ struct student /*成绩数据结构体*/ char name10; int num; float score
5、M; double sum;studN;char subject_nameN10; char x; while(1) system(cls); printf( _n); printf( * 班级成绩管理系统 *n); *n); printf( * printf( * A 成绩录入 成绩显示 printf( * B printf( * 成绩保存 printf( * C * printf( D printf( * 成绩排序 *n); 成绩修改 * printf( E printf( *n); * * printf( F 成绩统计 *n); printf( * *n); printf( * G 退出
6、系统 *n); printf( 输入你的选择:); scanf(%c,&x); switch(x) case :case input(); break;output();save();rank();tran();coun();G default:errorinput(); getchar(); return 0;void input() /*成绩输入*/ int i,j;n); 请输入科目名称:瀠楲瑮? */ /*输入科目名称 for(i=0;M;%d:,i+1); 牰湩晴尨科目scanf(%s,subject_namei); 输入学生信息、各科成绩 /*/ for(i=0;N;n,i+1);
7、 :%d学生牰湩晴尨); 牰湩晴尨:scanf(%s,&studi.name);牰湩晴尨 学号: scanf(%d,&studi.num); for(j=0;j printf(%s成绩:,subject_namej); scanf(%f,&studi.scorej); printf(void output() /*成绩显示*/ printf( 学号 ); for(i=0;=M; printf( %s,subject_namei); /*在一行里面输出科目名称,相互之间有间隔。作为其下列表的目录。*/ printf(%1st_x001D_t,studi.name,studi.num); prin
8、tf(%5.1ft,studi.scorej); printf( !输入任意键返回!void save() /*成绩保存*/ FILE *fp; if(fp=fopen(data.txt,w)=NULL) /*文件打开*/ printf(File open error! return;i+) /*写入各科目名称*/ fprintf(fp, %s ,subject_namei); fprintf(fp,i+) /*写入学生数据、成绩信息*/ fprintf(fp,%5s ,studi.name,studi.num); fprintf(fp,%6.1f,studi.scorej); if(fclo
9、se(fp) /*文件关闭*/ printf(Can not close the file! printf(File save succeed!void rank() /*成绩排序*/ void swap(int *px,int *py); int *a; a=new intN; double tot;i+) /*循环计算总分*/ ai=i; for(j=0,tot=0; tot=tot+studi.scorej; studi.sum=tot;i+) N-i-1; if(studaj.sumstudhigh.scorej) high=i; printf(%s最高分: printf( %st 学
10、号%dtn,studhigh.name,studhigh.num);void state_ave() /*每门课程平均成绩*/ float sum,ave; for(i=0,sum=0; sum+=studi.scorej; ave=sum/N; printf(%s平均成绩:%.1fn,subject_namej,ave);void state_num() /*每门课程超过平均成绩的学生人数*/ int i,j,n; sum=sum+studi.scorej; for(i=0,n=0;ave) n+; printf(%s超过平均分的人数为:%dtn,subject_namej,n);void
11、errorinput() /*出错输出*/ 无效的输入,请重新输入!3.5 程序运行结果 程序运行初显示如图3.2所示: 程序运行初显示3.2 图 输入“A”进行成绩录入后,输入“B”,对成绩进行显示如图3.3所示:图3.3 成绩显示 输入C,成绩保存如图3.4所示:图3.4 成绩保存 输入D,进行成绩排序如图3.5所示: 成绩排序 图3.5 成绩修改如图3.6所示:图3.6 成绩修改 输入“F”,成绩统计如图3.7所示: 成绩统计3.7 图 4 结论与体会 这学期让我们做C语言课程设计,是因为这学期我们开了C语言这门课程,为了进一步培养我们结构化程序设计的思想,加深对高级语言基本语言要素和控
12、制结构的理解,所以让我们针对C语言中的重点和难点内容进行训。考完C语言后便去老师那里拿题。我们是班里的最后一个组,所以之前也听说了课程设计相当难做,班里C语言学的好的同学都在埋怨难做,这就让我觉得犯难了。当我把题目看完之后,认真想了想,基本题和改错题,靠自己一个人,应该完成不是难事。但是综合题,我就蒙了。基础题通过查资料基本完成了,但画流程图却是基本没有接触过,我又把我们课 - 1 - 本中的这一部分复习了一下,明白以后,滤清思路,利用visio办公软件,很快便做了出来。改错题也不是很难,理解了题意,读了一下程序,在VC6.0中走了几遍,便找出了错误,没多长时间,便也完成了。接下来是综合题,读
13、完题后,我就觉得不知如何下手了。我们组的这道综合题应该说不算是综合题里最难的,但我觉得还是能力有限,想破头皮,都不能够很完整的做出来,所以综合题就只能和同组的同学讨论、查资料、询问学长来获取一些宝贵的信息来完成了,在此期间学到了不少新知识,掌握了更多C语言的技巧。最终,经过我们小组成员的合作,还有和其他做同一道题小组成员的讨论,终于完成了这道题。但程序似乎还是不太完善,比如程序太长,不能够简洁明了。这次课程设计是在我们就军训期间抽空完成的,占用了我们大量的休息时间,但我觉得,从中学到的东西,让我得到更多,受益匪浅。由于水平和时间原因,并且又是第一次做,这次的课程设计报告,肯定有许多不足之处,望老师指出并加以指导,让学生的学习能更进一步。参考书目 1 谭浩强.C程序设计M.清华大学出版社,2010 2 杨萌华.线性代数M.北京大学出版社,2003 3 严蔚敏.数据结构M. 清华大学出版社,2004
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1