C语言程序学生成绩管理实验(整理)_第1页
C语言程序学生成绩管理实验(整理)_第2页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、福建师范大学人民武装学院C语言程序设计报告书设计名称: 学生成绩管理系统专业:软件工程 指导老师:陈琳 姓名: 黄强 学号:1190520120262013-415一、实验目的1.在编辑应用程序过程中,逐步加深对 C 语言编程的理 解;2. 加强实践的能力,动手能力,同时进一步对所学的知识 进行巩固;3.培养初步编程的能力,为以后的学习奠定基础。 二、实验内容运用所学的 C 语言知识编辑一个应用程序:学习成绩管 理系统三系统软件环境:本程序主要运行在: Visual C+ 6.0Turbo C/C+ 3.0 四课程设计题目:学生成绩管理系统程序说明:有 N 个学生,每个学生的数据包含学号(不重

2、 复)姓名,性别,课程号,课程名,学分和课程的三种得分。试设计一学生成绩管理系统,使之能提供以下功能:(1)主菜单学生成绩管理系统1. 录入2. 查询3. 删除4. 排序5. 保存退出6. 退出(2)各菜单项功能1录入:输入学生的学号、姓名性别,课程号,课程名,学分 和课程的三种得分2成绩查询:A. 基本信息查询*按学号查询学生记录。*按名字查询学生纪录。B. 成绩查询*按学号查询学生记录。*按名字查询学生纪录。3纪录删除*按输入的学号删除4排序A. 综合成绩升序。B. 综合成绩降序。C. 学分降序。D. 学分升序。五.数据结构设计描述:J由主函数登陆菜单函数In put 函数 select

3、函数 del 函数 paixu 函数保存函数 退出系统六.结构体的定义和作用1函数实现功能说明:struct stude ntint no。char name20。char num。char score。float score1。float score2。float score3。/定义学生信息/学号/姓名/性别/课程号/课程名/学分/成绩1/成绩2/成绩3/实得学分/总分七.系统各函数的功能,、相互调用关(1) menu 函数 是定义一个菜单函数,其功能在于输出菜单界面供使用者 选择。(2) input 函数 是定义用于输入学生信息。(3)select

4、函数 是定义用于查询学生信息。包括学号、姓名及各科成绩。(4) del 函数 按输入的学号删除( 5) paixu 函数 设置新菜单,并调用四个不同排序输出函数。(6)保存函数保存信息。八心得体会C 语言是一种较为基础和普遍的编程语言,应用相当广泛,这 次课程设计的要求与 C 语言的广泛应用相比较还有很大的差 距。 我们对于 C语言的理解和使用还处在一个初级的阶段,我 们要想掌握它,要学习的还很多,同时要懂得创新,许多的编 程方法都是人们一步一步总结出来的,我想我们也要努力拓展 自己的思维,努力去寻求新的方法,以创造出更为完善的应用 程序。九程序:#include#include/*清屏*/#

5、include /*显示目录*/#include#define n 10void zhjx()。void menu()。void input()。void check()。voidfun()。void fun2()。void fun3()。voidfun4()。void del()。void paixu()。void zhsx()。void zhjx()。voidxfjx()。void xfsx()。void save()。struct studentint no。/定义学生信息/学号char name20。/姓名char sex4。/性别int num。/课程号char scn20。/课程名

6、int score。/学分float score1。/成绩1float score2。/成绩2float score3。/成绩3float ave。/实得学分float sum。struct student stun,*p, now=0,i,j,k,l。char ch。void main()int h,flag1,flag2。/总分char name20=hq,password10=111。char person20,password110。printf (tt *欢迎进入学生成绩管理系统!*nn)。printf (ttt用户登录nn)。for(h=0。h!=5。)printf(tt

7、tt用户名:)。gets(person)。flag1=strcmp(person,name)。printf(tttt密码:)。gets(password1)。flag2=strcmp(password,password1)。if(flag1=0 & flag2=0)printf(tttt登陆成功!nn)。menu()。break。elseprintf (ttt用户名或密码错误!nn)。printf (ttt请注意:您还剩%d次机会!nn,4-h)。h+。if (h=5)printf (对不起,您输入的用户名或密码有误,已被强制退出。n)。void menu()int as。char c

