学生信息管理系统课程设计实验报告.doc
《学生信息管理系统课程设计实验报告.doc》由会员分享,可在线阅读,更多相关《学生信息管理系统课程设计实验报告.doc(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、*大学课 程 设 计 报 告 课程名称 高级语言程序设计 设计题目 学生信息管理系统 专 业 计算机科学及技术 班 级 学 号 姓 名 完成日期 课 程 设 计 任 务 书设计题目: 学生信息管理系统设计 设计内容及要求:内容:对学生信息进行管理,学生信息包括学号、姓名、性别、年龄、学历、学号、住址、 等(学号不重复)。要求:(1)系统以菜单方式工作(2)学生信息录入功能(学生信息用文件保存) 。(3)输出学生信息、浏览学生信息功能。(4)查询与排序功能:(至少一种查询方式) ,如按学号查询、按学历查询等。(5)学生信息删除、修改功能(任选项)。 指导教师:_ 年 月 日课 程 设 计 评 语
2、 成绩: 指导教师:_ 年 月 日第 23 页【问题描述】 学生信息管理软件设计。对学生信息进行管理,学生信息包括:学号,姓名,年龄,性别,出生年月,地址, ,E-mail等。试设计一个学生信息管理软件。【基本要求】一、输入形式与输入值范围形式:用scanf输入学生学号,姓名,年龄,性别,出生年月,地址, ,E-mail。输入一个学生信息一个回车。用输入学号p1-num来控制输入,当输入学号为0时,用break跳出循环。即if(p1-num=0)break。输入值范围:学号、年龄为整型 long num; int age; 姓名为字符串型15个字节char name15; 性别为字符串型,10
3、个字节char sex10; 出生为字符串型,20个字节char chushen20; 地址为字符串型,30个字节char dizhi30;邮箱为字符串型,输入11位数字char email11。二、输出形式输出是以表格形式输出,即表格每一行都能显示第一个学生信息,第二行是显示第二个学生信息。三、程序所能达到功能对学生信息进行管理,学生信息包括职学号,姓名,年龄,性别,出生年月,地址, ,E-mail。(1)系统以菜单方式工作(2)学生信息录入功能。(3)输出学生信息、浏览学生信息功能。(4)查询与排序功能:(至少一种查询方式),如按学号查询、按姓名查询等。(5)学生信息删除、修改功能(任选项
4、)。(6)添加学生信息。【测试数据】输入:设输入四个学生信息,以最后一个学生学号为0来结束输入,学号是整型。预期输出结果:预期输出结果请参见程序后运行结果。【数据结构】排序记录数据元素表采用一维数组存储结构,每个元素包含8个关键字段,其类型描述为:#include #include /分配size字节存储区#include /包含字符串处理函数头文件,可以直接调用现有字符串处理一系列函数#define len sizeof(struct student) /宏定义求字节运算符#include /清屏功能struct student /声明一个结构体类型struct student long n
5、um; /定义学号为long型数据 char name15; /定义姓名int age; /定义年龄 char sex3; /定义性别char chushen10; /定义出生char dizhi20; /定义出生地址char phone11; /定义 char email20; /定义邮箱 struct student *next; /next是指针变量,指向结构体变量【算法思想】利用一维结构体存放所有学生信息,输入后,在输出时要对学生按学号高低排序,然后可以执行按学号查询学生信息,输入学号,删除学生信息,输入学号可以找出该学生信息,然后选择修改学生信息,如果来了新学生,还可以添加学生信息。
6、【总体设计】输入一个学生学号,来删除该学生信息输入学号,修改的学生信息显示主菜单输入函数学生排序输出学生信息删除学生信息修改学生信息添加学生信息用键盘输入学生信息按学生学号高低排序在原有的学生上添加学生信息以表格的形式输出学生信息主菜单包括:输入函数、学号排序、浏览函数、删除函数、修改函数、添加函数。图1-1学生管理总体设计【模块划分】一、主函数:main()显示系统工作菜单,显示该系统所有功能。告诉使用者所有将会调用被调函数,再运用选择函数switch即可根据使用者所输入学号进入对应功能程序。并且对菜单做了一个循环,进行完一个选择后,按回车键可进行清屏功能,把屏幕上除了主菜单以外都清空,然后
7、可以继续选择那些可以使用功能,这样可以方便使用者使用,并且每一步都很清晰。以8退出系统。二、输入函数:struct student *creat()在该程序前面已经定义了一个结构体struct student用来储存学生所有信息,(学号、年龄、姓名、性别、出生日期、地址、 、邮箱)。定义p1与p2,struct student *p1,*p2;p1,p2是指向struct student类型数据指针变量。定义一个n=0,n是输入个数,主要作用是:如果输入一个学生信息,首地址指向p1,head=p1;否则p2下一个地址指向p1,p2指向p1. p2-next=p1;p2=p1;学号控制循环。三、
8、排序函数:void paixu(struct student *head)用一个for语句做循环,不是NULL话,指针指向下一个,按学生学号高低排序。整形直接交换,字符型用strcpy交换,类型相当于两个数据之间交换。四、输出函数:void printlist(struct student *head) 在主函数里边用while控制循环,输出学生信息,然后指针指向下一个。五、 查询函数:void findList_num(struct student *head) 与void findList_num(struct student *head)输入一个学号或姓名,做一个for循环,即指针pt指
9、向第一个地址,再定义一个指针p1,让它等于pt,他是紧跟着pt后面一个指针,让p1-next不等于NULL,pt指向下一个地址。这样就能修改最后一个学生信息了。如果要查询学生学号在学生里,就输出该学生信息,否则,就输出查询学生信息不存在。六、删除函数:int shanchu(struct student *head)输入一个学号,先找到这个学生信息。如果输入学号在学生信息中,就进行以下循环:如果输入是第一个学生话,就head等于第二个学生信息;如果输入学生信息是最后一个,就让倒数第二个等于NULL;否则话,就让下一个学生信息覆盖前一个。如果输入学号不在学生信息中,输出“此学生信息不存在”。七、
10、修改函数:struct student *delList(struct student *head,long del_num)输入要修改学号,找到该学生并且输出该学生信息。然后屏幕上会出现学生信息所有项目,用switch进行选择修改项目。选择后输入新学生信息,用它来覆盖原来学生信息。八、添加函数:void insert(struct student *head) 用一个while语句while(p2-next!=NULL)控制循环,p2指针指向下一个地址,即p2=p2-next;这是找到最后一个地址,然后开辟动态存储区,p1=(struct student *)malloc(len);输入要添
11、加学号,用学号为0来终止循环,如果不为0,就继续输入学生信息。【源程序】#include #include /分配size字节存储区#include /包含字符串处理函数头文件,可以直接调用现有字符串处理一系列函数#define len sizeof(struct student) /求字节运算符#include /清屏功能FILE *fp;struct student /声明一个结构体类型struct studentint num; /学号为整型 char name20; /姓名为字符串 char genter10; /性别为字符串 int age; /年龄为整型 char xueli20;
12、 /学历为字符串 int gongzi; /学号为整型 char address30; /地址为字符串 char phone11; / 为字符串 struct student *next; /next是指针变量,指向结构体变量void menu() printf(=学生信息管理系统=nn); printf( 1、录入学生信息n); printf( 2、浏览学生信息n); printf( 3、查询学生信息n); printf( 4、删除学生信息n);printf( 5、插入学生信息n); printf( 6、修改学生信息n);printf( 7、排序学生信息n);printf( 8、退出管理系统
13、n); printf(=n);struct student *creat() /录入学生信息int n;struct student *head; struct student *p1,*p2;n=0; p1=p2=(struct student *) malloc(len); scanf(%dt%dt%st%st%st%st%st%s,&p1-num,&p1-age,p1-name,p1-sex,p1-chushen,p1-dizhi,p1-phone,p1-email); head=NULL; while(p1-num!=0) n=n+1;if(n=1) head=p1;else p2-n
14、ext=p1;p2=p1;p1=(struct student *)malloc(len);scanf(%dt%dt%st%st%st%st%st%s,&p1-num,&p1-age,p1-name,p1-sex,p1-chushen,p1-dizhi,p1-phone,p1-email);p2-next=NULL; return(head);void insert(struct student *head) /插入学生信息 int search_num; struct student *p,*q,*s; p=head; printf(在哪个学生前插入 请输入学号:n); scanf(%d,&
15、search_num); while(p!=NULL)&(p-num!=search_num) q=p; p=p-next; s=(struct student *)malloc(len); q-next=s; system(cls); printf(请输入学生信息:n); printf(学号t年龄t姓名t性别t出生t地址t te-mailn); scanf(%dt%dt%st%st%st%st%st%s,&s-num,&s-age,s-name,s-sex,s-chushen,s-dizhi,s-phone,s-email);s-next=p;void printList(struct st
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 信息管理 系统 课程设计 实验 报告
限制150内