2022年C语言程序学生成绩管理实验.docx
精品学习资源福建师范高校人民武装学院C 语言程序设计报告书设计名称:同学成果治理系统专业:软件工程指导老师:陈琳姓名: 黄强学号: 119052021026一、试验目的2021-415欢迎下载精品学习资源1. 在编辑应用程序过程中,逐步加深对C 语言编程的懂得;2. 加强实践的才能,动手才能,同时进一步对所学的学问进行巩固;3. 培养初步编程的才能,为以后的学习奠定基础;二、试验内容运用所学的 C 语言学问编辑一个应用程序:学习成果治理系统三系统软件环境:本程序主要运行在:Visual C+ 6.0Turbo C/C+ 3.0四课程设计题目: 同学成果治理系统欢迎下载精品学习资源程序说明:有N 个同学,每个同学的数据包含学号(不重复)姓名,性别,课程号,课程名,学分和课程的三种得分; 试设计一同学成果 治理系统,使之能供应以下功能:1主菜单同学成果治理系统1. 录入2. 查询3. 删除4. 排序5. 储存退出6. 退出( 2)各菜单项功能录入:输入同学的学号、姓名性别,课程号,课程名,学分和课程的三种得分成果查询:A. 基本信息查询* 按学号查询同学记录;* 按名字查询同学纪录;B.成果查询* 按学号查询同学记录;* 按名字查询同学纪录;纪录删除* 按输入的学号删除排序欢迎下载精品学习资源A. 综合成果升序;B.综合成果降序;C.学分降序;欢迎下载精品学习资源D.学分升序;五数据结构设计描述:由主函数登陆欢迎下载精品学习资源菜单函数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.函数实现功能说明:(1) ) menu 函数是定义一个菜单函数,其功能在于输出菜单界面供使用者选择;(2) ) input 函数欢迎下载精品学习资源是定义用于输入同学信息;(3) ) select 函数是定义用于查询同学信息;包括学号、姓名及各科成果;(4) ) del 函数按输入的学号删除(5) ) paixu 函数设置新菜单,并调用四个不同排序输出函数;(6) )储存函数储存信息; 八心得体会C 语言是一种较为基础和普遍的编程语言,应用相当广泛,这次课程设计的要求与 C 语言的广泛应用相比较仍有很大的差距;我们对于 C 语言的懂得和使用仍处在一个初级的阶段,我们要想把握它,要学习的仍许多,同时要懂得创新,许多的编程方法都是人们一步一步总结出来的,我想我们也要努力拓展自己的思维,努力去寻求新的方法,以制造出更为完善的应用程序;九程序:#include<stdio.h>#include<conio.h>/*清屏 */#include <stdlib.h>#include<string.h>/*显示目录 */#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 ;void 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="hq",password10="111";char person20,password110 ;printf "tt *欢迎进入同学成果治理系统!*nn";printf "ttt用 户 登 录nn" ;forh=0 ;h.=5 ;printf"tttt用户名 :" ;getsperson;flag1=strcmpperson,name ;printf"tttt密码 :" ;欢迎下载精品学习资源getspassword1;flag2=strcmppassword,password1 ;ifflag1=0 && flag2=0printf"tttt登陆成功 .nn" ;menu ;break;elseprintf "ttt用户名或密码错误 .nn" ;printf "ttt请留意:您仍剩 %d 次机会 .nn",4-h ;h+ ;if h=5printf " 对不起,您输入的用户名或密码有误,已被强制退出; n" ;void menuint as;char ch;doprintf"nnnntt*&*&*&*&*&*&*&*&*&*";start: printf"nnnnttt欢迎使用同学成果治理系统n" ;printf"nnnntt*按任意键连续 *";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 ;switchascase 1:input ;break;case 2:check;break;欢迎下载精品学习资源case 3:del;break;case 4:paixu;break;case 5:save;break;case 6:system"exit" ;exit0 ;break;default:system"cls" ;goto start ;while1;void input/*同学信息录入模块*/int i=0 ;char ch;doprintf"tttt1.录入同学信息 n 输入第 %d 个同学的信息 n",i+1 ;printf"n 输入 8 位的同学学号 :" ;scanf"%u",&stui.no;fflushstdin ;printf"n 输入同学姓名 :";fflushstdin ;getsstui.name ;printf"n 输入同学性别 :";fflushstdin ;getsstui.sex ; fflushstdin ;printf"n输入同学课程号 :";scanf"%d",&stui.num;fflushstdin ;printf"n 输入同学课程名 :" ;getsstul.scn ;fflushstdin ;printf"n输入课程学分 :" ;scanf"%d",&stui.score;printf"n 输入同学平常成果 :" ;fflushstdin ;scanf"%f",&stui.score1;printf"n 输入同学试验成果 :" ;fflushstdin ;scanf"%f",&stui.score2;printf"n 输入同学卷面成果 :" ;fflushstdin ;scanf"%f",&stui.score3;printf"nn";ifstui.score2>0欢迎下载精品学习资源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.ave=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 ;system"cls" ;whilech.='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- 按姓名查询 ntt" ;printf"0- 返回主菜单 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;/ 调用函数 fun4 ,表示按姓名查询同学成果 ;void fun/ 按学号查询 1欢迎下载精品学习资源int i,j ;printf" 请输入要查询同学的学号:" ;scanf"%d",&j ;fori=0 ; i<now ;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 ;fori=0 ; i<now ;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 ; i<now ;i+ifstui.no=jprintf" 平常成果 %fn",stui.score1 ;printf" 试验成果 :%fn",stui.score2 ;printf" 卷面成果 :%fn",stui.score3 ;printf" 总分 :%fn",stui.sum ;printf" 学分 :%fn",stui.ave ;欢迎下载精品学习资源check;void fun4/ 按姓名查询 2int i ;char name20 ;printf" 请输入要查询同学的姓名:" ;scanf"%s",&name ;fori=0 ; i<now ;i+ifstrcmpstui.name,name=0printf" 平常成果 %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 ;int i ;printf" 输入要删除同学的学号:" ;fflushstdin ;scanf"%u",&inum;fori=0 ;i<now ;i+ifstui.no=inumifi=nownow-=1;elsestui=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- 返回主菜单 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 ;i<now ;i+forj=now-1 ;j>i ;j-ifstuj.sum<stuj-1.sumt=stuj ;stuj=stuj-1 ;stuj-1=t ;fori=0 ; i<now ;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 ;i<now ;i+forj=now-1 ;j>i ;j-欢迎下载精品学习资源ifstuj.sum>stuj-1.sum欢迎下载精品学习资源fori=0 ; i<now ;i+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 ;i<now ;i+forj=now-1 ;j>i ;j-ifstuj.ave>stuj-1.ave欢迎下载精品学习资源fori=0 ; i<now ;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 ;i<now ;i+forj=now-1 ;j>i ;j-ifstuj.ave<stuj-1.avet=stuj ;stuj=stuj-1 ;欢迎下载精品学习资源stuj-1=t ;fori=0 ; i<now ;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 ;char filepath20 ;printf" 输入要储存的文件路径:" ;fflushstdin ;getsfilepath ;iffp=fopenfilepath,"w"=NULLprintf"n储存失败 ." ;exit0 ;fori=0 ;i<now ;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 ;system"pause";system"cls" ;欢迎下载