8、h。dostart: printf(nnnnttt欢迎使用学生成绩管理系统n)。ch=getch()。 while(!ch)。system(cls)。/*以下为功能选择模块*/ doprintf(学生管理系统n)。printf(tt)。printf(1-学生成绩录入ntt)。printf(2-查询ntt)。printf(3-删除学生记录ntt)。printf(4-排序ntt)。printf(5-保存退出ntt)。printf(6退出ntt)。printf(tttt选择功能选项(输入所选功能前的数字):)。scanf(%d,&as)。switch(as)case 1:input()。br

9、eak。case 2:check()。break。case 3:del()。break。case 4:paixu()。break。case 5:save()。break。case 6:system(exit)。exit(0)。break。default:system(cls)。goto start。while(1)。void input() /*学生信息录入模块*/int i=0。char ch。doprintf(nnnntt*&*&*&*&*&*&*&*&*&*printf(nnnntt*按任意键继续*printf(tt

10、tt1.录入学生信息n输入第%d个学生的信息n,i+1)。printf(n输入8位的学生学号:)。scanf(%u,&stui.no)。fflush(stdin)。printf(n输入学生姓名:)。fflush(stdin)。gets()。printf(n输入学生性别:)。fflush(stdin)。gets(stui.sex)。fflush(stdin)。printf(n输入学生课程号:)。scanf(%d,&stui.num)。fflush(stdin)。printf(n输入学生课程名:)。gets(stul.scn)。fflush(stdin)。prin

11、tf(n输入课程学分:)。scanf(%d,&stui.score)。printf(n输入学生平时成绩:)。fflush(stdin)。scanf(%f,&stui.score1)。printf(n输入学生实验成绩:)。fflush(stdin)。scanf(%f,&stui.score2)。printf(n输入学生卷面成绩:)。fflush(stdin)。scanf(%f,&stui.score3)。printf(nn)。if(stui.score20)stui.sum=stui.score1*0.15+stui.score2*0.15+stui.score3

12、*0.7stui.sum=stui.score1*0.3+stui.score3*0.7。k=stui.sum/10。switch(k)case 10:(float)stui.ave=(float)stui.score。break。case9:(float)stui.ave=(float)stui.score。break。case8:(float)stui.ave=(float)stui.score*0.8。break。case7:(float)stui.ave=(float)stui.score*0.7。break。case6:(float)stui.ave=(float)stui.scor

13、e*0.6。break。default:(float)stui.ave=0.0。i+。now=i。printf(是否继续输入?(Y/N)。fflush(stdin)。ch=getch()。system(cls)。while(ch!=n&ch!=N)。system(cls)。void check() /查询printf(查 询n)。printf(tt*学生基本信息查询*n)。printf(tt)。printf(1-按学号查询ntt)。printf(2-按姓名查询ntt)。printf(*学生成绩查询*n)。printf(tt)。printf(3-按学号查询ntt)。printf(4-按姓

14、名查询ntt)。printf(0-返回主菜单ntt)。printf(请选择:)。scanf(%d,&i)。switch(i)case 0:menu()。break。case 1:fun()。break。case 2:fun2()。break。case 3:fun3()。break。case 4:fun4()。break。void fun() /按学号查询1int i,j。printf(请输入要查询同学的学号:)。scanf(%d,&j)。for(i=0。inow。i+) /从第一名学生开始if(stui.no=j) /查找与输入学号相同的学号并输出else/调用主菜单函数,表示

15、返回主菜单/调用函数fun1,表示按学号查询学生基本信息/调用函数fun2,表示按姓名查询学生基本信息/调用函数fun3,表示按学号查询学生成绩/调用函数fun4,表示按姓名查询学生成绩printf(学号:%dn,stui.no)。printf(姓名:%sn,)。printf(性别:%sn,stui.sex)。 check()。void fun2() /按姓名查询1char name20。printf(请输入要查询同学的姓名:)。scanf(%s,&name)。for(i=0。inow。i+)if(strcmp(,name)=0)printf(学号:

16、%dn,stui.no)。printf(姓名:%sn,)。printf(性别:%sn,stui.sex)。void fun3() /按学号查询2int i。printf(请输入要查询同学的学号:)。scanf(%d,&j)。for(i=0。inow。i+)if(stui.no=j)printf(平时成绩%fn,stui.score1)。printf(实验成绩:%fn,stui.score2)。printf(卷面成绩:%fn,stui.score3)。printf(总分:%fn,stui.sum)。printf(学分:%fn,stui.ave)。check()。void

17、 fun4()/按姓名查询2int i。char name20。printf(请输入要查询同学的姓名:)。scanf(%s,&name)。for(i=0。inow。i+)if(strcmp(,name)=0)printf(平时成绩%fn,stui.score1)。printf(实验成绩:%fn,stui.score2)。printf(卷面成绩:%fn,stui.score3)。printf(总分:%fn,stui.sum)。printf(学分:%fn,stui.ave)。check()。void del()/*删除数据函数*/unsigned long inum。in

18、t i。printf(输入要删除学生的学号:)。fflush(stdin)。scanf(%u,&inum)。for(i=0。inow。i+) if(stui.no=inum) if(i=now)now-=1。else stui=stunow-1。now-=1。break。 system(cls)。menu()。void paixu() /排序int i。printf(排 序n)。printf(tt)。printf(1-按综合成绩升序ntt)。printf(2-按综合成绩降序ntt)。printf(3-按实得学分升序ntt)。printf(4-按实得学分降序ntt)。printf(0-返

19、回主菜单ntt)。printf(请选择:)。scanf(%d,&i)。switch(i)case 0:menu()。break。case 1:zhsx()。break。case 2:zhjx()。break。case 3:xfsx()。break。case 4:xfjx()。break。void zhsx()/综合成绩升序 int i,j。for(i=0。ii。j-) if(stuj.sumstuj-1.sum)t=stuj。stuj=stuj-1。stuj-1=t。for(i=0。inow。i+)printf(学号:%d,stui.no)。printf(姓名:%s,

20、)。printf(性别:%s,stui.sex)。printf(平时成绩%f,stui.score1)。printf(实验成绩:%f,stui.score2)。printf(卷面成绩:%f,stui.score3)。printf(总分:%fn,stui.sum)。paixu()。void zhjx()/综合成绩降序 int i,j。for(i=0。ii。j-)if(stuj.sumstuj-1.sum)t=stuj。stuj=stuj-1。stuj-1=t。for(i=0。inow。i+)printf(学号:%d,stui.no)。printf(姓名:%s,)。printf(

21、性别:%s,stui.sex)。printf(平时成绩%f,stui.score1)。printf(实验成绩:%f,stui.score2)。printf(卷面成绩:%f,stui.score3)。printf(总分:%fn,stui.sum)。paixu()。void xfjx()/学分降序 int i,j。for(i=0。ii。j-)if(stuj.avestuj-1.ave)t=stuj。stuj=stuj-1。stuj-1=t。for(i=0。inow。i+)printf(学号:%dn,stui.no)。printf(姓名:%s,)。printf(性别:%s,stui.sex)。printf(平时成绩%f,stui.score1)。printf(实验成绩:%f,stui.score2)。printf(卷面成绩:%f,stui.score3)。printf(总分:%fn,stui

温馨提示

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

评论

0/150

提交评论