数据结构课程设计学生成绩管理系统_第1页
数据结构课程设计学生成绩管理系统_第2页
数据结构课程设计学生成绩管理系统_第3页
数据结构课程设计学生成绩管理系统_第4页
数据结构课程设计学生成绩管理系统_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计(论文)课程名称: 数据结构课程设计 题 目: 学生成绩管理系统 院 (系): 信息与控制系 专业班级: 计算机1202 姓 名: 陈 安 学 号: 201206060202 指导教师: 张 帆 2014年 11 月 14 日西安建筑科技大学华清学院课程设计(论文)任务书专业班级: 计算机1202 学生姓名: 陈安 指导教师(签名): 一、课程设计(论文)题目学生成绩管理二、本次课程设计(论文)应达到的目的数据结构是实践性很强的课程。课程设计是加强学生实践能力的一个强有力手段。课程设计要求学生在完成程序设计的同时能够写出比较规范的设计报告。严格实施课程设计这一环节,对于学生基本程序设计

2、素养的培养和软件工作者工作作风的训练,将起到显著的促进作用。本题目要达到目的:熟练掌握链表结构的实现与应用。 三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等) 实现输入、输出、插入、删除、查找、追加、读入、显示、保存、拷贝、排序、索引、分类合计、退出等功能。输入数据:学生姓名;学生证号;学生所在院系;学生所修课程名;学生成绩;实现对学生成绩的如下操作:1. 输入、输出;2. 各种数据操作:插入、删除、查找、追加;3. 排序、索引、分类合计;4. 优化界面设计(用到菜单、命令按钮等)。四、应收集的资料及主要参考文献: 由于本课程没有安排“课内上机”学时,因此,在

3、课程设计之前必须自己已经上机练习了“线性表”的基本操作。 参考文献:1.本年级使用的教材:数据结构与算法分析(C+版),电子工业出版社,2005.7,Clifford A.Shaffer编著2. 数据结构与算法,科学出版社,2005.08,赵文静 祁飞等编著3. 数据结构-C+语言描述,西安交通大学出版社,1999.01,赵文静编著4.VC+深入详解,电子工业出版社,2007.7,孙鑫,于安萍编著5.C+程序设计, 清华大学出版社, 2005.8,COHOON & DAVIDSON编著五、审核批准意见教研室主任(签字) 摘要 本课程设计是对学生信息(包括学号、姓名、性别、高数、英语、C

4、语言、平均分)进行管理,包括学生成绩的信息输入、显示、添加、删除、修改、查询、退出.将学生的成绩信息进行记录,信息内容包含:(1)学生的学号(2)学生的姓名(3)学生的成绩。假设,现收集到了一个班学生的所有成绩信息,要求用C语言编写一个简单的成绩管理系统,可进行录入、查询、修改和浏览等功能关键词:学生成绩管理系统目录一、需求分析1二、概要设计1三、详细设计2四、调试分析7五、使用说明10六、课设总结10参考文献11一、需求分析 主要叙述软件必须具备的功能和要求。本课程设计是用于对学生的成绩进行管理。通过本系统,可以将各个学生的成绩记录输入到系统中,保存到文件,便于查阅和相关管理。此外

5、,该系统还能实现对学生成绩记录的显示,查询以及插入或删除学生的成绩记录等功能。二、概要设计 主要说明对软件中有关信息设计的数据结构;画出整个软件的系统结构图,说明各个模块的功能。2. 1利用的数据结构内容:以c语言和数据结构为基础知识,应用结构体把学生信息(学号、姓名、性别、高数成绩、英语成绩、C语言成绩)连接起来组成一个整体,建立双向循环链表,运用主函数调用链表的功能函数,用链表的建立、遍历、修改、添加、删除、输出等操作实现各个功能。2.2功能描述 针对学生具体情况,进行学生成绩管理。采用链表和文件存储结构进行学生信息的存储;对学生的信息可以进行修改、删除、添加、查询;菜单函数输入

6、学生成绩显示学生成绩添加学生成绩将文件内信息插入链表删除学生成绩修改学生成绩 主函数查询学生成绩退出系统 系统结构图 图 2.1三、详细设计主要写出所设计数据结构的详细定义和组成;各个模块的算法流程图或伪码表示。3.1学生成绩的结构体类型定义为:定义与系统需求有关的结构体:姓名;性别:高数成绩:英语成绩,C语言成绩struct student/学生信息 int no; char name20;/学生姓名 char sex4;/学生性别 float gaoshu;/学生高数成绩 float yingyu;/学生英语成绩 float cyuyan;/学生C语言成绩 float ave; float

