c语言课程设计学生成绩管理系统(3)
时间:2026-01-18
时间:2026-01-18
c语言课程设计 c语言
四. 详细设计
1. 主函数:
主函数一般设计得比较简单,只提供输入,处理和输出部分的函数调用,其中各功能模块用菜单方式选择.
流程图:
Y
[程序]:
//#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. 输入模块:
c语言课程设计 c语言
[分析]:
单独看各数据信息,学号,姓名是字符型,可以采用字符型数组;分数为整数,采用整数;数据信息存放在文件中,一条记录对应一个学生,既符合习惯又方便信息管理.
如果要存放若干学生信息就用结构体数组:
void addrecord(student stud[]) {
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("请输入姓名:"); 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("请输入各科成绩:(按“语文,数学,英语,历史,政治”的顺序):");