哈尔滨工程大学
《程序设计基础》实验报告
综合实践
小组成员:
姓名 班级 学号 分工 成绩
王龙飞
20182012 20182012
朱容生
20182012 20182012
谭馨
20182012 20182012
实验时间: 2019 年 6 月 1 日
哈尔滨工程大学计算机基础课程教学中心
实验题目:学生成绩管理系统
设计思想:先进行了头文件处理,然后每次在主函数开始时将文件
中的数据暂时导入到一个结构数组
struct student students[maxsize]中,在系统运行期间对其数组
进行增删改查,结束时再将数组中数据导进文件中,在主函数
(mscore.c)中设置一些全局变量,然后用 extern 声明接受。
成员任务分工:
姓名 负责部分
王龙飞 menu.cstu1.c stu2.c
朱容生 stu3.c stu4.c stu5.c
谭馨 stu6.c stu7.c mscore.c
运行环境:dev-c++
编程语言:C
成员 1 的工作:完成 menu.c stu1.c stu2.c
姓名:王龙飞
学号:2018201207
任务分工:menu.c stu1.c stu2.c
设计思想:在其头文件中设置了几项参数,其中 maxsize 是数组
(students[maxsize])创建的最大参数,maxscore 是输入成绩时
的最大上界,超过将报错,可根据录入成绩实际的满分情况,更改
参数。
xuehaonum 是输入学号的位数检测 subjectnum 是作业拓展,这
个系统可以存任意数量的科目,而不局限于作业要求的三科。
代码行数:99 行
实验代码及注释:
menu.c:
void view()
{
printf("|-----------------------------------------|\n");
printf("| 学生管理系统 |\n");
printf("|-----------------------------------------|\n");
printf("| 1--成绩输入 |\n");
printf("| 2--成绩修改 |\n");
printf("| 3--查询成绩 |\n");
printf("| 4--显示成绩 |\n");
printf("| 5--统计成绩 |\n");
printf("| 6--注销学生 |\n");
printf("| 7--成绩导入 |\n");
printf("| 0--退出系统 |\n");
printf("|-----------------------------------------|\n");
}
Stu1:
extern int count;
extern struct student students[maxsize];
extern char *subname[subjectnum];
void add()
{
if(count==maxsize){
printf("人数已满");
return;
}
FILE *f = fopen("stu.dat","a");
int n,i,j;
printf("请输入你要增添的学生数:\n");
scanf("%d",&n);
for(i=0;i<n;i++){
char temp[10];
printf("输入学生%d 的学号:\n",i+1);
scanf("%s",temp);
if(strlen(temp)!=xuehaonum)
{
printf("学号输入有误,录入结束\n");
return;
}
strcpy(students[count].num,temp);
printf("输入学生%d 的名字:\n",i+1);
scanf("%s",&students[count].name);
for(j=0;j<subjectnum;j++)
{
int temp;
printf("输入学生%d 的%s:\n",i+1,subname[j]);
scanf("%d",&temp);
if(temp<0||temp>maxscore)
{
printf("成绩输入越界,录入结束\n");
return;
}
students[count].subject[j]=temp;
}
students[count].total=0;
for(j=0;j<subjectnum;j++)
students[count].total+=students[count].subject[j];
count++;
}
printf("输入完毕\n");
}
验证与结论:
成员 2 的工作: stu3.c stu4.c stu5.c
姓名:朱容生
学号:2018201208
任务分工: stu3.c stu4.c stu5.c
设计思想:首先输入需要查询的人员、科目,与已有的进行字符对
比,用 if 语句进行判断,如果相同,则进行字符串连接输出,显示
查询结果,如果不同,则输出输入有误。运用 if 语句进行成绩的排
序对比。
代码行数:97 行
实验代码及注释:
Stu3:
void select()
{
int i,n,j;
char s[10];
printf("请输出你要查询学生的学号:\n");
scanf("%s",s);
for(i=0;i<count;i++)
{
if(!strcmp(s,students[i].num))
{
评论0