版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计论文课程名称: 数据构造课程设计 题 目: 学生成绩管理系统 院 系: 信息与控制系 专业班级: 计算机1202 姓 名: 陈 安 学 号: 2 指导教师: 张 帆 2021年 11 月 14 日西安建筑科技大学华清学院课程设计论文任务书专业班级: 计算机1202 学生姓名: 陈安 指导教师签名: 一、课程设计论文题目学生成绩管理二、本次课程设计论文应到达的目的数据构造是实践性很强的课程。课程设计是加强学生实践能力的一个强有力手段。课程设计要求学生在完成程序设计的同时能够写出比拟标准的设计报告。严格实施课程设计这一环节,对于学生根本程序设计素养的培养和软件工作者工作作风的训练,将起到显
2、著的促进作用。此题目要到达目的:熟练掌握链表构造的实现与应用。 三、本次课程设计论文任务的主要内容和要求包括原始数据、技术参数、设计要求等 实现输入、输出、插入、删除、查找、追加、读入、显示、保存、拷贝、排序、索引、分类合计、退出等功能。输入数据:学生姓名;学生证号;学生所在院系;学生所修课程名;学生成绩;实现对学生成绩的如下操作:1. 输入、输出;2. 各种数据操作:插入、删除、查找、追加;3. 排序、索引、分类合计;4. 优化界面设计(用到菜单、命令按钮等)。四、应收集的资料及主要参考文献: 由于本课程没有安排“课内上机学时,因此,在课程设计之前必须自己已经上机练习了“线性表的根本操作。
3、参考文献:2. 数据构造与算法,科学出版社,2005.08,赵文静 祁飞等编著3. 数据构造-C+语言描述,西安交通大学出版社,1999.01,赵文静编著4.VC+深入详解,电子工业出版社,2007.7,孙鑫,于安萍编著5.C+程序设计, 清华大学出版社, 2005.8,COHOON & DAVIDSON编著五、审核批准意见教研室主任签字 摘要 本课程设计是对学生信息(包括学号、姓名、性别、高数、英语、C语言、平均分)进展管理,包括学生成绩的信息输入、显示、添加、删除、修改、查询、退出.将学生的成绩信息进展记录,信息内容包含:1学生的学号2学生的姓名3学生的成绩。假设,现收集到了一个班学生的所
4、有成绩信息,要求用C语言编写一个简单的成绩管理系统,可进展录入、查询、修改和浏览等功能关键词:学生成绩管理系统目录 TOC o 1-3 h z u HYPERLINK l _Toc334440224 一、需求分析1 HYPERLINK l _Toc334440225 二、概要设计1 HYPERLINK l _Toc334440226 三、详细设计2 HYPERLINK l _Toc334440227 四、调试分析7 HYPERLINK l _Toc334440228 五、使用说明10 HYPERLINK l _Toc334440229 六、课设总结10 HYPERLINK l _Toc3344
5、40230 参考文献11一、需求分析主要表达软件必须具备的功能和要求。本课程设计是用于对学生的成绩进展管理。通过本系统,可以将各个学生的成绩记录输入到系统中,保存到文件,便于查阅和相关管理。此外,该系统还能实现对学生成绩记录的显示,查询以及插入或删除学生的成绩记录等功能。二、概要设计主要说明对软件中有关信息设计的数据构造;画出整个软件的系统构造图,说明各个模块的功能。1利用的数据构造内容:以c语言和数据构造为根底知识,应用构造体把学生信息学号、姓名、性别、高数成绩、英语成绩、C语言成绩连接起来组成一个整体,建立双向循环链表,运用主函数调用链表的功能函数,用链表的建立、遍历、修改、添加、删除、输
6、出等操作实现各个功能。功能描述 针对学生具体情况,进展学生成绩管理。采用链表和文件存储构造进展学生信息的存储;对学生的信息可以进展修改、删除、添加、查询;菜单函数输入学生成绩显示学生成绩添加学生成绩将文件内信息插入链表删除学生成绩修改学生成绩 主函数查询学生成绩退出系统 三、详细设计主要写出所设计数据构造的详细定义和组成;各个模块的算法流程图或伪码表示。3.1学生成绩的构造体类型定义为:定义与系统需求有关的构造体:姓名;性别:高数成绩:英语成绩,C语言成绩struct student/学生信息 int no; char name20;/学生姓名 char sex4;/学生性别 float ga
7、oshu;/学生高数成绩 float yingyu;/学生英语成绩 float cyuyan;/学生C语言成绩 float ave; float sum; ;struct student stuMAX,*p;3.2 主函数: 运行出菜单,然后根据菜单项选择择执行的功能,1输入学生成绩,2显示学 生成绩3添加学生成绩,4删除学生成绩,5修改学生成绩,6查询学生成绩 head=(DuLNode*)malloc(sizeof(DuLNode);/*分配头结点的空间*/ if(!head)/*判断头结点空间分配是否成功*/3.3 DuLNode *save(DuLinkList head) 保存函数,
8、将文件中的内容保存在链表 里面:利用链式存储把有关的相应信息:姓名,性别,高数成绩,英语成绩, C语言成绩存储起来。建立一个txt格式的文本文档,定义并建立指针,利用指针把这些信息存储 到这个文本文档里面。 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 *fi
9、nd(DuLinkList&head,int n),查找函数,根据学生的姓名信息,对链表进展遍历,然后将指针指向查找结点,将结点内的信息读出:调用查找函数,输入要查询的学生学号,系统给出所要查找学生的资料返 回 主 菜 单输 出学 生资 料 输 入 要查 询 对的 学 生姓 名 查询 学生 资料 printf(输入要查询的学生姓名:); fflush(stdin); gets(str); for(i=0;inow;i+) if(!strcmp(,str) printf(t学号t姓名t性别t高数t英语tC语言t平均值n); printf(t%dt%st%st%.2ft%.2ft
10、%.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)更改函数,根据学生学号利用链表的遍 历找到存储想要更改学生信息的链表,然后再链表内更改学生信息,最后 利用文件指针将链表内的信息重新输入文件中:修改学生资 料返回主菜单判断姓名是否正确输入要修改学生姓名 不正确 正确进展学生信息修改 int i; char str
11、20; printf(输入要修改的学生姓名:); fflush(stdin); gets(str); for(i=0;inow;i+) if(!strcmp(,str) system(cls); printf(ntt输入修改学生信息n); printf(n输入学生学号:); fflush(stdin); scanf(%d,&stui.no); printf(n输入学生性别:); fflush(stdin); gets(stui.sex); printf(n输入学生高数:); fflush(stdin); scanf(%f,&stui.gaoshu); printf(n输入学生
12、英语:); fflush(stdin); scanf(%f,&stui.yingyu); printf(n输入学生C语言:); fflush(stdin); scanf(%f,&stui.cyuyan); printf(nn); break; 3.6 DuLNode *add(DuLinkList&head)添加函数,在头结点和末端结点之间添加新的结点,存储新的学生信息,并且删除文件中的内容,将链表内的新信息写入文件: 返回主菜单判断是否继续输入输入学生的学号姓名成绩信息添加学生成绩 否 是 printf(ntt输入新插入学生队信息n); printf(n输入学生学号:); scanf(%d,
13、&stunow.no); fflush(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,&stunow.yingyu); printf(n输入学生C语言:); fflush(stdin); scanf(%f,&stunow.
14、cyuyan); printf(nn); now=now+1; printf(是否继续输入?(Y/N); fflush(stdin); ch=getch(); system(cls); 3.7. DuLNode *del(DuLinkList&head)删除函数,对链表进展遍历,找到存储想 要删除信息的结点,然后在链表中删除该结点,最后删除文件中的旧信息, 将链表中的全部信息输入文件中:输入要删除的学生学号删除学生资料返回主菜单删 除资 料 int inum,i; printf(请输入要删除的学生的学号:); fflush(stdin); scanf(%d,&inum); for(i=0;in
15、ow;i+) if(stui.no=inum) if(i=now)now-=1; else stui=stunow-1; now-=1; break; system(cls);四、调试分析包括: 测试数据; 测试输出的结果;时间复杂度分析;算法的改良设想。 运行开场图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#in
16、clude#include #include/头文件#define 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. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年连云港师范高等专科学校单招职业适应性测试备考题库及答案解析
- 2025年衡阳数学考编试卷及答案
- 基于AI的运动器械自适应制造技术
- 食品安全法培训课件百度
- 2025年韩国高考英语试卷及答案
- 山东职教测试题目及答案
- 场馆环境智能调控
- 年底一把手讲安全课件
- 多功能生物催化剂
- 慢性呼吸衰竭课件
- 营销分析年终总结
- 2025年高考化学习题分类练:化学反应机理的探究
- “一带一路”人工智能应用场景案例集2025
- 医院成本管控模式的创新与案例分析
- 国网公司两票课件
- 2025-2026学年苏教版(新教材)小学科学三年级上册科学期末复习卷及答案
- 2025年全国高校辅导员素质能力大赛基础知识测试题(附答案)
- n2级护士理论考试试题附答案
- 2025版煤矿安全规程新增变化条款考试题库
- 亚马逊知识产权培训计划
- 院感消毒隔离培训课件教学
评论
0/150
提交评论