C语言课程设计-学生成绩管理系统2.doc_第1页
C语言课程设计-学生成绩管理系统2.doc_第2页
C语言课程设计-学生成绩管理系统2.doc_第3页
C语言课程设计-学生成绩管理系统2.doc_第4页
C语言课程设计-学生成绩管理系统2.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

c语言程序设计课程设计报告专 业: 电子信息工程 班 级: 0902 姓 名: 指导教师: 2010年 12 月 30日目录一、课程设计任务书3二、设计内容及思路4 三、函数说明及流程图15四、个人部分18五、实验心得20六、参考文献4七、程序代码4一、课程设计任务书一、设计题目:学生成绩管理系统二、设计目的 1、熟练掌握c语言课程中所学的理论知识; 2、通过综合c语言的基本知识来解决实际问题; 3、加强分析和解决问题的能力。二、设计内容 职工信息包括职工号、姓名、性别、年龄、学历、工资等(职工号不重复)。系统功能包括:1、系统以菜单方式工作,密码登陆。2、职工信息的录入(增加数据)。用数组数据类型赋初值的方法把职工信息送到各个数组中(但注意要是合法数据),然后把它们输出显示。3、职工信息的删除(删除数据)。任意输入一位职工的工号,将它所有的信息从组数中删除。4、职工信息的浏览(查找数据)。任意输入一位职工的工号,打印出他的所有数据。要求能多次查找。5、职工信息的修改(修改数据)。任意输入一位职工的工号,打印出所有相关信息后,可对某一项信息进行修改并保存。6、职工信息的计算并排序。计算所有职工的总工资及平均工资(aver,单精度,输出一位小数),将包括所有数据的数组元素按工资从高到低的顺序排序打印出来。四、设计步骤1、需求分析:对系统的应实现的功能进行分析。2、概要设计:对系统功能进行模块分解,对模块的功能及模块之间的相互关系进行说明(如用到函数,则对函数间的接口进行说明),对系统使用的数据结构(各数组、主要变量的设置及其代表的含义)进行说明。3、详细设计:用流程图、伪代码等方法对各主要算法进行描述。4、编写代码:根据设计编写。源程序要按照程序的格式规范来编写,要求结构清晰,界面友好,关键部分有必要的注释。5、调试分析:准备充分的测试数据对系统进行调试(对错误的数据输入也要进行测试,保证程序的容错性),并通过测试对系统提出改进设想。设计思路1、(需求分析或算法分析)学生的主要信息包括:学号、姓名、c语言成绩、数学成绩、英语成绩、总分、平均分、名次.2、(数据分析:包括所涉及的函数,数据结构等)用结构体数组来存储信息,例如用add()函数来实现信息的录入,用disp()函数来显示打印信息,用qur()函数来查找信息,用sort()函数来排序用insert()函数来插入信息,用modify() 函数来修改信息,用del()函数来删除信息,用save()函数来保存信息,用exit函数来退出通讯录等等.3、对小组进行分工,每个人分配至少一个函数的代码实现,其余的再按情况进行分配.三、函数说明及流程图用到的函数库简介a. 输入输出函数printf 形式:printf(char *format,args,)按format指向的格式字符串所规定的格式、将输出表列args的值输出到标准输出设备; scanf 形式:scanf(char *format,args,)从标准输入设备按gormat指向的格式字符串所规定的格式,输入数据给args所指向的单元; fopen 形式:fopen(char *filename,char *mode)以mode指定的方式打开名为filename的文件; fclose 形式:fclose(file *fp)关闭fp所指的文件,释放文件缓冲区。b. 字符串函数 strcmp 形式:strcmp(char *s1,char *s2) 对s1 和 s2所指字符串进行比较,s1s2返回正数。c. 动态分布函数和随机函数 malloc 形式:malloc(unsigned size)分配size字节的存储区。流程图:输出界面选择操作开始选择一选择二选择三选择四增加数据删除数据查找数据修改数据选择五计算数据性别年龄学历姓名职工号输入职工号输入职工号输入职工号输入工资排序保存结束工资四、个人部分任务内容:职工信息的修改(修改数据)。任意输入一位职工号,显示并打印出所有相关信息。代码:/信息查找函数/void czsj()int i,y;printf(tttn);printf(ttt *n);printf(ttt o(_)o n);printf(ttt *欢迎进入信息查找系统*n);printf(ttt *n); printf(tttn);printf(nnn);r:printf(ttt请输入要查询的职工号:);scanf(%d,&y);printf(nn);printf(tt职工号 姓名 性别 年龄 学历 工资n);for(i=0;iu;i+)if(y=str1i.num)printf(tt%dt,str1i.num);printf(%st,);printf(%st,str1i.sex);printf(%dt,str1i.age);printf(%st,str1i.xueli);printf(%d,str1i.gongzi); printf(n);printf(nn);printf(tt是否继续进行操作,继续(y),退出(n)n);getchar();a=getchar();if (a=y|a=y) goto r;else printf(n);printf(ttt按1键退出n);scanf(%d,&k);getchar();进行过程中遇到的问题:遇到的问题主要有两方面,一是自己的代码有错误,二是与小组其他成员的代码不兼容。解决方案:查询参考书籍,询问老师和同学。完成情况:经过修改、调试后,程序主要模块能正常运行。五、实验心得c语言是国内外广泛使用的程序设计语言,它功能强大,数据类型丰富,使用灵活,通用性强。学会、学好、使用c语言进行程序设计是时代的要求,也是计算机工作者的一项基本功。 在这次的试验中,我们共同协作,共同一步步的解决了课题选定、资料查找、流程图设计、各模块的算法设计、各模块和主程序的源程序编辑、最后的调试等步骤,完成了“成绩管理系统”这个程序的设计。在确定了大致上的方向后,我们也遇到了很多细节方面的问题,不过在我们的共同努力下,一个个问题都最终解决了.通过这次课程设计,使我充分认识到了自己一些方面的不足,同时经过课程设计时大家的不断讨论,使我对c语言有了更深入和更全面的认识. 通过本次课程设计,暴露了我很多学习上的误解.每门课都是要踏踏实实的学的,而不是到考前的恶补.可能成绩会比较好看.但一到实际就什么都不会了.脚踏实地是非常重要的学习态度,同时也是很重要的生活态度.本次实验对于我们来说,是非常重要的一段经历,因为我们明白了什么才叫程序,工作如何进行分工,如何进行分配,才能达到更高的效率,为我们以为做团体项目打好一个最基本的基础。六、参考文献1)谭浩强.c程序设计教程,清华大学出版社。2)沈大林.c语言程序设计案例教程,中国铁道出版社。3)张基温.c语言程序设计案例教程,清华大学出版社。4)郭翠英.c语言课程设计案例精编,中国利水电出版社。5) 申在明.c语言程序设计600例,人名邮电出版社。七、程序代码#include #include #include #include struct xinxiint num;char name8;char sex4;int age;char xueli6;int gongzi;struct xinxi str1100;int u,t,k;char a;/主函数void main()void dljm();void mima();void zjsj();void scsj();void czsj();void xgsj();void jspx();char i;dljm(); printf(nn); m:system(cls);printf(nn);printf(ttn);printf(tt *n);printf(tt *欢迎进入职工信息管理系统功能界面*n);printf(tt *n);printf(ttn);printf(nnnn);printf(ttt*n);printf(ttt*a 职工信息添加系统*n);printf(ttt*n);printf(ttt*b 职工信息删除系统*n);printf(ttt*n);printf(ttt*c 职工信息查找系统*n);printf(ttt*n);printf(ttt*d 职工信息修改系统*n);printf(ttt*n);printf(ttt*e 职工信息求值系统*n);printf(ttt*n);printf(nnn);printf(tt请输入所需功能对应的字母:);i=getchar();switch (i)case a: system(cls);zjsj();goto m;break;case b: system(cls);scsj();goto m;break;case c: system(cls);czsj();goto m;break;case d: system(cls);xgsj();goto m;break;case e: system(cls);jspx();goto m;break;default:printf(请输入有效的字符n);void dljm(void) printf(t * * * * * * * * n); printf(t n); printf(t - - - - - - - - n); printf(t n); printf(t /-/ happy /-/ n); printf(t ( (oo) ) new year! ( (oo) ) n);printf(t god n); printf(t bless n); printf(t you! n); printf(t - - - - - - n); printf(t n);printf(t * n); printf(t welcom to the most beautiful n);printf( 欢迎进入职工信息系统! n); printf(t * n); printf(t n); printf(t /-/ n); printf(t ( (oo) ) n); printf(t n); printf(t n); printf(t n); printf(t n); printf(nn);system(color 25);mima();/密码函数/void mima()char a7,b=123456;int i,j;for (j=1;j=3;j+)printf(tt请输入密码:);for (i=0;i6;i+)ai=getch();if (ai=8) i=i-2;printf(b b);elseif(ai=13) break;printf(*); ai=0;printf(n);if (strcmp(a,b)=0)printf(密码正确n);break;elseprintf(tt输入的密码错误!请再次输入密码:n);/信息输入函数/void zjsj()int j,k;printf(tttn);printf(ttt *n);printf(ttt *欢迎进入职工信息输入系统*n);printf(ttt *n);printf(tttn);printf(nnn);printf(tt请输入新的职工信息n);printf(n);l: printf(职工号);scanf(%d,&str1u.num);for (j=0;ju;j+)if(str1u.num=str1j.num)printf(tt职工号重复,请重新输入:n);scanf(%d,&str1u.num);printf(姓名);scanf(%s,&);printf(性别);scanf(%s,str1u.sex);printf(年龄);scanf(%d,&str1u.age);printf(学历);scanf(%s,&str1u.xueli);printf(工资);scanf(%d,&str1u.gongzi);u=u+1;printf(tt是否继续输入信息,继续(y),退出(n)n);getchar();a=getchar();if (a=y|a=y) goto l;else printf(nn);printf(tt职工号 姓名 性别 年龄 学历 工资n);for (j=0;ju;j+)printf(tt%dt,str1j.num);printf(%st,);printf(%st,str1j.sex);printf(%dt,str1j.age);printf(%st,str1j.xueli);printf(%d,str1j.gongzi);printf(n);printf(n);printf(ttt按1键退出n);scanf(%d,&k);getchar(); /信息删除函数/void scsj() int z,i,y1,y2,k; printf(tttn); printf(ttt * n); printf(ttt you have acess to delete data!n);printf(ttt !_ 信息 删除 系统 _! n); printf(ttt * n); printf(tttn);printf(nn); printf(t 东边日出 西边雨 n); printf(t 道是无晴 却有晴 n); printf(t - / - n); printf(t 删除前 望加思量 n); n: printf(nn); printf(tt请输入要删除的职工号:); scanf(%d,&y1); printf(n); printf(tt请再次输入要删除的职工号:); scanf(%d,&y2); printf(n); if (y1=y2) for (i=0;iu;i+) if (y1=str1i.num) z=i; break; printf(nnn); printf(tt要删除的职工信息是:n); printf(n); printf(tt职工号 姓名 性别 年龄 学历 工资n);printf(tt%dt,str1i.num);printf(%st,);printf(%st,str1i.sex);printf(%dt,str1i.age);printf(%st,str1i.xueli);printf(%d,str1i.gongzi); t+; printf(n); for (i=z;iu-t;i+) strcpy(,str1i+1.name); strcpy(str1i.sex,str1i+1.sex); strcpy(str1i.xueli,str1i+1.xueli);str1i.age=str1i+1.age; str1i.num=str1i+1.num; str1i.gongzi=str1i+1.gongzi; if(z=u) printf(tt没有此职工号信息n); printf(nnn);printf(tt职工号 姓名 性别 年龄 学历 工资n); for (i=0;iu-t;i+) printf(tt%dt,str1i.num);printf(%st,);printf(%st,str1i.sex);printf(%dt,str1i.age);printf(%st,str1i.xueli);printf(%d,str1i.gongzi); printf(n);printf(tt是否继续进行操作,继续(y),退出(n)n);getchar();a=getchar();if (a=y|a=y) goto n;else printf(n);printf(ttt按1键退出n);scanf(%d,&k);getchar(); /信息查找函数/void czsj()int i,y;printf(tttn);printf(ttt *n);printf(ttt o(_)o n);printf(ttt *欢迎进入信息查找系统*n);printf(ttt *n); printf(tttn);printf(nnn);r:printf(ttt请输入要查询的职工号:);scanf(%d,&y);printf(nn);printf(tt职工号 姓名 性别 年龄 学历 工资n);for(i=0;iu;i+)if(y=str1i.num)printf(tt%dt,str1i.num);printf(%st,);printf(%st,str1i.sex);printf(%dt,str1i.age);printf(%st,str1i.xueli);printf(%d,str1i.gongzi); printf(n);printf(nn);printf(tt是否继续进行操作,继续(y),退出(n)n);getchar();a=getchar();if (a=y|a=y) goto r;else printf(n);printf(ttt按1键退出n);scanf(%d,&k);getchar();/信息修改函数/void xgsj()char str3100; int i,b,z,h1,h2,str2;printf(tttn); printf(ttt *n); printf(ttt now,data will be changed! n);printf(ttt !_ 信息 修改 系统 _! n); printf(ttt *n); printf(tttn); printf(nnn); q: printf(tt请输入要修改的职工号:); scanf(%d,&h1); printf(tt请再次输入要修改的职工号:); scanf(%d,&h2); if (h1=h2) for(i=0;z=i,iu;i+) if (h1=str1i.num) break; printf(nnn); printf(tt要修改的职工信息是n); printf(n);printf(tt职工号 姓名 性别 年龄 学历 工资n);printf(tt%dt,str1i.num);printf(%st,);printf(%st,str1i.sex);printf(%dt,str1i.age);printf(%st,str1i.xueli);printf(%d,str1i.gongzi);printf(nnn); printf(n请输入你要修改第几项n);scanf(%d,&b); printf(请输入你要修改的内容n);if (b=1|b=4|b=6)scanf(%d,&str2);else scanf(%s,&str3);switch (b)case 1: str1i.num=str2; break;case 2: strcpy(,str3); break;case 3: strcpy(str1i.sex,str3); break;case 4: str1i.age=str2; break;case 5: strcpy(str1i.xueli,str3); break;case 6: str1i.gongzi=str2; break;default:printf(请输入有效的字符n);printf(nnn); printf(tt职工号 姓名 性别 年龄 学历 工资n); for (i=0;iu-t;i+) printf(tt%dt,str1i.num);printf(%st,);printf(%st,str1i.sex);printf(%dt,str1i.age);printf(%st,str1i.xueli);printf(%d,str1i.gongzi); printf(n); printf(nn);printf(tt是否继续进行操作,继续(y),退出(n)n);getchar();a=getchar();if (a=y|a=y) goto q;else printf(n);printf(ttt按1键退出n);scanf(%d,&k);getchar(); /信息计算排序函数void jspx()void zghao();void zgxm();void zgnl();void zggz();char g;inti,j; float s=0; printf(t n); printf(t n); printf(t n); printf(t 欢迎 进入 工资 排序 系统 n); printf(t n);printf(t n);printf(t n); printf(nnn);printf(tt职工号 姓名 性别 年龄 学历 工资n);for (i=0;iu-t;i+)printf(tt%dt,str1i.num);printf(%st,);printf(%st,str1i.sex);printf(%dt,str1i.age);printf(%st,str1i.xueli);printf(%d,str1i.gongzi); printf(n); printf(nnn);for(j=0;ju-t;j+) s=s+str1j.gongzi;printf(tt总工资是%10.1fntt平均工资是%10.1fn,s,s/(u-t);printf(nnnn);printf(ttt*n);printf(ttt*1 按职工号排序*n);printf(ttt*n);printf(ttt*2 按职工姓名排序*n);printf(ttt*n);printf(ttt*3 按职工年龄排序*n);printf(ttt*n);printf(ttt*4 按职工工资排序*n);printf(ttt*n);printf(nnn);printf(tt请输入所需功能对应的字母:);getchar();g=getchar();switch (g)case 1: system(cls);zghao();break;case 2: system(cls);zgxm();break;case 3: system(cls);zgnl();break;case 4: system(cls);zggz();break;default:printf(请输入有效的字符n);void zggz()char r38,r44,r56;inti,j,r6,r1,r2;printf(nnn);printf(ttt欢迎进入职工工资排序系统n);printf(nnn);printf(ttt排序结果如下:n);printf(nnn);for(j=0;ju-t;j+)for(i=0;i(u-t)-j;i+)if(str1i.gongzistr1i+1.gongzi)r6=str1i.gongzi; str1i.gongzi=str1i+1.gongzi; str1i+1.gongzi=r6;r1=str1i.num; str1i.num=str1i+1.num; str1i+1.num=r1;r2=str1i.age; str1i.age=str1i+1.age; str1i+1.age=r2;strcpy(r3,); strcpy(,str1i+1.name); strcpy(str1i+1.name,r3);strcpy(r4,str1i.sex); strcpy(str1i.sex,str1i+1.sex); strcpy(str1i+1.sex,r4);strcpy(r5,str1i.xueli); strcpy(str1i.xueli,str1i+1.xueli); strcpy(str1i+1.xueli,r5);printf(tt职工号 姓名 性别 年龄 学历 工资n);for(i=0;iu-t;i+)printf(tt%dt,str1i.num);printf(%st,);printf(%st,str1i.sex);printf(%dt,str1i.age);printf(%st,str1i.xueli);printf(%d,str1i.gongzi);printf(n);printf(n);printf(ttt按1键退出n);scanf(%d,&k);getchar();void zghao()char r38,r44,r56;inti,j,r6,r1,r2;printf(nnn);printf(ttt欢迎进入职工号排序系统n);printf(nnn);printf(ttt排序结果如下:n);printf(nnn);for(j=0;ju-t;j+)for(i=0;i(u-t)-j;i+)if(str1i.numstr1i+1.num)r1=str1i.num; str1i.num=str1i+1.num; str1i+1.num=r1;r6=str1i.gongzi; str1i.gongzi=str1i+1.gongzi; str1i+1.gongzi=r6;r2=str1i.age; str1i.age=str1i+1.age; str1i+1.age=r2;strcpy(r3,); strcpy(,str1i+1.name); strcpy(str1i+1.name,r3);strcpy(r4,str1i.sex); strcpy(str1i.sex,str1i+1.sex); strcpy(str1i+1.sex,r4);strcpy(r5,str1i.xueli); strcpy(str1i.xueli,str1i+1.xueli); strcpy(str1i+1.xueli,r5);printf(tt职工号 姓名 性别 年龄 学历 工资n);for(i=0;iu-t;i+)printf(tt%dt,str1i.num);printf(%st,);printf(%st,str1i.sex);printf(%dt,str1i.age);printf(%st,str1i.xueli);printf(%d,str1i.gongzi);printf(n);printf(n);printf(ttt按1键退出n);scanf(%d,&k);getchar();void zgnl()char r38,r44,r56;inti,j,r6,r1,r2;printf(nnn);printf(ttt欢迎进入职工年龄排序系统n);printf(nnn);printf(ttt排序结果如下:n);printf(nnn);for(j=0;ju-t;j+)for(i=0;i(u-t)-j;i+)if(str1i.agestr1i+1.age)r2=str1i.age; str1i.age=str1i+1.age; str1i+1.age=r2;r6=str1i.gongzi; str1i.gongzi=str1i+1.gongzi; str1i+1.gongzi=r6;r1=str1i.num; str1i.num=str1i+1.num; str1i+1.num=r1;strcpy(r3,); strcpy(,str1i+1.name); strcpy(str1i+1.name,r3

温馨提示

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

评论

0/150

提交评论