大一C语言课程设计_第1页
大一C语言课程设计_第2页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大一c语言课程设计 两道小题,一道大题,大题是,班级成果管理系统,对一个有n个同学的班级,每个同学有m门课程。该系统实现对班级成果的录入、显示、修改、排序、保存等操作的管理。 c语言课程设计报告 班 级: 电气1004 学 号: 202109334 姓 名: 雷海燕 指导老师: 王果 月 两道小题,一道大题,大题是,班级成果管理系统,对一个有n个同学的班级,每个同学有m门课程。该系统实现对班级成果的录入、显示、修改、排序、保存等操作的管理。 1 基本题目 1.1题目 1.1 题目 有17个人围成一圈,从0号的人开头报数,凡报到3的倍数的人离开圈子,然后再数下去。直到最终只剩下一个人为止。问此人

2、原来的位置是多少号。 1.2 题目分析 创建一个指针变量,指针变量中的初值为0至16。然后通过for循环将指针变量中所指的值是三的倍数的变量赋值为0,最终找出所要找的值。 1.3 程序 #include stdio.h #define n 17 int main() int i,j,k,an+1,*p; for(i=0,p=a;p=a+n;i+,p+) *p=i; p=a+1; k=n; for(i=0,j=1;k!=1;j+) if(p(a+n) p=a+1; if(*p!=0) i+; if(i%3=0i!=0) *p=0;i=0;k-; p+; for(i=1;i=n;i+) if(ai

3、!=0) printf(最终留下的是%dn,ai); return 0; 1.4流程图 两道小题,一道大题,大题是,班级成果管理系统,对一个有n个同学的班级,每个同学有m门课程。该系统实现对班级成果的录入、显示、修改、排序、保存等操作的管理。 图1.1 基本题目的流程图 两道小题,一道大题,大题是,班级成果管理系统,对一个有n个同学的班级,每个同学有m门课程。该系统实现对班级成果的录入、显示、修改、排序、保存等操作的管理。 1.5程序的运行结果 基本体运行结果如图1.2所示: 图1.2 基本题目运行结果 2 改错题目 2.1 改正后程序 #include stdio.h int main()

4、int x=1; int y; y=x+; printf(y=%d ,y); int z; z=+x; printf(z=%dn,z) return 0; 2.2 程序运行结果 程序完成的功能:用x的初始值算出y与z的值。 改正后的运行结果如图2.1所示: 两道小题,一道大题,大题是,班级成果管理系统,对一个有n个同学的班级,每个同学有m门课程。该系统实现对班级成果的录入、显示、修改、排序、保存等操作的管理。 图2.1 改正后的运行结果 3.综合题目 3.1 题目 班级成果管理系统,对一个有n个同学的班级,每个同学有m门课程。该系统实现对班级成果的录入、显示、修改、排序、保存等操作的管理。 3

5、.2 程序的主要功能 本程序实现对一个班同学某几门课程的录入,成果的显示、成果的保存、对成果进行排、对成果进行修改、对成果进行统计(包括每门课程的最高分、平均分、超过每门平均分的人数等),运行程序后退出程序。 3.3 各函数的功能 (1)input函数 利用嵌套循环语句,实现对n位同学,m门课程的输入。 (2)output函数 实现对从前输入同学成果的输出。 (3)save函数 将输入数据存入指定文件中。 (4)rank函数 计算出全部同学的成果总分,并根据分数从高到低,进行输出。 (5)change函数 推断密码是否正确,并对选中同学成果进行修改。 3.4程序流程图 两道小题,一道大题,大题

6、是,班级成果管理系统,对一个有n个同学的班级,每个同学有m门课程。该系统实现对班级成果的录入、显示、修改、排序、保存等操作的管理。 图3.1 综合题目的流程图 两道小题,一道大题,大题是,班级成果管理系统,对一个有n个同学的班级,每个同学有m门课程。该系统实现对班级成果的录入、显示、修改、排序、保存等操作的管理。 3.4 源程序 #includestdio.h #includestring.h #includewindows.h #define n 10 /*同学人数*/ #define m 4 /*课程数*/ #define pass 890508 /*修改密码*/ void input()

7、; /*成果输入*/ void output(); /*成果显示*/ void save(); /*成果保存*/ void rank(); /*成果排序*/ void tran(); /*成果修改*/ 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); prin

8、tf( _n); printf( * 班级成果管理系统 *n); printf( * *n); printf( * a 成果录入 *n); printf( * *n); printf( * b 成果显示 *n); printf( * *n); printf( * c 成果保存 *n); printf( * *n); printf( * d 成果排序 *n); printf( * *n); printf( * e 成果修改 *n); printf( * *n); printf( * f 成果统计 *n); printf( * *n); 两道小题,一道大题,大题是,班级成果管理系统,对一个有n个同

9、学的班级,每个同学有m门课程。该系统实现对班级成果的录入、显示、修改、排序、保存等操作的管理。 printf( * g 退出系统 *n); printf( * *n); printf( _n); printf( 输入你的选择:); scanf(%c,x); switch(x) case 'a':case 'a':input(); break; case 'b':case 'b':output(); break; case 'c':case 'c':save(); break; case 'd

10、':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+) printf(科目%d:,i

