C课程设计报告(学生信息管理系统)_第1页
C课程设计报告(学生信息管理系统)_第2页
C课程设计报告(学生信息管理系统)_第3页
C课程设计报告(学生信息管理系统)_第4页
C课程设计报告(学生信息管理系统)_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、海奇4种手比课程设计报告课程名称C语言程序设计课题名称学生信息管理系统专 业电气工程及其自动化班级1086班学 号 2姓名周饯指导教师彭祯刘铮郭芳2011年 6 月20 日湖南工程学院课程设计任务书课程名称C课程设计课 题学生信息管理系统专业班级 电气1086班学生姓名周铁学号指导老师彭祯刘铮郭芳审批任务书下达日期 2011年6月20日任务完成日期2011年7月1日3目录一、题目总体介绍错误!二、需求分析错误!三、总体设计错误!1、现行系统组织结构图: 错误!2、数据结构分析错误!3、工作原理等错误!三、详细设计错误!四.系统调试与结果分析 错误!六、总结错误!七、附件错误!未定义书签 未定义

2、书签 未定义书签 未定义书签, 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签 未定义书签未定义书签,参考文献错误!4一、题目总体介绍(1) 、课程设计题目:学生信息管理(2) 、课程设计内容与主要功能:设计与开发一个学生信息管理系统,对学生的学号、姓名、性别、年龄等基本信息进行管理、主要功能如下:1) ) 输入记录2) 显示全部记录3) 查找记录4) 删除记录5) 插入记录6) 保存文件7) 读文件8) 按学号显示记录9) 按姓名排序(3) 、目的与要求:1、目的:( 1 )要求学生达到熟练掌握C 语言的基本知识和技能;(2)基本掌握C语言程序设计的基本思路和方法;(3)能够利用

3、所学的基本知识和技能,解决简单的C语言程序设计问题。2、基本要求:1)设计正确,方案合理。2)界面友好,使用方便。3)程序精炼,结构清晰。3、创新要求:在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功 能。4、写出设计说明书、设计方法和基本原理:1、问题描述(功能要求):(1)能够从屏幕上读取一个学生的信息并将信息存入到数据文件中。(2)能够将指定的信息从文件中删除。(3)能够按学号、姓名、性别、年龄对学生的信息进行检索并将检索 结果显示在屏幕上。(4)如果检索不到相应的信息应提示用户。2、问题的解决方案:根据系统功能要求,可以将问题解决分为以下步骤:(1)写出需求分析(做什么);

4、(2)分析系统中的各个实体之间的关系及其属性和行为;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述(包括属性和方法);(5)完成类中各个成员函数的定义;(6)用户界面的设计;(7)分析系统功能模块(系统流程图);(8)代码编写,功能调试;(9)完成系统总结报告以及系统使用说明书。二、需求分析(1)能够从屏幕上读取一个学生的信息并将信息存入到数据文件中。(2)能够将指定的信息从文件中删除。(3)能够按学号、姓名、性别、年龄对学生的信息进行检索并将检索 结果显示在屏幕上。(7)如果检索不到相应的信息应提示用户。三、总体设计291、现行系统组织结构图:2、数据结构分析使用整型,

5、双精度,字符型定义变量和函数。使用结构体,类等概念实现数据存储。同时也是用这些自定义类型定义了变量和函数。体现面向对象设计的特点。3、工作原理等系统功能结构图:四、详细设计1 、类设计类: student数据成员学号,姓名,性别,年龄类: school成员函数输入记录函数enter ():输入编号到计算机中;显示记录函数list() :显示全部输入的内容,如学号、姓名、性别、年龄等;按姓名查找显示记录函数search ():按学号或姓名查找学生的信息;删除记录函数delete。:删除指定学号学生信息;插入记录函数add():插入指定学号学生信息;记录保存为文件函数save():将学生信息保存为

6、文件函数;从文件中读记录函数10ad():从文件中读出学生信息;按序号查找显示记录函数display() :按序号查找学生信息;按姓名排序函数s0rt() :按学生姓名排序;文件复制函数copy():将文件复制;显示单条记录函数print(STUDENTS temp); 显示单条学生信息;查找函数find(STUDENTS t,int n,char *s) :查找学生信息;输出函数 menu_se1ect():输出学生信息;五系统调试与结果分析1 、初始目录:2、输入数据:3、显示所有记录:4、查找记录:5、删除记录:6、插入记录:7、按姓名排序8、复制信息9、按序号排序2.系统运行的结果:设

