没有合适的资源?快使用搜索试试~ 我知道了~
c语言课程设计报告学生成绩管理系统.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
38 浏览量
2021-10-05
11:29:49
上传
评论
收藏 255KB DOC 举报
温馨提示
c语言课程设计报告学生成绩管理系统.doc
资源推荐
资源详情
资源评论




. -
目录
——学生成绩管理程序
题目要求 ··················· 2
设计目的···················2
总体设计··················· 3
详细设计··················· 3
调试与测试················· 12
源程序 ··················· 14
总结 ···················30
学生成绩管理程序
一. 题目要求
. .zj.

. -
1. 问题描述:
对在校学生几门课程的考试成绩进展统一管理.每个学生记录包括学
号,XX,年龄,数学,英语,物理成绩,默认以学号为序存放.
2. 要求:
(1)一个文件按以班为单位存储学生记录.
(2)将允许的操作分为四种,以 A,B ,C,D,E,F 为标志:
A:插入一个学生记录;
B:修改学生记录;
C:删除一个学生记录;
D:查找一个学生记录;
E:浏览学生成绩:
F:退出
3. 计算学生的总成绩.
4. 按学号排序输出全班学生成绩表
.
二. 设计目的
根据题目要求,由于学生信息是存放在文件中,所以应提供文件的输入,输出等
操作;在程序中需要浏览学生的信息,应提供显示,查找,排序等操作;另外还应
提供键盘式选择菜单实现功能选择.
三. 总体设计
根据上面的需求分析,可以将这个系统分为以下模块:输入模块,修改模块,删
除模块,查找模块,显示模块.
学生成绩管理系统
数据输入 数据显示 数据修改 数据删除 数据查找
. .zj.

. -
四. 详细设计
1. 主函数:
主函数一般设计得比拟简单,只提供输入,处理和输出局部的函数调用,其
中各功能模块用菜单方式选择.
流程图:
显示一系列功能模块
N
输入 n,判断 n 是否是 A--F
Y
根据 n 的值调用各功能模块函数
[程序]:
//#include "head.h"
int menu_select()
{
char c;
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');
}
2. 输入模块:
[分析]:
单独看各数据信息,学号,XX 是字符型,可以采用字符型数组;分数为整数,采
用整数;数据信息存放在文件中,一条记录对应一个学生,既符合习惯又方便
信息管理.
如果要存放假设干学生信息就用构造体数组:
void addrecord(student stud[])
. .zj.

. -
{
int i=0,j,num;
char str[5];
if(numstus!=0)
{
printf("已有记录存在是否覆盖?(y/n)\n");
gets(str);
if(str[0]=='Y'||str[0]=='y')
i=0;
else i=numstus;
}
printf("请输入增加的学生信息条目数:");
scanf("%d",&num);
if(i==0)
numstus=num;
else numstus+=num;
if(numstus>lens)
{
lens+=50;
pointer=(student *)realloc(pointer,lens*LEN);
}
printf("请输入学生信息:\n");
for(;i<numstus;i++)
{
getchar();
printf("请输入学号:");
gets(pointer[i].number);
printf("请输入 XX:");
gets(pointer[i].name);
printf("请输入性别(男/女 1/0):");
gets(pointer[i].sex);
if(pointer[i].sex[0]=='0') strcpy(pointer[i].sex,"女");
else strcpy(pointer[i].sex,"男");
printf("请输入各科成绩:(按“语文,数学,英语,历史,政治〞的顺序):");
stud[i].score=0;
for(j=0;j<numsubs;j++)
{
scanf("%f",&stud[i].subject[j]); /*计算总分*/
stud[i].score+=stud[i].subject[j];
}
stud[i].average=stud[i].score/numsubs; /*计算平均分*/
}
count(stud); /*附名次*/
. .zj.

. -
display(stud,0,numstus-1);
getchar();
}
int numstus;
int lens;
student *pointer;
void main()
{
int i=1;
char str[2];
lens=100;
pointer=(student *)malloc(lens*LEN); /*分配内存*/
numstus=0;
wele(); /*欢送界面*/
while(i>0)
{
i=menu_select(); /*控制菜单*/
switch(i)
{
case 1:addrecord(pointer);break; /*增加学生信息*/
case 2:Indrecord(pointer);break; /*查询学生信息*/
case 3:amendrecord(pointer);break; /*修改学生信息*/
case 4:sort(pointer);break; /*学生信息排序*/
case 5:statistic(pointer);break; /*统计信息*/
case 6:openIle(pointer);break; /*翻开文件*/
case 7:writetotext(pointer);break; /*保存文件*/
case 8:display(pointer,0,numstus-1);break; /*显示记录*/
case 0:
if(numstus!=0) printf("是否保存当前记录?(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y')
writetotext(pointer);
i=-1;break; /*退出系统*/
default:printf("请输入数字 0~8:\n");i=1; /*输入错误*/
}
}
printf("\t\t 欢送再次使用本系统。\n\n");
display1();
}
3. 修改模块:
[分析]:用户输入要修改学生的学号,根据学生的学号等信息查找学生记录,并
. .zj.
剩余29页未读,继续阅读
资源评论


pyhm63
- 粉丝: 6
- 资源: 20万+

下载权益

C知道特权

VIP文章

课程特权

开通VIP
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制
