ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:148.49KB ,
资源ID:14114406      下载积分:5 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-14114406.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言学生信息管理系统.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

C语言学生信息管理系统.docx

1、C语言学生信息管理系统 C程序设计课程实践报告项 目 名 称: c6.学生信息管理系统 所 在 班 级: * 小 组 成 员: * 任 课 教 师: * 起 止 时 间: 2014.05.182014.06.08 项目基本信息项目名称C6.学生信息管理系统项目简介本系统是编写一个函数来实现对一个字符串的字母,数字,空格,和其他个数的统计。小组成员* *分工*:学生信息输入、学生信息输出、按学号查询成绩、按姓名查询成绩等。*:删除学生信息、插入学生信息、修改学生信息、保存学生信息、学号排序等。课程实践评定成绩记录指导教师意见系统完成情况:优 良 中 差报告完成情况:优 良 中 差答辩评定成绩团队

2、整体成绩:成员成绩*130906050*130906036综 合 成 绩一、 问题描述及分析问题:制作学生信息管理系统需要明确对学生信息管理系统的需求和操作,将学生信息规范化、明确简单化,以及对学生信息以菜单格式展现给用户,方便操作,信息详细展现出来。分析:1、学生信息管理系统以菜单格式显示,使用户明确知道操作系统的步骤。 2、学生信息功能为按学号、姓名查询,对学生信息的删除、插入,修改学生信息,把学生信息写入student文件,并读出来等。 3、以switch以及for循环,对学生信息信息进行自由操作。二、 功能块及数据结构描述main() /主函数 struct student /学生信息

3、结构体struct student *creat() /建立学生信息 void print(struct student *head) /学生信息输出和读出void check(struct student * head,long check_num)/按学号查询学生的信息void inspect(struct student * head,char inspect_name)/按姓名查信息struct student *del(struct student *head,long num)/删除学生的信息struct student *insert(struct student *head,s

4、truct student * stu)/插入学生的信息struct student * amend(struct student *head) /修改信息学生的信息struct student * sort(struct student *head)/按学号对学生信息排序void save(struct student *head) /保存到文件三、 主要算法流程描述及部分核心算法流程图如下图所示。核心算法为:1、 删除学生信息struct student *del(struct student *head,long num)/*删除*/struct student *p,*p1;if(he

5、ad=NULL) printf(nNULLn);return head;p1=head;while(num!=p1-num&p1-next!=NULL)p=p1;p1=p1-next;if(num=p1-num)if(p1=head) head=p1-next;else p-next=p1-next;printf(删除:%ldn,num);n=n-1;else printf(n%ld not been found !n,num);return head;2、 插入学生信息struct student *insert(struct student *head,struct student * s

6、tu)/*插入*/ struct student *p,*p1,*p2;p1=head;p=stu;if(head=NULL) head=p; p-next=NULL;else while(p1-next!=NULL) p1=p1-next; p1-next=p; p-next=NULL; n=n+1; return head; 3、 修改学生的信息 struct student * amend(struct student *head) struct student *p1,*stu,s; int m; stu=&s; p1=head; printf(-n);printf(1.修改姓名n);

7、printf(2.修改年龄n);printf(3.修改出生年份n);printf(4.修改出生月份n);printf(5.修改号码n);printf(6.修改住址n);printf(7.修改emailn);printf(8.退出修改系统n);printf(-n); printf(请输入要要修改的学生的学号:n);scanf(%ld,&stu-num);for(;p1!=NULL;p1=p1-next)if(p1-num=stu-num) printf(请输入要修改哪一项:n); scanf(%d,&m);while(1)switch(m)case 1:printf(请输入新的姓名:n);sca