7、计特点和不足之处:系统整体清晰明了,功能基本齐全,但系统中报错功能不完整,当学号等信息 输入数字等时不出现报错,可设置提醒重新输入。六、总结1、在做了课程实验以后,我对 C语言的了解更深了,很多知识得到了巩周,一些不懂的知识也渐渐明了!但从C语言这门课程开始,已发现程序设计的乐趣,在学习C语言的过程中也学到了许多计算机应用基础知 识,对计算机的机体也有了 一个大体的了解2、作了学生学生信息管理系统程序后,我对数据类型、函数、指针、结 构体更加熟悉了,作为 C语言所特有得指针、结构体和对象再编写程 序得过程中运用十分广泛,我还必须多加练习才能达到一个更高的水平,结构体和对象、指针都是非常重要的。

8、3、这次实训是彭祯老师给了很大引导,经过自己的改写,实现要求。先做简单的输出,一步步的再做其它图案,在实际操作过程中犯 的一些错误还会有意外的收获,感觉实训很有意思。在具体操作中对 这学期所学的C语言的理论知识得到巩固,达到实训的基本目的,也发现自己的不足之出,在以后的上机中应更加注意,同时体会到C语言具有的语句简洁,使用灵活,执行效率高等特点。发现上机实训的 重要作用,特别是对数组和循环有了深刻的理解。4、在完完整整的做完一个课程实验后,我对程序的整体性有了一个明确 的认识,做一个程序必须要注意程序前后的联系,要具有清晰的思路,程序要具有层次。对整体性的把握至关重要!5、学习计算机语言,最重

9、要的就是上机操作,我深感自己动手能力比较 差,在以后的学习中,还必须多多上机调试程序,从实践中多积累经 验,为以后学习和工作打下坚实的基础。七、附件/*头文件(.h ) */#include /*I/O函数*/#include /*标准库函数*/#include /*字符串函数*/#include /*字符操作函数*/#define M 50 /*定义常数表示记录数*/typedef struct /*定义数据结构*/char no20;/*学号*/char name20; /*姓名*/显示记录*/按姓名查找显示记录*/删除记录*/插入记录*/记录保存为文件*/从文件中读记录*/按序号查找显示

