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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言课程设计报告1docWord文档下载推荐.docx

1、 i+) strcpy(stui.name, 0); stui.num = 0; stui.score = 0; for (;)/通过for语句实现使用户自由决定是否重复使用此程序。 switch (Menu_select1()/使用switch语句调用用户指定菜单项对应的函数。 case 1: Input(n);/插入学生记录函数。 for (i = 0, n = 0; if (stui.num != 0) n+; break; case 2: Change_record();/修改学生的记录函数。 case 3: Delete_record();/删除学生记录函数。 case 4: Sor

2、t_record();/排序函数。 case 5: Query_record();/查询函数。 case 6: Dispaly();/展示函数。 case 7: printf(请输入文件的路径: scanf(%s, name0);请输入此文本中有多少名学生的记录:%d, &j); Add_from_text(j, name0);/从文本中添加学生记录的函数。 n += j; case 8: Write_to_text();/将学生记录写入文本的函数。 case 9:/结束程序使用界面选项。 Ending(); default: continue;/菜单循环显示。 system(cls syst

3、em(pause/防止程序运行窗口闪退。 return 0;2、菜单模块:菜单模块包括主菜单和部分功能中要调用的附属菜单,作用是向用户说明其输入的选择信息将使程序实现什么样的功能。3、功能模块 功能模块的设计就是通过编写多个的函数对应程序所要求实现的功能。函数在主函数中将被编号,使用户向程序输入的编号就能调用相应的函数体现程序的功能。四、详细设计及源代码:#includewindows.h/提供system();语句。string.h/提供strlen()函数。#define N 60 /定义全局常量N作为结构体数组stu下标。 int b, c, num0, n, i = 0, j = 0;

4、char name040;/*将程序中多次定义的标识符设置为全局变量。*/struct student char name40; int num; int score;stuN;int Menu_select1(void);int Menu_select2(void);int Menu_select3(void);int Menu_select4(void);int Menu_select5(void);int Menu_select6(void);int Menu_select7(void);int Menu_select8(void);int Menu_select9(void);/声明程

5、序中用到的多种菜单函数。struct student *point1, *point2;/全局定义程序中多次用到得结构体指针变量。int(*pot2)(void) = Menu_select2;int(*pot4)(void) = Menu_select4;int(*pot6)(void) = Menu_select6;int(*pot8)(void) = Menu_select8;/定义指向菜单函数的指针。int judgement(void);int judgement_small(void);/声明程序要调用的两个判断特殊情况的函数。FILE *fp;/定义指向文件型数据的指针变量。vo

6、id Change_service(void);void Query_service(void);void Delete_service(void);void(*ser1)(void) = Change_service;void(*ser2)(void) = Delete_service;void(*ser3)(void) = Query_service;/定义指向在有特定功能的函数内部使用的函数的指针。void Sort_service1(int po);void Sort_service2(int po);/声明两个在有排序功能的函数中腰使用的函数。void swap(struct stu

7、dent *po1, struct student *po2);/对交换函数的声明。void Ending(void);/对有结束功能的函数的声明。void find(int(*p)(void), void(*q)(void);/对一个形参是指向函数的指针的函数的声明。void Input(int n)/对有插入学生记录功能的函数的定义。 printf(请输入学生姓名: scanf(stun.name);请输入学生序号: stun.num = judgement();请输入学生信息:stun.score);/此语句执行后将清除运行窗口显示的结果。void Change_record(void)

8、/对有修改学生记录功能的函数的定义。 find(pot2, ser1);/在函数内部调用函数。void Delete_record(void)/对有删除学生记录功能的函数的定义。 find(pot4, ser2);void Sort_record(void)/对有排序学生记录功能的函数的定义。 j = Menu_select8();/通过菜单函数的返回值提供用户的选择信息来执行用户选定的功能 judgement_small() 0;)/for语句中的判断用判断函数处理后以提示是否输入错误。 if (j = 1) j = Menu_select9(); Sort_service1(j);/通过菜

9、单函数的返回值作为另一个函数的实参来执行用户选定的功能。 else if (j = 2) Sort_service2(j); elsevoid Query_record(void)/对有查询学生记录功能的函数的定义。 find(pot6, ser3);void Dispaly(void)/对有显示全部学生记录功能的函数的定义。 n; i+)/for语句打印出当时的所有学生记录。 printf(第%d位学生姓名为%sn, i + 1, stui.name);班内序号为%dn, stui.num);学习信息为%dnn, stui.score);/防止运行窗口闪退。void Ending(void)

10、/对有退出功能的函数的定义。nt *nnnnnttt 欢迎下次继续使用,再见!nnnnnt *nnt exit(0);/正常退出程序。void Add_from_text(int e, char ch)/对有可从文本文件中提取学生记录的函数的定义。 fp = fopen(name0, r/使指针指向文件。 if (fp = fopen(name0, ) = NULL)/判断指针所指向的文件是否存在,不存在退出此函数。无法找到路径为%s的文本文件。n return; else/存在则从此文件中提取学生记录。 for (i = n; (n + e + 1); fscanf(fp, %s%d*%ds

11、tui.name, &stui.num, &stui.score);已提取出文本文件名称为%s中的所有学生记录! fclose(fp);/关闭文本文件,即指针fp不再指向任何文件。void Write_to_text(void)/对可将程序中存储并处理后的学生记录输出至一个文本文件。w无法找到名为%d的文本文件。 else/存在则将程序中储存的学生记录写入该文件。 fprintf(fp, 姓名ttttt*班内序号t *学习信息*n for (i = 0; fprintf(fp, %-40s* %-14d* %-5d *n, stui.name, stui.num, stui.score);已将

12、学生记录存储入名称为%s的文件中!void Change_service(void)/对在有修改学生记录功能的函数中要调用的函数的定义。 char temp140; int temp2, temp3; switch (Menu_select3()/*菜单函数的返回值用作switch语句的选择信息 (选择项较多用switch语句较少则用if语句)。 case 1:此学生当前姓名为%s,请输入要修改后的名字;, (*point1).name);/*由于此函数作为实参 在find()函数被调用,在调用前已经将寻找到得项的地址付给了全局指针变量point1*/ scanf(, temp1); strc

13、py(point1-name, temp1); break; case 2:此学生当前序号为%d,请输入要修改后的序号;, (*point1).num); temp2 = judgement(); (*point1).num = temp2; case 3:此学生当前信息为%d,请输入要修改后的信息;, (*point1).score);temp3); (*point1).score = temp3; default:void Query_service(void)/对在有查询学生记录功能的函数中要调用的函数的定义。 switch (Menu_select7()/同上,选择项较多用switch

14、语句。此学生当前姓名为%s,班级内序号为%d,学习信息为%dn, point1-name, point1-num, point1-score);/*由于此函数作为实参在find()函数被调用,在其内调用前已经将寻找到得项的地址付给了 全局指针变量point1*/此学生当前姓名为%d。name);此学生当前班内序号为%d。num); case 4:void Delete_service(void)/对在有删除学生记录功能的函数中要调用的函数的定义。 j = Menu_select5();/选择项较少用if语句。 if (j = 1) char sure;全局指针变量point1*/请按回车键确认

15、您的操作! for (;) if (getchar(sure) = n point2 = &stun - 1; swap(point1, point2); n-; break;删除记录成功,感谢使用! /*这里删除一个学生的全部记录的实现方法是:锁定要删除的学生记录将其地址赋给point1,通过地址来 把此时存入得学生记录中最后一位的信息存入该名学生信息存储的位置,然后清空最后一位学生的占用的结构体 数组元素并对程序中记录存入学生记录数量的全局变量n做减一处理*/ else if (j = 2)/只删除一名学生的信息的功能。 point1-score = 0;/指定学生信息清零。 elsevo

16、id Sort_service1(int po)/对在有排序学生记录功能的函数中要调用的第一个函数的定义,即通过班内序号排序。 int m = judgement_small(); if (po = 1)/成立做降序处理。 m; for (c = i + 1; c stub.num) point1 = &stuc; point2 = &stub; b = c; swap(point1, point2);/调用函数交换两个结构体数组元素内的所有信息。 排序成功!感谢使用! else/不成立则做升序处理。 if (stuc.num stub.score) else/做降序处理。 if (stuc.score n)/对特殊情况的处理。 printf(经寻找后没有发现姓名为%s的学生记录存入程序! system(请输入学生的序号:num0); fo

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

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