教师信息管理系统(C语言课程设计)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计任务书
计算机科学与技术专业年级班
一、设计题目
教师信息管理系统设计
二、主要容
教师信息包括教师号、、性别、年龄、学历、职称、工资、住址、等(教师号不重复)。试设计一教师信息管理系统,使之能提供以下功能:
(1)系统以菜单方式工作
(2)教师信息录入功能--输入
(3)教师信息删除功能
(4)教师信息浏览功能--输出
(5)查询和排序功能:(至少一种查询方式) --算法
按教师号查询
按职称查询等
三、具体要求
围绕课程设计的目的和意义,基本要求如下:
1、认真阅读《C语言课程设计》指导书,明确课程设计的目的、意义和要求;
2、快速总结C程序设计语言的精髓,如:函数的概念、函数的设计和函数的调用;
3、快速熟悉Tuber C 或C++的上机环境。能熟练进行高级编辑操作(特别是字块操作);熟悉步进式、断点跟踪的程序调试方法,提高工作效率。
4、根据“课程设计题目”,采用结构化的程序设计思想,确定系统的总体设计方案、确"定时间进度。如果是多人共一题,则要首先完成小组的人员分工及安排,不允许重题现象。
5.学习并了解良好的程序设计风格。按质、按量、并按时间完成课程设计的任务。
6.提供可运行的课程设计系统,参加上机面试答辩。
本次课程设计的重点是:学会设计并编写函数,掌握好各函数之间的调用关系;利用文件操作函数,建立数据库并完成对数据库的各种操作;掌握几种典型算法的应用(如:冒泡法、选择排序法和折半查找法)。同时锻炼学生根据题目进行分析、设计、编码、调试程序和书写必要文档的综合处理能力,从实践中学习并体会程序设计的结构化思想和设计方法。
四、进度安排
依照教学计划,课程设计时间为3周。按照软件工程的思想,软件系统的分析设计至关重要,并要充分重视书写“文档”。避免甚至杜绝“拿到题目就编码”的现象。建议将时间分为三个阶段:
第一阶段,根据题目要求,拿出系统的总体设计方案:即构思各程序模块的算法,并画出相应的N-S图,同时编写相应的文档;
第二阶段,根据N-S图编写程序代码并单独调试,再将调试通过的各个子模块进行集成调试;
第三阶段,归纳文档资料,按要求填写在《课程设计说明书》上,并参加答辩。
三个阶段时间分配的大概比例是:35:45:20。
五、完成后应上交的材料
1.课程设计的题目、系统的总功能和各子模块的功能;
2.题目的设计思想(或算法)简述;
3.主要程序的框图(要求用N-S图);
4.源程序代码(要求在关键的位置有注释,从而增加程序的可读性);
5.课程设计的总结报告,主要包括以下容:
(1)课程设计中遇到的主要问题和解决方法;
(2)你的创新和得意之处;
(3)设计中存在的不足及改进的设想;
(4)本次课程设计的感想和心得体会。
以上完成的源程序及相关文档,填写在《课程设计说明书》上,要求干净整洁,符合课程设计的要求和规。
六、总评成绩
指导教师签名日期年月日系主任审核日期年月日
目录
一.题目设计思想简述 (5)
二.程序的N—S图 (7)
2.1总程序的N—S图 (7)
2.2各子函数的N—S图 (7)
2.2.1教师信息录入函数 (8)
2.2.2教师信息浏览函数 (8)
2.2.3教师信息删除函数 (9)
2.2.4教师信息查询函数 (9)
2.2.5教师信息排序函数 (10)
三.源程序代码 (11)
四.程序运行效果图 (33)
4.1登陆界面 (33)
4.2菜单栏 (33)
4.3录入功能 (34)
4.4浏览功能 (34)
4.5删除功能 (35)
4.6查询功能 (35)
4.7排序功能 (36)
五.总结报告 (37)
5.1课程设计中遇到的主要问题和解决方法 (37)
5.2你的创新和得意之处 (37)
5.3设计中存在的不足及改进的设想 (37)
5.4本次课程设计的感想和心得体会 (38)
一.题目设计思想简述
如上图所示,该教师信息管理系统主要是一个以动态链表的应用为基础来实现对教师信息的录入,查询,删除等功能。
定义教师结构体如下:
struct teacher
{
long num;//教师号
char name[20];//
char sex[5];//性别
int age;//年龄
char edu[20];//学历
char title[20];//职称
long wage;//工资
char addr[100]; //地址
char telep[15];//
struct teacher *next;
}*head=NULL;
主函数只进行口令函数和菜单栏函数的调用,主要工作通过菜单函数实现。
口令为123456。
菜单栏函数通过用switch语句实现不同功能的选择,不同的功能用不同的子函数实现。
录入教师信息通过建立动态单链表来实现。
浏览教师信息则通过将链表所有数据顺序输出来实现。
查询功能只要从链表头开始不断往下一个结点读取信息跟所要查找的信息比较,直到读取到的信息跟所要查找的信息相同或链表尾为止,并把此结点的信息输出。
删除教师信息的函数是通过查找链表中有该信息的结点后将该结点移出链表,即使该结点前一个结点直接指向该结点后面的结点来达到删除信息的目的。
排序函数是通过交换结点在链表中的位置来实现的,即使得各结点在链表中的位置便是所要得到的排序该信息应在的位置,这样直接顺序输出链表的信息时就能按所要的排序输出了。