8、nf(%s,p1-name);break;case 2:printf(请输入新的年龄:n);scanf(%d,&p1-age);break;case 3:printf(请输入新的出生年份:n);scanf(%d,&p1-year);break;case 4:printf(请输入新的出生月份:n);scanf(%d,&p1-month); break; case 5:printf(请输入新的电话号码:n);scanf(%s,p1-phone);break; case 6:printf(请输入新的地址:n);scanf(%s,p1-address); break; case 7:printf(请输

9、入新的E-mail地址:n);scanf(%s,p1-email);break; default: printf(请输入18之间的步骤!n);printf(请输入要修改的下一项:n); scanf(%d,&m); if(m=8)printf(*退出修改系统!*n); break; ;else printf(没有本学生的任何信息!n);return head;4、按姓名、学号查询学生信息 void check(struct student * head,long check_num)/*按学号查询*/ FILE *fp; struct student * p1;fp=fopen(student,

10、rb); if(head=NULL) printf(this is a blank !); p1=head; while(check_num!=p1-num&p1-next!=NULL) p1=p1-next; if(check_num=p1-num) fread(p1,sizeof(struct student),1,fp);printf(%ldt%st%dt%dt%dt%st%st%sn,p1-num,p1-name,p1-age,p1-year,p1-month,p1-phone,p1-address,p1-email); else printf(%ld没有发现!n,check_num)

11、; void inspect(struct student * head,char inspect_name)/*按姓名查询*/ FILE *fp; struct student * p1; fp=fopen(student,rb);p1=head; if(head=NULL) printf(this is a blank !); while(strcmp(inspect_name,p1-name)!=0&p1-next!=NULL) p1=p1-next; if(strcmp(inspect_name,p1-name)=0) fread(p1,sizeof(struct student),1

12、,fp);printf(%ldt%st%dt%dt%dt%st%st%sn,p1-num,p1-name,p1-age,p1-year,p1-month,p1-phone,p1-address,p1-email); else printf(%s没有发现!n,inspect_name); 5、对学生信息进行排序整理Struct student * sort(struct student *head) struct student *p1,*p2,*temp,s; temp=&s; if(head=NULL) printf(this is a blank !);return head; for(p

13、1=head;p1!=NULL;p1=p1-next)for(p2=p1-next;p2!=NULL;p2=p2-next) if(p1-num=p2-num) temp-num=p1-num; p1-num=p2-num; p2-num=temp-num; strcpy(temp-name,p1-name); strcpy(p1-name,p2-name);strcpy(p2-name,temp-name); temp-age=p1-age; p1-age=p2-age; p2-age=temp-age; temp-year=p1-year; p1-year=p2-year; p2-year

14、=temp-year; temp-month=p1-month; p1-month=p2-month; p2-month=temp-month; strcpy(temp-phone,p1-phone); strcpy(p1-phone,p2-phone); strcpy (p2-phone,temp-phone); strcpy(temp-address,p1-address); strcpy(p1-address,p2-address); strcpy (p2-address,temp-address); strcpy(temp-email,p1-email); strcpy(p1-emai

15、l,p2-email); strcpy (p2-email,temp-email); return head;6、文件读入void save(struct student *head)FILE *fp;struct student *p;p=head;fp=fopen(student,wb);for(;p!=NULL;p=p-next)if(fwrite(p,sizeof(struct student),1,fp)!=1)printf(file write error!n);7、文件读出void print(struct student *head)FILE *fp; struct stude

16、nt *p; p=head; fp=fopen(student,rb); printf(n学生的学号 姓名 年龄 出生年月 电话 住址 Email 为:n); if(head!=NULL) while(p!=NULL) fread(p,sizeof(struct student),1,fp); printf(%ldt%st%dt%dt%dt%st%st%sn,p-num,p-name,p-age,p-year,p-month,p-phone,p-address,p-email); p=p-next; 8、文件关闭void close() FILE *fp;if(fp=fopen(student

17、,wb)!=NULL)|(fp=fopen(student,wb)!=NULL)fclose(fp);四、 系统使用1、 菜单目录 2、 学生信息输入输出3、 按学号查询学生信息4、 按姓名查询学生信息5、 删除学生的信息6、 插入学生的信息7、 修改学生信息8、 对学生信息进行排序五、 问题及解决办法1、 有些程序功能无法实现,通过查阅资料以及向老师请教,解决问题。2、 有些程序功能不完善,在网上查阅资料加以修改。六、 课外实践总结经过几周的课程设计,巩固和加深了我们对程序设计的理解,提高了综合运用课本所学知识的能力。培养了我们独立思考,深入研究,团队合作、分析问题、解决问题的能力。按照要求

