C课程设计报告--班级档案管理系统.doc_第1页
C课程设计报告--班级档案管理系统.doc_第2页
C课程设计报告--班级档案管理系统.doc_第3页
C课程设计报告--班级档案管理系统.doc_第4页
C课程设计报告--班级档案管理系统.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课 程 设 计 报 告课程名称 C语言课程设计 课题名称 班级档案管理系统 专 业 班 级 学 号 姓 名 指导教师 2014年 01 月 06 日湖南工程学院课 程 设 计 任 务 书课程名称 C语言课程设计 课 题 班级档案管理系统 专业班级 纺织工程 学生姓名 学 号 指导老师 田媛 审 批 任务书下达日期 2013 年 12 月 26 日任务完成日期 2014年 01 月 06 日一、设计内容与设计要求1设计内容:课题二:班级档案管理系统。具体内容见附录。2设计要求:1)设计正确,方案合理。2)界面友好,使用方便。3)程序精炼,结构清晰。4)上机演示。3设计报告要求:课程设计报告格式如下:1)正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体,行距为22。 2)正文的内容:课题的主要功能、课题的功能模块的划分、主要功能的实现、程序调试、总结、附件(所有程序的源代码,要求对程序写出必要的注释),课程设计报告需5000字左右(不含附件)。3)课程设计报告装订顺序:封面、任务书、目录、正文、评分、程序清单附件。二、进度安排星期日(17周)星期一(18周)星期四(18周)星期五(18周)星期日(18周)14:00-17:0018:00-21:0018:00-21:0018:00-21:00交报告上课时间另外安排。附录:设计课题二:班级档案管理系统一、问题描述:该系统实现对该班级学生的档案信息进行管理,包括录入、显示、修改、删除、查询、排序、保存等操作。二、功能要求:1、本系统采用结构体数组,每个数据的结构应当包括:学号、姓名、性别、年龄、民族、备注。2、系统功能:a. 信息录入:即添加记录。b. 信息显示:以某种方式显示学生的信息,如按学号显示、按性别显示、按年龄顺序显示、只显示男生或女生等等多种形式显示。(要求至少有一种显示方式,不限于已列出的方式。)c. 信息修改:对已经输入的信息进行修改。d. 信息删除:删除某个学生记录。e. 学生基本信息查询:输入学号或姓名,显示其完整信息。f. 信息保存:当添加、修改、删除信息后,应该将其存入文件。g. 退出系统3、系统使用说明:执行一个具体的功能之后,程序将重新显示功能菜单。系统的功能并不限于上述,可以对其进行扩充完善,如在对信息进行修改和删除时,可以考虑系统的安全性,在执行前若输入正确密码,才可进行操作。三、测试数据:学生人数=20。目 录1 系统需求分析62 概要设计63 详细设计64 系统测试75课程设计总结91 系统需求分析学生档案管理系统主要管理学生档案的基本信息。在系统中,每个用户是一条记录,包括学号、姓名、性别、年龄、备注。系统要对一个有N个用户的档案统一进行管理。包括了学生信息的录入、删除、修改、查询、插入等操作。本系统主要采用链表,结构体和函数来实现这些基本功能,而且能提供不同方式的查询功能,对学生信息的操作逐个地进行。2 概要设计系统功能模块图:学生档案管理系统 修改插入退出删除排序保存显示录入各函数的主要功能:主函数: void main() 录入函数:void enter() 显示函数:void list() /*直接显示学生信息*/保存函数:void save() /*保存学生信息*/插入函数:insert() 修改函数:void revise() /*修改录入的学生信息*/删除函数:void delete() /*删除录入的学生信息*/排序函数:void sort() /*排序录入的学生信息*/查找函数:void qseek() /*查找录入的学生信息*/读取函数:int load() /* 读取保存在文件中的学生信息*/ 3 详细设计3.1程序中的模块机使用功能 模块一:头文件,变量定义,函数的声明 对系统所使用的变量进行定义,对函数进行声明 模块二:学生信息的录入 int enter(STUDENT t)录入学生的基本信息。模块三:学生信息的显示 void list(STUDENT t,int n)就是把学生的基本信息显示在电脑上。模块四:学生信息的保存 void save(STUDENT t,int n)就是在把学生基本信息的保存下来。模块五:学生信息的修改 void revise(STUDENT t,int n) 插入学生信息。模块六:学生信息的插入 int insert(STUDENT t,int n) 修改已经录入的学生信息模块七:学生信息的删除 int delete(STUDENT t,int n)删除录入的学生信息模块八:学生信息的排序 void sort(STUDENT t,int n)排序录入的学生信息模块九:学生信息按姓名查找 void qseek(TSTUDENT t,int n)查找录入的学生信息模块十:学生信息的读入 int load(STUDENT t)读取保存在文件中的学生信息模块十一:退出系统3.2 主菜单主菜单部分,用来提醒用户需要选择哪些功能。这部分是来通过一个无限循环来执行上述所有的功能模块,不断的输出菜单项目,用switch语句来执行用户选择的功能模块,每一个case后面就是对应的功能函数。如果用户选择输入的数字范围不在1-9的范围之内,系统会返回主菜单界面,重新输入。menu_select() /*主菜单函数*/ char s80; int c; printf(press any key enter menu.n); printf(*MENU*nn); printf(1. 学生基本信息录入n); printf(2. 学生基本信息显示n); printf(3. 学生基本信息保存 n); printf(4. 学生基本信息修改n); printf(5. 学生基本信息插入 n); printf(6. 学生基本信息删除n); printf( 7. 学生基本信息排序n); printf( 8. 学生基本信息查询n); printf( 9. 退出系统); printf(*n); do printf(n Enter you choice(19):); scanf(%s,s); c=atoi(s); while(c9); return c;3.3 录入通过选择功能函数1后,屏幕会出现指示,要求依次输入姓名、学号、性别等,输完之后系统会自动返回主菜单界面,如果想继续输入学生信息就输入数字键1继续输入。int enter(STUDENT t) /*录入函数*/ int i,n; printf(nplease input num n); scanf(%d,&n); printf(please input record n); printf(name no sex wYears remarkn); printf(-n); for(i=0;in;i+) scanf(%s%s%s%d%s,,ti.no,ti.sex,&ti.wYears,ti.remark); printf(-n); return n;3.3 显示输出学生基本信息模块的主要功能是用来对学生基本信息进行输出。在系统已经录入了学生基本信息的前提下,使用该功能可以显示所有学生的基本信息。具体包括姓名,学号,性别等。在查看学生基本信息后,按enter就可以返回到主菜单。void list(STUDENT t,int n) /*显示函数*/ int i; printf(nn*TEACHER*n); printf(name no sex wYears remarkn); printf(-n); for(i=0;i=i;j-) strcpy(tj+1.name,); strcpy(tj+1.no,tj.no); strcpy(tj+1.sex,tj.sex); tj+1.wYears=tj.wYears; strcpy(tj+1.remark,tj.remark); strcpy(,); strcpy(ti.no,temp.no); strcpy(ti.sex,temp.sex); ti.wYears=temp.wYears; strcpy(ti.remark,temp.remark); n+; return n;3.5 查找按学号查找并删除模块的主要功能是用来删除学生基本信息的。在系统保存学生基本信息的前提下,想删除某学生的基本信息,就可以输入学生学号,系统查找该学生资料后,就可以删除了。可以及时对系统进行更新,删除一些没用的信息,可以使系统更加优化。void search(STUDENT t,int n) char s20; int i; printf(please search namen); scanf(%s,s); i=find(t,n,s); if(in-1) printf(not foundn); else print(ti);3.6 修改按学生学号查找并修改模块的主要功能是用来修改学生基本信息的。在系统保存了某学生的基本信息的前提下,想要查找该学生的基本信息,可以该学生的学号,系统就会显示该学生的基本信息,这样根据提示修改学生的基本信息。int revise(STUDENT t) int i,n; printf(nplease input num n); scanf(%d,&n); printf(please input record n); printf(name no sex wYears remarkn); printf(-n); for(i=0;in-1) printf(no found not deletedn); else print(ti); printf(Are you sure delete it(1/0)n); scanf(%d,&ch); if(ch=1) for(j=i+1;jn;j+) strcpy(,);strcpy(tj-1.no,tj.no);strcpy(tj-1.sex,tj.sex);tj-1.wYears=tj.wYears;strcpy(tj-1.remark,tj.remark); n-; return n;3.8 保存退出保存并退出模块主要功能是用来储存学生资料。在对系统进行一系列操作,比如添加、删除、修改学生基本信息后,对系统的最新操作进行保存,及时更新系统,方便下一次的操作。void save(STUDENT t,int n) int i; FILE *fp; /*定义指针*/ if(fp=fopen(record.txt,wb)=NULL) /*打开文件*/ printf(can not open filen); exit(1); printf(nSaving filen); fprintf(fp,%d,n); fprintf(fp,rn); for(i=0;in;i+) fprintf(fp,%-20s%-20s%-20s%-40d%-10s,,ti.no,ti.sex,ti.wYears,ti.remark); fprintf(fp,rn); fclose(fp); /*关闭文件*/ printf(*save success*n);4 系统测试4.1 菜单显示主菜单界面信息中包含九个功能:录入,显示,保存,修改,插入,删除,排序,查询,退出系统。根据界面提示选择需要的功能。选择功能1学生基本信息的录入,输入序号1开始开始录入学生基本信息。如下图所示。学生信息的修改学生基本信息保存后可以根据提示继续选择功能,如图所示是学生基本信息的修改,依据提示完成学生基本信息的修改。学生基本信息的删除学生基本信息的删除根据系统的提示键入数字键6,进入学生基本信息的删除,键入你所需要删除的学生姓名,出现该学生的信息,根据提示键入数字键1选择删除学生基本信息,键入数字键0选择不删除学生基本信息。学生基本信息的保存选择功能3学生基本信息的保存,系统会显示保存成功。如下图所示:5 课程设计总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。回顾起此次学生档案管理课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整一个星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。通过这次课程设计之后,一定把以前所学过的知识重新温故。 附录:#include stdio.h#include stdlib.h#include string.h#define M 50typedef struct char name20; char no20; char sex20; int wYears; char remark20;STUDENT;int enter(STUDENT t);void list(STUDENT t,int n);void save(STUDENT t,int n);int revise(STUDENT t,int n);int insert(STUDENT t,int n);int delete(STUDENT t,int n);void sort(STUDENT t,int n);void qseek(STUDENT t,int n);void print(STUDENT temp);int find(STUDENT t,int n,char *s);int menu_select();main() STUDENT studentM; int length; for(;) switch(menu_select() case 1:length=enter(student);break; case 2:list(student,length);break; case 3:save (student,length);break; case 4:revise(student,length);break; case 5:length=insert(student,length);break; case 6:length=delete(student,length);break; case 7:sort(student,length);break; case 8:qseek(student,length);break; case 9: exit(0); menu_select() char s80; int c; printf(press any key enter menu.n); printf(*MENU*nn); printf(1. 学生基本信息录入n); printf(2. 学生基本信息显示n); printf(3. 学生基本信息保存 n); printf(4. 学生基本信息修改n); printf(5. 学生基本信息插入 n); printf(6. 学生基本信息删除n); printf( 7. 学生基本信息排序n); printf( 8. 学生基本信息查询n); printf( 9. 退出系统); printf(*n); do printf(n Enter you choice(19):); scanf(%s,s); c=atoi(s); while(c9); return c;int enter(STUDENT t) int i,n; printf(nplease input num n); scanf(%d,&n); printf(please input record n); printf(name no sex wYears remarkn); printf(-n); for(i=0;in;i+) scanf(%s%s%s%d%s,,ti.no,ti.sex,&ti.wYears,ti.remark); printf(-n); return n;void list(STUDENT t,int n) int i; printf(nn*TEACHER*n); printf(name no sex wYears remarkn); printf(-n); for(i=0;in-1) printf(not foundn); else print(ti);void print(STUDENT temp) printf(nn*TEACHER*n); printf(name no sex wYears remarkn); printf(-n); printf(%-20s%-20s%-20s%-10d%-10sn,,temp.no,temp.sex,temp.wYears,temp.remark); printf(*end*n);int find(STUDENT t,int n,char *s) int i; for(i=0;in-1) printf(no found not deletedn); else print(ti); printf(Are you sure delete it(1/0)n); scanf(%d,&ch); if(ch=1) for(j=i+1;j=i;j-) strcpy(tj+1.name,); strcpy(tj+1.no,tj.no); strcpy(tj+1.sex,tj.sex); tj+1.wYears=tj.wYears; strcpy(tj+1.remark,tj.remark); strcpy(,); strcpy(ti.no,temp.no); strcpy(ti.sex,temp.sex); ti.wYears=temp.wYears; strcpy(ti.remark,temp.remark); n+; return n;void save(STUDENT t,int n) int i; FILE *fp; if(fp=fopen(record.txt,wb)=NULL) printf(can not open filen); exit(1); printf(nSaving filen); fprintf(fp,%d,n); fprintf(fp,rn); for(i=0;in;i+) fprintf(fp,%-20s%-20s%-20s%-40d%-10s,,ti.no,ti.sex,ti.wYears,ti.remark); fprintf(fp,rn); fclose(fp); printf(*save success*n);int load(STUDENT t) int i,n; FILE *fp; if(fp=fopen(record.txt,rb)=NULL) printf(can not open filen); exit(1); fscanf(fp,%d,&n); for(i=0;i=0&idn) fseek(fp,(id-1)*sizeof(STUDENT),1); print(tid); printf(rn); else printf(no %d number record!n ,id); fclose(fp);void sort(STUDENT t,int n) int i,j,flag; STUDENT temp; for(i=0;in;i+) flag=0; for(j=0;j0) flag=1; strcpy(,); strcpy(temp.no,tj.no); strcpy(temp.sex,tj.sex); temp.wYears=tj.wYears; strcpy(temp.remark,tj.remark); strcpy(,tj+1.name); strcpy(tj.no,tj+1.no); strcpy(tj.sex,tj+1.sex); tj.wYears=tj+1.wYears; strcpy(tj.remark,tj+1.remark); strcpy(tj+1.name,); strcpy(tj+1.no,temp.no); strcpy(tj+1.sex,temp.sex); tj+1.wYears=temp.wYears; strcpy(tj+1.remark,temp.remark); if(flag=0)break; printf(sort sucess!n);void qseek(STUDENT t,int n) char s20; int l,r,m; printf(nPlease sort before qseek!n); printf(please enter name for qseekn); scanf(%s,s); l=0;r=n-1; while(l=r) m=(l+r)/2; if(strcmp(,s)=0) print(tm); return ; if(strcmp(tm.na

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论