1、程序设计基础课程设计试验汇报书 目录1.设计题目32.正文32.1 系统介绍32.2选题背景42.3设计内容42.4设计思绪42.5算法(条列式或步骤图)42.6程序清单和运行结果92.7总结151. 设计题目学生信息管理系统设计2. 正文2.1 系统介绍学生信息包含:学号,姓名,年纪,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功效:1、系统以菜单方法工作2、学生信息录入功效(学生信息用文件保留)输入3、学生信息浏览功效输出4、学生信息查询功效按学号查询、按姓名查询、5、学生信息删除和修改(可选项)要求:使用文件方法存放数据。 2.2选题背景 经典计算
2、机问题,设计 学生信息管理系统,能够进行多项系统信息管理功效。 2.3设计内容设计学生信息管理各个功效。系统以菜单方法工作。学生信息录入功效(学生信息用文件保留)输入。学生信息浏览功效输出。学生信息查询功效按学号查询、按姓名查询。学生信息删除和修改(可选项) 2.4设计思绪 将程序各个功效分开独立实施,问题有大而小,细化。 2.5算法(条列式或步骤图) 主程序模块:准 备输入选择:判定:运行不一样功效: 按退格键结束创建文件模块(独立函数):输入要创建文件夹得文件名,并创建文件 输入学生数目:输入一个学生信息并存放到文件夹:是否人数足够 NO YES返回主程序 删除信息模块(独立函数):输入要
3、删除得姓名 按读取方法打开用于存放文件文件夹创建100个结构体,并将文件中信息全部存放到结构体中 不相同将指针指向下一个结构体,判定该结构体姓名和要删除姓名是否相同 相同经过链表把要删除得同学信息在结构体链表中删除按写入方法打开文件,结构体全部写入文件显示浏览信息模块(独立函数)返回主程序 输入存放信息文件夹文件名,并打开文件夹创建一百个结构体数组 将一个结构体大小从文件中读取到内存,并显示从文件中读入一个结构体大小,并显示到内存 文件是否抵达最终 返回主程序 查找学生信息模块(独立函数): 输入存放信息文件夹文件名,并打开文件夹创建一百个结构体数组 将一个结构体大小从文件中读取到内存,并显示
4、输入要查找信息学生名,指针指向下一个结构体判定学生信息和是否为要查找人信息输出学生信息 返回主程序2.6程序清单和运行结果#include#include#include#includestruct birthint year,month,day;struct student int number,age,tel10;char name10,sex,address20,E_mail20;struct birth birthday;struct student *link;void show( )printf( 请输入数字加回车键进行选择:n);printf( 1、学生信息录入功效(学生信息用文
5、件保留)输入n);printf( 2、学生信息浏览功效输出n);printf( 3、学生信息查询功效按学号查询、按姓名查询n);printf( 4、学生信息删除和修改(可选项)n);printf( 按其它任意键加回车退出程序n);* 创建文件夹并存入信息模块: *void credit(int n)FILE *fp;char fpname20;struct student *head,*next,*end;int i;printf(请输入用于存放文件文件路劲及文件名:);scanf(%s,fpname);getchar();fp=fopen(fpname,w+);head=(struct st
6、udent *)malloc(sizeof(struct student);printf(请输入学生 学号 姓名 性别 出生年 月 日 地址 电话 e_mail:);scanf(%d %s %c %d %d %d %s %s %s,&head-number,head-name,&head-sex,&(*head).birthday.year,&(*head).birthday.month,&(*head).birthday.day,head-address,head-tel,head-E_mail);getchar();fprintf(fp,%d %s %c %d %d %d %s %s %s
7、,head-number,head-name,head-sex,(*head).birthday.year,(*head).birthday.month,(*head).birthday.day,head-address,head-tel,head-E_mail);end=head;for(i=1;inumber,next-name,&next-sex,&(*next).birthday.year,&(*next).birthday.month,&(*next).birthday.day,next-address,next-tel,next-E_mail); getchar();fprintf
8、(fp,%d %s %c %d %d %d %s %s %s,next-number,next-name,next-sex,(*next).birthday.year,(*next).birthday.month,(*next).birthday.day,next-address,next-tel,next-E_mail);end-link=next;end=next;end-link=NULL;fclose(fp);* 浏览信息模块: *void show2(int n)FILE *fp;int i;char fpname20;struct student *head;head=(struc
9、t student *)malloc(sizeof(struct student);printf(请输入存放信息文件路径和文件名:);gets(fpname);fp=fopen(fpname,r+);for(i=0;inumber,head-name,&head-sex,&(*head).birthday.year,&(*head).birthday.month,&(*head).birthday.day,head-address,head-tel,head-E_mail);printf(%d %s %d %d %d %d %s %s %s,&head-number,head-name,hea
10、d-sex,(*head).birthday.year,(*head).birthday.month,(*head).birthday.day,head-address,head-tel,head-E_mail);fclose(fp);* 按学号查找学生信息模块: *int search1(int n)int i,checkname;FILE *fp;char fpname20;struct student *head;head=(struct student *)malloc(sizeof(struct student);printf(请输入存放信息文件路径和文件名:);gets(fpnam
11、e);fp=fopen(fpname,r+);printf(请输入要查询信息学生学号:);scanf(%d,&checkname);getchar();for(i=0;inumber,head-name,&head-sex,&(*head).birthday.year,&(*head).birthday.month,&(*head).birthday.day,head-address,head-tel,head-E_mail);if(checkname=head-number)printf(%d %s %c %d %d %d %s %s %sn,head-number,head-name,he
12、ad-sex,(*head).birthday.year,(*head).birthday.month,(*head).birthday.day,head-address,head-tel,head-E_mail); fclose(fp);return(1);printf(未找到);* 按姓名查找学生信息模块: *void search2(int n)int i;FILE *fp;char fpname20,checkname10;struct student *head;head=(struct student *)malloc(sizeof(struct student);printf(请
13、输入存放信息文件路径和文件名:);gets(fpname);fp=fopen(fpname,r+);printf(请输入要查询信息学生姓名:);scanf(%s,checkname);getchar();for(i=0;inumber,head-name,&head-sex,&(*head).birthday.year,&(*head).birthday.month,&(*head).birthday.day,head-address,head-tel,head-E_mail);if(strcmp(checkname,head-name)=0)printf(%d %s %c %d %d %d
14、%s %s %s,head-number,head-name,head-sex,(*head).birthday.year,(*head).birthday.month,(*head).birthday.day,head-address,head-tel,head-E_mail); fclose(fp);return(1);printf(未找到n);* 删除或修改文件信息模块: *int most(n)FILE *fp;char get;char fpname20;struct student *ans500;int i;char checkname10;printf(请输入存放信息文件路径和
15、文件名:);gets(fpname);fp=fopen(fpname,r+);ans0=(struct student *)malloc(sizeof(struct student);fscanf(fp,%d %s %c %d %d %d %s %s %s,&ans0-number,ans0-name,&ans0-sex,&(*ans0).birthday.year,&(*ans0).birthday.month,&(*ans0).birthday.day,ans0-address,ans0-tel,ans0-E_mail);for(i=1;inumber,ansi-name,&ansi-se
16、x,&(*ansi).birthday.year,&(*ansi).birthday.month,&(*ansi).birthday.day,ansi-address,ansi-tel,ansi-E_mail); ansi-1-link=ansi;ansi-link=NULL;printf(假如想修改信息请输入1加回车键,想删除信息输入2加回车键:);get=getchar();getchar();if(get=1)printf(请输入要修改信息学生姓名:);scanf(%s,checkname);getchar();for(i=0;iname)=0)printf(请输入学生新信息 学号 姓名
17、 性别 出生年 月 日 地址 电话 e_mail:); scanf(%d %s %c %d %d %d %s %s %s,&ansi-number,ansi-name,&ansi-sex,&(*ansi).birthday.year,&(*ansi).birthday.month,&(*ansi).birthday.day,ansi-address,ansi-tel,ansi-E_mail);getchar();if(get=2)printf(请输入要删除学生姓名:);scanf(%s,checkname);getchar();for(i=0;iname)=0)ansi-1-link=ansi
18、-link;n-;break;fp=fopen(fpname,w+);for(i=0;inumber,ansi-name,ansi-sex,(*ansi).birthday.year,(*ansi).birthday.month,(*ansi).birthday.day,ansi-address,ansi-tel,ansi-E_mail);fclose(fp);return(n);*主函数模块*void main()char get,get2;int n;while(1)show();get=getchar();getchar();switch(get)case 1:printf(请输入学生人
19、数:);scanf(%d,&n);getchar();credit(n);break;case 2:show2(n);break;case 3:printf(按学号查找请输入1加回车键,按姓名查询请输入2加回车键:);get2=getchar();getchar();if(get2=1)search1(n);if(get2=2)search2(n);break;case 4:n=most(n);break;if(get!=1&get!=2&get!=3&get!=4)break;2.7总结该程序关键使用结构体和结构化程序设计,调用文件函数,设计函数时保持头脑思绪清楚,有条理,保持各功效独立函数来实现,需要对程序能熟练使用和掌握,我函数侧重对单链表使用,同时侧重文件利用时文件流动时文件信息不会流失。
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100