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

下载本文档

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

文档简介

湖南涉外经济学院c语言课程设计 姓名: *专业:材料成型及控制工程班级:0702指导老师及职称:*(教授)学部:机械工程学部完成日期:2009年12月 25日学生成绩管理系统9.0设计报告一. 概述根据设计任务书要求编写一个学生成绩管理程序。程序能实现的基本功能有:1. 成绩录入,输入学生的学号、姓名、性别、所学专业、所在班级和6门课程的成绩,并保存在数据文件student_grade.dat中。 2. 成绩查询,输入一个学生的学号,能从student_grade.dat文件中,查找到对应的学生成绩信息,并显示在屏幕上。 3. 成绩修改,输入一个学生的学号,能从student_grade.dat文件中,查找到对应的学生成绩信息,并显示在屏幕上(成绩信息编号)。选择需要修改的成绩编号后,可输入一个新的成绩,替换原有的成绩,并改写数据文件。 4. 删除学生的成绩,输入一个学生的学号,能从student_grade.dat文件中,查找到对应的学生成绩信息,并显示在屏幕上。选择是否删除该学生成绩,如果选择是,则在数据文件中做删除处理(将该记录加注删除标记)。 5. 恢复已删除学生的成绩、查询。对学生个人成绩求总成绩和求平均成绩。二. 需求分析能对学生的学号、高等数学、大学英语、大学物理、机械设计、机械制图、工程力学六门课程成绩进行管理。管理功能包括:添加学生成绩、查询学生成绩、修改学生成绩、删除学生成绩、恢复删除学生成绩。三. 概要设计 1.添加学生成绩 2.查询学生成绩学生成绩管理 3.修改学生成绩 4.删除学生成绩 5.恢复删除学生成绩 6.退出系统四. 详细设计学生成绩:删除标志 字符 *为已删除标志学号 长整数 (输入的学号不能为负)姓名 字符串 最长10个字符 (只能输入汉字)性别 字符 男-m,女-f (只能输入男或女)所学专业 字符串 最长20个字符所在班级 字符串 最长20个字符高等数学成绩 整数 (只能输入0100)大学英语成绩 整数 (只能输入0100)大学物理成绩 整数 (只能输入0100)机械设计成绩 整数 (只能输入0100)机械制图成绩 整数 (只能输入0100)工程力学成绩 整数 (只能输入0100)各科总成绩 整数 平均成绩 实数 两位小数数据文件:1.文件名:“student.dat”2.文件格式:二进制随机文件,每个学生一条记录。主菜单:1.添加学生成绩2.查询学生成绩3.修改学生成绩4.删除学生成绩5.恢复删除学生成绩0.退出处理函数:1.添加学生成绩 addstuden() (1)以“添加方式”打开学生数据文件“student.dat” (2)输入一个学生的姓名,性别,所学专业,所在班级和各科成绩。 (3)将输入的学生各科成绩写入“student.dat”文件 (4)继续添加?(y/n),“y”返回(2),否则关闭文件,返回主菜单。处理函数:2.查询学生成绩 querystuden() (1)以“只读方式”打开学生数据文件“student.dat” (2)输入一个学生的学号 (3)根据输入学号在文件中查找对应的学生,找到显示学生的各科成绩,找不到,提“该学号的学生不存在。” (4)继续查询?(y/n),“y”返回(2),否则关闭文件,返回主菜单。处理函数:3.修改学生成绩 updatestudent() (1)以“读写方式”打开学生数据文件“student.dat” (2)输入一个学生的学号 (3)根据输入学号在文件中查找对应的学生,找到,编号显示学生的各科成绩,找不到提示“该学号的学生不存在。” (4)选择修改项,输入修改内容; (5)修改结束,改写文件内容,否则返回(4); (6)继续修改?(y/n),“y”返回(2),否则关闭文件,返回主菜单。处理函数:4.删除学生成绩 deletestudent() (1)以“读写方式”打开学生数据文件“student.dat” (2)输入要删除学生的学号 (3)根据输入学号在文件中查找对应的学生,找到,显示学生的各科成绩,找不到,提示“该学号的学生不存在。” (4)找到,选择“确定删除该学生吗?(y/n)”,“y”将该学生信息的填写删除标志; (5)继续删除?(y/n),“y”返回(2),否则关闭文件,返回主菜单。处理函数:5.恢复删除学生成绩 restorestudent() (1)以“读写方式”打开学生数据文件“student.dat” (2)输入要恢复学生的学号 (3)根据输入学号在文件中查找已删除学生中是否有对应的学生,找到,显示学生的各科成绩,找不到,提示“该学号的学生不存在。” (4)找到,选择“是恢复该学生吗?(y/n)”,“y”将该学生信息的删除标志去掉; (5)继续恢复?(y/n),“y”返回(2),否则关闭文件,返回主菜单。五. 代码设计应包含的头文件:#include #include #include #include #include 数据结构:(结构体设计)typedef struct char flag; int number; int highermathematics; int collegeenglish; int collegephysics; int mechanicaldesign; int mechanicaldrawing; int engineeringmechanics; float average; int sum; char name10; char sex; char speciality20; char classname20;student;学生成绩显示函数:void display(student *pst)int dt;pst-sum=(pst-highermathematics+pst-collegeenglish+pst-collegephysics+pst-mechanicaldrawing+pst-mechanicaldesign+pst-engineeringmechanics);pst-average=(pst-highermathematics+pst-collegeenglish+pst-collegephysics+pst-mechanicaldrawing+pst-mechanicaldesign+pst-engineeringmechanics)/6; printf(=n);printf(学号:%dn,pst-number);printf(姓名:%sn,pst-name);if(pst-sex=m)printf(性别:男n);if(pst-sex=f)printf(性别:女n);printf(所学专业:%sn,pst-speciality); printf(所在班级:%sn,pst-classname);printf(高等数学:%dn,pst-highermathematics);printf(大学英语:%dn,pst-collegeenglish);printf(大学物理:%dn,pst-collegephysics);printf(机械设计:%dn,pst-mechanicaldesign);printf(机械制图:%dn,pst-mechanicaldrawing); printf(工程力学:%dn,pst-engineeringmechanics); printf(总成绩:%dn,pst-sum);printf(平均成绩:%.2fn,pst-average);printf(=n);/*姓名控制函数*/int jy_xm(char *st_name) /*检验姓名*/ int pd; char *p; p=st_name; while(*p!=0) /*姓名只能用中文*/ pd=(int)*p; if(pd0) puts(tt姓名只能用中文,请重新输入!n); return 0; else p+; /*使指针加1,指向下一汉字*/ if(getchar()!=n) /*姓名长度不得大于5个*/ printf(tt姓名长度大于5个!请重新输入!n); dowhile(getchar()!=n); return 0; return 1; /*字符串全为汉字返回真*/主函数:int main(int argc, char* argv)char ch;void addstuden(),querystuden();void updatestudent(),deletestudent();void restorestudent();dosystem(cls); printf(nn); printf(tt=n); /*版本信息*/ printf(tt student achievement management system 9.0 n); printf(tt=n); printf(tt author:materials class0702 genius jack n); printf(tt tutor:luomingliang n); printf(tt completion time:december 23, 2009 n); printf(tt=n); printf(n); printf(1.添加学生成绩n);printf(2.查询学生成绩n);printf(3.修改学生成绩n);printf(4.删除学生成绩n);printf(5.恢复删除学生成绩n);printf(0.退出n);printf(=n);printf(请选择:); ch=getch();printf(%c,ch);switch(ch)case 1:addstuden();break;case 2:querystuden();break;case 3:updatestudent();break;case 4:deletestudent();break;case 5:restorestudent();break;case 0:exit(0);while(1);return 0;添加学生成绩处理函数:void addstuden()student st;long dt;file *fp;short fg=1;char str2;if(fp=fopen(student.dat,ab)=null)printf(文件打不开!n); getch();return;while(fg)system(cls);printf(添加学生成绩n);printf(=n);st.flag= ;printf(学号:);scanf(%d,&st.number); while(st.number100|st.highermathematics100|st.collegeenglish100|st.collegephysics100|st.mechanicaldesign100|st.mechanicaldrawing100|st.engineeringmechanics0) getchar(); printf(n请输入工程力学成绩0-100:); scanf(%d,&st.engineeringmechanics); fwrite(&st,sizeof(student),1,fp); printf(=n); printf(继续添加吗?(y/n);if(getch()!=y)fclose(fp);fg=0;查询学生成绩处理函数:void querystuden()student st;long dt,num;file *fp;short fg=1,fg1;if(fp=fopen(student.dat,rb)=null)printf(文件打不开!n); getch();return;while(fg)system(cls);printf(查询学生成绩n);printf(请输入查询学生学号:);scanf(%d,&num);rewind(fp);fg1=0;while(!feof(fp)fread(&st,sizeof(student),1,fp);if(st.flag= & st.number=num)display(&st);fg1=1;break;if(fg1=0)printf(该学号的学生不存在。n);printf(继续查询吗?(y/n);if(getch()!=y)fclose(fp);fg=0;修改学生成绩处理函数:void updatestudent()student st;long dt,num;file *fp;short fg=1,fg1;char ch,str20;if(fp=fopen(student.dat,rb+)=null)printf(文件打不开!n);getch();return;while(fg)system(cls);printf(修改学生成绩n);printf(请输入修改学生学号:);scanf(%d,&num);rewind(fp);fg1=0;while(!feof(fp)fread(&st,sizeof(student),1,fp); if(st.flag= & st.number=num) do system(cls);printf(修改学生成绩n); printf(请输入修改学生学号:%dn,num); printf(=n);printf(1.学号:%dn,st.number); while(st.number100|st.highermathematics100|st.collegeenglish100|st.collegephysics100|st.mechanicaldesign100|st.mechanicaldrawing100|st.engineeringmechanics=1 & ch=7) printf(修改为:);scanf(%s,str); switch(ch) case 1:st.number=atoi(str);break; case 2:st.highermathematics=atoi(str);break; case 3:st.collegeenglish=atoi(str);break; case 4:st.collegephysics=atoi(str);break; case 5:st.mechanicaldesign=atoi(str);break; case 6:st.mechanicaldrawing=atoi(str);break; case 7:st.engineeringmechanics=atoi(str);break; while(ch!=0);fg1=1;break;if(fg1=0)printf(该学号的学生不存在。n);printf(继续查询吗?(y/n);if(getch()!=y)fclose(fp);fg=0;删除学生成绩处理函数:void deletestudent()student st;long dt,num;file *fp;short fg=1,fg1;if(fp=fopen(student.dat,rb+)=null)printf(文件打不开!n);getch();return;while(fg)system(cls);printf(删除学生成绩n);printf(请输入删除学生学号:);scanf(%d,&num);rewind(fp);fg1=0;while(!feof(fp)fread(&st,sizeof(student),1,fp);if(st.flag= & st.number=num)display(&st); fg1=1;printf(确定删除该学生成绩吗?(y/n);if(getch()=y)fseek(fp,-(long)(sizeof(student),seek_cur);fputc(*,fp);break;if(fg1=0)printf(该学号的学生不存在。n);printf(n继续删除吗?(y/n);if(getch()!=y)fclose(fp);fg=0;恢复删除学生成绩处理函数:void restorestudent()student st;long dt,num;file *fp;short fg=1,fg1;if(fp=fopen(student.dat,rb+)=null)printf(文件打不开!n); getch();return;while(fg)system(cls);printf(恢复删除学生成绩n);printf(请输入已删除学生学号:);scanf(%d,&num);rewind(fp);fg1=0;while(!feof(fp)fread(&st,sizeof(student),1,fp);if(st.flag=* & st.number=num)display(&st);fg1=1;printf(确定恢复该学生成绩吗?(y/n);if(getch()=y)fseek(fp,-(long)(sizeof(student),seek_cur);fputc( ,fp);break;if(fg1=0)printf(该学号的学生不存在。n);

温馨提示

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

评论

0/150

提交评论