10、记录*/按姓名排序*/显示单条记录*/int menu_select(); /*主菜单函数*/char sex5;/* 性别 */int age;/* 年龄 */ STUDENTS;/*/int enter(STUDENTS t); /* 输入记录*/void list(STUDENTS t,int n); /* void search(STUDENTS t,int n); /* int delete(STUDENTS t,int n); /* int add(STUDENTS t,int n); /* void save(STUDENTS t,int n); /* int load(STUD

11、ENTS t); /* void display(STUDENTS t); /* void sort(STUDENTS t,int n); /* void copy(); /* 文件复制*/void print(STUDENTS temp); /*int find(STUDENTS t,int n,char *s) ; /*查找函数*/*/main()STUDENTS stuM; /* 定义结构体数组*/int length; /* 保存记录长度*/clrscr(); /* 清屏 */for(;)/* 无限循环*/switch(menu_select() /*调用主菜单函数,返回值整数作开关语

12、句*/case 0:length=enter(stu);break;/*输入记录*/case 1:list(stu,length);break; /*显示全部记录*/查找记录*/删除记录*/插入记录*/保存文件*/读文件*/按序号显示记录*/按姓名排序*/case 2:search(stu,length);break; /*case 3:length=delete(stu,length);break; /*case 4:length=add(stu,length); break; /*case 5:save(stu,length);break; /*case 6:length=load(stu

13、); break; /*case 7:display(stu);break; /*case 8:sort(stu,length);break; /*复制文件*/如返回值为11则程序结束*/case 9:copy();break; /*case 10:exit(0); /*/*菜单函数,函数返回值为整数,代表所选的菜单项*/ menu_select()char s80;int c;gotoxy(1,25);/*将光标定为在第 25行,第1列*/printf(press any key enter menun);/*提示压任意键继续 */getch(); /*读入任意字符*/clrscr(); /

14、* 清屏 */gotoxy(1,1);printf(I*MENU*nn);printf(0.Enter recordn);printf(1.List the filen);printf(2.Search record onnamen);printf(3.Delete a recordn);printf(4.add record n);printf(5.Save the filen);printf(6.Load the filen);printf( 7. display record on ordern);printf( 8. sort to make new filen);printf(9.

15、copy the file to new filen);printf(10. Quitn);printf(*n);doprintf(n Enteryou choice(010):);/* 提示输入选项*/scanf(%s,s); /*输入选择项*/c=atoi(s); /* 将输入的字符串转化为整型数*/while(c10); /* 选择项不在011 之间重输*/return c; /* 返回选择项,主程序根据该数调用相应的函数*/* 输入记录,形参为结构体数组,函数值返回类型为整型表示记录长度*/int enter(STUDENTS t) int i,n;char *s;clrscr();

16、/* 清屏 */printf(nplease input num n); /*提示信息*/scanf(%d,&n); /* 输入记录数*/printf(please input record n); /*提示输入记录*/printf(no name sex agen);printf(n);for (i=0;in;i+)scanf(%s,ti.no);scanf(%s,);scanf(%s,ti.sex);scanf(%d,&ti.age);return n; /*返回记录条数*/*显示记录,参数为记录数组和记录条数*/void list(STUDENTS 肛int n)int i

17、;clrscr();printf(nn*STUDENTS*n);printf(noname sex agen);printf(n);for(i=0;in-1) /* 如果整数i值大于n-1 ,说明没找到*/printf(not foundn);elseprint(ti); /*找到,调用显示函数显示记录*/* 显示指定的一条记录*/ void print(STUDENTS temp) clrscr();printf(nn*n);printf(noname sex agen);n);printf(printf(%-20s%-20s%-10s%-10dn,temp.no,,tem

18、p.sex,temp.age );printf(I*end*n);/* 查找函数,参数为记录数组和记录条数以及姓名s */ int find(STUDENTS t,int n,char *s)int i;for(i=0;in;i+)/* 从第一条记录开始,直到最后一条*/if(strcmp(s,)=0)/*记录中的姓名和待比较的姓名是否相等 */return i; /*相等,则返回该记录的下标号,程序提前结结束*/return i; /* 返回 i 值 */* 删除函数,参数为记录数组和记录条数*/int delete(STUDENTS t,int n)char s20; /*要

19、删除记录的姓名 */int ch=0;int i,j;printf(please deleted namen); /*提示信息 */scanf(%s,s);/*输入姓名 */i=find(t,n,s); /*调用 find 函数 */for(;i=i;j-) /*strcpy(tj+1.no,tj.no); /*strcpy(tj+1.name,); /*条 */strcpy(tj+1.sex,tj.sex); /*tj+1.age=tj.age; /*当前记录的年龄拷贝到后一条strcpy(ti.no,temp.no); /*strcpy(,);

20、*/* 将新插入记录的性别拷贝到第i 个位置 */将新插入记录的年龄拷贝到第i 个位置 */*/*/strcpy(ti.sex,temp.sex);ti.age = temp.age; /*n+; /* 记录数加1*/return n; /* 返回记录数/* 保存函数,参数为结构体数组和记录数void save(STUDENTS t,int n)int i;FILE *fp; /* 指向文件的指针*/*打开文件,并判断打开是没打开 */输出提示信息*/将记录数写入文件*/if(fp=fopen(record.txt,wb)=NULL)否正常 */printf(can not open file

21、n);/*exit(1); /*退出 */printf(nSaving filen); /* fprintf(fp,%d,n); /*将换行符号写入文件*/fprintf(fp,rn); /* for(i=0;in;i+) fprintf(fp,%-20s%-30s%-10s%-10d”,ti.no,,ti.sex,ti.age);/*格式写入记录*/fprintf(fp,rn); /*将换行符号写入文件 */fclose(fp);/*关闭文件 */printf(*save success*n); /*/*读入函数,参数为结构体数组*/int load(STUDENTS t口)i

22、nt 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) /*判断序号是否在记录范围内*/printf(Enter order number.n); /*移动文件指针到该记录位fseek(fp,(id-1)*sizeof(STUDENTS),1); /* 置 */print(tid); /*调用输出函数显示该

23、记录*/printf(rn);else如果序号不合理显示信printf(no %d number record!n ,id); /*息 */fclose(fp); /*关闭文件*/* 排序函数,参数为结构体数组和记录数*/ void sort(STUDENTS t,int n)int i,j,flag;STUDENTS temp; /* 临时变量做交换数据用*/for(i=0;in;i+)flag=0; /*设标志判断是否发生过交换*/for(j=0;j0)/*比较大小 */temp=tj; tj=tj+1;tj+1=temp;flag+;if(flag=0)break; /*如果标志为 0,说明没有发生过交换循环结束*/printf(sort sucess!n); /*显示排序成功 */*复制文件*/void copy()char outfile20; /*目标文件名 */int i,n;STUDENTS tempM; /* 定义临时变量 */FILE *sfp,*tfp; /*定义指向文件的指针*/clrscr();/* 清屏 */if(sfp=fopen(record.txt,rb)=NULL) /*打开记录文件 */printf(can not

温馨提示

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

评论

0/150

提交评论