版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验16 综合程序设计1。实验学时2学时2。实验目的(1)熟练掌握函数的定义和使用;(2)熟练掌握结构体类型数据的概念和使用;(3)熟练掌握文件的操作方式以及常用函数;(4)掌握用模块化分析与设计方法解决实际问题。3。实验设备 PC计算机,配置Win7操作系统,Word2010,Eclipse+minGW4.实验内容及步骤设计一个学生成绩管理系统,实现添加记录、显示记录、修改记录、删除记录、查找记录、排序记录及退出系统等功能.添加记录显示记录修改记录删除记录查找记录排序记录退出系统学生成绩管理系统菜单选择图1614.1需求分析根据题目要求,学生管理系统需要实现添加记录、显示记录、修改记录、删除
2、记录、查找记录、排序记录及退出系统等7项功能。图161显示学生成绩管理系统的所有需实现的功能模块及彼此之间的关联关系,该图的每一个功能都会对应一个界面.该系统首先会向用户展现一个菜单选择界面,用户可以根据菜单界面的提示,选择不同功能进入子界面。4。1。1添加记录本功能用于添加学生的信息,当用户在功能菜单中选择数字1时,会进入添加记录模块,提示用户输入学生的学号、姓名、数学成绩、语文成绩。当用户输入完毕后,会提示用户是否继续添加,Y表示继续,N表示返回。需要注意:在添加学号时不能重复,如果输入重复的学号就会提示此学号存在.4。1.2显示记录本功能用于显示已存入的学生信息,当用户在功能菜单中选择数
3、字2时,会进入显示记录模块,并向控制台输出录入的所有学生的学号、姓名、数学成绩、语文成绩和成绩总和.4.1。3修改记录本功能用于修改学生信息,当用户在功能菜单中选择数字3时,会进入修改记录模块。输入要修改的学生姓名,当用户输入了已录入的学生姓名后,如果学生信息存在即可修改除学号以外的其他信息,否则输出该学生不存在.4.1。4删除记录本功能用于删除已录入的学生信息,当用户在功能菜单中选择数字4时,会进入删除记录模块.对学生学号进行判断,如果学号存在即可删除该生的所有信息,否则输出没有找到该生的记录。4。1.5查找记录本功能用于查找某个学生信息,当用户在功能菜单中选择数字5时,会进入查找记录模块。
4、在该模块中输入查找的学生姓名,如果该学生存在则输出该生的全部信息,否则输出没找到该生的记录.4。1.6排序记录本功能用于对总成绩进行排序,当用户在功能菜单中选择数字6时,会进入排序记录模块.该模块会输出所有学生的信息,并按总成绩由高到低进行排序。4.1.7退出系统本功能用于退出系统,当用户在功能菜单中选择数字0时,即可退出系统。4。2数据设计根据系统分析,需要确定项目中的数据。由于学生成绩管理系统中多次涉及学生信息及其成绩信息的操作,因此根据学生成绩管理系统的需求,设计学生的数据如表161所示表16-1 学生数据变量声明功能描述int id存储学生学号char name8学生姓名intchin
5、ese语文成绩int math数学成绩int sum总成绩由于学生的数据各不相同,为便于统一管理,可以使用结构体类型来声明。在项目开发时,除根据需求对项目中的数据进行设计外,还需要规划项目中需要定义的函数。表162描述了本项目所需的函数及其功能描述表162功能函数函数声明功能描述void menu()显示功能菜单void add(struct student stu)添加学生信息void show(struct student stu,inti)显示某个学生信息voidshowAll(struct student stu)显示所有学生信息void modify(struct student s
6、tu)修改某个学生信息void del(struct student stu)删除某个学生信息void search(struct student stu)查询某个学生信息void sort(struct student stu)对学生成绩进行排序至此,项目的分析与初步设计已完成,后面就是需要对每一部分用程序进行实现,请同学们完成。实验源程序如下:_-综合程序设计:/* student。c * Created on: 2015年12月29日 Author: PC */#include"student。h”void menu()system(”cls”);printf(”n”);set
7、vbuf(stdout,NULL,_IONBF,0);printf(”tt-学生成绩管理系统-n");printf(”tttt 1 添加记录 |n”);printf(”tttt 2显示记录 |n");printf("tt|tt 3 修改记录 |n”);printf(”tttt 4 删除记录 n”);printf("tt|tt 5 查找记录 n”);printf("tt|tt 6 排序记录 n”);printf(”tt|tt 0 退出系统 n”);printf("-n”);printf(”tt请选择(06): ");void
8、add(struct student stu)inti,id=0;char quit;doprintf(”学号:”);scanf(”%d",id);for(i=0;in;i+)if(id=stui.id)printf("此学号已存在! n");return;stui。id=id;printf(”请输入姓名: ”);scanf(”%s”,stui。name);printf(”请输入语文成绩: ");scanf(”%d",stui.chinese);printf(”请输入数学成绩 : ”);scanf(”d”,&stui。math);stu
9、i.sum=stui。chinese + stui.math;n+;printf(”是否继续添加?(Y/N)?”);scanf("tc”,&quit);while(quit!=n quit != 'N);void show(struct student stu,inti)printf(”-10d”,stui。id);printf(”%-10s”,stui。name);printf(”10d”,stui.chinese);printf("%-10d”,stui。math);printf(”10d”,stui.sum);voidshowall(struct st
10、udent stu)inti;HH;for(i=0;i<n;i+)show(stu,i);printf(”n”);void modify(struct student stu)char name8,ch;inti;printf(”修改学生记录n”);printf("请输入学生的姓名: ”);scanf(”s”,name);for(i=1;i<n;i+)if(strcmp(stui。name,name)=0)getchar();printf(”找到学生的记录,如下所示: ");HH;show(stu,i);printf("是否修改?(Y/N)?"
11、;);scanf(”%c",ch);if(ch='y' ch='Y')getchar();printf(”请输入姓名: ”);scanf(”s",stui。name);printf(”请输入语文成绩: ");scanf(”d",stui。chinese);printf("请输入数学成绩: ");scanf("%d",stui。math);stui。sum = stui。chinese + stui.math;printf(”修改完毕n");return;printf(&qu
12、ot;没找到该学生的记录n");void del(struct student stu)intid,i;charch;printf("删除学生的记录n”);printf("请输入学号: ”);scanf(”d",id);for(i=0;in;i+)if(id=stui。id)getchar();printf(”找到学生的记录,如下所示: n”);HH;show(stu,i);printf(”是否删除?(Y/N)?n");scanf(”c”,ch);if(ch=y ch=Y)for(;in;i+)stui=stui+1;n-;printf(”删除
13、成功”);return;void search(struct student stu)char name 8;inti;printf("查找学生的记录n”);printf("请输入学生的姓名: ”);scanf(”s”,name);for(i=0;in;i+)if(strcmp(name,stui。name)=0)printf(”找到学生的记录,如下所示: ");HH;show(stu,i);return;void sort(struct student stu)inti,j;struct student t;printf(”按学生成绩进行排序n");f
14、or(i=0;in1;i+)for(j=i+1;j<n;j+)if(stui.sum < stuj。sum)t=stui;stui=stuj;stuj=t;printf(”排序的结果如下: n”);showall(stu);/ stumanagement。c Created on: 2015年12月29日 Author: PC /include<stdio。hinclude"student。h"int main()struct student stu50;intselect,quit=0;while(1)menu();scanf(”d”,select);s
15、witch(select)case 1:add(stu);break;case 2:showall(stu);break;case 3:modify(stu);break;case 4:del(stu);break;case 5:search(stu);break;case 6:sort(stu);break;case 0:quit=1;break;default:printf("请输入06之间的数字”);break;if(quit=1)break;printf(”按任意键返回主菜单!n");getchar();getchar();printf(”程序结束!n")
16、;return 0;/* student.h * Created on: 2015年12月29日 * Author: PC /ifndef STUDENT_H_define STUDENT_H_includestdio。h#include<string.hincludestdlib.h>define HH printf(”%10s%10s%-10s10s%-10sn”,”学号”,”姓名","语文",”数学”,"总分");struct studentint id;char name8;intchinese;int math;int sum;staticint n;void menu()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年度施工员考前冲刺练习含完整答案详解【有一套】
- 2024-2025学年度四川工业科技学院单招数学通关题库【原创题】附答案详解
- 2024-2025学年中级软考模拟题库附答案详解【培优A卷】
- 2024-2025学年度电梯考试综合提升测试卷含答案详解(预热题)
- 2024-2025学年中级软考模拟试题附参考答案详解【达标题】
- 2024-2025学年度法律硕士高频难、易错点题含完整答案详解(各地真题)
- 生态环境治理达标及持续改进承诺书5篇范文
- 2024-2025学年度火电电力职业鉴定考试彩蛋押题附参考答案详解【B卷】
- 2024-2025学年内江卫生与健康职业学院单招考试文化素质数学考前冲刺练习试题含答案详解(培优)
- 2024-2025学年度冶金工业技能鉴定能力提升B卷题库附参考答案详解【夺分金卷】
- 2026年春季学期课后服务工作实施方案
- 2026年内蒙古建筑职业技术学院单招职业技能考试题库附答案详解(基础题)
- 2026福建新华发行集团招聘笔试备考试题及答案解析
- (2026春新版本)苏教版数学三年级下册全册教案
- 门球培训教学课件
- YB-T6332-2024《钢铁行业用塑烧板除尘器》
- 平安测评IQ测试题30道及答案
- (完整版)2026年劳动法实施细则全文
- 7.4 长江经济带的协同发展 课件 2025-2026学年湘教版地理八年级下册
- 团县委保密工作制度规范
- 2026 二年级家长会 教学课件
评论
0/150
提交评论