7、 sum; ;struct student stuMAX,*p;3.2 主函数: 运行出菜单,然后根据菜单选择执行的功能,1输入学生成绩,2显示学 生成绩3添加学生成绩,4删除学生成绩,5修改学生成绩,6查询学生成绩 7.退出 head=(DuLNode*)malloc(sizeof(DuLNode);/*分配头结点的空间*/ if(!head)/*判断头结点空间分配是否成功*/3.3 DuLNode *save(DuLinkList head) 保存函数,将文件中的内容保存在链表 里面:利用链式存储把有关的相应信息:姓名,性别,高数成绩,英语成绩, C语言成绩存储起来。建立一个txt格式的文

8、本文档,定义并建立指针,利用指针把这些信息存储 到这个文本文档里面。 DuLNode *save(DuLinkList head) DuLinkList p,q;/*定义结点类型指针*/ FILE *fp ;/*定义文件指针*/ if(fp=fopen("consumer.txt","r+")=NULL) printf("cannot open this file.n"); fflush(stdin); getch(); exit(0); 3.4 DuLNode *find(DuLinkList&head,int n),查找函

9、数,根据学生的姓名信息,对链表进行遍历,然后将指针指向查找结点,将结点内的信息读出:调用查找函数,输入要查询的学生学号,系统给出所要查找学生的资料返 回 主 菜 单输 出学 生资 料 输 入 要查 询 对的 学 生姓 名 查询 学生 资料 查询学生资料 图3.1 printf("输入要查询的学生姓名:"); fflush(stdin); gets(str); for(i=0;i<now;i+) if(!strcmp(,str) printf("t学号t姓名t性别t高数t英语tC语言t平均值n"); printf("t%d

10、t%st%st%.2ft%.2ft%.2ft%.2fn",stui.no,,stui.sex,stui.gaoshu,stui.yingyu,stui.cyuyan,stui.ave); printf("tt按任意键返回主菜单."); fflush(stdin); as=getch();3.5 DuLNode *alter(DuLinkList&head)更改函数,根据学生学号利用链表的遍 历找到存储想要更改学生信息的链表,然后再链表内更改学生信息,最后 利用文件指针将链表内的信息重新输入文件中:修改学生资 料返回主菜单判断姓名是否正确输

11、入要修改学生姓名 不正确 正确进行学生信息修改 修改学生资料 图3.2 int i; char str20; printf("输入要修改的学生姓名:"); fflush(stdin); gets(str); for(i=0;i<now;i+) if(!strcmp(,str) system("cls"); printf("ntt输入修改学生信息n"); printf("n输入学生学号:"); fflush(stdin); scanf("%d",&stui.no);

12、 printf("n输入学生性别:"); fflush(stdin); gets(stui.sex); printf("n输入学生高数:"); fflush(stdin); scanf("%f",&stui.gaoshu); printf("n输入学生英语:"); fflush(stdin); scanf("%f",&stui.yingyu); printf("n输入学生C语言:"); fflush(stdin); scanf("%f",&

13、amp;stui.cyuyan); printf("nn"); break; 3.6 DuLNode *add(DuLinkList&head)添加函数,在头结点和末端结点之间添加新的结点,存储新的学生信息,并且删除文件中的内容,将链表内的新信息写入文件: 返回主菜单判断是否继续输入输入学生的学号姓名成绩信息添加学生成绩 否 是 添加学生资料 图3.3 printf("ntt输入新插入学生队信息n"); printf("n输入学生学号:"); scanf("%d",&stunow.no); fflu

14、sh(stdin); printf("n输入学生姓名:"); fflush(stdin); gets(); printf("n输入学生性别:"); fflush(stdin); gets(stunow.sex); printf("n输入学生高数:"); fflush(stdin); scanf("%f",&stunow.gaoshu); printf("n输入学生英语:"); fflush(stdin); scanf("%f",&stun

15、ow.yingyu); printf("n输入学生C语言:"); fflush(stdin); scanf("%f",&stunow.cyuyan); printf("nn"); now=now+1; printf("是否继续输入?(Y/N)"); fflush(stdin); ch=getch(); system("cls"); 3.7. DuLNode *del(DuLinkList&head)删除函数,对链表进行遍历,找到存储想 要删除信息的结点,然后在链表中删除该结点,最

16、后删除文件中的旧信息, 将链表中的全部信息输入文件中:输入要删除的学生学号删除学生资料返回主菜单删 除资 料 删除学生资料 图3.4 int inum,i; printf("请输入要删除的学生的学号:"); fflush(stdin); scanf("%d",&inum); for(i=0;i<now;i+) if(stui.no=inum) if(i=now)now-=1; else stui=stunow-1; now-=1; break; system("cls");四、调试分析包括: 测试数据; 测试输出的结果;

17、时间复杂度分析;算法的改进设想。 运行开始(图4.1) 选择1输入成绩(图4.2) 选择2显示成绩(图4.3) 选择3添加学生信息(图4.4) 选择4删除学生信息(输入学号1)(图4.5) 选择5修改学生信息(修改谢海洋同学的)(图4.6) 选择6查询学生信息(输入姓名张瑜)(图4.7) 选择7退出(如图4.8)五、使用说明应该写明程序的主要程序文件名,如果需要安装,要有程序的安装使用说明;#include<stdio.h>#include<conio.h>#include <stdlib.h>#include<string.h>/头文件#def

18、ine MAX 80void input();void display();void insert();void del();void average();void find();void average();void modify(); /声明录入(input),显示(display),排序(sort),添加(insert),删除(del),修改(modify),查询(find)函数。六、课设总结包括: 课程设计过程的收获;遇到的问题,解决问题过程的思考(存在问题?问题如何解决?);程序调试能力的思考; 对数据结构这门课程的思考; 在课程设计过程中对数据结构课程的认识等内由于本课题中的许多知识点都没有学过都要靠自己到课外的资料中去查找。在用的时候难免出现这样那样的错误。如开始设计出来的菜单不是预想的那样,而是总个窗中出现混乱。解决的这个问题的办法是调整。一个系统的菜单和提示信息非常重要。如果没有这些用户根本不知道怎么用你设计的这个系统。在设计的调试过程中也无法顺利的完成调试工作。有了一个清晰简单的菜单和一些提示信息这后,调试过程完成的非常顺利。总结出了一点点的经验如下:1、要对系统的功能和要求做出详细的分析,并合理分解

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论