学生成绩管理系统 综合程序设计_第1页
学生成绩管理系统 综合程序设计_第2页
学生成绩管理系统 综合程序设计_第3页
学生成绩管理系统 综合程序设计_第4页
学生成绩管理系统 综合程序设计_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、实验16 综合程序设计1.实验学时2学时2.实验目的(1)熟练掌握函数的定义和使用;(2)熟练掌握结构体类型数据的概念和使用;(3)熟练掌握文件的操作方式以及常用函数;(4)掌握用模块化分析与设计方法解决实际问题。3.实验设备 PC计算机,配置Win7操作系统,Word2010,Eclipse+minGW4.实验内容及步骤设计一个学生成绩管理系统,实现添加记录、显示记录、修改记录、删除记录、查找记录、排序记录及退出系统等功能。添加记录显示记录修改记录删除记录查找记录排序记录退出系统学生成绩管理系统菜单选择 图16-14.1需求分析根据题目要求,学生管理系统需要实现添加记录、显示记录、修改记录、

2、删除记录、查找记录、排序记录及退出系统等7项功能。图16-1显示学生成绩管理系统的所有需实现的功能模块及彼此之间的关联关系,该图的每一个功能都会对应一个界面。该系统首先会向用户展现一个菜单选择界面,用户可以根据菜单界面的提示,选择不同功能进入子界面。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数据设计根据系统分析,需要确定项目中的数据。由于学生成绩管理系统中多次涉及学生信息及其成绩信息的操作,因此根据学生成绩管理系统的需求,设计学生的数据如表16-1所示表16-1 学生数据变量声明功能描述int id 存储学生学号char name8学生姓名i

5、nt chinese语文成绩int math数学成绩int sum总成绩由于学生的数据各不相同,为便于统一管理,可以使用结构体类型来声明。在项目开发时,除根据需求对项目中的数据进行设计外,还需要规划项目中需要定义的函数。表16-2描述了本项目所需的函数及其功能描述表16-2功能函数函数声明功能描述void menu()显示功能菜单void add(struct student stu)添加学生信息void show(struct student stu,int i)显示某个学生信息void showAll(struct student stu)显示所有学生信息void modify(struc

6、t student stu)修改某个学生信息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

7、("cls");printf("n"); setvbuf(stdout,NULL,_IONBF,0);printf("tt-学生成绩管理系统-n");printf("tt|tt 1 添加记录 |n");printf("tt|tt 2显示记录 |n");printf("tt|tt 3 修改记录 |n");printf("tt|tt 4 删除记录 |n");printf("tt|tt 5 查找记录 |n");printf("tt|

8、tt 6 排序记录 |n");printf("tt|tt 0 退出系统 |n");printf("-n");printf("tt请选择(0-6): ");void add(struct student stu)int i,id=0;char quit;doprintf("学号:");scanf("%d",&id);for(i=0;i<n;i+)if(id=stui.id)printf("此学号已存在! n");return;stui.id=id;pri

9、ntf("请输入姓名: ");scanf("%s",);printf("请输入语文成绩: ");scanf("%d",&stui.chinese);printf("请输入数学成绩 : ");scanf("%d",&stui.math);stui.sum=stui.chinese + stui.math;n+;printf("是否继续添加?(Y/N)?");scanf("t%c",&quit);w

10、hile(quit!='n' && quit != 'N');void show(struct student stu,int i)printf("%-10d",stui.id);printf("%-10s",);printf("%-10d",stui.chinese);printf("%-10d",stui.math);printf("%-10d",stui.sum);void showall(struct student st

11、u)int i;HH;for(i=0;i<n;i+)show(stu,i);printf("n");void modify(struct student stu)char name8,ch;int i;printf("修改学生记录n");printf("请输入学生的姓名: ");scanf("%s",name);for(i=1;i<n;i+)if(strcmp(,name)=0)getchar();printf("找到学生的记录,如下所示: ");HH;show(s

12、tu,i);printf("是否修改?(Y/N)?");scanf("%c",&ch);if(ch='y' | ch='Y')getchar();printf("请输入姓名: ");scanf("%s",);printf("请输入语文成绩: ");scanf("%d",&stui.chinese);printf("请输入数学成绩: ");scanf("%d",&s

13、tui.math);stui.sum = stui.chinese + stui.math;printf("修改完毕n");return;printf("没找到该学生的记录n");void del(struct student stu)int id,i;char ch;printf("删除学生的记录n");printf("请输入学号: ");scanf("%d",&id);for(i=0;i<n;i+)if(id=stui.id)getchar();printf("找到学

14、生的记录,如下所示: n");HH;show(stu,i);printf("是否删除?(Y/N)?n");scanf("%c",&ch);if(ch='y' | ch='Y')for(;i<n;i+)stui=stui+1;n-;printf("删除成功");return;void search(struct student stu)char name 8;int i;printf("查找学生的记录n");printf("请输入学生的姓名: &quo

15、t;);scanf("%s",name);for(i=0;i<n;i+)if(strcmp(name,)=0)printf("找到学生的记录,如下所示: ");HH;show(stu,i);return;void sort(struct student stu)int i,j;struct student t;printf("按学生成绩进行排序n");for(i=0;i<n-1;i+)for(j=i+1;j<n;j+)if(stui.sum < stuj.sum)t=stui;stui=stu

16、j;stuj=t;printf("排序的结果如下: n");showall(stu);/* * stumanagement.c * * Created on: 2015年12月29日 * Author: PC */#include<stdio.h>#include"student.h"int main()struct student stu50;int select,quit=0;while(1)menu();scanf("%d",&select);switch(select)case 1: add(stu); b

17、reak;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("请输入0-6之间的数字"); break;if(quit=1)break;printf("按任意键返回主菜单!n");getchar();getchar();printf("程序结束!n")

18、;return 0;/* * student.h * * Created on: 2015年12月29日 * Author: PC */#ifndef STUDENT_H_#define STUDENT_H_#include<stdio.h>#include<string.h>#include<stdlib.h>#define HH printf("%-10s%-10s%-10s%-10s%-10sn","学号","姓名","语文","数学","总分");struct studentint id;char name8;int chinese;int math;in

温馨提示

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

评论

0/150

提交评论