c语言课程设计报告---学生信息管理系统

上传人:新** 文档编号:560836335 上传时间:2023-12-20 格式:DOCX 页数:14 大小:68.28KB
返回 下载 相关 举报
c语言课程设计报告---学生信息管理系统_第1页
第1页 / 共14页
c语言课程设计报告---学生信息管理系统_第2页
第2页 / 共14页
c语言课程设计报告---学生信息管理系统_第3页
第3页 / 共14页
c语言课程设计报告---学生信息管理系统_第4页
第4页 / 共14页
c语言课程设计报告---学生信息管理系统_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《c语言课程设计报告---学生信息管理系统》由会员分享,可在线阅读,更多相关《c语言课程设计报告---学生信息管理系统(14页珍藏版)》请在金锄头文库上搜索。

1、WORD格式题目:学生信息管理系统一、需求分析任务要求:自学 C语言中有关链表及外部文件的内容,设计学生信息管理系统。具体要求如下: 建立学生信息,信息至少包括名字、性别、年龄、学号、系别、家庭信息等内容; 能够提供添加、删除和修改学生信息等功能; 能将通讯录保存在文件中; 能够按指定方式输出学生信息。系统功能需求分析: 1、为存储学生信息,需定义一个构造体类型,成员名字、性别、年龄、学号、系别、家庭信息等,并建立链表,定义该构造体类型的指针,用于指向各结点; 2 、分别建立具有添加、删除、修改、查询等功能的子函数,完成相应功能,对程序实现模块化。这其中要用到对链表的删除、插入等知识。删除时用

2、一构造体指针指向链表的第一个结点, 检查该节点的值是否等于输入的要删除的学号, 假设相等就删除,不相等那么后移指针,直至表尾。插入时也要先找到相应结点,再添加。 3、为实现存储功能,需用到文件的相关函数,翻开文件,将添加、修改或删除的信息存入磁盘中。 4、为以表格的形式输出文件,宏定义格式化输出语句,指定输出学专业资料整理WORD格式生信息。专业资料整理WORD格式二、概要设计系统总体设计框架:对程序进展模块化,建立添加、修改、删除、查找和显示功能的子函数,各子函数中运用链表存储数据。从主函数开场执行,调用各个子函数,并运用文件相关知识将信息存入磁盘中。系统功能模块图 :主菜单学学学学生生生生

3、形信信信象息息息查添删添询加除加是否保存关闭文件专业资料整理WORD格式2专业资料整理WORD格式三、详细设计主要功能模块的算法设计思路如下:1、查询通讯录信息 void chakan()( 1为开辟一个新单元( 2输入查询关键字:( 3读取保存的文件数据输入 ASCLL字符:( 4在链表中寻找相应结点;( 5调用输出函数,输出结点信息。2、添加信息函数 void add()( 1定义指向构造体变量的指针;( 2移动指针,找到插入结点;( 3在要插入的结点输入信息;( 4调用保存函数,翻开文件,保存输入信息。3、删除信息函数 void del()( 1定义指向构造体变量的指针;( 2用指针检验

4、链表中是否有记录,假设没记录,返回主函数;( 3根据要修改的编号查找要删除的结点;( 4修改链表,删除对应结点。4、修改信息函数 void xiugai()( 1定义指向构造体变量的指针;( 2读取保存的文件数据输入 ASCLL字符:( 3用指针检验链表中是否有记录,假设没记录,返回主函数;( 4根据要修改的编号查找对应结点;( 5修改信息;( 6翻开文件,保存修改记录。5、保存信息函数baocun()1定义指向构造体变量的指针;2用文件指针指向要读写的磁盘文件名,假设没有那么新建此文件名:3用指针检验链表中是否有记录,假设没记录,返回主函数:4翻开文件,保存记录:6、屏幕操作函数 void

5、stubent187()1以一定格式输出所想要的图形:专业资料整理WORD格式3专业资料整理WORD格式四、主要源程序代码定义变量:对整个程序定义全局变量#include stdio.h#include conio.h#define STUDENT ID/* 所有 STUDENT 都用 ID 来代替 */typedef struct node/* 定义构造体 */char ming50;/* 名字 */char xing50;/* 性别 */char nian50;/* 年龄 */intxuehao;/* 学号 */char xibie50;/* 专业 */char sushe50;/* 宿舍

6、号 */char jia50;/* 家庭地址 */struct node *next;ID;/* 学生信息变量名 */ID *head=NULL;/* 定义一个头指针 */FILE *zhi;/* 定义一个文件指针 */主菜单界面:进入屏幕界面的形式void stubent187()/* 屏幕格式函数 */printf(*n);printf(*学生信息管理系统*n);printf(*n);printf(*请选择: 1:查看 ; 2:添加 ; 3:删除 ;*n);printf(*4:修改 ; 0:退出系统*n);printf(*n);printf(*n); printf( 输入 04 数字 mi

7、ng,&t-xing,&t-nian,&t-xuehao,&t-xibie,&t-sushe,&t-jia); /* 读取保存的文件数据输入 ASCLL字符: */printf(%10s%10s%10s%10d%10s%10s%10sn,t-ming,t-xing,t-nian,t-xuehao,t-xibie,t-sushe,t-jia);/* 以这形式输出各个学生信息*/t-next=(ID *)malloc(sizeof(ID);t=t-next;添加学生信息记录: void add()char i;/* 添加 */ID *t1,*t2;t1=t2=NULL;loop:t1=(ID *)

8、malloc(sizeof(ID);/* 为 t1 开辟一个新单元 */printf( 请输入* :);scanf(%s,&t1-ming);/* * */printf( 请输入性别 :);scanf(%s,&t1-xing);/* 性别*/printf( 请输入年龄 :);scanf(%s,&(t1-nian);/* 年龄 */printf( 请输入学号 :);scanf(%d,&(t1-xuehao);/*学号*/printf( 请输入系别 :);scanf(%s,&(t1-xibie);/* 系别 */printf( 请输入宿舍号 :);scanf(%s,&(t1-sushe); /*

9、宿舍号 */ printf( 请输入家庭地址 :);scanf(%s,&(t1-jia); /* 家庭地址 */ t1-next=NULL;if (head=NULL)/* 如果头结点为空 */head=t1;/*t1 指向头结点 */t2=t1;else t2=head;while (t2-next!=NULL) t2=t2-next;/* 没有成立那么指向下个结点 */ t2-next=t1; getchar();printf( 是否继续添加 (Y/N):n);专业资料整理WORD格式5专业资料整理WORD格式scanf(%s,&i);/* 输入 Y/N*/if(i=y|i=Y)clrsc

10、r(); goto loop;/*清屏在 循环 */elseprintf( 是否保存此次添加 (Y/N)n);scanf(%s,&i);if(i=y|i=Y)/* 是否要保存 */baocun();/* 调用保存 */clrscr();/* 清屏 */stubent187();/*调用屏幕函数 */printf( 保存成功 );elseif(i=n|i=N)clrscr();/* 清屏 */stubent187();/* 调用屏幕函数 */return ;删除学生信息操作:对以存的学生信息进展删除void del()/* 删除 */ID *A,*B;/* 定义指针 */char t,i;int xuehao;/* 定义整型变量与字符型变量*/A=B=NULL;if(zhi=fopen(yihu1.txt,a+)=NULL) printf( 没有此信息文件 n); else loop: printf( 请输入要删除的学生学号 :);scanf(%d,&xuehao); while (!feof(zhi) fscanf(zhi,%10s%10s%10s%10d%10s%10s%10sn,&A-ming,&A-xing,&A -nia

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 习题/试题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号