《2022年C语言程序学生成绩管理实验.docx》由会员分享,可在线阅读,更多相关《2022年C语言程序学生成绩管理实验.docx(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品学习资源福建师范高校人民武装学院C 语言程序设计报告书设计名称:同学成果治理系统专业:软件工程指导老师:陈琳姓名: 黄强学号: 119052021026一、试验目的2021-415欢迎下载精品学习资源1. 在编辑应用程序过程中,逐步加深对C 语言编程的懂得;2. 加强实践的才能,动手才能,同时进一步对所学的学问进行巩固;3. 培养初步编程的才能,为以后的学习奠定基础;二、试验内容运用所学的 C 语言学问编辑一个应用程序:学习成果治理系统三系统软件环境:本程序主要运行在:Visual C+ 6.0Turbo C/C+ 3.0四课程设计题目: 同学成果治理系统欢迎下载精品学习资源程序说明:有N
2、 个同学,每个同学的数据包含学号(不重复)姓名,性别,课程号,课程名,学分和课程的三种得分; 试设计一同学成果 治理系统,使之能供应以下功能:1主菜单同学成果治理系统1. 录入2. 查询3. 删除4. 排序5. 储存退出6. 退出( 2)各菜单项功能录入:输入同学的学号、姓名性别,课程号,课程名,学分和课程的三种得分成果查询:A. 基本信息查询* 按学号查询同学记录;* 按名字查询同学纪录;B.成果查询* 按学号查询同学记录;* 按名字查询同学纪录;纪录删除* 按输入的学号删除排序欢迎下载精品学习资源A. 综合成果升序;B.综合成果降序;C.学分降序;欢迎下载精品学习资源D.学分升序;五数据结
3、构设计描述:由主函数登陆欢迎下载精品学习资源菜单函数Input 函数 select函数 del 函数 paixu 函数 储存函数 退出系统六结构体的定义和作用struct student/ 定义同学信息int no ;/ 学号char name20 ;/ 姓名char sex4 ;/ 性别int num ;/ 课程号char scn20 ;/ 课程名int score;/ 学分float score1;/ 成果 1float score2;/ 成果 2float score3;/ 成果 3float ave ;/ 实得学分float sum;/ 总分七系统各函数的功能 ,、相互调用关系1.函数
4、实现功能说明:(1) ) menu 函数是定义一个菜单函数,其功能在于输出菜单界面供使用者选择;(2) ) input 函数欢迎下载精品学习资源是定义用于输入同学信息;(3) ) select 函数是定义用于查询同学信息;包括学号、姓名及各科成果;(4) ) del 函数按输入的学号删除(5) ) paixu 函数设置新菜单,并调用四个不同排序输出函数;(6) )储存函数储存信息; 八心得体会C 语言是一种较为基础和普遍的编程语言,应用相当广泛,这次课程设计的要求与 C 语言的广泛应用相比较仍有很大的差距;我们对于 C 语言的懂得和使用仍处在一个初级的阶段,我们要想把握它,要学习的仍许多,同时
5、要懂得创新,许多的编程方法都是人们一步一步总结出来的,我想我们也要努力拓展自己的思维,努力去寻求新的方法,以制造出更为完善的应用程序;九程序:#include#include/*清屏 */#include #include/*显示目录 */#define n 10void zhjx ;欢迎下载精品学习资源void menu ;void input ;void check ;void fun ;void fun2 ;void fun3 ;void fun4 ;void del ;void paixu ;void zhsx ;void zhjx ;void xfjx ;void xfsx ;voi
6、d save;struct student/ 定义同学信息int no ;/ 学号char name20 ;/ 姓名char sex4 ;/ 性别int num ;/ 课程号char scn20 ;/ 课程名int score;/ 学分float score1;/ 成果 1float score2;/ 成果 2float score3;/ 成果 3float ave ;/ 实得学分float sum;/ 总分 ;struct student stun,*p,t ;int now=0,i,j,k,l ;char ch;void mainint h,flag1,flag2 ;char name20
7、=hq,password10=111;char person20,password110 ;printf tt *欢迎进入同学成果治理系统!*nn;printf ttt用 户 登 录nn ;forh=0 ;h.=5 ;printftttt用户名 : ;getsperson;flag1=strcmpperson,name ;printftttt密码 : ;欢迎下载精品学习资源getspassword1;flag2=strcmppassword,password1 ;ifflag1=0 & flag2=0printftttt登陆成功 .nn ;menu ;break;elseprintf ttt用
8、户名或密码错误 .nn ;printf ttt请留意:您仍剩 %d 次机会 .nn,4-h ;h+ ;if h=5printf 对不起,您输入的用户名或密码有误,已被强制退出; n ;void menuint as;char ch;doprintfnnnntt*&*&*&*&*&*&*&*&*&*;start: printfnnnnttt欢迎使用同学成果治理系统n ;printfnnnntt*按任意键连续 *;ch=getch;欢迎下载精品学习资源while.ch ;systemcls ;doprintf 同学治理系统 n ;printftt ;/* 以下为功能选择模块 */欢迎下载精品学习资
9、源printf1- 同学成果录入 ntt ;printf2- 查询 ntt ;printf3- 删除同学记录 ntt ;printf4- 排序 ntt ;printf5- 储存退出 ntt ;printf6- 退出 ntt ;printftttt选择功能选项 输入所选功能前的数字: ;scanf%d,&as ;switchascase 1:input ;break;case 2:check;break;欢迎下载精品学习资源case 3:del;break;case 4:paixu;break;case 5:save;break;case 6:systemexit ;exit0 ;break;d
10、efault:systemcls ;goto start ;while1;void input/*同学信息录入模块*/int i=0 ;char ch;doprintftttt1.录入同学信息 n 输入第 %d 个同学的信息 n,i+1 ;printfn 输入 8 位的同学学号 : ;scanf%u,&stui.no;fflushstdin ;printfn 输入同学姓名 :;fflushstdin ;getsstui.name ;printfn 输入同学性别 :;fflushstdin ;getsstui.sex ; fflushstdin ;printfn输入同学课程号 :;scanf%d
11、,&stui.num;fflushstdin ;printfn 输入同学课程名 : ;getsstul.scn ;fflushstdin ;printfn输入课程学分 : ;scanf%d,&stui.score;printfn 输入同学平常成果 : ;fflushstdin ;scanf%f,&stui.score1;printfn 输入同学试验成果 : ;fflushstdin ;scanf%f,&stui.score2;printfn 输入同学卷面成果 : ;fflushstdin ;scanf%f,&stui.score3;printfnn;ifstui.score20欢迎下载精品学习
12、资源elsestui.sum=stui.score1*0.15+stui.score2*0.15+stui.score3*0.7;stui.sum=stui.score1*0.3+stui.score3*0.7;欢迎下载精品学习资源now=i ;k=stui.sum/10 ;switchkcase 10:floatstui.ave=floatstui.score;break;case 9:floatstui.ave=floatstui.score; break;case 8:floatstui.ave=floatstui.score*0.8; break;case 7:floatstui.av
13、e=floatstui.score*0.7;break;case 6:floatstui.ave=floatstui.score*0.6;break;default:floatstui.ave=0.0;i+ ;欢迎下载精品学习资源printf 是否连续输入 .Y/N ;fflushstdin ;ch=getch ;systemcls ;whilech.=n&ch.=N;systemcls ;void check/ 查询printf 查询 n ;printftt* 同学基本信息查询 *n ;printftt ;printf1- 按学号查询 ntt ;printf2- 按姓名查询 ntt ;pri
14、ntf* 同学成果查询 *n ;printftt ;printf3- 按学号查询 ntt ;printf4- 按姓名查询 ntt ;printf0- 返回主菜单 ntt ;printf 请选择: ;scanf%d,&i ;switchicase 0:menu;break;/调用主菜单函数,表示返回主菜单case 1:fun;break;/ 调用函数 fun1 ,表示按学号查询同学基本信息case 2:fun2;break;/ 调用函数 fun2 ,表示按姓名查询同学基本信息case 3:fun3;break;/ 调用函数 fun3 ,表示按学号查询同学成果case 4:fun4;break;/
15、 调用函数 fun4 ,表示按姓名查询同学成果 ;void fun/ 按学号查询 1欢迎下载精品学习资源int i,j ;printf 请输入要查询同学的学号: ;scanf%d,&j ;fori=0 ; inow ;i+/ 从第一名同学开头ifstui.no=j /查找与输入学号相同的学号并输出printf 学号 :%dn,stui.no ;printf 姓名 :%sn,stui.name ;printf 性别 :%sn,stui.sex ; check ; ;void fun2 / 按姓名查询 1char name20 ;printf 请输入要查询同学的姓名: ;scanf%s,&name
16、 ;fori=0 ; inow ;i+ifstrcmpstui.name,name=0printf 学号:%dn,stui.no ;printf 姓名 :%sn,stui.name ;printf 性别 :%sn,stui.sex ; ;void fun3 / 按学号查询 2int i ;printf 请输入要查询同学的学号: ;scanf%d,&j ;fori=0 ; inow ;i+ifstui.no=jprintf 平常成果 %fn,stui.score1 ;printf 试验成果 :%fn,stui.score2 ;printf 卷面成果 :%fn,stui.score3 ;print
17、f 总分 :%fn,stui.sum ;printf 学分 :%fn,stui.ave ;欢迎下载精品学习资源check;void fun4/ 按姓名查询 2int i ;char name20 ;printf 请输入要查询同学的姓名: ;scanf%s,&name ;fori=0 ; inow ;i+ifstrcmpstui.name,name=0printf 平常成果 %fn,stui.score1 ;printf 试验成果 :%fn,stui.score2 ;printf 卷面成果 :%fn,stui.score3 ;printf 总分 :%fn,stui.sum ;printf 学分
18、:%fn,stui.ave ; check; ;void del/* 删除数据函数 */unsigned long inum ;int i ;printf 输入要删除同学的学号: ;fflushstdin ;scanf%u,&inum;fori=0 ;inow ;i+ifstui.no=inumifi=nownow-=1;elsestui=stunow-1;now-=1 ;break;systemcls ;menu ; ;void paixu/ 排序欢迎下载精品学习资源int i ;printf 排序 n ;printftt ;printf1- 按综合成果升序 ntt ;printf2- 按综
19、合成果降序 ntt ;printf3- 按实得学分升序 ntt ;printf4- 按实得学分降序 ntt ;printf0- 返回主菜单 ntt ;printf 请选择: ;scanf%d,&i ;switchicase 0:menu;break;case 1:zhsx;break;case 2:zhjx ;break;case 3:xfsx ;break;case 4:xfjx ;break; ;void zhsx/ 综合成果升序 int i,j ;fori=0 ;ii ;j-ifstuj.sumstuj-1.sumt=stuj ;stuj=stuj-1 ;stuj-1=t ;fori=0
20、 ; inow ;i+printf 学号:%d,stui.no ;printf 姓名 :%s,stui.name ;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 ;fori=0 ;ii ;j-欢迎下载精品学习资源ifstuj.sumstuj-1.sum欢迎下载精品学习资源fori=0 ; inow ;i+
21、t=stuj ;stuj=stuj-1 ;stuj-1=t ;欢迎下载精品学习资源printf 学号:%d,stui.no ;printf 姓名 :%s,stui.name ;printf 性别 :%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 ;fori=0 ;ii ;j-ifstuj.avestuj-1.ave欢迎下载精品学习资
22、源fori=0 ; inow ;i+t=stuj ;stuj=stuj-1 ;stuj-1=t ;欢迎下载精品学习资源printf 学号:%dn,stui.no ;printf 姓名 :%s,stui.name ;printf 性别 :%s,stui.sex ;printf 平常成果 %f,stui.score1 ;printf 试验成果 :%f,stui.score2 ;printf 卷面成果 :%f,stui.score3 ;printf 总分 :%fn,stui.sum ;paixu ; ;void xfsx/ 学分升序 int i,j ;fori=0 ;ii ;j-ifstuj.ave
23、stuj-1.avet=stuj ;stuj=stuj-1 ;欢迎下载精品学习资源stuj-1=t ;fori=0 ; inow ;i+printf 学号:%dn,stui.no ;printf 姓名 :%s,stui.name ;printf 性别 :%s,stui.sex ;printf 平常成果 %f,stui.score1 ;printf 试验成果 :%f,stui.score2 ;printf 卷面成果 :%f,stui.score3 ;printf 总分 :%fn,stui.sum ;paixu ; ;void save/* 储存数据函数 */FILE *fp ;int i ;ch
24、ar filepath20 ;printf 输入要储存的文件路径: ;fflushstdin ;getsfilepath ;iffp=fopenfilepath,w=NULLprintfn储存失败 . ;exit0 ;fori=0 ;inow ;i+fprintffp,t%u%st%st%ut%st%ut%.2ft%.2ft%.2ft%.2ft%.2fn,stui.no,stui.name,stui.sex,stui.num,stui.scn,stui.score,stui.score1,stui.score2,stui.score3,stui.ave,stui.sum ;fclosefp ;printf 同学信息已储存在%s 中.n,filepath ;systempause;systemcls ;欢迎下载