C/C++学生成绩管理系统(南京航空航天大学)[2023-05-12]

codewriter / 2023-05-12 / 原文

C/C++学生成绩管理系统(南京航空航天大学)[2023-05-12]

学生成绩管理系统(南京航空航天大学)
C语言课程设计要求

C语言课程设计的任务及目的

▪课程设计任务
▪完成一个小型系统或软件的设计
▪课程设计目的
▪巩固、提高、融合所学的课程知识
▪培养同学们多方面的能力:综合设计能力、实际动手能力、文献检索和分析能力、团队合作能力、工程化能力、研究性学习能力、创新能力等

课程设计的形式

课设是在相对集中的时间段内,一般在指定的实验室(也可用自己的电脑在宿舍)完成,利用本课程及以往所学知识和技术(如有必要,也可以辅助一些课外学习的知识),独立解决一些综合性且具有复杂度的问题
从规模上看,课设是在平时作业基础之上进一步扩展的大作业

C语言课程设计要求
▪ 要求设计简单的菜单,使用命令行界面,界面友好,操作简单。
▪ 数据通过文件保存。数据初始化,可以从指定文件读取,也可以从键盘输入,由用户选择。
▪ 提供数据的增、删、改、查及统计功能,必要时提供数据的排序功能。
▪ 系统应具有良好的健壮性。
▪ 设计系统时,尽可能体现面向过程的结构化程序设计思想,能体现多函数的封装、调用等。
▪ 要求使用多文件结构,建立工程。

C语言课程设计报告内容
▪ 封面:清晰显示自己的姓名、学号
▪ 目录:
▪ 需求分析:需求描述,要实现的功能介绍
▪ 概要设计:功能框架说明、程序主要数据结构、程序模块之间的调用关系(流程图不少于三个)
▪ 详细设计:数据的定义(函数的定义,全局变量、常量的定义等)、各模块的实现技术、关键算法及流程图
▪ 系统调试及测试:调试情况(主要是程序设计过程中出现的逻辑错误及其解决方案)、测试用例(输入、输出)
▪ 总结:收获、体会、致谢
▪ 参考文献
▪ 用户手册:简单的软件操作说明,帮助用户快速掌握使用方法
▪ 附录:程序源代码

源码

https://pan.baidu.com/s/1pq1Nwwo0hlc_J84F93HM4A?pwd=1111

▪ 学生成绩管理系统
系统功能:
1、档案管理—学生档案、课程档案、选课档案
增加、删除、修改、查询
2、统计管理—学生成绩表
登记成绩、计算加权平均分、总学分
3、文件加载(进入系统时)
读入学生档案、课程档案、选课档案
生成学生成绩表
4、文件保存(退出系统时)
保存学生档案、课程档案、选课档案
全部单人完成!!!
全部单人完成!!!
全部单人完成!!!
S-D
学生S
课程D
n
m
学号 姓名 性别 年龄
课程号 课程名 学分
成绩
课程号
学号
实体联系图
需要建立三张表,生成一张表:
学生表—关键字是学号
课程表—关键字是课程号
选课表—关键字是学号+课程号
成绩统计表(生成)--关键字是学号
学生表 slist

typedef struct //学生信息
{
char xh[10]; //学号
char xm[31]; //姓名,15个汉字
char xb[3]; //性别,
1个汉字
int nl; //年龄
}Student;
Student slis
t[100];
学生表 slist
xh xm xb nl
08190101 孙悟空
男 19
08201109 林黛玉
女 18
09182217 武松
男 20
07171228 诸葛亮
男 18
09192115 阿凡提
男 17
16180406 花木兰
女 21
05165120 李云龙
男 23
03183102 刘三姐
女 20
02990227 阿诗玛
女 19
学号: char xh[10];
姓名: char xm[9];
性别: char xb[3];
年龄: int nl;
课程表 clist

clist
kh km xf
j0101 计算机基础
3
s0001 高等数学
1
5
s0002 高等数学
2 3.5
g1001 政治经济学 2.5
g2022 体育与体能
2
x0111 大学语文
2
x1234 大学生修养 1.5
z1122
C程序设计
5
typedef struct //课程信息 {
char kh[8]; //课号
?
char km[11]; //课名,5个汉字
float xf; //学分
}Course;
Course clist[10];
课号: char kh[8];
课名: char km[11];
学分: float xf;
选课表 sclist

sclist
xh kh cj
08190101 x0111 100
09182217 s0002 60
09182217 x1234 89
08190101 z1122 88
02990227 g2022 90
03183102 x0111 80
03183102 s0001 90.5
03183102 x1234 88.5
09192115 s0001 66.5
03183102 g1001 75
08190101 g2022 89
16180406 x0111 95
16180406 j0101 100
typedef struct //选课信息表 {
char xh[10]; //学号
char kh[8]; //课号
float cj; //成绩
}Select;
Select sclist[800];
学号: char xh[10];
课号: char kh[8];
成绩: float cj;
成绩表
cjlist:
xh cj[0] cj[1] cj[2] cj[3] cj[4] cj[5] cj[6] cj[7] cj[8] cj[9] pj zxf
Cjlist--成绩表 08190101 -1 95 -1 -1 89 100 -1 88 475 5
typedef struct //成绩信息
{
char xh[9]; //学号
float cj[10]; //不超过10门课程成绩
float pj; //加权平均分
float zxf; //总学分
}Score;
Score cjlist[100];
xh
cj[0]
cj[1]
cj[2]
cj[3]
cj[4]
cj[5]
cj[6]
cj[7]
cj[8]
cj[9]
pj
zxf
Cj<=10
学号 cjlist : char xh[10];
成绩: float cj[10];
加权均分: float pj;
总学分: float zxf;
总的思路
设计好一个函数调试通过后再设计下一个函数。
不要将所有功能都编写完后一并调试,此时可采用对
暂不调试的函数加以注解,一个一个的释放调试。
就本课程设计而言,程序调试顺序如下:
1、调试档案加载、显示档案、档案输出
2、查询档案
3、修改或增加档案
4、删除档案
//课程设计要求
//课程设计封面
//程序中用到的四张表
//学生表
//选课表
//课程表
//完整的可执行程序
//框架程序
▪ system() 系统库函数的使用应包含头文件;

include <stdlib.h>

system(“cls”) ; //功能:清除屏幕
system(“pause”) ; //功能:暂停程序执行
//按任意键后继续执行
fflush(stdin); //清空输入缓冲区
c=getchar(); //读取一个字符
期末考试成绩和课设成绩挂钩,期末考试未通过,课设不能通过
课设考核分数构成(课设报告在学习通提交电子档即可)
课设报告30%,代码功能实现15%,代码关键部分注释5%,期末考
试成绩参考20%,现场回答问题或按要求编写代码30%
考核5级制:优秀、良好、中等、及格、不及格
考核时间:期末考试结束后的一至两周内,具体时间等通知