18、编写程序设计报告,能正确阐述设计和实验结果,正确绘制系统和程序框图。同时,通过这次课程设计我们发现,程序设计基础掌握的还不够扎实,有很多地方还需要继续努力。 课程设计是把我们所学的理论知识进行系统的总结并应用于实践的良好机会,有利于加强我们用知识理论来分析实际问题的能力,进而加强了我们对知识认识的实践度,巩固了我们的理论知识,深化了对知识的认识,并为走向社会打下一个良好的基础。七 源程序#include#include#include#include#define LEN sizeof(struct student)#define NULL 0struct student long num;

19、char name20; int age; int year; int month; int phone15; char address50; char email50; struct student *next;int n;struct student *creat()/*录入学生信息*/ struct student *head,*p1,*p2; n=0; p1=p2=(struct student *)malloc(sizeof(struct student); printf(n*请输入学生的学号 姓名 年龄 出生年份 月份 电话 住址 Email (如果不再输入,则需要输入项都为0):

20、n); scanf(%ld%s%d%d%d%s%s%s,&p1-num,p1-name,&p1-age,&p1-year,&p1-month,p1-phone,p1-address,p1-email); head=NULL; while(p1-num!=NULL) n=n+1; if(n=1) head=p1; else p2-next=p1; p2=p1; p1=(struct student *)malloc(sizeof(struct student); scanf(%ld%s%d%d%d%s%s%s,&p1-num,p1-name,&p1-age,&p1-year,&p1-month,

21、p1-phone,p1-address,p1-email); p2-next=NULL; return head;void print(struct student *head)/*浏览学生信息*/FILE *fp; struct student *p; p=head; fp=fopen(student,rb); printf(n学生的学号 姓名 年龄 出生年月 电话 住址 Email 为:n); if(head!=NULL) while(p!=NULL) fread(p,sizeof(struct student),1,fp); printf(%ldt%st%dt%dt%dt%st%st%s

22、n,p-num,p-name,p-age,p-year,p-month,p-phone,p-address,p-email); p=p-next; void check(struct student * head,long check_num)/*按学号查询*/ FILE *fp; struct student * p1;fp=fopen(student,rb); if(head=NULL) printf(this is a blank !); p1=head; while(check_num!=p1-num&p1-next!=NULL) p1=p1-next; if(check_num=p1

23、-num) fread(p1,sizeof(struct student),1,fp);printf(%ldt%st%dt%dt%dt%st%st%sn,p1-num,p1-name,p1-age,p1-year,p1-month,p1-phone,p1-address,p1-email); else printf(%ld没有发现!n,check_num); void inspect(struct student * head,char inspect_name)/*按姓名查询*/ FILE *fp; struct student * p1; fp=fopen(student,rb);p1=h

24、ead; if(head=NULL) printf(this is a blank !); while(strcmp(inspect_name,p1-name)!=0&p1-next!=NULL) p1=p1-next; if(strcmp(inspect_name,p1-name)=0) fread(p1,sizeof(struct student),1,fp);printf(%ldt%st%dt%dt%dt%st%st%sn,p1-num,p1-name,p1-age,p1-year,p1-month,p1-phone,p1-address,p1-email); else printf(%

25、s没有发现!n,inspect_name); struct student *del(struct student *head,long num)/*删除*/struct student *p,*p1;if(head=NULL) printf(nNULLn);return head;p1=head;while(num!=p1-num&p1-next!=NULL)p=p1;p1=p1-next;if(num=p1-num)if(p1=head) head=p1-next;else p-next=p1-next;printf(删除:%ldn,num);n=n-1;else printf(n%ld

26、not been found !n,num);return head;struct student *insert(struct student *head,struct student * stu)/*插入*/ struct student *p,*p1;p1=head;p=stu;if(head=NULL) head=p; p-next=NULL;else while(p1-next!=NULL) p1=p1-next; p1-next=p; p-next=NULL; n=n+1; return head; struct student * amend(struct student *he

27、ad) /*修改信息*/ struct student *p1,*stu,s; int m; stu=&s; p1=head; printf(-n);printf(1.修改姓名n);printf(2.修改年龄n);printf(3.修改出生年份n);printf(4.修改出生月份n);printf(5.修改号码n);printf(6.修改住址n);printf(7.修改emailn);printf(8.退出修改系统n);printf(-n); printf(请输入要要修改的学生的学号:n);scanf(%ld,&stu-num);for(;p1!=NULL;p1=p1-next)if(p1-num=stu-num) printf(请输入要修改哪一项:n);

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2