ImageVerifierCode 换一换
格式:DOCX , 页数:43 ,大小:206.01KB ,
资源ID:10252148      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10252148.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《C语言程序设计》大作业.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《C语言程序设计》大作业.docx

1、C语言程序设计大作业南昌大学软件学院C语言程序设计工程实训大作业班级: 09软件技术(2)班 学号: * * * * * 2010年12月10日系统说明书1.问题描述: 该程序包内容包括以下的模块,均用子函数完成:(1)主菜单(2)输入若干条记录并保存文件(指学生的信息) (3)学生信息录入、修改、删除、查询、存储。 (4)学生信息的浏览及排序(冒泡排序算法)。 (5)学生成绩的录入、修改。(6)统计及格和优秀人数 (7)退出系统 2.程序设计和程序流程图:解决方案:主函数流程图:各部分功能的流程图:录入学生成绩流程图:统计功能流程图如图3所示:图3 统计模块流程图冒泡排序流程图:排序学生信息

2、流程图: 删除学生成绩信息流程图:3.系统的基本功能(主要数据和函数功能描述):char xh15; /以字符串数组形式存储学生学号 char name25/ 以字符串数组形式存储学生姓名 char sex5; /性别 float sxcj; /数学成绩 float yycj; /英语成绩 float Cyycj; /C语言成绩 float ave; /平均成绩 float sum; /总成绩#define N 4 /宏定义学生 #define MAX 60 /学生最大个数int nCOUNT=0; /记录当前学生个数struct student /定义结构体学生int ScoreNew()

3、/录入学生成绩int average() /求平均数int xsxscj() /显示输入学生信息、将学生打印到屏幕上int xsxsxx() /显示学生信息int xhcjpx() /按学生学号排序学生信息int sxcjpx()按数学成绩排序学生信息int yycjpx()按英语成绩排序学生信息int Cyypx() /按C语言成绩排序学生信息int zcjpx()按总成绩排序学生信息int pxxsxx()/排序学生信息 int axhcx() /按学号查询int axmcx() /按姓名查询int SearchStud() /查询学生成绩信息int zjxsxx() /增加学生信息int

4、 xgxsxx() /修改学生信息int scxsxx() /删除学生信息int gxxscj() /更新学生信息int tjxscj() /统计学生成绩int save() /保存到文件(fp=fopen(stu_list.txt,wb)=NULL) /以只读方式打开文件stu_list.txt(fwrite(&stri,sizeof(struct student),1,fp)!=1) /创建文件并以二进制形式打开int xswj() /显示文件信息int main() /主函数mainmemu4.拟采用开发平台: Visual C+,Borland C+等。实验分析与结论:成绩录入函数按次

5、序录入系统中现存所有学生的所有科目上,每录入一个学生的成绩,首先显示其姓名和学号,然后依次输入英语、高数和C语言成绩。各科成绩初始化为0. 修改学生信息函数调用函数对需要修改信息的学生进行查找,找到后返回该学生所对应的下标值n,将用户录入的新值存入数组中.删除学生信息函数调用SeachStud()函数对需要删除信息的学生进行查找,找到后返回该学生所对应的下标值n,用数组中第n个后面的元素依次向前覆盖,学生总数减1,即nCount-1。需要强调的是,数组是静态存储分配方式,在声明时,系统已经给数组分配了其标注的全部内在空间,而且直到本段代码运行结束都不会改变。所以,不可能将数组中不用的元素所占用

6、的空间释放掉。本函数从后向前覆盖,删除学生信息,由于每个数组的读写的循环次数都不是以其长度为准的。而是以nCount值的大小来进行的,因此nCount可以保证不会读到最后一个无效数据。 收获与体会:学生成绩档案管理系统具备了数据的输入和成绩分类分析的功能。它能进行单独的一次数据处理。学习过循环结构以后,结合所学的知识点,增加系统重复处理数据的能力,既检验对知识的实际应用能力,又把系统的功能进一步充实。刚开始很难下手,请教同学和老师后慢慢入手。渐渐地写点程序。本次对学生成绩档案管理系统编写程序让我更加熟悉宏定义,函数调用,数组,排序等运用以及switch语句,if语句,while语句。这次编程让

