版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 课 程 设 计 报 告课程设计名称: C程序设计 系 : 学 生 姓 名 : 班 级: 学 号: 成 绩: 指 导 教 师: 目 录 TOC o 1-3 h z u HYPERLINK l _Toc326569313 第一章 菜单设计 #include#includevoid FindNum();void FindRoot();void Bear();void Diamond();void Goodbye();void ShowMenu()int n;printf(Input a number from 1-3:n1 FindNnm;n2 FindRoot ;n3 Bear;n4Diamon
2、d;n5 Goodbyen);scanf(%d,&n);switch(n)case 1:FindNum(); break;case 2: FindRoot (); break;case 3: Bear (); break;case 4: Diamond(); break;case 5: Goodbye(); break;default: printf(Error! Input again!);ShowMenu();/老鼠啃账本void FindNum()int i;printf(3623733564n);for(i=1;i10;i+)if(30+i)*6237=(10*i+3)*3564)pr
3、intf(3%d6237%d33564n,i,i);ShowMenu();/求根void FindRoot() float a,b,c;float delta; printf(求一个二元方程ax2+bx+c=0的根的问题); printf(input a, b, c:); scanf(%f%f%f, &a, &b, &c); delta = (b*b - 4*a*c); /*b2 - 4ac*/ if (delta 0) printf(no fact root.n); else if (delta 0 , have 2 root.*/ printf(root1 = %, root2 = %n,
4、 -1*b + sqrt(delta)/ (2*a), -1*b - sqrt(delta)/(2*a); ShowMenu();/狗熊吃玉米void Bear() int day, x1, x2; printf(狗熊到玉米地吃了包谷); printf(第一天吃了一半又拿走一个回去喂小狗熊。n); printf(第二天又去吃了剩下的一半,走是任然带一个回去。/n); printf(以后每天都吃前一天剩下的一半,拿走一个。/n); printf(到了第十天时,地里只剩下一个包谷。求地里一共有多少包谷。/n); day=10; x2=1;while (day0) x1=(x2+1)*2; x2=x
5、1; day-; printf(包谷总数=%dn,x1);ShowMenu(); /钻石void Diamond()int i,j,k;for(i=0;i7;i+)if(i4)for(j=0;j15-i;j+)printf( );for(k=0;k2*i+1;k+)printf(*);elsefor(j=0;ji+9;j+)printf( );for(k=0;k13-2*i;k+)printf(*);printf(n); ShowMenu();void Goodbye()printf(Goodbye!n);void main()ShowMenu();1.5 程序运行截图第二章 使用数组和指针统
6、计成绩2.1 设计题目及要求设计题目:假设给定班级各科考试平均成绩的原始资料如下:数学:75 物理:80 外语:83 政治:85 体育:86 人数:30要求统计出全班学期总平均成绩以及得分最低的科目和该科目的成绩。要求的输出结果如下:原始信息如下:数学:75 物理:80 外语:83 政治:85 体育:86 人数:30平均成绩:0 最低分数科目的成绩:0 最低分数的科目:全班各科平均成绩如下:数学:75 物理:80 外语:83 政治:85 体育:86 人数:30统计结果如下:人数:30平均成绩:81最低分数科目的成绩:75最低分数的科目:数学2.2 设计要求实现本设计功能的方法很多,这里给出4种
7、难易成度不同的要求,以便加深对数组和指针知识的理解。对存放原始数据的要求如下:使用整形数组a存放数学、物理、外语、政治、体育、人数、平均成绩、最低分科目的成绩使用字符串数组name存放数学、物理、外语、政治、体育、最低分数的科目使用字符串数组MeanLow存放人数、平均成绩、最低分数科目的成绩、最低分数的科目。使用字符指针指向字符数组(这个题目的要求超出一般的教材,但对理解指针很有用途。) 2.3 设计思路将数组a的内容存入到分配的内存中,使用指针实现对内存内容的存取和计算。为字符分配内存,并将字符数组的内容也存入所分配的内存中,使用这些指针实现设计要求。2.4 流程图 SHAPE * MER
8、GEFORMAT 2.5 具体实现#includeint main()int average,i,sum,min;int a6=75,80,83,85,86,30;char p6=数学,物理,外语,政治,体育,人数;char m3= 总平均成绩” ,最低分数科目的成绩”, 最低分数科目”;printf(原始数据n);for(i=0;i8;i+)printf(%c,%fn,pi,ai);printf(m0:n);printf(m1:n);printf(m2:nn);printf(全班各科平均成绩如下:n);for(i=0;i8;i+)printf(%c,%fn,pi,ai);printf(统计结
9、果如下:n);printf(p5:%dn,a5);for(i=0;i5;i+)sum+=ai;average=sum/5;printf(m0:%dn,average);for(i=1;i5;i+)if(a0ai)min=a0;elsemin=ai;printf(m1:%dn,min);printf(m2:%sn,数学);return 0; 2.6 程序运行截图第三章 学生成绩管理系统3.1 设计题目及要求设计要求功能设计要求设计要求实现的功能较多,所以将它们分为几个部分叙述。建立文件可以使用默认文件名或指定文件名将记录存储到文件;文件保存成功返回0,失败返回-1;设置保存标志savedTag作
10、为是否对记录进行存储操作的信息;写同名文件将覆盖原来文件的内容;增加学生记录可在已有记录后面追加新的记录可以随时用它增加新的记录,它们仅保存在结构数组中;可以将一个文件读入,追加在已有记录之后;如果已经采取文件追加的方式,在没有保存到文件之前,将继续保持文件追加状态,以便实现连续文件追加操作方式;如果没有记录存在,给出提示信息。显示记录如果没有记录可供显示,给出提示信息;可以随时显示内存中的记录文件存储可以按默认名字或指定名字存储记录文件;存储成功返回0.,否则返回-1;更新存储标志;读取文件可以按照默认名字或指定名字将记录文件读入内存;读取成功返回0,否则返回-1;可以将指定或默认文件追加到
11、现有记录并更新记录的尾部;可以将文件连续追加到现有记录并更新记录的名词;更新存储标志;删除记录可以按“学好”、“姓名”、“名词”方式删除记录;给出将删除记录的信息,经确认后在删除;如果已经是空表,删除时给出提示信息并返回菜单;如果没有要删除的信息,输出没有找到的信息;应该更新其他记录的名词;删除操作权限于内存,只有执行存记录时,才能覆盖原记录;修改记录可以按“学号”、“姓名”、“名次”方式修改记录内容;给出将修改记录的信息,经确认后进行修改;如果已经是空表,应给出提示信息并返回主菜单;如果没有找到需要要改的信息,输出提示信息;应该同时更新其他记录的名词;修改操作权限于内存,只有进行存储操作时,
12、才能覆盖原记录;更新存储标志;查询记录可以按“学号”、“姓名”、“名次”方式修改记录内容;能给出查询记录的信息;如果查询的信息不存在,输出提示信息;对记录进行排序可以按学好进行升序或降序排序;可以按名称进行升序和降序排序;可以按名词进行升序或降序排序;如果属于选择错误,可以立即退出排序;更新存储标志;头文件使用条件编译定义头文件;函数原型声明;数据结构及包含文件;测试程序应列出测试大纲对程序进行测试;应保证测试用例测试到程序的各种边缘情况;以上是基本要求,希望通过对本章设计的理解,重新考虑如何进行设计。2. 总体设计最初的整体规划只是说明它们的可行性,不要求制定函数的具体实现,甚至不需要考虑函
13、数原型。完成整体规划后,可以按照流程描述各个模块之间的接口功能。本课程设计对模块设计的要求如下:要求使用对文件方式实现设计;要求在各个文件内实现结构化设计;每个模块作为一个单独的C文件,每个文件内的函数如表121所示,表中给出了各个函数的功能说明;宏和数据结构等放在头文件中,并使用条件编译。3.2 设计思路(1) 主函数: 主函数 main,功能: 通过调用 creat, search, del, add, print, ststistics, save, taxis 等函数,实现学生成绩查询(2 ) 菜单界面函数:int menu(int k)/*函数 menu,功能:菜单选择(3) 输入学
14、生信息:因为学号不可能为 0,所以设计当输入 学生信息时输入学号为零则自动返回菜单函数,这样就可以无 限次输入直到输入学号为零了。(4) 删除学生信息:该学号提供给用户按学号删除;首先判 断文件中是否有学生信息,如果文件内容是空,就输出“没有 该学生记录!。(5) 查找学生信息函数:该程序用 switch(a)函数设计了两 种查询方式1.按学号查找;2.按姓名查找。(6) 显示所有学生信息函数:该函数主要使用输出函数 printf 来 实现,首先看有没有学生信息,再用指针指向存在的文本,用 do while()语句来实现所有信息的输出。 (7) 统计学生信息(8) 保存学生信息:(9)退出程序
15、 SHAPE * MERGEFORMAT 3.4 具体实现#include#include#include#include#define N 30#define M 3typedef struct studentchar number10;char name20;float scoreM;float aver;STU;STU stuN;int n;void inputscore(void);void savescore(void);void avergescore(void);void modifyscore(void);void lookscore(void);void searchscor
16、e(void);void statistic(void);void add(void);void modify(void);void delscore(void);void menu(void);void main()short int flag=0;menu();doflag=1;switch(getch()case 1 : inputscore();break; /*输入成绩*/case 2 : lookscore();break;/*查看成绩*/case 3 : searchscore();break;/*查找成绩*/case 4 : statistic();break;/*成绩统计*/
17、case 5 : modify();break;/*修改成绩*/case 6 : add();break;/*添加成绩*/case 7 : delscore();break;/*删除成绩*/case 8 : savescore();break;/*保存成绩*/case 9 :exit(0);/*退出程序*/default : printf(输入有误n);printf(按任意键继续n);getch();menu();while (flag=1);void menu(void) system(cls);printf(n);printf(*欢迎进入学生成绩管理系统*n);printf( 菜单 n);
18、printf(输入成绩1n);printf(查看成绩及成绩排序2n);printf(查询学生成绩3n);printf(成绩统计4n);printf(修改成绩5n);printf(添加成绩6n);printf(删除成绩7n);printf(保存成绩8n);printf(退出系统9n);printf(*n);printf(请输入您的选择n);/*输入各个同学的学生信息*/void inputscore(void)int i,j;system(cls);printf(请输入学生总数:n);scanf(%d,&n);printf(提示:*输入学号时请输入位数为8位的数字*n);/*因二维表上下需对正故
19、有此要求*/for(i=0;in;i+)printf(请输入学生%d的学号 姓名:n,i+1);scanf(%s%s,stui.number,);printf(请输入学生成绩:n);printf(数学t英语t计算机n);for(j=0;jM;j+)scanf(%f,&stui.scorej);printf(成功输入n);/*计算各个同学的平均分*/void avergescore(void)int i,j;for(i=0;in;i+)stui.aver=0;for(j=0;jM;j+)stui.aver+=stui.scorej;stui.aver=stui.aver/M;/
20、*查看学生成绩及根据平均分对学生进行排序*/void lookscore(void)int i,j,k;STU t;avergescore();system(cls);for(i=0;in-1;i+)for(k=i,j=i+1;jstuk.aver)k=j;if(k!=j)t=stuk;stuk=stui;stui=t;printf(名次t学号tt姓名t数学t英语t计算机t平均分n);for(i=0;in;i+)printf(%dt%st%st,i+1,stui.number,);for(j=0;jM;j+)printf(%t,stui.scorej);printf(%,st
21、ui.aver);printf(n);/*通过输入学号查找学生成绩*/void searchscore(void)char a10;int i,j;system(cls);printf(请输入需查询的学生学号n);scanf(%s,a);for(i=0;in;i+)if(strcmp(a,stui.number)=0)printf(名次t学号tt姓名t数学t英语t计算机t平均分n);printf(%dt%st%st,i+1,stui.number,);for(j=0;jM;j+)printf(%t,stui.scorej);printf(%,stui.aver);printf
22、(n);break;elseprintf(未找到该学生信息n);void statistic(void)STU *p=stu;int i,j;float count=0.0,sum=0.0;system(cls);for(i=0;iaver;printf(该班级平均分为%n,sum/n);/*平均分计算*/for(i=0;iaver=60)count+;printf(该班级及格率为%n,count/n*100);/*及格率计算*/count=0.0;for(i=0;iaver=90)count+;printf(该班级优秀率为%n,count/n*100);/*优秀率计算*/for(i=0;in
23、;i+)for(j=0;jscorej-(p+i)-aver)*(p+i)-scorej-(p+i)-aver);sum=sum/n;printf(学生%s的成绩方差为%n,(p+i)-name,sum);printf(平均分低于60的学生名单n);for(i=0;in;i+)if(stui.aver60)printf(%sn,);/*修改学生成绩*/void modify(void)char a10;int i,j;system(cls);printf(请输入需要修改成绩的学生学号n);scanf(%s,a);for(i=0;in;i+)if(strcmp(a,stui.n
24、umber)=0)printf(名次t学号tt姓名t数学t英语t计算机t平均分n);printf(%dt%st%st,i+1,stui.number,);for(j=0;jM;j+)printf(%t,stui.scorej);printf(%,stui.aver);printf(n);printf(请重新输入该学生的学号 姓名:n);scanf(%s%s,stui.number,);printf(请重新输入学生成绩:n);printf(数学t英语t计算机n);for(j=0;jM;j+)scanf(%f,&stui.scorej);printf(修改成功n
25、);break;elseprintf(未找到该学生信息n);/*添加学生成绩*/void add(void)int a,i,j;system(cls);printf(请输入新增加的学生人数:n);scanf(%d,&a);n=n+a;for(i=n-a;in;i+)printf(请输入学生%d的学号 姓名:n,i+1);scanf(%s%s,stui.number,);printf(请输入学生成绩:n);printf(数学t英语t计算机n);for(j=0;jM;j+)scanf(%f,&stui.scorej);printf(添加成功n);/*删除学生成绩*/void delscore(void)int i,j,c;char m,a10;system(cls);printf(请输入学生学号n);scanf(%s,a);for(i=0;in;i+)if(strcmp(a,stui.number)=0)printf(名次t学号tt姓名t数学t英语t计算机t平均分n);printf(%dt%st%st,i+1,stui.number,);for(j=0;jM;j+)printf(%t,stui.scorej);printf(%,stui.aver)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版智能小区门窗定制与物业智能化运营合同3篇
- 2025年消防设备设施检测与总承包合同
- 二零二五版农产品出口合同食品安全标准规定3篇
- 二零二五年度餐饮业节能改造工程合同6篇
- 二零二四年度专业技术人才引进与委托培养合同3篇
- 2025年度零担运输合同电子签章实施规范4篇
- 2024虚拟现实旅游体验应用开发合同
- 2024适用农村小额信贷的民间借贷借款合同3篇
- 2025年安徽省住房租赁市场租赁房屋装修合同3篇
- 2024珠海投影设备租赁合同
- 2019级水电站动力设备专业三年制人才培养方案
- 室内装饰装修施工组织设计方案
- 洗浴中心活动方案
- 送电线路工程施工流程及组织措施
- 肝素诱导的血小板减少症培训课件
- 韩国文化特征课件
- 抖音认证承诺函
- 清洁剂知识培训课件
- 新技术知识及军事应用教案
- 高等数学(第二版)
- 肺炎喘嗽的中医护理常规
评论
0/150
提交评论