已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录1 前言12 需求分析12.1课程设计目的12.2 课程设计任务12.3 设计环境12.4 开发语言13 分析和设计13.1 模块设计13.2 系统流程图33.3 主要模块的流程图54 具体代码实现75 课程设计总结115.1 程序运行结果 / 预期运行结果115.2 课程设计体会12参考文献12致 谢131 前言编写一个程序来处理学生成绩管理。通过一个结构体数组来存放输入的每一位学生的信息(包括姓名、学号、性别、年龄、五门课成绩及总分)。可以键入学生信息,保存学生信息到文件,计算学生总分,将其总分排名,显示及保存排名后的结果。2 需求分析2.1课程设计目的学生在教师指导下运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。通过课程设计(论文),提高学生综合运用所学知识来解决实际问题、使用文献资料、及进行科学实验或技术设计的初步能力,为毕业设计(论文)打基础2.2 课程设计任务1.编写一个菜单驱动的学生成绩管理程序。实现如下管理功能:(1).计算每个学生的总分。(2).按总分从高到低排序。2.课程设计交流(每天写课程设计日记,通过邮件、电话等方式向老师汇报课程设计情况);按要求写好课程设计论文。2.3 设计环境(1)WINDOWS XP系统(2)Visual C+2.4 开发语言C语言3 分析和设计3.1 模块设计定义结构体类型struct 表示学生信息(包括:姓名、学号、年龄、性别及五门课成绩),定义一个结构体数组STU studentM,用来存放M个学生的信息,假设M为10。如下所示:#define M 10typedef struct char name9,number11; int age; char sex; int scoreS+1;STU; STU studentM;定义一个void sum()函数,本函数的功能是将计算每个学生的总分。定义一个void sort()函数,本函数的功能是按总分从高到低排序。3.2 系统流程图Choice=3NNNYYYChoice=2调用保存函数save()break调用输入函数input()输入choicebreakChoice=1输出管理界面开始 调用求和函数sum()break NNNYChoice=4调用排序函数sort()breakChoice=5调用显示函数outputs()breakChoice=6调用显示保存函数outputf()breakYY NChoice=7调用退出函数exit(0)break结束Y输出“错误!请重新选择”图3.1 系统流程图3.3 主要模块的流程图 YYNNinti,j;i=0iM-1printf(n学生成绩已排序。nn);i+studenti.scoreSstudentj.scoreSt=studenti,studenti=studentj,studentj=t;图3.2 sort流程图YNNinti,j,s;i=0iMs=0;j=0jSj+i+printf(n 该学生成绩总分已完成计算nn);studenti.scorej=s;Y 图3.3 sum流程图4 具体代码实现#includestdio.h#includestring.h#define M 10#define S 5/*用结构体存放一个学生信息(姓名、学号、年龄、性别及5门课的成绩)*/typedef struct char name9,number11; int age; char sex; int scoreS+1;STU; STU studentM; void input(),sum(),sort(),outputs(),outputf(),save(); void main() char choice; while(1) printf(ttt学生成绩管理系统n); printf(ttt1. 输入十个学生信息n); printf(ttt2. 保存十个学生信息到文件data1.txtn); printf(ttt3. 计算学生总分n); printf(ttt4. 对学生总分排序n); printf(ttt5. 显示结果n); printf(ttt6. 保存结果到data2.txtn); printf(ttt7. 退出程序n); printf(请输入17选择:n); scanf( %c,&choice); switch(choice) case 1: input();break; case 2: save();break; case 3: sum();break; case 4: sort();break; case 5: outputs();break; case 6: outputf();break; case 7: exit(0);break; default:printf(错误!请重新选择n); void input()/*是从键盘输入10名学生的信息:姓名、学号、年龄、性别及5门课的成绩*/ int i,j; for(i=0;iM;i+) do printf(请输入第%d个学生的姓名: ,i+1); gets();gets(); while(strlen()=8); do printf(请输入第%d个学生的学号: ,i+1); gets(studenti.number); while(strlen(studenti.number)!=10); do printf(请输入第%d个学生的年龄0,200: ,i+1); scanf(%d,&studenti.age); while(studenti.age200); do printf(请输入第%d个学生的性别(f,F,m,M): ,i+1); scanf( %c,&studenti.sex); while(studenti.sex!=m&studenti.sex!=M&studenti.sex!=f&studenti.sex!=F); printf(请输入第%d个学生的五门课成绩:n,i+1); for(j=0;jS;j+) do printf(ttt第%d门成绩0,100: ,j+1); scanf(%d,&studenti.scorej);while(studenti.scorej100); printf(nn); printf(数据输入完成nn); void save()/*本函数的功能是将这10名学生的信息输出到data.txt文件中*/ int i,j; FILE *fp; if(fp=fopen(d:data1.txt,w)=NULL) printf(不能打开文件);exit(0); for(i=0;iM;i+) fprintf(fp,%10s %11s %2d %c ,,studenti.number,studenti.age,studenti.sex); for(j=0;jS;j+)fprintf(fp,%3d ,studenti.scorej); fprintf(fp,n); fclose(fp); printf(n 数据已经写入文件data1.txt.nn); void sum()/*本函数的功能是将计算每个学生的总分*/ int i,j,s; for(i=0;iM;i+) s=0; for(j=0;jS;j+) s+=studenti.scorej; studenti.scorej=s; printf(n 该学生成绩总分已完成计算nn); void sort()/*本函数的功能是按总分从高到低排序*/ int i,j; STU t; for(i=0;iM-1;i+) for(j=i+1;jM;j+) if(studenti.scoreSstudentj.scoreS) t=studenti,studenti=studentj,studentj=t; printf(n学生成绩已排序。nn); void outputs()/*本函数的功能是把最后结果输出到屏幕上*/int i,j; printf(tt学生管理基本界面n); printf( -n); printf( 姓名 学号 年龄 性别 语文 数学 英语 物理 化学 总分 n); for(i=0;iM;i+) printf(%9s%11s%5d%5c,,studenti.number,studenti.age,studenti.sex); for(j=0;jS+1;j+) printf(%7d,studenti.scorej); printf(nn); void outputf()/*本函数的功能是把最后结果输出到data2.txt文件中*/ int i,j; FILE *fp; if(fp=fopen(d:data2.txt,w)=NULL) printf(不能打开文件n);exit(0); fprintf(fp,t 学生管理基本界面n); fprintf(fp, -n); fprintf(fp, 姓名 学号 年龄 性别 语文 数学 英语 物理 化学 总分 n); for(i=0;iM;i+) fprintf(fp,%10s%11s%5d%5c,,studenti.number,studenti.age,studenti.sex); for(j=0;jS+1;j+) fprintf(fp,%7d,studenti.scorej); fprintf(fp,n); fclose(fp); printf(n学生管理基本界面已经写入文件data2.txtnn); 5 课程设计总结5.1 程序运行结果 / 预期运行结果菜单界面总分计算完成成绩排序完成5.2 课程设计体会在初学C语言的一个学期后,我们进行了C语言实训阶段,尝试编写一个比较复杂的程序系统。在为期两周的时间中,我们同组的同学共同的感受是:C语言实训和平时上课所接触的程序是有很大不同的,所经受的考验和克服的困难是平时所无法比拟的。好在同组的搭档们精诚合作,分工明确,有问题共同解决,攻克了C语言实训的复杂程序。在这里,我作为其中的参与者,感触良多。在这次实训中,我对对 C 语言有了一个更深的了解认识,也对这个学期学的知识得到巩固,还尝试运行编程,每次运行程序成功,让我对下面的项目就充满信心。通过自己与同学合作编写程序,最终把最初的理论知识转化基本技能。参考文献1 张福祥. C语言程序设计M. 沈阳:辽宁大学出版社,2010.12 张福祥,王萌C语言程序设计习题解答与实验实训M沈阳:辽宁大学出版社,2010.13 牛莉,刘远军等计算机等级考试辅导教程M北京:中国铁
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 棚户改造分房协议书
- 水利劳务分包合同范本
- 薪资待遇合同补充协议
- 井巷喷浆工程协议书
- 新房延期交房协议书
- 油泥回收销售合同范本
- 文物委托保管协议书
- 买车转款委托协议书
- 预估价格要签协议合同
- 水库项目承包合同范本
- 传感器实验报告
- 三国志9全人物能力值表
- 上海市轨道交通14号线工程通号系统安装工程施工组织设计(最终版)
- Web前端开发项目教程PPT全套完整教学课件
- 安徽省司尔特肥业股份有限公司年产90万吨新型复合肥和年产25万吨硫铁矿制硫酸项目环境影响报告书
- 战伤救护理论考核题库
- 病人心理与心理护理课件
- GB/T 24202-2021光缆增强用碳素钢丝
- 传输专业常用仪表
- 思想道德与法治课件:第五章 第二节 吸收借鉴优秀道德成果
- CloudEngine S系列园区交换机-POC测试方案
评论
0/150
提交评论