学生综合测评系统C语言课程设计
学生综合测评系统
1、问题描述
学校每年都要对学生进行综合测评,大量的数据采集和分析处理必须得使用信息化的方法才能进行管理。本系统完成对学生各项成绩的录入、查询、统计。评分公式为考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%,即综合测评总分=(考试成绩)0.6+(同学互评分)0.1+品德成绩0.1+任课老师评分0.2。
2、功能要求
(1)数据维护:对学生信息(包括学号、姓名、性别、家庭住址、联系电话)、各项成绩(包括考试平均成绩、同学互评分、品德成绩、任课教师评分)等信息增删改查操作。
(2)查询功能: 可根据学号、班级查询学生的综合测评成绩。
(3)统计功能: 计算综合测评总分及名次。
(4)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。
(5)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。
大体框架如下:
#include <stdio.h>
#include <stdlib.h>
#define N 100
void init();
char welcome();
void InputInfo();
void view();
void xiugai();
void DeleteInfo();
void paiming1(struct student_info student[]);
void paiming2(struct student_info student[]);
void ViewAll();
void clean();
void PaimingView();
void exits();
struct student_info input();
void SortInfo(struct student_info student[]);
void ViewInfo(struct student_info *sp);
void SaveStruct(struct student_info *sp,int size,int n,char filename[20]);
void LoadStruct(struct student_info *sp,int size,int n,char filename[20]);
void SaveInt(int *p ,int size,int n,char filename[20]);
void LoadInt(int *p ,int size,int n,char filename[20]);
int NumExist(struct student_info student[],int num);
struct student_info
{
int num; //学号
char name[6]; //姓名
char sex[5]; //性别
char adress[20]; //家庭住址
char tel[11]; //电话
int huping,pingde,jiaoping,paiming1,paiming2;
double average,zhongping;
}student[N];
int counter=0,PM=0;
void main()
{
char select;
init();
while(1)
{
select=welcome();
switch(select)
{
case '1':system("cls"); InputInfo(); break; //选项1:输入学生信息
case '2':system("cls"); view(); break; //选项2:浏览学生信息
case '3':system("cls"); xiugai(); break; //选项3:修改学生信息
case '4':system("cls"); DeleteInfo(); break; //选项4:删除学生信息
case '5':system("cls"); paiming1(student); paiming2(student); PM=1;
getchar(); getchar(); system("cls"); break; //选项5:学生信息排名
case '6': system("cls"); ViewAll();break; //选项6:浏览全部学生信息
case '7': system("cls"); clean();break; //选项7:清除所有信息
case '8': system("cls"); PaimingView();break; //选项8:查询排名
case 'O':system("cls"); exits(); break; //选项9:退出
}
}
}
void init()
{
FILE *fp;
fp=fopen("counter.dat","rb");
if(fp!=NULL)
{
fclose(fp);
LoadInt(&counter,sizeof(counter),1,"counter.dat");
}
else
{
fp=fopen("counter.dat","wb");
fclose(fp);
counter=0;
}
if(counter!=0) //载入学生数据
LoadStruct(student,sizeof(struct student_info),counter,"student_info.dat");
}
char welcome()
{
char select;
while(1)
{
system("cls");
printf("tt 欢迎使用学生信息管理系统 n");
printf("n");
printf("1.录入学生信息 nn");
printf("2.浏览学生信息 nn");
printf("3.修改学生信息 nn");
printf("4.删除学生信息 nn");
printf("5.排名学生成绩 nn");
printf("6.浏览所有学生信息 nn");
printf("7.清除所有数据 nn");
printf("8.查询排名 nn");
printf("O.退出 nn");
printf("输入相应的功能序号:");
select=getchar();
if(select=='1'||select=='2'||select=='3'||select=='4'||select=='5'||select=='6'||select=='7'||select=='8'||select=='O')
return select;
system("cls");
continue;
}
}