版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一
引(要明计目目、义内、要务)1实验目的在全面掌握《C语言程序设计》课程的知识点的前提下,培养了我们分析实际问题的能力,并能够自己编写程序实现对实际问题的处理,掌握程序项目开发的一般步骤在写实验的过程中,我们能发现我们自身薄弱的地方,给我们的复习指出明确的方向。2实验意义此实验的意义主要在于加强我们对软件开发的初步了解:1、能将实际中的问题进行分解并设计出可以解决实际问题的方案。课程设计的相关内容2、可以熟练掌握并应用《C语程序设计》课程的所有知识点,开发一个学生信息管理系,采用计算机对学生信息进行管,进一步提高了办学效益和现代化水.为广大教师和学生提高工作效率,实现学生信息管理工作流的系统,规范化和自动.现在我国的大中专院校的学生信息管水平普遍都不是很高有的还停留在全用纸介质基础,这种管理方式已不能适应时代的发,社的需求,因为它浪费了大量的人力也存在着许多不足的因在今天信息时代这种传统的管理方必然会被计算机为基础的信息管理系统所代.一个高效的学生信息管理系统可以存储历届的学生息档案不要大量的人,只需几名专门录入员即可操作系,节省大量人力,可以迅速查到所信息,高效,安全学生在能方便的查看自己的信息。要容和任务学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话E-mail等试设计一学生信息管理系统,使之能提供以下功能:1)2)3)4)5)6)7)8)9)10)11)
安全模块信息录入信息浏览学号查询姓名查询信息排序信息删除信息修改保存文件退出系统系统菜单形式显示
二正文课设的要容,包括实与测法结仪设、计方、编原、数处、计明依、工理图、成论和出的论。文容须事求、观切准完、乎辑层分、言畅结构谨符各科专的有要。学管系的设是总体设计:
1.该系统可以按功能进行模块划分,其模块图如下:学生基本信息管理系统安全模块
菜单选择
信息录入
信息浏览
信息查询
信息排序
信息删除
信息修改
信息添加
退出系统输入学生的相关信息
显示学生的相关信息
按姓名查询
按学号查询
更新保存的学生信息
对新加的学生进行信息录入
系统模块图其中:信息输入模块完成学生信息的输入功能,输入信息包括学生号、姓名、性别、出生年月、成绩、专业.住址、电话等;信息浏览模块完成已录入学生信息的显示;信息查询模块完成学生信息的查询,查询时对应有按姓名查询和按学号查询两种方式;信息修改模块完成学生信息的修改功能;信息删除模块完成学生信息的删除功能;安全模块是进入系统需要用户名字和密码;菜单选择模块完成用户命令的接收,此模块也是职工信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能;2数据结构本系统中主要的数据结构就是学生的信息包含学生号姓名性别出生年月成绩、专业、住址、电话等,在处理过程中各项可以作为一个学生的不同属性来进行处理3
程序流程系统的执行应从功能菜单的选择开始,依据用户的选择来进行后续的处理,直到用户选择退出系统为止,其间应对用户的选择做出判断及异常处理。系统的流程图如下:
开始用户登录菜单信息输入浏览查询信息输入
信息浏览
删除修改按学号
按姓名
信息删除添加信息修改排序信息添加保存文件结束程序流程图
.00
详细设计编写目的:根据项目概要设计说明书,在项目概要设计的基础之上,对系统进行详细设计,以便下一步进行程序编码工作。详细设计:对应于总体设计时的系统功能模块图,各个功能模块的处理逻辑如下:1安模块scanf("%s",x);if(strcmp(x,y)==0){scanf("%d",&ma);(ma==123456)
请输入用户名,\n");请输入密码\n");通过比较语句来判输入人名和密码的正确如正确进入菜单模块;
菜单模块通过while语句给出信息提示;清屏;绘制菜单(包含输入,浏览,查询,修改,删除,排序,保存,退出);提示菜单选择并读入到变量;根据读入变量的值调用不同的模块函数;
信息录入模块打开文件{清屏;按照提示输入各种信息;While显示各种信息;通过选择确认并继续2.新填写3.放弃并返回确认并返回
选择四种功能;}}信息浏览模块打开文件While(){清;用for语依次按照顺序输出学生信息通过选择可以翻页1.一页2.一页0.退出}信息查询{通菜单式的选择是号查询还姓名printf("******学信息管理系******");printf("\n检索printf("\n您要:printf("\n1.按学检");printf("\n2.按姓检");printf("\n3.返回菜");printf("\n****************************\n");}如果选择学号进入学号模块通过输入学号If学号存在继续){出学生信息}输无此学生如果选择姓名进入姓名模块If根据比较姓名判断学生是否存在){出学生信息}输无此学生删除模块while(继续删除){提示并读入待删除的学生的学生号;
{}{}
显示要删除的信息}删除成功信息修改模块输入要修改学生信息的学号:If(断是否有此学生){菜单形式显示要修改的项目printf("\n1.姓名2.龄3.别出年月地6.话\n");数学英\n");}{选要修改的项目进行修改}打开文件模块voidFILE*fp;intif((fp=fopen("data","r+"))==NULL)fp=fopen("data","w+");for(n=0;n<100;n++)fread(&stu[n],sizeof(structfread(&stunum,4,1,fp);fclose(fp);保存文件模块voidfilesave()intFILE*fp;fp=fopen("data","r+");for(n=0;n<100;n++)fwrite(&stu[n],sizeof(structfwrite(&stunum,4,1,fp);fclose(fp);printf("存成功!Entertocontinue..");
退出模块'8':ma=0;break;用的是跳出while语回到安全模块
排序模块通过冒泡序法for(m=0;m<y-1;m++)for(x=m+1;x<y;x++)if(stu[m].sum<stu[x].sum){stu[m]=stu[x];stu[99].id=stu[x].id;=stu[99].id;}printf("序后的顺序:\n");然后显示排序好后的学生信息;学基信结体structstudent{intname[30];intage;birthday[12];tel[15];email[25];intmath;intint}stu[100]
程序清单#include<stdio.h>#include<string.h>#include<stdlib.h>intstunum=0;structstudent//结构体{intid;intage;birthday[12];add[80];tel[15];intmath;intenglish;intsum;}stu[100]voidcheck()//查询函数{voidjsid();voidjsname();inta;ch;{printf("******生信息管理系统******");检索printf("\n您要:");printf("\n1.按学号检");printf("\n2.按姓名检");printf("\n3.返回主菜");
printf("\n****************************\n");ch=getchar();switch(ch){'1':jsid();break;'3':a=0;break;}}}void//打开文件{FILE*fp;intif((fp=fopen("data","r+"))==NULL)fp=fopen("data","w+");for(n=0;n<100;n++)fread(&stu[n],sizeof(structfread(&stunum,4,1,fp);fclose(fp);}voidfilesave()//存文件{intFILE*fp;fp=fopen("data","r+");for(n=0;n<100;n++)fwrite(&stu[n],sizeof(structfwrite(&stunum,4,1,fp);fclose(fp);printf("存成功!Entertocontinue..");}voidn)//按照字修改{printf("\n新名:");scanf("%s",stu[n].name);}voideditage(intn)//修改年龄函数{
printf("\n新龄:");}voidn)//修性别函数{printf("\n新别:");scanf("%s",stu[n].sex);}voideditbir(intn)//改生日{printf("\n新生年月scanf("%s",stu[n].birthday);}void{printf("\n新址:");//修改地址scanf("%s",stu[n].add);}voidedittel(intn)//修改电话{printf("\n新话:");scanf("%s",stu[n].tel);}voideditemail(int{printf("\n新://修改邮箱}voideditmath(int//修改数学绩{printf("\n新学:");scanf("%d",&stu[n].math);stu[n].sum=stu[n].math+stu[n].english;}void//修改经与成绩{printf("\n新语:");scanf("%d",&stu[n].english);stu[n].sum=stu[n].math+stu[n].english;
}voidn){if(n==stunum)printf("******生信息管理系统******");检索printf("\n已索到末尾。");printf("\nPresstoprintf("\n****************************\n");}voidedit()//修改函数{;intint{printf("\n请入你想修改的人的学号:\n");if(n<=stunum){printf("号名年龄性出生月\n");printf("%4d",stu[n].id);printf("%12s",stu[n].name);printf("%4d",stu[n].age);printf("%4s",stu[n].sex);printf("%8s\n",stu[n].birthday);printf("\n\n\n学号电话printf("%4d",stu[n].id);printf("%15sprintf("%15sstu[n].add);printf("\n\n\n数学英语总分\n");printf("%4d",stu[n].math);
地址\n");printf("\n请输入你想修改内容printf("\n1.名2.年龄3.别出生年月地址6.电话\n");数学英\n");printf("\n****************************\n");
getchar();ch=getchar();switch(ch){'2':editage(n);break;'7':editemail(n);break;'8':editmath(n);break;}}{printf("\n确吗?(y/n)");ch=getchar();switch(ch){'Y':b=0;a=0;break;'N':b=0;break;}}}}void//删除函数{intn,printf("\n请输入想要删除的学号\n");for(a=n;a<=stunum;a++){strcpy(stu[a].name,stu[a+1].name);
strcpy(stu[a].birthday,stu[a+1].birthday);strcpy(stu[a].add,stu[a+1].add);strcpy(stu[a].email,stu[a+1].email);stu[a].sum=stu[a+1].sum;stunum--;printf("除成功!pressEntertocontinue..");}}voidjsid()//照学号查询{intprintf("******生信息管理系统******");检索printf("\n请入想要检索的学号:");if(n<=stunum){printf("号姓名年龄性别出年月n");printf("%4d",stu[n].id);printf("%12s",stu[n].name);printf("%4d",stu[n].age);printf("%4s",stu[n].sex);printf("%8s\n",stu[n].birthday);printf("\n\n\n号电话printf("%4d",stu[n].id);printf("%15sprintf("%15sstu[n].add);printf("\n\n\n数英printf("%4d",stu[n].math);i++;
地址\n");总分\n");
{无学生。printf("\n****************************\n");}}{last(n);}}voidjsname()//按照姓名查询{intprintf("******生信息管理系统******");检索printf("\n请入想要检索的姓名:");{if(strcmp(m,stu[n].name)==0){printf("号姓名年龄性别出年月n");printf("%4d",stu[n].id);printf("%8s",stu[n].name);printf("%4d",stu[n].age);printf("%4s",stu[n].sex);printf("%8s\n",stu[n].birthday);printf("\n\n\n号电话printf("%4d",stu[n].id);printf("%15sprintf("%15s
地址\n");
stu[n].add);printf("\n\n\n数学printf("%4d",stu[n].math);i++;}}无学生。{last(n);}
英语
总分\n");}voidwrite()//录入函数{intch;{a=stunum;printf("号:printf("%d",stu[a].id);printf("\n名:scanf("%s",stu[a].name);printf("\n年:scanf("%d",&stu[a].age);printf("\n性:scanf("%s",stu[a].sex);printf("\n出年月日");scanf("%s",stu[a].birthday);printf("\n地:scanf("%s",stu[a].add);printf("\n电:scanf("%s",stu[a].tel);
printf("\n数学:");printf("\n英:scanf("%d",&stu[a].english);(m)//做一个循环,直到时出{printf("号:");printf("%d",stu[a].id);printf("\n名:printf("\n年:printf("\n性:printf("%s",stu[a].sex);printf("\n出年月日");printf("\n地:printf("\n电:printf("%s",stu[a].email);printf("\n数");printf("%d",stu[a].math);printf("\n英");printf("%d",stu[a].english);printf("\n总");printf("\n请择:1.确认并继续重新填写放并返回确认并返回ch=getchar();switch(ch){'1':m=0;stunum++;break;'2':stunum,m=0;break;//选择此项时,循环终止'4':m=0,n=0;a=stunum++;break;}
}}}voidview()//览函数{int//设定变量控制翻页ch;{printf("号姓名年性别for(i=count-1;i<count+4&&i<stunum;i++){printf("%4d",stu[i].id);printf("%8s",stu[i].name);printf("%4d",stu[i].age);printf("%7s",stu[i].sex);printf("%12s\n",stu[i].birthday);}
出生年\n");printf("\n\n\n学号电话地址\n");for(i=count-1;i<count+4&&i<stunum;i++){printf("%4d",stu[i].id);printf("%15s",stu[i].tel);printf("%15s",stu[i].email);}printf("\n\n\n数英总\n");for(i=count-1;i<count+4&&i<stunum;i++){printf("%4d",stu[i].math);printf("%15d",stu[i].english);printf("%15d\n",stu[i].sum);}printf("\n1.上一下页0.退出共d\n",stunum,pagenum,page);ch=getchar();switch(ch){
共学生%d人,%d页,
'2':pagenum++;if(pagenum>page)}}}voidturn()排序函数{intx,m;intintch;for(m=0;m<y-1;m++)for(x=m+1;x<y;x++)if(stu[m].sum<stu[x].sum){stu[m]=stu[x];stu[99].id=stu[x].id;=stu[99].id}printf("排后的顺序为:\n");{printf("号姓名年性别for(i=count-1;i<count+4&&i<stunum;i++){printf("%4d",stu[i].id);printf("%8s",stu[i].name);printf("%4d",stu[i].age);printf("%7s",stu[i].sex);printf("%12s\n",stu[i].birthday);}printf("\n\n\n学号电话for(i=count-1;i<count+4&&i<stunum;i++){printf("%4d",stu[i].id);printf("%15s",stu[i].tel);printf("%15s",stu[i].email);
出生年\n");地址n");
}printf("\n\n\n数英总\n");for(i=count-1;i<count+4&&i<stunum;i++){printf("%4d",stu[i].math);printf("%15d",stu[i].english);printf("%15d\n",stu[i].sum);}printf("\n1.上一下页0.退出共%d页ch=getchar();switch(ch){'2':pagenum++;if(pagenum>page)}}}void//主函数{intch;x[20];y[20]="zhangyong";intma;
共学生%d人,%d页,fileopen();{printf("\n");printf("\n");**********************************************\n");printf("\n");printf("\n");printf("\n");scanf("%s",x);if(strcmp(x,y)==0)
欢迎来到学生信息管理系\
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东常规跨径公路钢桥典型安装工艺示意
- 2023年啶虫咪投资申请报告
- Python程序设计实践- 习题及答案 ch15 实验11 调试和异常处理
- 类文本阅读-传记-2021年高考语文复习学案
- 专项24-圆周角定理-重难点题型
- 高级硬件工程师工作岗位职责说明(33篇)
- 快递工作总结
- 语法专题八 情态动词【考点精讲精练】-2023年中考语法一点通(学生版)
- 千与千寻观后感15篇
- 横店影视城导游词(31篇)
- 初中生物试验小组活动记录
- 员工投诉表格样板
- 子宫正常解剖及超声图像课件
- 建筑节能和绿色建筑监理实施细则
- 基础工程施工月进度计划表
- 楼地面裂缝的原因及防治措施
- 仓库租赁合同电子版
- 倪海厦人纪之针灸 全
- 《学前教育专业导论》课程教学大纲
- 小腿免荷支具矫形器制作流程【培训课件】
- DB11-T 1863-2021医疗机构保洁服务规范
评论
0/150
提交评论