C语言学生信息管理系统项目实训文档(共20页).doc
《C语言学生信息管理系统项目实训文档(共20页).doc》由会员分享,可在线阅读,更多相关《C语言学生信息管理系统项目实训文档(共20页).doc(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上广东交通职业技术学院软件技术(可视化程序设计)专业项目实训 报告书课程名称:C语言程序设计 课程设计课程设计题目:学生信息管理系统课程设计日期:2010年6月28日起 7 月 3 日止小组成员:姓名:刘雁璋 学号:17号指导教师: 万东老师目录1 摘要概述开发系统的目的、意义及主要功能1.1 我是软件班的学生,学习了C语言当然要活学活用啦!C语言是一门比较基础的课程,虽然现在的社会已经很少用到,但是对我们学生来说还是有用的,因此我们要设计一个学生信息管理系统。原因有几个:一是能看出我们学习C语言的情况,二是能表现出我们的创新能力,因为这个系统已经有N多人设计过了,看看
2、我们能否推陈出新。三是我了完成我们的作业需要。1.2 随着科学技术的不断提高,计算机科学日渐成熟,其强大功能已为人们深刻认识,它已进入人们生活的各个领域,并发挥了越来越重要的作用,针对人工管理的缺点,最好的解决办法就是借助计算机技术提供一个电子化的课程设计管理平台,学生信息管理系统就因此诞生了!1.3 目的及意义:学生信息管理系统是学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生信息管理系统应该能够为管理者提供充足的信息和快捷的查询手段.但是一直一来人们使用传统人工的方式管理文件信息,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和
3、数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻的认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生信息进行管理,具有手工管理无法比拟的优点。例如:检索迅速、查找方便、可靠性强、存储量大、保密性好、寿命长、成本低等。这些优点都能够极大地提高学生信息管理的效率,也是学校的科学化、正规化管理,与世界接轨的重要条件。因此开发一套这样的管理系统成为很有必要的事情。1.4 功能简述:(1) 建立学生信息的结构体(2) 学生信息的初始化(可以从文件获取)(3) 学生信息的添加、修改、删除、查
4、找(4) 学生信息的输出(5) 对学生信息按学号、成绩排序(6) 计算一门课的平均分和总分(7) 将学生信息保存为文件综合应用数组、指针、结构体、文件等,对该设计题目进行设计和实现。课程设计完成后,提交课程设计报告。2 需求分析2.1 学校每一学期到要考试,这就会有成绩的录入工作,用怎样的方法才能更好的,更快的,更轻松,更完美的把这种事情做好了?这就要用到学生信息管理系统了。学生信息管理系统能完成你想要的需求,改变了以前一些麻烦现状,化麻烦为轻松。实现了快捷办公的需求。2.2 目前,学校学生管理是教务管理中的一个极为重要的环节,它是整个管理的核心和基础。由于学校规模进一步扩大,学生人数逐年上升
5、,学生情况的管理也变得越来越复杂。面对如此繁杂的任务。如果让个人去管理文档,就会显得费时费力。尤其在管理成绩时,任务更加繁重,就成绩管理本身来说,它是一项任务繁重、时效性较强的系统工作,它不但涉及学生个人成绩查询,更涉及到各教师的工作效率和质量。近年来随着计算机的迅速发展,计算机已经在社会各个领域显示了它巨大的作用。毋庸置疑,切实有效地把计算机管理引入学校教务管理中,对于促进学校管理制度,提高学校教学质量与办学水平有着显著意义。 3 软件开发工具与环境概述3.1 开发工具:Turbo C 2.0/visualC 6.03.2 运行环境:硬件环境: 现在的计算机硬件基本上都支持,因为本系统小,可
6、行性高,几乎能在所有计算机上运行。操作系统: Windows 98/2000/XP/win7等可以4 概要设计a) 用户接口设计4.1 用户接口:本系统支持在DOS环境下运行。4.2 内部接口:系统内部模块之间采用直接调用的方式,所有的参数传递通过函数调用的方式运行。4.3 出错信息:当系统运行过程中出现错误时,将给出相关的错误信息。b) 模块说明(一) 输入学生成绩 (二) 浏览学生成绩 (三) 修改学生成绩 (四) 删除学生成绩(五) 排序学生成绩 (六) 查找学生成绩 (七) 安全退出系统c) 数据结构设计本程序采用链表结构实现存放学生信息,链表结构图如下成员名类型描述NameChar存
7、放学生姓名Sexchar存放性别Idlong存放学号,必须唯一Scoreint存放各门成绩Totalint存放总成绩m_c int存放平均成绩d) 菜单设计用switch语句对学生信息进行选择性的编辑a) 当用户输入!时,进入菜单选择;b) 当用户输入1时,创建新的学生信息,并输出链表中的全部信息。c) 当用户输入2时,浏览学生信息,可以查看所有学生的信息;d) 当用户输入3时,修改学生的信息,按学号或姓名修改;e) 当用户输入4时,删除学生信息;f) 当用户输入5时,排序学生信息,选择按学号或总分排序;g) 当用户输入6时,查找学生信息,按学号或姓名查找;h) 当用户输入7时,保存学生信息;
8、i) 当用户输入8时,退出系统。e) 系统结构图主模块显示主菜单输入学生信息浏览学生信息修改学生信息删除学生信息查找学生信息登陆界面安全退出系统排序学生信息按学号查找按姓名查找按姓名排序按序号排序学生登陆界面老师登陆界面5 详细设计2主函数模块的流程图开始main()调用switch函数输入choose的值Choose=?调用Exit()函数调用Save()函数调用Find()函数调用Paixu()函数调用Delete()函数调用Insert()函数调用Display()函数调用Create()函数2.功能模块与程序的关系程序模块程序1程序2程序3程序4程序5程序6创建Creatwhileif
9、浏览Display修改、插入Insert删除Del排序Paixu查找Find保存Load退出Sexit1 每个模块的详细设计a) 创建学生信息链表 函数原型、功能和形参说明1. 函数原型:student* creat( )2. 函数功能:创建基础数据函数,并带回一个指向链表头的指针3. 参数说明:student *head 链表头结点指针4. 核心程序:student* creat( )nt i; struct student *head,*p1,*p2; p1=p2=(struct student *)malloc(LEN); n=0; p1-total=p1-score0+p1-score
10、1+p1-score2+p1-score3; if(n=0)head=p1; else p2-next=p1; p2=p1; n+; b) 学生信息的保存 函数原型、功能和形参说明1. 函数原型:save(student *head)2. 函数功能:以文件的形式保存数据3. 参数说明:student *head 链表头结点指针 核心程序:save(student *head)FILE *fp; student *p; if (fp=fopen(d:STU_LIST,wb)=null) printf(Cannot open the file!n); return; printf(nSaveing
11、 the file!n); p=head; while(p!=null) fwrite(p,LEN,1,fp); p=p-next; fclose(fp);c) 输出链表函数 函数原型、功能和形参说明1. 函数原型:output(student *head)2. 函数功能:输出链表函数3. 参数说明:student *head 链表头结点指针 核心程序:output(student *head) student *p;p=head; if(head!=NULL) doprintf(%8ld %6s %4s %2d %2d %2d %2d %-.2f %3dn,p-id,p-name,p-sex
12、,p-score0,p-score1,p-score2,p-score3,p-total/4.0,p-total); printf(-n); p=p-next; while(p!=NULL); d) 修改结点函数 函数原型、功能和形参说明1.函数原型:struct student *insert(struct student*head) 2.函数功能:修改学生的信息3.参数说明:student *head核心程序:struct student *insert(struct student*head)struct student *p1,*p2,*p3; printf(请输入修改信息!n); p
13、1=(struct student *)malloc(LEN); p1-total=p1-score0+p1-score1+p1-score2+p1-score3;/*计算总分 */ p2=head; if(head=NULL) head=p1;p1-next=NULL; else while(p1-idp2-id)&(p2-next!=NULL) p3=p2; p2=p2-next; if(p1-idid) if(head=p2)p1-next=head;head=p1; else p3-next=p1;p1-next=p2; elsep2-next=p1;p1-next=NULL; n+;
14、 return(head); e) 删除结点函数 函数原型、功能和形参说明1. 函数原型:struct student *delete (struct student *head,long int num)2. 函数功能:删除学生的信息3. 参数说明:student *head 链表头结点指针核心程序:struct student *p1,*p2; printf(要删除的学生准考证号为:%ldn,num); if(head=NULL) printf(这是一个空表,没有可删除的学生准考证号!n);return(head); elsep1=head; while(num!=p1-id&p1-nex
15、t!=NULL) p2=p1;p1=p1-next; if(num=p1-id) if(p1=head) head=p1-next; else p2-next=p1-next; printf(删除准考证号为%ld的学生n,num); n-; else printf(没找到准考证号为%ld的学生!n,num); return(head); f) 排序函数 函数原型、功能和形参说明1.函数原型:paixu(struct student *head) 2.函数功能:对学生成绩排序3.参数说明:student *head 链表头结点指针 核心程序: p1=head; for(k=0;knext; fo
16、r(k=0;km-1;k+) for(j=k+1;jtotaltotal) p2=pk;pk=pj;pj=p2; g) 计算平均分函数 函数原型、功能和形参说明1.函数原型: dkarg(struct student *head) 2.函数功能: 计算出学生各科成绩总分和平均分3.参数说明: student *head 链表头结点指针 核心程序:p1=head; for(k=0;kscore0; arg2+=p1-score1; arg3+=p1-score2; arg4+=p1-score3; p1=p1-next; arg1/=m;arg2/=m;arg3/=m;arg4/=m; h) 读
17、取信息 函数原型、功能和形参说明1. 函数原型: student * load()2. 函数功能: 将文件从磁盘中读出3. 参数说明: 核心程序:if (fread(p,LEN,n,fp)!=1) if (feof(fp) fclose(fp); return (p); i) 查找 函数原型、功能和形参说明函数原型: struct student *find(struct student *head,long int num) 函数功能: 根据用户输入的学生姓名进行查找,并将结果输出 参数说明: student *head,long int num 核心程序:struct student *p
18、1; printf(要查找的学生准考证号为:%ldn,num); if(head=NULL) printf(这是一个空表,没有要查找的学生准考证号!n);return(head); elsep1=head; while(num!=p1-id&p1-next!=NULL) p1=p1-next; 6 系统测试本学生信息管理系统能够完成一定的应用要求,不足的地方还有很多,如功能还不够多,还是需要添加的,系统有点寒酸,没有设计好的界面,但是还是可以用的。(1)能够通过编译时出现的出错提示信息,进行初步的纠错。(2)完成一个程序的一般步骤为设计,录入 ,编译 ,如果出错,则修改,然后再编译,编译成功后
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 学生 信息管理 系统 项目 文档 20
限制150内