版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程题 目:课 程:a分数:97设计成果报学生成绩管理系统设计程序设计基础目录1设计目得?昔误!未定义书签。2设计任务内容小昔误!未定义书签。3系统总体设计错误!未定义书签4系统详细设计?©误!未定义书签。4、1输入学生信息?昔误!未定义书签。4、2输出学生信息?昔误!未定义书签。4、3删除学生信息?昔误!未定义书签。4、4查询学生信息错误!未定义书签4、4、1根据姓名查询错误!未定义书签4、4、2根据学号查询?昔误!未定义书签。4、5插入学生信息错误!未定义书签4、6学生信息排序错误!未定义书签4、7主函数错误!未定义书签5调试与测试错误!未定义书签6课程设计心得与体会错误!未定义
2、书签7参考文献错误!未定义书签8附录?昔误!未定义书签。1 设计目得本课程设计就是信息管理与信息系统专业重要得实践性环节之一,就是在学生学习完程序设计基础课程后进行得一次全面得综合练习。本课程设计得目得与任务:1、巩固与加深学生对C语言课程得基本知识得理解与掌握;2、掌握C语言编程与程序调试得基本技能;3、利用C语言进行基本得软件设计;4、掌握书写程序设计说明文档得能力;5、提高运用C语言解决实际问题得能力.2 设计任务内容学生成绩管理系统设计学生成绩相关信息包括:学号、姓名、班级、数学成绩、英语成绩、计算机成绩等(学号唯一),总成绩.系统要求实现如下功能:1)系统功能以菜单方式工作;2)数据
3、得添加:从键盘输入数据存放到结构体数组中;3)数据得插入:从指定位置插入一条记录;4)数据得输出:在屏幕上显示出所添加得数据;5)数据得删除:从指定位置删除一条记录;6)数据得查找,通常以两种方式进行查找,如姓名、记录号(或学号、职工号等);7)数据得排序;8)退出系统.以上每个内容需要通过单独得函数来实现,数据以结构体数组得形式组织。3系统总体设计4系统详细设计本系统用来储存多名学生得信息,并对信息进行相关得处理,使用结构体实现相关功能。结构体代码如下:typedefstruct/为结构体起别名stuN,简化程序。名harno20;/定义no为char型数据,且长度有20列。"Ch
4、arname20;charClass20;intmath,english,puter,all;/定义结构体中得所有元素。Student;StudentstuN;相关函数:结构体函数、main(主函数)、Input(输入函数)、Output(输出函数)、Findname(按姓名查询函数)、Findno(按学号查询函数卜Delete删除函数)、Insert住雨入函数)、Rank(排序函数)、exit(退出函数)4、1输入学生信息输入学生信息就就是对定义得结构体中得成员进行赋值。其中,用户需要输入得就是学号、姓名、班级、数学成绩、英语成绩、计算机成绩,以及就是否继续得指令,总成绩由求与函数实现.代码
5、如下:voidInput。/用户自定义Input函数,实现数据得输入功能化hark,x20;?while(k!='n'&&k!='N')/当输入得不就是N或者n时,执行该循环。?pr1ntf("输入学生学号:");scanf("s"stun、no);printf("输入学生姓名:");?>canf("%S',stun、name);?printf(输入学生班级:);scanf("%s”,stun、Class);?printf("输入学生得数学成绩
6、:”兀scanf("d'&stun、math);?printf(u输入学生得英语成绩:u);?scanf("%d",&stun、english);?printf("输入学生得计算机成绩:”);scanf("%d",&stun、puter);atun、all=stun、math+stun、eng1ish+stun、puter;/输入学生得各项信息,并赋值到结构体中。?gets(x);/清除多余得输入内容.printf(输入下一个?(Y/N)n");scanf("%c”*k);?n+;/
7、执行完一次循环后,将全局变量n(成员数)自增1.4、2输出学生信息输出学生信息就就是将结构体中所有成员得各个元素得值显示在屏幕上,使用-10d或者-10s格式(左对齐,每个数据占10歹I)可将数据用表列形式输出,使用循环语句将i个成员信息全部输出。代码如下:voidOutput。用户自定义Output函数,实现数据得输出功能?n t i;?printf ( "- -n ” ) ;print f ("学号姓名班级数学英语计算机总成绩 n”) ;? p rintf ( n) ;for (i=0; i<n;i )小ri n tf("%-1 0 s%-10 s %-
8、1 0 s % 1 0d%- 1 0d% 10d%-1 0d n",stui>nostui、nam e,stu i、Class, s tu i、math ,stui、glish, st u i 、puter, stu i、all);printf ( ”-n”) ;使用for循环语句,输出结构体中所有成员信息.4、3删除学生信息删除学生信息就就是将第i+1个成员得每个元素赋值到要删除得第i个成员得相应元素得位置上,再输出结构体中得前i个成员信息,使用循环结构依次执行到第n个成员,实现对第i个成员得删除。代码如下:voidDelete()/用户自定义Output函数,实现数据得输入
9、功能。化harx20;/输入要删除得学生姓名,char型数据占20列。?ntj,i=0;printf("输入要删除得学生姓名:”);scanf("%s",x);?whi1e(strcmp(stui、name,x)!=0&&i<n)i+;/比较输入得x数据与结构体中name元素,若不相同,i自增1。if(i=n)?Printf("未找到相关学生信息!n");?/若i与n值相同,说明无此数据,输出“未找到学生信息!”.for(j=i;jn1;j+)?strcpy(stuj、no,stuj+1、no);strcpy(stuj、n
10、ame,stuj+1、naime);?strcpy(stuj、Class,stuj+1、Class);/将stuj+1中得内容复制到stuj中。?tuj>math=stuj+1>math;?stuj、english=stuj+1卜english;?stuj卜puter=stuj+1、puter;?stuj、all=stuj+1、all;?/将结构体中得元素赋值给前一元素。办一一;/数据删除后,全局变量n值(成员数)自减1。printf(”该学生信息已删除!n");4、4查询学生信息4、4、1根据姓名查询按照学生姓名查找学生信息,要求用户输入学生得姓名,再与结构体中得数据进
11、行一一比对,输出结构体中与该数据相同得成员得所有信息,从而实现查找功能。代码如下:voidFindname()/用户自定义函数,实现对指定数据得查找功能。chars20;/定义用户输入得学生姓名数据为char型,占20列。inti=0;小rintf("请输入要查询得学生姓名:);?scanf(%s,s);?while(strcmp(stui、name,S)!=0&&i<n)?Z+;/当输入得姓名与当前姓名不相同时,i自增1,比较下一个成员?f(i=n)?printf("未找到相关学生信息!n");?printf("-n")
12、;小1ntf("学号姓名班级数学英语计算机总成绩n”);printf("-n)printf("%10s%10s%10s%10d%l0d%10d%10dn",stui、no,stui、name,stui、Class,stui、math,stui、english,stui、puter,stui、all);?printf("n");/以表列得形式输出查找到得成员得相关信息。4、4、2根据学号查询按照学生学号查找学生信息,要求用户输入学生得学号,再与结构体中得数据进行一一比对,输出结构体中与该数据相同得成员得所有信息,从而实现查找功能。代码如
13、下:voidFindno()/用户自定义函数,实现对指定数据得查找功能。chars20;/定义用户输入得学生学号数据为char型,占20列。inti=0;printf("请输入要查询得学生学号:”);scanf("%s",s);?while(strcmp(stui、no,s)!=0&&in)1 +;/当输入得学号与当前学号不相同时,i自增1,比较下一个成员.if(i=n)?printf("未找到相关学生信息n”);?printf("-一-一一-一-pr1ntf("学号姓名班级数学英语计算机总成绩n);?Drintf(-
14、n);小rintf("%-10s%10s%10s%10d%10d%-10d%10dn",stui、no,stui、name,stui、Class,stui、math,stui、english,stui、puter,stui>all);?Drintf(-n");/以表列得形式输出查找到得成员得相关信息。4、5插入学生信息插入学生信息时,用户输入要插入得位置i,当要插入位置大于结构体成员总数时,直接将数据插入到结构体最后(相当于直接执行输入函数);当要插入位置小于等于结构体成员总数时,将ij中得每一项分别向后移动一个位置,再将要插入得数据赋值给第i个位置。代码如
15、下:voidInscrt()/用户自定义Insert函数,实现将学生信息插入指定位置得功能。inti,j;printf("请输入要插入得位置:”)scanf("%d",&i);?if(in)?/当要插入位置大于结构体成员总数时,直接将数据插入到结构体最后。printf("输入学生学号:”兀scanf("S;stun、no);printf(”输入学生姓名:");scanf("s”,stUn、name);?printf("输入学生班级:”);?scanf("%s",stun、Class);p
16、rintf("输入学生得数学成绩:”);scanf("%d“,&stun、math);printf("输入学生得英语成绩:");?scanf(%d",&stun、eng1ish);printf(输入学生得计算机成绩:”);?scanf("%d",&stun、puter);stun、a1l=stun>math+stun、eng1ish+stun、puter;?Drintf(学生信息输入成功n");?/用户分别输入学生得各项信息,系统返回“输入成功”得信息。?else?/当要插入位置不大于
17、结构体成员总数时,执行下述操作。for(j=n1;j>=i;j-)?strcpy(stuj+1、no,stuj、no);?trcpy(stuj+1、name,stuj、name);?strcpy(stuj+1、Class,stujhClass);stuj+1、math=stuj>math;?tuj+1、english=stuj、eng1ish;?stuj+1、puter=stuj、puter;?stuj+1、all=stuj、all;/通过for循环语句,将第j+1项得各项数据赋值给第j项,直到要插入数据得位置为止,实现第i项之后得数据每项都向后移动一个位置。?printf(”输入
18、学生学号:);?scanf("%s",stui、no);中rintf(u输入学生姓名:”);?scanf("%s",stui、name);?printf("输入学生班级:");scanf("%s",stui、Class);?0rintf("输入学生得数学成绩:);?scanf("%d"stui、math);聿rintf("输入学生得英语成绩:");?scanf("%d”,&stui、english);printf(输入学生得计算机成绩:);?sca
19、nf("%d",&stui、puter);atui、all=stui、math+stui、english+stui、puter;?printf(”学生信息输入成功!n");/将用户输入得各项数据赋值到第i个位置中,实现数据得插入。?n+;/全局变量n自增1,保证插入得数据存储到结构体中。4、6学生信息排序排序就就是通过元素得两两比较,并按照条件,若前一个成员学号值比后一个大,将这二者得所有数据进行交换,使用循环结构重复执行,进行n-1次比较交换后,即完成对结构体中所有成员得排序。voidRank()inti,j,p,q,r,y;charx20,t20,w2
20、0;/定义int型数据与char型数据,用于交换元素值.?printf("正在根据学生学号进行排序,请稍后、n”);for(i=0;in1;i+)?for(j=0;jn1-i;j+)/通过循环结构控制进行n-1次比较交换。?f(strcmp(stuj、no,stuj+1、no)0)?/两个字符串得比较,意思就是判断前一字符串大于后一字符串0?atrcpy(t,stuj、no);?trcpy(stuj、no,stuj+1、no);?strcpy(stuj+1、no,t);/将stuj、no与stuj+1、no交换。strcpy(x,stuj、name);strcpy(stuj、name
21、,stuj+1、name);?strcpy(stuj+1、name,x);?strcpy(w,stuj、Class);?strcpy(stuj、Class,stuj+1、Class);?trcpy(stuj+1、Class,w);?=stuj、math;?tuj、math=stuj+1、math;uj+1、math=y;?d=stuj、english;?s?uj、eng1ish=stuj+1、english;?atuj+1、english=p;?q=stuj、puter;?stuj、puter=stuj+1、puter;?tuj+1、puter=q;?r=stuj、al1;&tuj、a
22、1l=stuj+1、all;?stuj+1、a1l=r;?/实现第j个成员与第j1个成员信息得交换。4、7主函数voidmain()/无参数无返回值得main函数?for(;)?for(;)?/循环语句实现在一项功能执行结束之后菜单函数得重复执行。?intn=0;?Switch(menu()?case1:Input();Output();break;/输入1时,调用Input与Output函数。?:ase2:Output。;break;/输入2时,调用Output函数.case3:/输入3时,调用Find函数,再次进行功能得选择。?switch(Find()?sase1:Findname();
23、break;/输入1时,调用Findname函数。?:ase2Findno();break;输入2时,调用Findno函数.?break;? case4:Delete();break;/输入4时,调用Delete函数。?:ase5:1nsert();break;/输入5时,调用Insert函数。? case6:Rank();Output();break;输入6时,调用Rank与Output函数。caseQexit(0);break;/输入7时,调用exit函数,退出程序。?efault:printf("*输入错误!*");break;输入不就是06得字符时,输出“输入错误”
24、得信息。?5调试与测试系统主界面:BtnMJ都息息自心自心思一厅 生生生生生息统 入出询除人生出 物轲查删竣妻输入学生信息:息息息息息序 j一浮浮科;r拜 生生生生生息统 入出询除人生出 8-n1 0 .19 98 7;:绩绩也谕选号央计?<诵字teSSE的个J- - J J- - J- V d 刖w 职一刖4 刖 4 刖输出学生信息:=学生信息管理系统=自3自3自5自自少呼 生>回!>三« 生生生生生息统 入出询除人生出 ffiiis学号姓名班级_暨_ %”算色总成绩200191liufeng01e»79«Q249200102uanhai017
25、97080229B90201zliaome i02S35679215删除学生信息:="=学生信息管理系统=白3自3自.自自.1序"<传信<尼n排 生生生生生息统 入出律人主出自313自jR3自A g行厘栏JrM琲生息统 入出.人击请选择二2出号姓名班级数学英语计算机总成绩798B2485679215200101liufen90189200201zliajonei&28s插入学生信息:学生信息管理系统=息息息息息序 生生生生害心统 n-5 日出询除I生出 ®ln12 3 4 5 6 0置 :5位8 0 8 0 B1 S 工 :绩 绩盘!一月成熟:
26、一学造最一一选人号英计入“募字te雷-S-ES 一一萝生生生息£立王立盂£干信受人人入人人生请于息息息息息序j1=;g是只用口排 入出询除人生出 H-MS512 3 4 5 6a请选择闻姓名班级鼓举醇._上算势金成绩200101liufenq0189798248200203liliua02IOS5686236B0S2B1shaomel0280S6?9215查询学生信息:(按姓名查询)=学生信息管理系统=息息息息息序 生生生生生息统 入出询除人生出 ffif-H姓名查询 孥号查请选择1.2.请输入要查询的学生姓名学号旌名班级数学英语计算机息成绩200102uanghai017
27、97060229查询学生信息:(按学号查询)=学生信息管理系统=息息息息息序 士复一d;空=空=d4= 生生生生生息统 入出询除人生出-H姓名皆询拿号翻J请选择:31.2,请输入要查询由学生学号:200102学号姓名班经数学英语计算机总成绩200192uanhal01797080229学生信息排序:=学生信息管理系统=12 3 4 5 6 0息息自小息息序 S七号里口每排 生生生生生息统 入出曾人生出谯择t6;生冬号进行排序.请稍后Liz,姓名班级_数学英语_计算机总成绩00181liufcvijfBl0?7?ee200201shaomei0280567921&Bn2B3lihua02
28、10656802366课程设计心得与体会*在老师得悉心指导与热心帮助之下,我得C语言课程设计最终顺利完成.最后,向所有曾经关心与帮助过我得老师以及同学们表示由衷地感谢!7参考文献C语言课程设计实用教程,谭浩强编,机械工业出版社C语言程序设计,谭浩强编,清华大学出版社C程序设计(二级)教程,谭浩强编,清华大学出版社8附录本系统完整程序代码如下:#include<stdio、h>#inc1udestring、h>/文件包含:关于字符串操作得一些基本函数.#inc1ude<std1ib、h/文件包含:包含exit()函数。#defineN80/宏定义:定义N为80,程序中只进
29、行替换,不进行语法检查。typedefstruct化harno11;charname8;charClass10;intmath,english,puter,all;Student;StudentstuN;/结构体:用来储存多名学生得多项信息.intn=0;/定义全局变量n,代表结构体中得成员数.intmenu()/菜单函数,使系统功能以菜单方式工作。?ntc;?doprintf("1=学生信息管理系统=nn"兀?printf("tt1、输入学生信息、n");?printf("tt2、输出学生信息n”);printf("tt3、查询学生
30、信息n”);?printfCtt4、删除学生信息n");聿rintf("tt5、插入学生信息、n");?printf("t6、学生信息排序n”);printf("ttO、退出系统'nn");?rintf("t请选择:”?scanf("%d”,c);while(c<0|c6);/当c值小于0或大于6时,循环输出,直到不满足。return(c);/返回c值给主调函数,用来选择相应功能。voidInput()/输入学生信息.?chark,x10;?while(k!='n/&&k!=&
31、#39;N)?printf。输入学生学号:");?Scanf("%s”,stun、no);printf(”输入学生姓名:”);?scanf("%s",stun、name);printf("输入学生班级:”);scanf("s“,stun、Class);?printf(输入学生得数学成绩:”);?scanf("%d“,&stun、math);?printf。输入学生得英语成绩:");?scanf("%d”,&stun、english);?)rintf("输入学生得计算机成绩:);s
32、canf("%d",&stun>puter);?stun、a1l=stun、math+stun、eng1ish+stun、puter;©ets(x);?printf("输入下一个?(Y/N)n”);scanf(c”,k);?n+;?voidOutput()/输出学生信息。inti;printf("-n);pr1ntf("学号姓名班级数学英语计算机总成绩、n);printf("七-一一一一一-n");?or(i=0;in;i+)?printf("%10s%10s%10s%10d%10d%10d
33、%10dn",stui、no,stui、name,stui、Class,stui、math,stui、eng1ish,stui、puter,stui、all);?printf("n");?voidDelete()删除学生信息.charx8;intj,i=0;printf("输入要删除得学生姓名:”);scanf("s”,X;while(strcmp(stui、name,x)!=0&&in)?i+;?if(i=n)?printf("未找到相关学生信息!n")for(j=i;j<n-1;j+)?Strcpy
34、(stuj、no,stuj+1、no);?Strcpy(stuj、name,stuj+1、name);strcpy(stuj、Class,stuj+1、Class);?tuj、math=stuj+1、math;?tuj、english=stuj+1、english;stuj、puter=stuj+1、puter;stuj、al1=stuj+1、all;?n-;printf("该学生信息已删除!n");voidFindname()/按姓名查找学生信息。chars20;inti=0;printf("请输入要查询得学生姓名:”);scanf(%s"§
35、);whi1e(strcmp(stui、name,s)!=0&&i<n)?i+;if(i=n)?printf("未找到相关学生信息!n");printf("-_.-n);小r I ntf ("学号姓名班级 数学 英语 计算机 总成绩 n” )printf(-n);printf。%10s%10s%10s%-10d%-10d%10d%10dn",stui、no,stui、name,stui、Class,stui、math,stui、eng1ish,stui、puter,stui、all);?printf("-n&qu
36、ot;);voidFindno()/按学号查找学生信息。chars20;?nti=0;?printf(”请输入要查询得学生学号:”);&canf("为",s);while(strcmp(stui、no,s)!=0&&in)i+;if(i=n)?printf("未找到相关学生信息n");?printf("-小rintf("学号姓名班级数学英语计算机总成绩n");printf("-n");小rintfd%-10s%-10s%10s%-10d%-10d%-10d%10dn",s
37、tui、no,stui、name,stui、Class,stui、math,stui、english,stui、puter,stui、all);printf("-n);voidInsert()/插入学生信息.inti,j;?printf(请输入要插入得位置:”);?scanf("%d,&i);?if(in)?printf("输入学生学号:”兀?scanf("S't,sun、no);?printf("输入学生姓名:”);scanf("%s",stun、name);printf("输入学生班级:”);s
38、canf("%s",stun、C1ass);?Drintf("输入学生得数学成绩:");scanf("%d",&stun、math);printf("输入学生得英语成绩:”);scanf("%d“,&stun、english);?Drintf("输入学生得计算机成绩:”);scanf("%d",&stun、puter);stun、all=stun、math+stun、english+stun、puter;?printf("学生信息输入成功!n"
39、;);?else?for(j=n-1;j>=i;j)?strcpy(stuj+1、no,stuj、no);?rcpy(stuj+1、name,stuj、name);strcpy(stuj+1、C1ass,stuj、Class);?stuj+1、math=stuj卜math;?stuj+1、english=stuj、english;?stuj+1卜puter=stuj、puter;?tuj+1、all=stuj、all;?printf("输入学生学号:");?个canf("su,stui、no);?printf("输入学生姓名:”);?scanf("s",stui、name);printf("输入学生班级:”);?scanf("s"stui、Class);?pri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026年自然奥秘科普试卷
- ESG评价体系下六桶柜项目环境社会治理风险敞口与估值调整机制
- 2026年火电电力职业技能鉴定考试-交联操作工历年参考题库含答案解析
- 2026年湘西民族职业技术学院高职单招笔试数学试题库含答案解析3套试卷
- 2026年湖南电气职业技术学院高职单招笔试物理试题库含答案解析2套试卷
- 2026年湖南城建职业技术学院高职单招笔试职业适应性测验试题库含答案解析2套试卷
- 2026年湖北生物科技职业学院高职单招笔试职业适应性测验试题库含答案解析2套试卷
- 2026年浙江汽车职业技术学院高职单招笔试化学试题库含答案解析2套试卷
- 2026年浙江东方职业技术学院高职单招笔试语文试题库含答案解析2套试卷
- 2026年河南测绘职业学院高职单招笔试物理试题库含答案解析2套试卷
- HSK标准教程5上-课件-L6
- 泡泡玛特促销策略分析
- NB-T 47013.1-2015 承压设备无损检测 第1部分-通用要求
- 液化气站设备风险管控和隐患排查治理表
- 生理学课件:第十章 感觉器官的功能
- 自然资源学原理第二版课件
- 芜湖供电专项规划(2017-2030)环境影响报告书
- 修模改模通知单
- 高中数学 人教A版 选修一 空间中点、直线、平面的向量表示(第1课时) 课件
- 母线PT 微机消谐测控装置检测报告
- NB/T 10755-2021煤矿在用架空乘人装置定期安全检测检验规范
评论
0/150
提交评论