




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
长江高校工程技术学院C语言课程设计实习报告同学成果管理系统同学姓名: 学号: 序号:专业班级:指导老师:报告日期:同学成果管理系统问题的提出:首先,由于我做的题目有两个文本文档,所以刚开头时我不知所措,当别的同学做一个文档的程序时,我还在考虑我应该做几个?应该怎么做?其次,在做程序的过程中有很多处细节没有注意,导致最后程序的执行消灭问题。再次,由于平常对基础掌握的不够坚固,导致编写程序时消灭瓶颈。功能要求:在主函数中读入原始数据文件的内容,保存在对应的结构体数组中,然后显示菜单,利用菜单调用各个函数,分别完成如下功能:对同学成果信息实现查询和显示功能:eq\o\ac(○,1)按同学的姓名查询的简略信息eq\o\ac(○,2)依据同学性别查询同学的信息,显示全部物品信息。将满意查询条件的整条记录显示在屏幕上。计算每位同学的总成果,并重写在另一个文本文件中。对同学成果信息实现排序功能:eq\o\ac(○,1)按姓名排序eq\o\ac(○,2)按总成果排序。将排序后的结果显示在屏幕上。要求实现两种排序方式。实现同学成果信息的添加功能:在录入新的同学信息前,先推断该生的学号是否存在,如果存在,则可进行数据的录入;如果不存在,则提示不能进行添加操作。实现删除功能:先输入同学的学号,若系统中有次同学信息,则删除该生信息;若无此生信息,则提示系统无此同学信息。实现修改功能:现输入要修改的同学学号,如果该生存在,则依据需要,修改同学的相关信息;若不存在,则提示系统中无此生信息。计算每个同学的加权平均数(英语的学分为5,数学的学分为4,C语言的学分为4.5物理的学分为3),加权平均数的小位数保留两位。退出功能.课程设计题目功能系统功能模块框图设计主菜单主菜单信息查询计算总成绩姓名排序和总成绩排序添加功能删除功能修改功能计算加权平均数退出计算加权平均数退出数据结构说明#include〈stdio。h>函数名printf、scanf、puts等的使用#include<string.h>“比较两个字符串"等功能的使用#include<stdlib.h>“安排size字节的存储区"功能的使用#defineN20将N的值定义为8structstu定义一个结构体,里面包含xh,xm,xb,csny,yy,sx,C,wl,zcj并定义一个结构体数组变量stu[10]{ charxh[10];同学学号 charxm[10];同学姓名 charxb[10];同学性别charcsny[10];同学诞生年月 floatyy;同学英语成果 floatsx;同学数学成果 floatC;同学C语言成果 floatwl;同学物理成果 floatzcj;同学总成果}stu[10];/*结构体数组变量*/voidmain()/*定义主函数*/{ readfile();/*执行函数readfile()*/ menu();/*执行函数menu()*/ }简略设计(1)实现同学信息的查询功能:定义函数cjcx,其功能是从键盘上输入数据与结构体中的数据进行比较推断,推断后输出相同同学的全部信息,最后在主函数中调用,并将查询后的结果显示在屏幕上。(2)实现计算每位同学的总成果功能:定义函数zcj,其功能就是以写的方式新建一个文本文件,以for循环计算每位同学的总成果,并写入新建的文本中。(3)实现物品信息的排序功能:定义函数px,其功能就是按程序要求的同学姓名对同学进行排序和同学总成果对同学进行排序,并将排序后的结果显示在屏幕上。(4)实现同学信息的添加功能:定义函数tj,其功能就是将满意条件的同学信息加入该文件中,如果该生的学号已存在,则提示不能进行添加操作。(5)实现同学信息的删除功能:定义函数sc,其功能就是先查询出要删除的同学学号,然后推断该生是否存在,若存在则进行操作,删除该生的信息,不存在则提示无此生信息.(6)实现同学信息的修改功能:定义函数xg,其功能就是先查询出要修改的同学学号,然后选择要修改的信息,并输入新的字段信息,完成其修改能。(7)实现计算每个同学的加权平均数功能:定义函数jqpjs,其功能就是依据题目的要求按学分计算加权平均数,然后依次计算每个同学的加权平均数,并输出。系统流程图输入错误,重新操作结束zcj()cx()?px()readfile()xg()sc()tj()执行查询功能执行计算总成绩功能执行排序功能执行修改功能执行删除功能执行添加功能开始main()10系统流程图输入错误,重新操作结束zcj()cx()?px()readfile()xg()sc()tj()执行查询功能执行计算总成绩功能执行排序功能执行修改功能执行删除功能执行添加功能开始main()100101010101执行退出功能tu()执行计算加权平均数功能jqpjs()函数cx的流程图输入有误,不存在该生信息输出学生信息学生姓名和性别01flay()cx()
函数cx的流程图输入有误,不存在该生信息输出学生信息学生姓名和性别01flay()cx()px()px()姓名/总成绩姓名/总成绩i=0;i<N-1;i++i=0;i<N-1;i++stu[k]ststu[k]stu[i]t排序结果排序结果函数函数px的流程图zcj()zcj()以W的方式在新建的文本中写入以W的方式在新建的文本中写入for(for(i=0;i<N-1;i++)0)在新建的文本中写入学生成绩在新建的文本中写入学生成绩关闭文件,程序执行结束关闭文件,程序执行结束函数zcj的流程图函数zcj的流程图tj()tj()if(strcmp(a,stu[i].xh)==0)if(strcmp(a,stu[i].xh)==0)flog=0flog=0请输入要添加的学生姓名请输入要添加的学生姓名输入学号有误,输入学号有误,请再次输入请输入要添加的性别请输入要添加的性别请输入要添加的出生年月请输入要添加的出生年月请输入要添加的成绩请输入要添加的成绩函数tj的流程图输出添加过后的程序
函数tj的流程图输出添加过后的程序sc()sc()if(strcmp(a,stu[i].xm)==0)if(strcmp(a,stu[i].xm)==0)flog=0flog=0删除该生信息输入有误!删除该生信息输入有误!结构体后面结构体后面成员往前面覆盖输出删除后的函数输出删除后的函数程序结束函数sc的流程图函数sc的流程图xg()xg()if(strcmp(a,stu[i].xh)==0)flog=0if(strcmp(a,stu[i].xh)==0)flog=0输入修改后的学生姓名输入修改后的学生姓名没有该生信息!没有该生信息!输入修改后的学生性别输入修改后的学生性别输入修改后的学生出生年月输入修改后的学生出生年月输入修改后的学生成绩输入修改后的学生成绩输入修改后的程序输入修改后的程序函数xg的流程图函数xg的流程图jqpjs()jqpjs() doubleaver[15]i=0;i<N;i++i=0;i<N;i++分别计算每个分别计算每个学生的加权平均数输出计算后的程序输出计算后的程序函数jqpjs的流程图函数jqpjs的流程图调试与测试图(1)程序主菜单图(2)输入1后执行查询功能,并查询后的结果图(3)输入2执行计算总成果功能图(4)输入3后执排序功能,有姓名和总成果排序图(5)输入4执行添加功能图(6)输入5删除功能,并删除后的结果图(7)输入6执行修改功能图(8)输入7执行计算加权平均数功能课程设计总结感觉短短几天课程设计就结束了,刚开头对这样一个陌生的事物产生了深厚的爱好。但在做课程设计的过程中简洁的程序内容往往令我不知所措,再加上其他学校的同学早已经回家,导致我一度产生了抵触情绪,但我很快糊涂过来,通过在做程序的过程中不断看其他同学写的程序,再向别人请教,甚至请其他班会做的同学手把手教我,我渐渐的恢复了信心,在接下来的课程中我虽然遇到很多困难,但还是坚持了下来。在本次课程设计的过程中我还是遇到了很多问题,首先,最令人头痛的是一些小失误,这些问题往往导致整条程序消灭问题,但这些问题的找出却又十分的烦琐。所以在以后的编程中肯定不要马虎大意。其次,在打开编程环境的过程中往往会消灭与文本对应不上的事情发生,导致程序打不开,或是打开错误。再次,在执行函数循环的过程中往往会消灭函数循环错误.还有,在对各个函数执行先后的问题上,我消灭过一点错误。在这次课设里,在跟老师和同学的沟通中学到了很多东西,对C语言后续的课程也有了深厚的爱好,同时对自己能在计算机编程领域的道路上走下去游了更足的信心。通过本次课设,我清楚的知道了printf、scanf、puts等函数名的使用方法;知道了关于程序设计开发的整体思维方法的理解;巩固了for循环、while循环等循环的使用技巧。总之,在以前课程的学习中一些不懂和不清楚的地方,在这次的课程设计中我重新来了一次回顾,有了一次更清楚的了解。附录:调试与测试#include<stdio.h〉#include<string。h〉#include〈stdlib.h>#defineN20structstu{ charxh[10]; charxm[10]; charxb[10];charcsny[10]; floatyy; floatsx; floatC; floatwl; floatzcj;}stu[10];voidone()/*调用的打开文本函数*/ {inti;FILE*fp=fopen("D:\\jyz61101.txt。txt",”r+”);if(fp==NULL){printf("cannotopenfile!");}for(i=0;i〈N;i++){ fscanf(fp,”%s%s%s%s%f%f%f%f”,stu[i].xh,stu[i].xm,stu[i].xb,stu[i].csny, &stu[i].yy,&stu[i].sx,&stu[i]。C,&stu[i].wl);}}voidreadfile(){inti;FILE*fp=fopen("D:\\jyz61101.txt。txt”,”r+”);if(fp==NULL){printf(”cannotopenfile!");}for(i=0;i〈N;i++){ fscanf(fp,”%s%s%s%s%f%f%f%f”,stu[i]。xh,stu[i]。xm,stu[i]。xb,stu[i]。csny, &stu[i].yy,&stu[i].sx,&stu[i].C,&stu[i]。wl);}printf(”学号 姓名 性别 诞生年月英语数学 C语言物理总成果"); for(i=0;i<N;i++) printf("%s%8s%5s%1s%9。1f%9.1f%9。1f%9.1f\n”,stu[i]。xh,stu[i].xm, stu[i].xb,stu[i].csny,stu[i]。yy,stu[i].sx,stu[i].C,stu[i].wl);fclose(fp);}voidcjcx()/*同学成果查询*/ {inti,flag=1; chara[10]; charb[10]; printf("请输入要查询的姓名和性别:”); scanf(”%s%s”,a,b); printf("\n”);for(i=0;i<N;i++) {if(strcmp(a,stu[i].xm)==0&&strcmp(b,stu[i]。xb)==0) {printf("学号 姓名 性别 诞生年月英语数学 C语言物理总成果”); printf("%s%8s%5s%1s%9.1f%9。1f%9。1f%9。1f\n”,stu[i].xh,stu[i]。xm, stu[i]。xb,stu[i]。csny,stu[i]。yy,stu[i].sx,stu[i]。C,stu[i]。wl); flag=0;break;} } if(flag) { printf("对不起,您的输入有误,不存在您输入的同学信息!\n”); } } voidzcj()/*同学总成果*/{ inti;charstr[]="学号 姓名 性别 诞生年月英语数学 C语言物理总成果";FILE*fo=fopen(”D:\\jyz1。txt。txt",”w");if(fo==NULL){printf("cannotopenfile!");}one(); printf("学号 姓名 性别 诞生年月英语数学 C语言物理总成果\n"); for(i=0;i<N;i++) { stu[i].zcj=stu[i].sx+stu[i]。yy+stu[i].C+stu[i]。wl; printf(”%s%8s%5s%1s%9。1f%9。1f%9。1f%9。1f%9。1f\n",stu[i]。xh,stu[i]。xm,stu[i]。xb, stu[i].csny,stu[i]。yy,stu[i]。sx,stu[i]。C,stu[i].wl,stu[i]。zcj); }fputs(str,fo); for(i=0;i〈N;i++) {stu[i]。zcj=stu[i]。sx+stu[i]。yy+stu[i].C+stu[i].wl;fprintf(fo,”\n%s%8s%5s%1s%9.1f%9。1f%9.1f%9.1f%9。1f\n",stu[i].xh,stu[i].xm,stu[i].xb, stu[i]。csny,stu[i]。yy,stu[i].sx,stu[i]。C,stu[i].wl,stu[i].zcj); } fclose(fo);}voidpx()/*排序功能*/{inti,j,k;/*按同学姓名排序*/structstut;printf("******************按同学姓名排序:\n”);printf(”\n");for(i=0;i〈N—1;i++) {k=i;for(j=i+1;j〈N;j++) { if(strcmp(stu[k].xm,stu[j].xm)〉0) { k=j; } } t=stu[k]; stu[k]=stu[i]; stu[i]=t; }printf(”学号 姓名 性别 诞生年月英语数学 C语言物理总成果”);for(i=0;i<N;i++) { stu[i]。zcj=stu[i]。yy+stu[i].sx+stu[i]。C+stu[i]。wl; printf("%s%8s%5s%1s%9.1f%9.1f%9。1f%9。1f%9。1f\n",stu[i].xh,stu[i].xm, stu[i]。xb,stu[i]。csny,stu[i].yy,stu[i]。sx,stu[i]。C,stu[i].wl,stu[i]。zcj); }printf("\n\n”);/*按总成果排序*/ printf(”*******************按同学总成果排序:\n"); printf("\n”); for(i=0;i〈N-1;i++) {k=i; for(j=i+1;j〈N;j++) { if(stu[k]。zcj<stu[j].zcj) { k=j; } } t=stu[k]; stu[k]=stu[i]; stu[i]=t; }printf("学号 姓名 性别 诞生年月英语数学 C语言物理总成果");for(i=0;i〈N;i++) { stu[i].zcj=stu[i]。yy+stu[i].sx+stu[i]。C+stu[i]。wl; printf("%s%8s%5s%1s%9。1f%9.1f%9。1f%9.1f%9。1f\n”,stu[i]。xh,stu[i].xm, stu[i]。xb,stu[i].csny,stu[i].yy,stu[i].sx,stu[i]。C,stu[i]。wl,stu[i]。zcj); } }voidtj()/*添加同学功能*/ {inti; intflag=1; chara[10]; printf(”请输入您要添加的同学学号:"); scanf(”%s”,a); printf(”\n”);for(i=0;i<N;i++) {if(strcmp(a,stu[i].xh)==0) {printf(”您输入的学号已存在,请再次输入:”); break; } } if(flag) { printf("请输入同学学号:"); scanf("%s”,stu[10]。xh); printf("请输入同学姓名:"); scanf(”%s",stu[10].xm); printf(”请输入同学性别:"); scanf(”%s”,stu[10].xb); printf(”请输入同学诞生年月:"); scanf(”%s",stu[10]。csny); printf(”请输入同学英语成果:”); scanf(”%f”,&stu[10]。yy); printf(”请输入同学数学成果:”); scanf("%f”,&stu[10].sx); printf(”请输入同学C语言成果:"); scanf(”%f”,&stu[10]。C); printf(”请输入同学物理成果:"); scanf("%f”,&stu[10]。wl);printf(”学号 姓名 性别 诞生年月英语数学 C语言物理总成果");stu[10]。zcj=stu[10].yy+stu[10]。sx+stu[10]。C+stu[10].wl; printf("%s%7s%5s%1s%8.1f%8.1f%9.1f%8。1f%8。1f\n”,stu[10]。xh,stu[10].xm, stu[10].xb,stu[10]。csny,stu[10].yy,stu[10]。sx,stu[10].C,stu[10].wl,stu[10].zcj); } }voidsc()/*删除同学信息*/{ inti,j; chara[10]; intflag=0;FILE*fp=fopen("D:\\jyz61101。txt。txt","r+");if(fp==NULL){printf(”cannotopenfile!");} for(i=0;i〈10;i++){ fscanf(fp,”%s%s%s%s%f%f%f%f”,stu[i]。xh,stu[i]。xm,stu[i]。xb,stu[i]。csny, &stu[i]。yy,&stu[i]。sx,&stu[i].C,&stu[i]。wl);} printf("输入要删除信息的同学的姓名:”); scanf("%s”,a); for(i=0;i〈N;i++) { if(strcmp(a,stu[i].xm)==0) { for(j=i;j〈N;j++) stu[j]=stu[j+1];printf(”学号 姓名 性别 诞生年月英语数学 C语言物理总成果\n"); for(i=0;i〈N;i++) {stu[i].zcj=stu[i]。yy+stu[i]。sx+stu[i].C+stu[i]。wl; printf(”%s%8s%5s%1s%9.1f%9。1f%9.1f%9。1f%9.1f\n”,stu[i]。xh,stu[i].xm,stu[i]。xb, stu[i].csny,stu[i]。yy,stu[i].sx,stu[i]。C,stu[i].wl,stu[i]。zcj); }} flag=1;break; } if(flag) {printf(”输入错误!\n"); } }voidxg()/*修改同学信息*/{inti;chara[10];intflag=1;FILE*fp=fopen("D:\\jyz61101.txt.txt","a+”);if(fp==NULL){printf(”cannotopenfile!");} for(i=0;i〈N;i++){ fscanf(fp,"%s%s%s%s%f%f%f%f”,stu[i]。xh,stu[i]。xm,stu[i].xb,stu[i].csny, &stu[i].yy,&stu[i].sx,&stu[i].C,&stu[i]。wl);} printf(”输入要修改信息的同学的学号:"); scanf("%s",a); for(i=0;i〈N;i++) { if(strcmp(a,stu[i].xh)==0) {printf(”姓名:”); scanf("%s",stu[i].xm);printf(”性别:”); scanf(”%s”,stu[i]。xb); printf("出身年月如(1991年1月):"); scanf("%s",stu[i].csny); printf(”英语:"); scanf("%f",&stu[i]。yy); printf("数学:"); scanf("%f”,&stu[i]。sx); printf(”c语言:”); scanf("%f”,&stu[i].C); printf(”物理:”); scanf("%f",&stu[i]。wl); stu[i].zcj=stu[i]。yy+stu[i]。sx+stu[i]。C+stu[i]。wl; printf("学号 姓名 性别 诞生年月英语数学 C语言物理总成果”); printf("%s%7s%5s%1s%9。1f%9。1f%9.1f%9.1f%9.1f\n",stu[i]。xh,stu[i].xm,stu[i]。xb, stu[i].csny,stu[i].yy,stu[i]。sx,stu[i].C,stu[i].wl,stu[i].zcj); fprintf(fp,”\n%s%5s%5s%1s%9.1f%9。1f%9。1f%9。1f%9.1f\n",stu[i].xh,stu[i]。xm,stu[i].xb, stu[i].csny,stu[i].yy,stu[i]。sx,stu[i]。C,stu[i]。wl,stu[i]。zcj); flag=0;break; } } if(flag) printf(”没有该同学的信息!\n”);}voidjqpjs()/*计算加权平均数*/{ inti; doubleaver[15]; one();printf("学号 姓名 性别 诞生年月英语数学C语言物理加权平均数");for(i=0;i〈N;i++) { aver[i]=(stu[i]。sx*4+stu[i]。yy*5+stu[i]。C*4。5+stu[i].wl*3)/(4+5+4。5+3); printf(”%s%8s%5s%1s%9。1f%9。1f%9。1f%9.1f%9。1f\n",stu[i].xh,stu[i].xm,stu[i]。xb,stu[i].csny,stu[i]。yy,stu[i].sx,stu[i]。C,stu[i].wl,aver[i]); }}voidtc()/******退
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025 学校扩建工程设计与施工合同
- 2025-2030电影广告项目商业计划书
- 2025-2030电力设备产业园区定位规划及招商策略咨询报告
- 2025-2030玻片染色系统行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030环保建材行业风险投资发展分析及投资融资策略研究报告
- 2025-2030物流行业风险投资发展分析及运作模式与投融资研究报告
- 2025-2030牙科聚合烧瓶行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030灌肠注射器行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 2025-2030温泉特色酒店行业发展分析及投资战略研究报告
- 2025-2030混凝土机械行业市场发展现状及竞争格局与投资研究报告
- 儿童行为问题的处理与干预
- 人防车位价格评估报告
- 幼儿园大班音乐《建筑之歌》
- 智能化弱电工程深化设计工作流程
- 四川省2023年中考数学试卷十五套及答案
- 河(湖)巡查记录表
- 创意美术《小青蛙呱呱呱》课件
- 保护性施工方案
- 教科版五年级下册科学3-3《珍惜水资源》
- COSO内部控制整体框架简介
- 初中英语- I'd love to sail across the Pacific.教学课件设计
评论
0/150
提交评论