11、+1); scanf(%s,subject_namei); for(i=0;in;i+) printf(同学%d:n,i+1); printf(姓名:); scanf(%s,); printf(学号:); scanf(%d,studi.num); for(j=0;jm;j+) /*成果输入*/ /*输入科目名称*/ /*输入同学信息、各科成果*/ 两道小题,一道大题,大题是,班级成果管理系统,对一个有n个同学的班级,每个同学有m门课程。该系统实现对班级成果的录入、显示、修改、排序、保存等操作的管理。 printf(%s成果:,subject_namej); scanf(%f

12、,studi.scorej); printf(n); void output() /*成果显示*/ int i,j; system(cls); printf(姓名 学号 ); for(i=0;i=m;i+) printf( %s,subject_namei); /*在一行里面输出科目名称,相互之间有间隔。作为其下列表的名目。*/ printf(n); for(i=0;in;i+) printf(%1st%1dt,,studi.num); for(j=0;jm;j+) printf(%5.1ft,studi.scorej); printf(n); printf( !输入任意键

13、返回!n); getchar(); void save() /*成果保存*/ file *fp; int i,j; if(fp=fopen(data.txt,w)=null) /*文件打开*/ 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.num); for(j=0;jm;j+) fprint

14、f(fp,%6.1f,studi.scorej); 两道小题,一道大题,大题是,班级成果管理系统,对一个有n个同学的班级,每个同学有m门课程。该系统实现对班级成果的录入、显示、修改、排序、保存等操作的管理。 fprintf(fp,n); if(fclose(fp) /*文件关闭*/ printf(can not close the file!n); return; printf(file save succeed!n); getchar(); return; void rank() /*成果排序*/ void swap(int *px,int *py); int *a; a=new intn;

15、 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(studaj.sumstudaj+1.sum) swap(aj,aj+1); printf(学号 姓名 总分n); for(i=0;in;i+) printf(%dt%st%.1fn,studai.num,,studai.sum); delete a;

16、printf(!输入任意键退出!n); getchar(); void swap(int *px,int *py) int t; t=*px; *px=*py; 两道小题,一道大题,大题是,班级成果管理系统,对一个有n个同学的班级,每个同学有m门课程。该系统实现对班级成果的录入、显示、修改、排序、保存等操作的管理。 void tran() /*成果修改*/ char ch10,flag='y' int num; int i,j; printf(请输入密码:); /检查密码 scanf(%s,ch); if(strcmp(ch,123)!=0) printf(密码错误!(按任意键

17、返回)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); /修改成果 for(j=0;jm;j+) printf(%s:,subj

18、ect_namej); scanf(%f,studi.scorej); printf(是否连续修改(y/n)?); scanf(%s,flag); void coun() /*成果统计*/ 两道小题,一道大题,大题是,班级成果管理系统,对一个有n个同学的班级,每个同学有m门课程。该系统实现对班级成果的录入、显示、修改、排序、保存等操作的管理。 void state_high(); void state_ave(); void state_num(); char choice; system(cls); printf(=n); printf( 选择菜单 n); printf( a.显示每门课程成

19、果最高的同学的基本信息 n); printf( b.显示每门课程的平均成果 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; c

20、ase 'd':case 'd':break; default:errorinput();coun(); break; printf(按任意键返回主菜单n); getchar(); void state_high() /*输出各科最高分的基本信息*/ int i,j,high; system(cls); for(j=0;jm;j+) for(i=0,high=0;in;i+) /*high:最高分的stuhigh*/ if(studi.scorejstudhigh.scorej) high=i; printf(%s最高分:,subject_namej); pri

21、ntf( %st 学号%dtn,,studhigh.num); printf(n); 两道小题,一道大题,大题是,班级成果管理系统,对一个有n个同学的班级,每个同学有m门课程。该系统实现对班级成果的录入、显示、修改、排序、保存等操作的管理。 void state_ave() /*每门课程平均成果*/ int i,j; float sum,ave; system(cls); for(j=0;jm;j+) for(i=0,sum=0;in;i+) sum+=studi.scorej; ave=sum/n; printf(%s平均成果:%.1fn,subject_namej

22、,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;in;i+) if(studi.scorejave) n+; printf(%s超过平均分的人数为:%dtn,subject_namej,n); printf(n); void errorinput() /*出错输出*/ system(cls); p

23、rintf(无效的输入,请重新输入!n); 两道小题,一道大题,大题是,班级成果管理系统,对一个有n个同学的班级,每个同学有m门课程。该系统实现对班级成果的录入、显示、修改、排序、保存等操作的管理。 3.5 程序运行结果 程序运行初显示如图3.2所示: 图3.2 程序运行初显示 输入“a”进行成果录入后,输入“b”,对成果进行显示如图3.3所示: 图3.3 成果显示 两道小题,一道大题,大题是,班级成果管理系统,对一个有n个同学的班级,每个同学有m门课程。该系统实现对班级成果的录入、显示、修改、排序、保存等操作的管理。 输入c,成果保存如图3.4所示: 图3.4 成果保存 输入d,进行成果排序如图3.5所示: 图3.5 成果排序 成果修改如图3.6所示: 两道小题,一道大题,大题是,班级成果管理系统,对一个有n个同学的班级,每个同学有m门课程。该系统实现对班级成果的录入、显示、修改、排序、保存等操作的管理。 图3.6 成果修改 输入“f”,成果统计如图3.7所示: 图3.7 成果统计 4 结论与体会 这学期让我们做c语言课程设计,是由于这学期我们开了c语言这门课程,为了进一步培育我们结构化程序设计的思想,加深对高级语言基本语言要素和掌

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论