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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

大一C语言课程设计.docx

1、大一C语言课程设计 C语言课程设计报告班 级: 电气1004 学 号: 201009334 姓 名: 雷海燕 指导教师: 王果 评语: 2011 年 07 月 18 日1 基本题目1.1题目1.1 题目 有17个人围成一圈,从0号的人开始报数,凡报到3的倍数的人离开圈子,然后再数下去。直到最后只剩下一个人为止。问此人原来的位置是多少号。1.2 题目分析创建一个指针变量,指针变量中的初值为0至16。然后通过for循环将指针变量中所指的值是三的倍数的变量赋值为0,最后找出所要找的值。1.3 程序#include #define N 17int main()int i,j,k,aN+1,*p;for

2、(i=0,p=a;p(a+N)p=a+1;if(*p!=0)i+;if(i%3=0&i!=0)*p=0;i=0;k-;p+;for(i=1;i=N;i+)if(ai!=0)printf(最后留下的是%dn,ai);return 0;1.4流程图 图1.1 基本题目的流程图1.5程序的运行结果 基本体运行结果如图1.2所示:图1.2 基本题目运行结果2 改错题目2.1 改正后程序#include int main()int x=1; int y;y=x+;printf(y=%d ,y);int z;z=+x;printf(z=%dn,z)return 0;2.2 程序运行结果程序完成的功能:用x

3、的初始值算出y与z的值。改正后的运行结果如图2.1所示: 图2.1 改正后的运行结果3.综合题目3.1 题目班级成绩管理系统,对一个有N个学生的班级,每个学生有M门课程。该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。3.2 程序的主要功能本程序实现对一个班学生某几门课程的录入,成绩的显示、成绩的保存、对成绩进行排、对成绩进行修改、对成绩进行统计(包括每门课程的最高分、平均分、超过每门平均分的人数等),运行程序后退出程序。3.3 各函数的功能(1)input函数利用嵌套循环语句,实现对N位学生,M门课程的输入。(2)output函数实现对先前输入学生成绩的输出。(3)save函

4、数将输入数据存入指定文件中。(4)rank函数计算出所有学生的成绩总分,并按照分数从高到低,进行输出。(5)change函数判断密码是否正确,并对选中学生成绩进行修改。3.4程序流程图 图3.1 综合题目的流程图3.4 源程序 #include#include#include#define N 10 /*学生人数*/#define M 4 /*课程数*/#define PASS 890508 /*修改密码*/void input(); /*成绩输入*/void output(); /*成绩显示*/void save(); /*成绩保存*/void rank(); /*成绩排序*/void tr

5、an(); /*成绩修改*/void coun(); /*成绩统计*/void errorinput(); /*出错输出*/struct student /*成绩数据结构体*/ char name10; int num; float scoreM; double sum;studN;char subject_nameN10;int main() char x; while(1) system(cls); printf( _n); printf( * 班级成绩管理系统 *n); printf( * *n); printf( * A 成绩录入 *n); printf( * *n); printf(

6、 * B 成绩显示 *n); printf( * *n); printf( * C 成绩保存 *n); printf( * *n); printf( * D 成绩排序 *n); printf( * *n); printf( * E 成绩修改 *n); printf( * *n); printf( * F 成绩统计 *n); printf( * *n); printf( * G 退出系统 *n); printf( * *n); printf( _n); printf( 输入你的选择:); scanf(%c,&x); switch(x) case a:case A:input(); break;

7、case b:case B:output(); break; case c:case C:save(); break; case d:case D:rank(); break; case e:case E:tran(); break; case f:case F:coun(); break; case g:case G:return 0; default:errorinput(); break; getchar(); return 0;void input() /*成绩输入*/ int i,j; printf(请输入科目名称:n); for(i=0;iM;i+) /*输入科目名称*/ prin

8、tf(科目%d:,i+1); scanf(%s,subject_namei); for(i=0;iN;i+) /*输入学生信息、各科成绩*/ printf(学生%d:n,i+1); printf(姓名:); scanf(%s,&studi.name); printf(学号:); scanf(%d,&studi.num); for(j=0;jM;j+) printf(%s成绩:,subject_namej); scanf(%f,&studi.scorej); printf(n); void output() /*成绩显示*/ int i,j; system(cls); printf(姓名 学号

9、); for(i=0;i=M;i+) printf( %s,subject_namei); /*在一行里面输出科目名称,相互之间有间隔。作为其下列表的目录。*/ printf(n); for(i=0;iN;i+) printf(%1st%1dt,studi.name,studi.num); for(j=0;jM;j+) printf(%5.1ft,studi.scorej); printf(n); printf( !输入任意键返回!n); getchar();void save() /*成绩保存*/ FILE *fp; int i,j; if(fp=fopen(data.txt,w)=NULL

10、) /*文件打开*/ printf(File open error!n); return; for(i=0;iM;i+) /*写入各科目名称*/ fprintf(fp, %s ,subject_namei); fprintf(fp,n); for(i=0;iN;i+) /*写入学生数据、成绩信息*/ fprintf(fp,%5s%5d ,studi.name,studi.num); for(j=0;jM;j+) fprintf(fp,%6.1f,studi.scorej); fprintf(fp,n); if(fclose(fp) /*文件关闭*/ printf(Can not close t

11、he file!n); return; printf(File save succeed!n); getchar(); return;void rank() /*成绩排序*/ void swap(int *px,int *py); int *a; a=new intN; int i,j; double tot; system(cls); for(i=0;iN;i+) /*循环计算总分*/ ai=i; for(j=0,tot=0;jM;j+) tot=tot+studi.scorej; studi.sum=tot; for(i=0;iN;i+) for(j=0;jN-i-1;j+) if(stu

12、daj.sumstudaj+1.sum) swap(&aj,&aj+1); printf(学号 姓名 总分n); for(i=0;iN;i+) printf(%dt%st%.1fn,studai.num,studai.name,studai.sum); delete a; printf(!输入任意键退出!n); getchar();void swap(int *px,int *py) int t; t=*px; *px=*py; *py=t;void tran() /*成绩修改*/ char ch10,flag=Y; int num; int i,j; printf(请输入密码:); /检查密

13、码 scanf(%s,ch); if(strcmp(ch,123)!=0) printf(密码错误!(按任意键返回)n); getchar(); return; while(flag=Y|flag=y) /修改成绩 printf(输入要修改成绩的学生学号:); /按学号搜索 scanf(%d,&num); for(i=0;iN;i+) /i保存搜索到的学生序号 if(num=studi.num) break; if(i=N) if(num=0) return; else printf(没有找到学生,请重新输入!(输入0退出)n); continue; printf(请输入新的各科成绩:n);

14、/修改成绩 for(j=0;jM;j+) printf(%s:,subject_namej); scanf(%f,&studi.scorej); printf(是否继续修改(Y/N)?); scanf(%s,&flag); void coun() /*成绩统计*/ void state_high(); void state_ave(); void state_num(); char choice; system(cls); printf(&=&n); printf(& 选择菜单 &n); printf(& A.显示每门课程成绩最高的学生的基本信息 &n); printf(& B.显示每门课程的

15、平均成绩 &n); printf(& C.显示超过某门课程平均成绩的学生人数 &n); printf(& D.返回 &n); printf(&=&n); scanf(%s,&choice); switch(choice) case A:case a:state_high(); break; case B:case b:state_ave(); break; case C:case c:state_num(); break; case D:case d:break; default:errorinput();coun(); break; printf(按任意键返回主菜单n); getchar()

16、;void state_high() /*输出各科最高分的基本信息*/ int i,j,high; system(cls); for(j=0;jM;j+) for(i=0,high=0;istudhigh.scorej) high=i; printf(%s最高分:,subject_namej); printf( %st 学号%dtn,studhigh.name,studhigh.num); printf(n);void state_ave() /*每门课程平均成绩*/ int i,j; float sum,ave; system(cls); for(j=0;jM;j+) for(i=0,sum

17、=0;iN;i+) sum+=studi.scorej; ave=sum/N; printf(%s平均成绩:%.1fn,subject_namej,ave); printf(n);void state_num() /*每门课程超过平均成绩的学生人数*/ int i,j,n; float sum,ave; system(cls); for(j=0;jM;j+) for(i=0,sum=0;iN;i+) sum=sum+studi.scorej; ave=sum/N; for(i=0,n=0;iave) n+; printf(%s超过平均分的人数为:%dtn,subject_namej,n); p

18、rintf(n);void errorinput() /*出错输出*/ system(cls); printf(无效的输入,请重新输入!n);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语言这门课程,为了进一步培

19、养我们结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解,所以让我们针对C语言中的重点和难点内容进行训。考完C语言后便去老师那里拿题。我们是班里的最后一个组,所以之前也听说了课程设计相当难做,班里C语言学的好的同学都在埋怨难做,这就让我觉得犯难了。当我把题目看完之后,认真想了想,基本题和改错题,靠自己一个人,应该完成不是难事。但是综合题,我就蒙了。基础题通过查资料基本完成了,但画流程图却是基本没有接触过,我又把我们课本中的这一部分复习了一下,明白以后,滤清思路,利用visio办公软件,很快便做了出来。改错题也不是很难,理解了题意,读了一下程序,在VC6.0中走了几遍,便找出了错误

20、,没多长时间,便也完成了。接下来是综合题,读完题后,我就觉得不知如何下手了。我们组的这道综合题应该说不算是综合题里最难的,但我觉得还是能力有限,想破头皮,都不能够很完整的做出来,所以综合题就只能和同组的同学讨论、查资料、询问学长来获取一些宝贵的信息来完成了,在此期间学到了不少新知识,掌握了更多C语言的技巧。最终,经过我们小组成员的合作,还有和其他做同一道题小组成员的讨论,终于完成了这道题。但程序似乎还是不太完善,比如程序太长,不能够简洁明了。这次课程设计是在我们就军训期间抽空完成的,占用了我们大量的休息时间,但我觉得,从中学到的东西,让我得到更多,受益匪浅。由于水平和时间原因,并且又是第一次做,这次的课程设计报告,肯定有许多不足之处,望老师指出并加以指导,让学生的学习能更进一步。 参考书目1 谭浩强.C程序设计M.清华大学出版社,20102 杨萌华.线性代数M.北京大学出版社,20033 严蔚敏.数据结构M. 清华大学出版社,2004

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

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