1、 学生成绩管理系统课程设计学生成绩管理系统课程设计 专业:通信工程专业:通信工程 学生成绩管理系统学生成绩管理系统 一系统功能模块结构图 二数据结构设计及用法说明 程序中使用到了链表的数据结构,其中包括单链表的初始化,建立,插入,查找, 删除。各部分使用结构设计及用法说明如下: i nclude i nclude typedeftypedef intint student 定义结点类型: typedeftypedef structstruct Node ElemType data structstruct Node *next Node,*LinkedLis 单链表的初始化: Node *L;
2、 L = (Node *)mallocmalloc(sizeofsizeof(Node); ifif(L = NULL) printfprintf(“申请内存空间失败n“); L-next = NULL; 单链表的建立: LinkedList LinkedListCreatT() Node *L; L = (Node *)mallocmalloc(s sizeofizeof(Node); L-next = NULL Node *r r = L; ElemType x; whilewhile(scanfscanf(“%d“, p-data = x r-next = p r = p; r-next
3、 = NULL 主程序 初始化 菜单界面 输入 退出 分类 插入 计算 读取 保存 删除 查找 显示 returnreturn L; 单链表的插入,在链表的第 i 个位置插入 x 的元素: LinkedListInsert() Node *pre; pre = L; intint tempi = 0 forfor (tempi = 1; tempi next; Node *p p = (Node *)mallocmalloc(sizeofsizeof(Node); p-data = x; p-next = pre-next pre-next = p; returnreturn L; 单链表的删
4、除,在链表中删除值为 x 的元素: LinkedListDelete() Node *p,*pre; p = L-next; whilewhile(p-data != x) pre = p p = p-next pre-next = p-next freefree(p); returnreturn L; 三.程序结构(画流程图) (1) 各函数声明:菜单选择;创建学生数据(学生学号,姓名,年龄,性别, 各科成绩,总分,平均分,按平均分的排名) ;打印学生数据;插入学生 数据;删除学生数据;查找学生数据;存盘;从文件中读取学生数据;计 算学生数据。 (2) 主函数:通过 switch()函数调用
5、以上各建立的函数进行菜单选择的各 种操作。 流程图如下: 开始 Choice? Case2 Case3 Case4 Case5 Case6 Case7 Case8 Case9 Case1 创建 显示 查找 删除 排序 插入 保存 读取 退出 结束 四各模块的功能 1.Enter list 输入记录 2.Delete a record from list 从表中删除记录 3. print list 显示链表中所有记录 4. Search record on name 按照姓名查找记录 5. Save the file 将链表中记录保存到文件 6. Load the file 从文件中读入记录 7
6、. compute the score 计算所有学生的总分和均分 8. insert record to list 插入记录到表中 9. Quit 退出 五实验结果(包括输入数据和输出结果) 执行程序,显示如下: 输入 2,回车。 输入 5,回车,再输入 2,回车。 六心得体会: 通过持续一周的 C 语言课程设计实验, 我深刻体会到了编程过程所需要的对 知识掌握的熟练性,对工作态度的认真,严谨性是多么的重要,由于我们大二上 学期学习 C 语言时有一些知识没有学,比如链表和文件,所以我们在这次实验时 必须抓紧时间将这些知识补充, 同时以前学过的知识也有所遗忘, 必须查缺补漏。 在编程的过程中,我发现了必须时刻