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

下载本文档

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

文档简介

课程设计报告(本科)课程:高级语言程序设计学号:姓名:班级:2013级计算机科学与技术教师:时间:2013年12月计算机科学与技术系设计名称:学生成绩管理系统设计内容、目的与要求:设计内容:设计并实现学生成绩管理系统目的与要求: 设计学生成绩管理系统,实现以下功能:1、采用的数据结构:结构体数组 2、实现的功能:能对学生成绩信息(学号,课程设计,成绩)进行查询(要求可以使用模糊查询和条件组合查询)、修改、增加、删除和存储等。计划与进度安排:12月20日至12月22日:研究学生管理系统的要求,分析应实现的功能,具体分析问题,选择解题所用的方法;12月23日至12月25日:设计出解题的方法(如该使用何种算法,函数如何定义)和具体步骤;12月26日至12月31日:编写各部分的程序,然后整合;1月1日至1月2日:调试程序;1月3日至1月5日:检查并完善程序,找出不足,认真填写课程设计报告,为验收做准备。设计过程、步骤(可加页):1、 此设计采用结构体数组,根据不同的值表达的不同意思,对变量进行定义。 另外此代码,添加了结构体变量如下:struct student char name60; char id7; int score; 2、本课程设计定义了大量函数,主要为: (1)case 1: add(); fh();(增加学生成绩) (2)case 2: chazhao(); fh();(查找) (3)case 3: del(); fh();(删除) (4)case 4: xg(); fh();(修改) (5)case 5:bca(); fh();(保存) 3、详细说明各函数功能的实现: (1)增加功能void add()/增加学生 int numbertemp=0; int i=0; struct student temp; /临时保存信息 printf(请输入要增加学生成绩个数:); scanf(%d,&numbertemp); for(i=0;i提示:文件不存在,是否要创建?yn) scanf(%c,&yesorno); if(yesorno=y|yesorno=y) /这里仅为了建立文件 fp=fopen(c:/student.dat,wb); fclose(fp); else exit(0); else number=dq(st); /要是文件只能够已经有数据 将数据初始化到 数组中 结果与分析(可以加页): 一、 运行结果1 、总页面2、增加功能3、 查找功能姓名查找(内含模糊查找)学号查找 条件组合查找 3、删除功能4、 修改功能5、 保存功能 二、程序分析 该程序设计基本实现了,对学生成绩的增加,删除,修改,查找和存储的基本功能,另外在查找程序中,还包含了模糊查找和条件组合查找 但是对于条件组合查找,在两个条件存在的前提下,却能查出多个结果,查询显示结果却由“且”变成“或”。设计体会与建议: 设计体会:起初在拿到课程设计之时,对本课题只是大致浏览过一遍,等到真正开始编写,才发现各方各面的问题,主函数的定义,其它函数的声明,一切的一切都是如此困难。也正是通过本次作业,能够正视自己在c语言上的不足点。犹记得起初对程序段极其陌生,不清楚该使用什么程序段,一直徘徊在不同函数之间。记得那时看到c语言头就晕。曾经为了一个模糊查询语句,跑去图书馆查阅。不得不承认那段时间的自己也确实萌生了失望,绝望,或者放弃的思想。但是考虑再三,还是咬牙坚持,泡图书馆,电子阅览室。功夫不负有心人,最后经过多次查找资料,多次修改,最终完成本次作业。建议:此次实验让我明白了,在实践一个于己而言,陌生的作业之前,先要熟悉课本基本知识,起码了解所要实现的功能,或者所需的函数定义。多查阅资料,看看别人怎么做的。不要老想一个人死撑,可以问问同学老师。附录:#include #include #include struct student char name60; char id7; int score;int dq(struct student st);void xianshi();void bc(struct student st);void add(); /定义增加函数void chazhao();/定义查找函数void xhcz();/按学号查找void xmcz();/按姓名查找void del();/定义删除函数void xmsc();/姓名删除void xhsc();/学号删除void zhcz();/条件组合查找void xg();/定义修改函数void xhxg(); /学号修改void xmxg();/姓名修改void bca();void fh();struct student st300; /这个数组用来保存所有的学生信息 和文件里面的一致int number=0; /记录总的学生人数 也就是数组/文件里面的学生人数int k=0;/表示输入的信息是否存在void main() int choose=0; file *fp=null; char yesorno; if(fp=fopen(c:/student.dat,rb)=null) printf(n=提示:文件不存在,是否要创建一个?(y/n)n); scanf(%c,&yesorno); if(yesorno=y|yesorno=y) /这里仅为了建立文件 fp=fopen(c:/student.dat,wb); fclose(fp); else exit(0); else number=dq(st); /要是文件只能够已经有数据 将数据初始化到数组中 system(cls); xianshi(); printf(tt=请选择:); scanf(%d,&choose); system(cls); switch(choose) case 0: exit(0); /退出 break; case 1: add(); fh();/增加学生成绩 break; case 2: chazhao(); fh();/ 查找 break; case 3: del(); fh();/删除 break; case 4: xg(); fh();/修改 break; case 5:bca(); fh();/保存 break; default: break; fflush(stdin); getchar(); system(cls); void bca() printf(t=程序在运行时已自动保存.n);void fh() printf(n);void xg() /修改学生信息 int way=0; printf(请选择修改查找方式n); printf(1 按姓名查找修改n); printf(2 按学号查找修改n); scanf(%d,&way); switch(way) case 1: xmxg(); break; case 2: xhxg(); break; default: printf(输入有误,结束!n); break; /按姓名修改void xmxg() file *fp=null; char name60; int i=0; int changeindex=0; int index=0; printf(请输入要修改的学生姓名:); scanf(%s,name); for (i=0;i修改成功n); else if(k=0) printf(=无此人nnn); /信息修改后重新更新文件里面的数据 以保持数据一致性 fp=fopen(c:/student.dat,wb); for (i=0;inumber;i+) fwrite(&sti,sizeof(struct student),1,fp); fclose(fp); k=0;void xhxg()/按学号修改 file *fp=null; char id60; int i=0; int changeindex=0; int index=0; printf(请输入要修改的学生学号:); scanf(%s,id); for (i=0;i修改成功n); else if(k=0) printf(=无此人nnn); /信息修改后重新更新文件里面的数据 以保持数据一致性 fp=fopen(c:/student.dat,wb); for (i=0;inumber;i+) fwrite(&sti,sizeof(struct student),1,fp); fclose(fp); k=0; void del()/删除 int n=0; printf(1 按姓名删除n); printf(2 按学号删除n); scanf(%d,&n); switch(n) case 1: xmsc(); break; case 2: xhsc(); break; void xmsc()/按姓名删除 file *fp=null; char name60; int i=0; int j=0; printf(请输入要删除的学生姓名:); scanf(%s,name); for(i=0;inumber;i+) if (strcmp(name,)=0) /如果查找到就删除 for (j=i;j无此人!nnn); /将剩余数据写入文件 重新一写的方式打开文件 把以前的数据擦除了 fp=fopen(c:/student.dat,wb); for (i=0;inumber;i+) fwrite(&sti,sizeof(struct student),1,fp); fclose(fp); k=0; void xhsc()/按学号删除 file *fp=null; char id60; int i=0; int j=0; printf(请输入要删除的学生学号:); scanf(%s,id); for(i=0;inumber;i+) if (strcmp(id,sti.id)=0) /如果查找到就删除 for (j=i;j无此人!nnn); /将剩余数据写入文件 重新一写的方式打开文件 把以前的数据擦除了 fp=fopen(c:/student.dat,wb); for (i=0;inumber;i+) fwrite(&sti,sizeof(struct student),1,fp); fclose(fp); k=0;void chazhao()/查找学生 int n=0; printf(1 按姓名查找n); printf(2 按学号查找n); printf(3 组合查找n); scanf(%d,&n); switch(n) case 1: xmcz(); break; case 2: xhcz(); break;case 3: zhcz(); break; default: printf(输入有误,结束!n); break; void xhcz()/按学号查找 char id7; int i=0; printf(请输入要查找学生学号:); scanf(%s,id); system(cls); for (i=0;i对不起没有查找出这个人!nnn); k=0;void xmcz()/按姓名查找 char name7; int i=0; printf(请输入要查找学生姓名:); scanf(%s,name); system(cls); for (i=0;i=0) printf(t姓名t学号t高数t英语tc语言t计算机导论n);printf(t%st%st%dt%dt%dt%dn,,sti.id,sti.score,sti.score,sti.score,sti.score); k=1; if(k=0) printf(=对不起没有查找出这个人!nnn); k=0;void zhcz()/组合查找 char name7;char id7; int i=0,j=0; printf(请输入要查找学生姓名:); scanf(%s,name);printf(请输入要查找学生学号:); scanf(%s,id); system(cls); for (i=0;i对不起没有查找出这个人!nnn); k=0;void add()/增加学生 int numbertemp=0; int i=0; struct student temp; /临时保存信息 printf(请输入要增加学生成绩个数:); scanf(%d,&numbertemp); for(i=0;inumbertemp;i+) printf(输入第%d个同学信息n,i+1); printf(姓名:); scanf(%s,); printf(学号:); scanf(%s,temp.id);printf(高数成绩:); scanf(%d,&temp.score);printf(英语成绩:); scanf(%d,&temp.score);printf(c语言成绩:); scanf(%d,&temp.score);printf(计算机导论成绩

温馨提示

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

评论

0/150

提交评论