版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一.应用程序名称:Student.exe二.应用程序的主题、设计目的:应用程序的主题是管理好学生成绩,设计目的是进一步掌握和实践C语言编程。三、应用程序简介:1.基本结构:2.基本内容:编写一个成绩管理程序。每个学生的信息包含学生学号、姓名、性别和6门课程成绩。(1)学生信息创建(顺序存储和链式存储都可);(2)各个信息的输入与输出;(3)按总成绩实现升序排列;(4)按学号查询成绩;(5)输出各门课程成绩高于90和低于60的学生的姓名及该门课程的成绩。3.运行环境: 本程序使用Visual C+ 2008编译器制作,在windows 7 64bit系统中成功运行,windows XP也可正常运
2、行。 4.测试结果:经过测试,所要求的内容基本上达到,个人认为比较好的地方是筛选和排序,不足之处是不明白存储方面的知识,以及程序流程的认识。5.实验心得:参考了许多网上资料,存储方面的知识依然不懂,部分代码都不是自己写的,而且看不太懂,所以程序流程自己都不太清楚,但是,经过老师验收代码,说了很多问题之后,明白了那些不知道也不明白的问题,学到了很多东西,更好的理解了语言的编程,明白了看代码与写代码的实际区别,以后要好好努力。附录:/ 学生信息管理.cpp : 定义控制台应用程序的入口点。/#include stdio.h#include stdafx.h#include string.h#inc
3、lude stdlib.h/*定义学生结构体*/struct Student char ID20,Name20,Sex20; float Chinese/*语文*/; float Math/*数学*/; float English/*英语*/; float Physics/*物理*/; float Chemical/*化学*/; float Biological/*生物*/; float Add/*总分值*/;/*声明学生数组及学生数量*/struct Student students100;int num=0;/*求总成绩值*/float Add(struct Student stu) re
4、turn stu.Chinese+stu.Math+stu.English+stu.Physics+stu.Chemical+stu.Biological;/*通过学号返回数组下标*/int Student_SearchByIndex(char id) int i; for (i=0;inum;i+) if (strcmp(studentsi.ID,id)=0) return i; return -1;/*显示单条学生记录*/void Student_DisplaySingle(int index) printf(%8s%6s%6s%8s%8s%8s%8s%8s%8s%8sn,学号,姓名,性别
5、,语文,数学,英语,物理,化学,生物,总分); printf( -n); printf(%8s%6s%6s%8.1f%8.1f%8.1f%8.1f%8.1f%8.1fn,studentsindex.ID,studentsindex.Name,studentsindex.Sex, studentsindex.Chinese,studentsindex.Math,studentsindex.English, studentsindex.Physics,studentsindex.Chemical,studentsindex.Biological,studentsindex.Add);/*插入学生信
6、息*/void Student_Insert() while(1) printf(请输入学号:); scanf(%s,&studentsnum.ID); getchar(); printf(请输入姓名:); scanf(%s,&studentsnum.Name); getchar(); printf(请输入性别:); scanf(%s,&studentsnum.Sex); getchar(); printf(请输入语文成绩:); scanf(%f,&studentsnum.Chinese); getchar(); printf(请输入数学成绩:); scanf(%f,&studentsnum.
7、Math); getchar(); printf(请输入英语成绩:); scanf(%f,&studentsnum.English); getchar(); printf(请输入物理成绩:); scanf(%f,&studentsnum.Physics); getchar(); printf(请输入化学成绩:); scanf(%f,&studentsnum.Chemical); getchar(); printf(请输入生物成绩:); scanf(%f,&studentsnum.Biological); getchar(); studentsnum.Add=Add(studentsnum);
8、num+; printf(是否继续?(y/n); if (getchar()=n) system(cls); break; /*修改学生信息*/void Student_Modify() while(1) char id20; int index; printf(请输入要修改的学生的学号:); scanf(%s,&id); getchar(); index=Student_SearchByIndex(id); if (index=-1) printf(学生不存在!n); else printf(你要修改的学生信息为:n); Student_DisplaySingle(index); print
9、f(- 请输入新值-n); printf(请输入学号:); scanf(%s,&studentsindex.ID); getchar(); printf(请输入姓名:); scanf(%s,&studentsindex.Name); getchar(); printf(请输入性别:); scanf(%s,&studentsindex.Sex); getchar(); printf(请输入语文成绩:); scanf(%f,&studentsindex.Chinese); getchar(); printf(请输入数学成绩:); scanf(%f,&studentsindex.Math); get
10、char(); printf(请输入英语成绩:); scanf(%f,&studentsindex.English); getchar(); printf(请输入物理成绩:); scanf(%f,&studentsindex.Physics); getchar(); printf(请输入化学成绩:); scanf(%f,&studentsindex.Chemical); getchar(); printf(请输入生物成绩:); scanf(%f,&studentsindex.Biological); getchar(); studentsindex.Add=Add(studentsindex)
11、; printf(是否继续?(y/n); if (getchar()=n) system(cls); break; /*删除学生信息*/void Student_Delete() int i; while(1) char id20; int index; printf(请输入要删除的学生的学号:); scanf(%s,&id); getchar(); index=Student_SearchByIndex(id); if (index=-1) printf(学生不存在!n); else printf(你要删除的学生信息为:n); Student_DisplaySingle(index); pr
12、intf(是否真的要删除?(y/n); if (getchar()=y) for (i=index;inum-1;i+) studentsi=studentsi+1; num-; getchar(); printf(是否继续?(y/n); if (getchar()=n) system(cls); break; /*按学号查询*/void Student_Select() while(1) char id20; int index; printf(请输入要查询的学生的学号:); scanf(%s,&id); getchar(); index=Student_SearchByIndex(id);
13、 if (index=-1) printf(学生不存在!n); else printf(你要查询的学生信息为:n); Student_DisplaySingle(index); printf(是否继续?(y/n); if (getchar()=n) system(cls); break; /*按总分值排序*/void Student_SortByAdd() int i,j; struct Student tmp; for (i=0;inum;i+) for (j=1;jnum-i;j+) if (studentsj-1.Addstudentsj.Add) tmp=studentsj-1; st
14、udentsj-1=studentsj; studentsj=tmp; /*显示学生信息*/void Student_Display() int i; printf(%8s%6s%6s%8s%8s%8s%8s%8s%8s%8sn,学号,姓名,性别,语文,数学,英语,物理,化学,生物,总分); printf( -n); for (i=0;inum;i+) printf(%8s%6s%6s%8.1f%8.1f%8.1f%8.1f%8.1f%8.1f%8.1fn,studentsi.ID,studentsi.Name,studentsi.Sex, studentsi.Chinese,students
15、i.Math,studentsi.English,studentsi.Physics, studentsi.Chemical,studentsi.Biological,studentsi.Add); system(pause); system(cls);/*选出优秀学生信息*/void Student_90A()int i;printf(%10s%10s%10s%10s%10sn,科目,学号,姓名,性别,分数);printf( -n);for (i=0;i=90) printf(%10s%10s%10s%10s%10.1fn,语文,studentsi.ID,studentsi.Name,stu
16、dentsi.Sex,studentsi.Chinese); printf(n);void Student_90B()int i;for (i=0;i=90) printf(%10s%10s%10s%10s%10.1fn,数学,studentsi.ID,studentsi.Name,studentsi.Sex,studentsi.Math);printf(n);void Student_90C()int i;for (i=0;i=90) printf(%10s%10s%10s%10s%10.1fn,英语,studentsi.ID,studentsi.Name,studentsi.Sex,stu
17、dentsi.English);printf(n);void Student_90D()int i;for (i=0;i=90) printf(%10s%10s%10s%10s%10.1fn,物理,studentsi.ID,studentsi.Name,studentsi.Sex,studentsi.Physics);printf(n);void Student_90E()int i;for (i=0;i=90) printf(%10s%10s%10s%10s%10.1fn,化学,studentsi.ID,studentsi.Name,studentsi.Sex,studentsi.Chemi
18、cal);printf(n);void Student_90F()int i;for (i=0;i=90) printf(%10s%10s%10s%10s%10.1fn,生物,studentsi.ID,studentsi.Name,studentsi.Sex,studentsi.Biological);printf(n);/*选出不及格学生信息*/void Student_60A()int i;printf(%10s%10s%10s%10s%10sn,科目,学号,姓名,性别,分数);printf( -n);for (i=0;inum;i+) if (studentsi.Chinese60)pr
19、intf(%10s%10s%10s%10s%10.1fn,语文,studentsi.ID,studentsi.Name,studentsi.Sex,studentsi.Chinese);printf(n);void Student_60B()int i;for (i=0;inum;i+) if (studentsi.Math60) printf(%10s%10s%10s%10s%10.1fn,数学,studentsi.ID,studentsi.Name,studentsi.Sex,studentsi.Math);printf(n);void Student_60C()int i;for (i=
20、0;inum;i+) if (studentsi.English60) printf(%10s%10s%10s%10s%10.1fn,英语,studentsi.ID,studentsi.Name,studentsi.Sex,studentsi.English);printf(n);void Student_60D()int i;for (i=0;inum;i+) if (studentsi.Physics60) printf(%10s%10s%10s%10s%10.1fn,物理,studentsi.ID,studentsi.Name,studentsi.Sex,studentsi.Physic
21、s);printf(n);void Student_60E()int i;for (i=0;inum;i+) if (studentsi.Chemical60) printf(%10s%10s%10s%10s%10.1fn,化学,studentsi.ID,studentsi.Name,studentsi.Sex,studentsi.Chemical);printf(n);void Student_60F()int i;for (i=0;inum;i+) if (studentsi.Biological60) printf(%10s%10s%10s%10s%10.1fn,生物,studentsi
22、.ID,studentsi.Name,studentsi.Sex,studentsi.Biological);printf(n);/*将学生信息从文件读出*/void IO_ReadInfo() FILE *fp; int i; if (fp=fopen(Database.txt,rb)=NULL) printf(不能打开文件!n); return; if (fread(&num,sizeof(int),1,fp)!=1) num=-1; else for(i=0;inum;i+) fread(&studentsi,sizeof(struct Student),1,fp); fclose(fp
23、);/*将学生信息写入文件*/void IO_WriteInfo() FILE *fp; int i; if (fp=fopen(Database.txt,wb)=NULL) printf(不能打开文件!n); return; if (fwrite(&num,sizeof(int),1,fp)!=1) printf(写入文件错误!n); for (i=0;inum;i+) if (fwrite(&studentsi,sizeof(struct Student),1,fp)!=1) printf(写入文件错误!n); fclose(fp);/*主程序*/int main() int choice; IO_ReadInfo(); while(1) /*主菜单*/ printf(ntt- 学生成绩管理系统-nn); printf(ttt1. 增加学生成绩记录n); printf(ttt2. 修改学
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高考语文复习【知识精研】压缩语段 课件
- 《认识教师》课件
- 【培训课件】财务报表的结构分析
- 吉林省白山市2023-2024学年高二上学期1月期末考试+数学 含解析
- 脑白金营销策划案例分析-市场营销
- Nexans耐克森综合布线系统在华著名工程案例
- 公园建设项目可研报告
- 陕西省西安市西北大学附中2025届高考仿真卷英语试题含解析
- 2025届北京市通州区高考考前模拟英语试题含解析
- 《数字系统设计例子》课件
- 253种中药材粉末显微鉴别主要特征
- 论辛弃疾词作的愁情主题及其审美价值
- 新形势下我国保险市场营销的现状、问题及对策
- LTE无线网络优化PPT课件
- 动态血压监测在社区高血压患者管理的意义
- 管道中英文对照表
- 240灯控台_说明书
- 新形势下加强市场监管局档案管理工作的策略
- 例行检查和确认检验程序
- 上海旅游资源基本类型及其旅游区布局特点(共5页)
- 六一汤_医方类聚卷一○二引_御医撮要_减法方剂树
评论
0/150
提交评论