收藏 分销(赏)

c语言专业课程设计学生档案标准管理系统.doc

上传人:人****来 文档编号:2727077 上传时间:2024-06-05 格式:DOC 页数:21 大小:63.04KB 下载积分:10 金币
下载 相关 举报
c语言专业课程设计学生档案标准管理系统.doc_第1页
第1页 / 共21页
c语言专业课程设计学生档案标准管理系统.doc_第2页
第2页 / 共21页


点击查看更多>>
资源描述
程序设计基础课程设计 试验汇报书 目录 1. 设计题目 3 2. 正文 3 2.1 系统介绍 3 2.2选题背景 4 2.3设计内容 4 2.4设计思绪 4 2.5算法(条列式或步骤图) 4 2.6程序清单和运行结果 9 2.7总结 15 1. 设计题目 学生信息管理系统设计 2. 正文 2.1 系统介绍 学生信息包含:学号,姓名,年纪,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功效: 1、系统以菜单方法工作 2、学生信息录入功效(学生信息用文件保留)--输入 3、学生信息浏览功效--输出 4、学生信息查询功效--按学号查询、按姓名查询、 5、学生信息删除和修改(可选项) 要求:使用文件方法存放数据。 2.2选题背景 经典计算机问题,设计 学生信息管理系统,能够进行多项系统信息管理功效。 2.3设计内容 设计学生信息管理各个功效。系统以菜单方法工作。学生信息录入功效(学生信息用文件保留)--输入。学生信息浏览功效--输出。学生信息查询功效--按学号查询、按姓名查询。学生信息删除和修改(可选项) 2.4设计思绪 将程序各个功效分开独立实施,问题有大而小,细化。 2.5算法(条列式或步骤图) 主程序模块: 准 备 输入选择: 判定: 运行不一样功效: 按退格键 结束 创建文件模块(独立函数): 输入要创建文件夹得文件名,并创建文件 输入学生数目: 输入一个学生信息并存放到文件夹: 是否人数足够 NO YES 返回主程序 删除信息模块(独立函数): 输入要删除得姓名 按读取方法打开用于存放文件文件夹 创建100个结构体,并将文件中信息全部存放到结构体中 不相同 将指针指向下一个结构体,判定该结构体姓名和要删除姓名是否相同 相同 经过链表把要删除得同学信息在结构体链表中删除 按写入方法打开文件,结构体全部写入文件 显示浏览信息模块(独立函数) 返回主程序 输入存放信息文件夹文件名,并打开文件夹 创建一百个结构体数组 将一个结构体大小从文件中读取到内存,并显示 从文件中读入一个结构体大小,并显示到内存 文件是否抵达最终 返回主程序 查找学生信息模块(独立函数): 输入存放信息文件夹文件名,并打开文件夹 创建一百个结构体数组 将一个结构体大小从文件中读取到内存,并显示 输入要查找信息学生名, 指针指向下一个结构体 判定学生信息和是否为要查找人信息 输出学生信息 返回主程序 2.6程序清单和运行结果 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<io.h> struct birth { int year,month,day; }; struct student { int number,age,tel[10]; char name[10],sex,address[20],E_mail[20]; struct birth birthday; struct student *link; }; void show( ) { printf(" 请输入数字加回车键进行选择:\n"); printf(" 1、学生信息录入功效(学生信息用文件保留)--输入\n"); printf(" 2、学生信息浏览功效--输出\n"); printf(" 3、学生信息查询功效--按学号查询、按姓名查询\n"); printf(" 4、学生信息删除和修改(可选项)\n"); printf(" 按其它任意键加回车退出程序\n"); } \* 创建文件夹并存入信息模块: *\ void credit(int n) { FILE *fp; char fpname[20]; struct student *head,*next,*end; int i; printf("请输入用于存放文件文件路劲及文件名:"); scanf("%s",fpname); getchar(); fp=fopen(fpname,"w+"); head=(struct student *)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",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;i<n;i++) { next=(struct student *)malloc(sizeof(struct student)); printf("请输入学生 学号 姓名 性别 出生年 月 日 地址 电话 e_mail:"); scanf("%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); getchar(); fprintf(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 fpname[20]; struct student *head; head=(struct student *)malloc(sizeof(struct student)); printf("请输入存放信息文件路径和文件名:"); gets(fpname); fp=fopen(fpname,"r+"); for(i=0;i<n;i++) { fscanf(fp,"%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); printf("%d %s %d %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); } fclose(fp); } \* 按学号查找学生信息模块: *\ int search1(int n) { int i,checkname; FILE *fp; char fpname[20]; struct student *head; head=(struct student *)malloc(sizeof(struct student)); printf("请输入存放信息文件路径和文件名:"); gets(fpname); fp=fopen(fpname,"r+"); printf("请输入要查询信息学生学号:"); scanf("%d",&checkname); getchar(); for(i=0;i<n;i++) { fscanf(fp,"%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); if(checkname==head->number) { printf("%d %s %c %d %d %d %s %s %s\n",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("未找到"); } \* 按姓名查找学生信息模块: *\ void search2(int n) { int i; FILE *fp; char fpname[20],checkname[10]; struct student *head; head=(struct student *)malloc(sizeof(struct student)); printf("请输入存放信息文件路径和文件名:"); gets(fpname); fp=fopen(fpname,"r+"); printf("请输入要查询信息学生姓名:"); scanf("%s",checkname); getchar(); for(i=0;i<n;i++) { fscanf(fp,"%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); if(strcmp(checkname,head->name)==0) { printf("%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); fclose(fp); return(1); } } printf("未找到\n"); } \* 删除或修改文件信息模块: *\ int most(n) { FILE *fp; char get; char fpname[20]; struct student *ans[500]; int i; char checkname[10]; printf("请输入存放信息文件路径和文件名:"); gets(fpname); fp=fopen(fpname,"r+"); ans[0]=(struct student *)malloc(sizeof(struct student)); fscanf(fp,"%d %s %c %d %d %d %s %s %s",&ans[0]->number,ans[0]->name,&ans[0]->sex,&(*ans[0]).birthday.year,&(*ans[0]).birthday.month,&(*ans[0]).birthday.day,ans[0]->address,ans[0]->tel,ans[0]->E_mail); for(i=1;i<n;i++) { ans[i]=(struct student *)malloc(sizeof(struct student)); fscanf(fp,"%d %s %c %d %d %d %s %s %s",&ans[i]->number,ans[i]->name,&ans[i]->sex,&(*ans[i]).birthday.year,&(*ans[i]).birthday.month,&(*ans[i]).birthday.day,ans[i]->address,ans[i]->tel,ans[i]->E_mail); ans[i-1]->link=ans[i]; } ans[i]->link=NULL; printf("假如想修改信息请输入1加回车键,想删除信息输入2加回车键:"); get=getchar(); getchar(); if(get=='1') { printf("请输入要修改信息学生姓名:"); scanf("%s",checkname); getchar(); for(i=0;i<n;i++) { if(strcmp(checkname,ans[i]->name)==0) { printf("请输入学生新信息 学号 姓名 性别 出生年 月 日 地址 电话 e_mail:"); scanf("%d %s %c %d %d %d %s %s %s",&ans[i]->number,ans[i]->name,&ans[i]->sex,&(*ans[i]).birthday.year,&(*ans[i]).birthday.month,&(*ans[i]).birthday.day,ans[i]->address,ans[i]->tel,ans[i]->E_mail); getchar(); } } } if(get=='2') { printf("请输入要删除学生姓名:"); scanf("%s",checkname); getchar(); for(i=0;i<n;i++) { if(strcmp(checkname,ans[i]->name)==0) { ans[i-1]->link=ans[i]->link; n--; break; } } } fp=fopen(fpname,"w+"); for(i=0;i<n;i++) { fprintf(fp,"%d %s %c %d %d %d %s %s %s",ans[i]->number,ans[i]->name,ans[i]->sex,(*ans[i]).birthday.year,(*ans[i]).birthday.month,(*ans[i]).birthday.day,ans[i]->address,ans[i]->tel,ans[i]->E_mail); } fclose(fp); return(n); } \*主函数模块*\ void main() { char get,get2; int n; while(1) { show(); get=getchar(); getchar(); switch(get) { case '1': printf("请输入学生人数:"); 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总结 该程序关键使用结构体和结构化程序设计,调用文件函数,设计函数时保持头脑思绪清楚,有条理,保持各功效独立函数来实现,需要对程序能熟练使用和掌握,我函数侧重对单链表使用,同时侧重文件利用时文件流动时文件信息不会流失。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服