7、我对C语言的综合编程能力的掌握,培养学生的逻辑思维能力,最终达到学生能完全独立编制、调试程序的能力。程序代码:/* purpose: 结构体输出 author: 凌风叶子 Wuchengzeng created: 2010/11/11 11:11:11*/#include#include#include#include#include#include /#include#define N 4 /宏定义学生#define MAX 60 /学生最大个数int nCOUNT=0; /记录当前学生个数int p; /int save();/int duquwj();/int xiugaiwj(); /

8、char cStudNo6013=8001509060,8001509061;/char cStudName8013=承增,叶子;struct student char xh15; /学号 char name25; /姓名 char sex5; /性别 float sxcj; /数学成绩 float yycj; /英语成绩 float Cyycj; /C语言成绩 float ave; /平均成绩 float sum; /总成绩strMAX;/struct studentMAX;int ScoreNew() /录入学生成绩 int average(); /求平均数 int i=0; char c

9、h; system(cls); do printf( tt 设计者:吴承增 班级:软件技术092班n); printf( tt=n); printf( tt- 录 入 学 生 信 息 -n); printf( tt=n); printf( tt请录入第%d学生信息n,i+1); printf(n tt输入学生学号: ); scanf(%s,stri.xh); fflush(stdin); printf(n tt输入学生姓名: ); fflush(stdin); scanf(%s,stri.name); printf(n tt输入学生性别: ); fflush(stdin); scanf(%s,

10、stri.sex); printf(n tt输入学生数学成绩: ); fflush(stdin); scanf(%f,&stri.sxcj); printf(n tt输入学生英语成绩: ); fflush(stdin); scanf(%f,&stri.yycj); printf(n tt输入学生C语言成绩: ); fflush(stdin); scanf(%f,&stri.Cyycj); i+; nCOUNT=i; printf(n tt是否继续输入?(Y/N); fflush(stdin); ch=getch(); system(cls); while(ch!=n&ch!=N); avera

11、ge(); printf(n); system(cls); return 0; int average() /求平均数 int i; for(i=0;inCOUNT;i+) stri.sum=stri.sxcj+stri.yycj+stri.Cyycj; stri.ave=stri.sum/3; return 0;/将学生打印到屏幕上int xsxscj() /显示输入学生信息 int i; average(); system(cls); printf( tt 设计者:吴承增 班级:软件技术092班n); printf( tt=n); printf( tt- 显 示 学 生 成 绩 信 息 -

12、n); printf( tt=n); printf( -n); printf( 学号 姓名 性别 数学 英语 C语言 总成绩 平均成绩n); printf( -n); for(i=0;inCOUNT;i+) printf( %s,stri.xh); printf(t%s,stri.name); printf(t%s,stri.sex); printf(t%.1f,stri.sxcj); printf(t%.1f,stri.yycj); printf(t%.1f,stri.Cyycj); printf(t%.1f,stri.sum); printf(t%.1fn,stri.ave); fflus

13、h(stdin); system(pause); system(cls); return 0;int xsxsxx() /显示学生信息 int xswj(); int q; system(cls); printf( tt 设计者:吴承增 班级:软件技术092班n); printf( tt=n); printf( tt- 显 示 学 生 信 息 -n); printf( tt=n); printf( tt- 显示输入学生信息 -1n); printf( tt- 显示文件学生信息 -2n); printf( tt- 按 0 返回! -00n); printf( tt请选择功能键: ); scanf

14、(%d,&q); switch(q) case 0:printf(n exitn); q=0; break; case 1: xsxscj();break; case 2: xswj();break; default :printf( tt输入错误!n); system(pause); break; system(cls); return 0; int xhcjpx() /按学生学号排序学生信息 struct student t; int i,j; average(); for(j=0;jnCOUNT;j+) for(i=0;inCOUNT-j;i+) if(stri.sxcjstri+1.s

15、xcj) t=stri; stri=stri+1; stri+1=t; printf( Input ENTER again !n); system(pause); xsxscj(); return 0;int sxcjpx() /按数学成绩排序学生信息 struct student t; int i,j; average(); for(j=0;jnCOUNT;j+) for(i=0;inCOUNT-j;i+) if(stri.sxcjstri+1.sxcj) t=stri; stri=stri+1; stri+1=t; printf( Input ENTER again !n); system

16、(pause); xsxscj(); return 0; int yycjpx() /按英语成绩排序学生信息 struct student t; int i,j; average(); for(j=0;jnCOUNT;j+) for(i=0;inCOUNT-j;i+) if(stri.yycjstri+1.yycj) t=stri; stri=stri+1; stri+1=t; printf( Input ENTER again !n); system(pause); xsxscj(); return 0;int Cyypx() /按C语言成绩排序学生信息 struct student t;

17、int i,j; average(); for(j=0;jnCOUNT;j+) for(i=0;inCOUNT-j;i+) if(stri.Cyycjstri+1.Cyycj) t=stri; stri=stri+1; stri+1=t; printf( Input ENTER again !n); system(pause); xsxscj(); return 0;int zcjpx() /按总成绩排序学生信息 struct student t; int i,j; average(); for(j=0;jnCOUNT;j+) for(i=0;inCOUNT-j;i+) if(stri.sum

18、stri+1.sum) t=stri; stri=stri+1; stri+1=t; printf( Input ENTER again !n); system(pause); xsxscj(); return 0;int pxxsxx() /排序学生信息 int q; system(cls); while(q) printf( tt 设计者:吴承增 班级:软件技术092班n); printf( tt=n); printf( tt-排 序 学 生 信 息 -n); printf( tt=n); printf( tt- 按 学 生 学 号 排 序 -1n); printf( tt- 按 数 学

19、成 绩 排 序 -2n); printf( tt- 按 英 语 成 绩 排 序 -3n); printf( tt- 按 C语言 成 绩 排 序 -4n); printf( tt-按 总 成 绩 排 序 -5n); printf( tt- 按 0 返回! -00n); printf( tt=n); printf( tt请选择功能键:); scanf(%d,&q); switch(q) case 00:printf(n exitn); q=0; break; case 1: xhcjpx();break; case 2: sxcjpx();break; case 3: yycjpx();break

20、; case 4: Cyypx() ;break; case 5: zcjpx() ;break; default :printf( tt输入错误!n); system(pause); break; system(cls); return 0;int axhcx() /按学号查询 int i; char xuehao12; average(); printf( tt请输入学生学号:); fflush(stdin); scanf(%s,xuehao); for(i=0;i=nCOUNT;i+) if(!strcmp(stri.xh,xuehao) printf( tt 设计者:吴承增 班级:软件

21、技术092班n); printf( -n); printf( 学号 姓名 性别 数学 英语 C语言 总成绩 平均成绩 n); printf( -n); printf( %s,stri.xh); printf( %s, stri.name); printf( %s, stri.sex); printf( %.1f,stri.sxcj); printf( %.1f,stri.yycj); printf( %.1f,stri.Cyycj); printf( %.1f,stri.sum); printf( %.1fn,stri.ave); system(pause); return i; printf

22、(n tt此学生不存在或输入错误!n); fflush(stdin); system(pause); return 0;int axmcx() /按姓名查询 int i; char stre20; average(); printf( tt请输入学生姓名: ); fflush(stdin); gets(stre); for(i=0;inCOUNT;i+) if(!strcmp(stri.name,stre) printf( tt 设计者:吴承增 班级:软件技术092班n); printf( -n); printf( 学号 姓名 性别 数学 英语 C语言 总成绩 平均成绩n); printf(

23、-n); printf( %s,stri.xh); printf( %s,stri.name); printf( %s,stri.sex); printf( %.1f,stri.sxcj); printf( %.1f,stri.yycj); printf( %.1f,stri.Cyycj); printf( %.1f,stri.sum); printf( %.1fn,stri.ave); system(pause); return i; printf(n tt此学生不存在或输入错误!n); fflush(stdin); system(pause); return 0;int SearchStud() /查询学生成绩信息 int q; system(cls); while(q)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1