- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目录
——学生成绩管理程序
题目要求···················2
设计目的···················2
总体设计···················3详细设计···················3调试与测试·················12源程序···················14总结 ···················30
学生成绩管理程序
一. 题目要求
问题描述 :
对在校学生几门课程的考试成绩进行统一管理 . 每个学生记录包括学号 , 姓名 , 年龄 , 数学 , 英语 , 物理成绩 , 默认以学号为序存放 .
要求 :
一个文件按以班为单位存储学生记录 .
将允许的操作分为四种 , 以 A,B,C,D,E,F 为标志 : A: 插入一个学生记录 ;
B: 修改学生记录 ;
C: 删除一个学生记录 ;
D: 查找一个学生记录 ;
浏览学生成绩 :
退出
计算学生的总成绩 .
按学号排序输出全班学生成绩表
.
二. 设计目的
根据题目要求 , 由于学生信息是存放在文件中 , 所以应提供文件的输入 , 输出等操作 ; 在程序中需要浏览学生的信息 , 应提供显示 , 查找 , 排序等操作 ; 另外还应提供键盘式选择菜单实现功能选
择.
三. 总体设计
根据上面的需求分析 , 可以将这个系统分为以下模块 : 输入模块 , 修改模块 , 删除模块 , 查找模块 , 显示模块 .
数据输入
学生成绩管理系统
数据显示
数据修改
数据删除
数据查找
四. 详细设计
主函数 :
主函数一般设计得比较简单 , 只提供输入 , 处理和输出部分的函数调用 , 其中各功能模块用菜单方式选择 .
流程图 :
显示一系列功能模块
N
输入 n, 判断 n 是否是 A--F
Y
根据 n 的值调用各功能模块函数
[ 程序]:
//#includehead.h
intmenu_select()
{
charc;
printf(\n\n);
printf(|1. 增加学生记录 5. 统计信息 |\n);
printf(|2. 查询学生记录 6. 打开文件 |\n);
printf(|3. 修改学生记录 7. 保存文件 |\n);
printf(|4. 学生纪录排序 8. 显示记录 |\n);
printf(|0. 退出系统 |\n);
printf(\n\n);
printf( 请选择 (0-8):);
c=getchar();
getchar();
return(c-0);
}
输入模块 :
[ 分析]:
单独看各数据信息 , 学号 , 姓名是字符型 , 可以采用字符型数组 ; 分数为整数 , 采用整数 ; 数据信息存放在文件中 , 一条记录对应一个学生 , 既符合习惯又方便信息管理 .
如果要存放若干学生信息就用结构体数组 :
voidaddrecord(studentstud[])
{
inti=0,j,num;
charstr[5];
if(numstus!=0)
{
printf( 已有记录存在是否覆盖 ?(y/n)\n);
gets(str);
if(str[0]==Y||str[0]==y)
i=0;
elsei=numstus;
}
printf( 请输入增加的学生信息条目数 :);
scanf(%d,num);
if(i==0)
numstus=num;
elsenumstus+=num;
if(numstuslens)
{
lens+=50;
pointer=(student*)realloc(pointer,lens*LEN);
}
printf( 请输入学生信息 :\n);
for(;inumstus;i++)
{
getchar();
printf( 请输入学号 :);
gets(pointer[i].number);
printf( 请输入姓名 :);
gets(pointer[i].name);
printf( 请输入性别 ( 男/ 女 1/0):);
gets(pointer[i].sex);
if(pointer[i].sex[0]==0)strcpy(pointer[i].sex, 女 );
elsestrcpy(pointer[i].sex, 男);
printf( 请输入各科成绩 :( 按“语文,数学,英语,历史,政治”的顺序 ):);
stud[i].score=0;
for(j=0;jnumsubs;j++)
{
scanf(%f,stud[i].subject[j]);/*
计算总分
*/
stud[i].score+=stud[i].subject[j];
}
stud[i].average=stud[i].score/numsu
原创力文档


文档评论(0)