C语言课程设计报告模板.doc

上传人:wux****ua 文档编号:9371344 上传时间:2020-04-05 格式:DOC 页数:19 大小:976KB
返回 下载 相关 举报
C语言课程设计报告模板.doc_第1页
第1页 / 共19页
C语言课程设计报告模板.doc_第2页
第2页 / 共19页
C语言课程设计报告模板.doc_第3页
第3页 / 共19页
点击查看更多>>
资源描述
中 国 地 质 大 学本科生课程论文封面课程名称 教师姓名 本科生姓名 本科生学号 本科生专业 所在院系 类别: 日期: 课程设计评语对课程论文的评语:平时成绩:课程论文成绩:总 成 绩:评阅人签名:注:1、无评阅人签名成绩无效;2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。目 录课程设计评语2目 录31课程论文题目42程序设计思路43功能模块图54数据结构设计55算法设计66程序关键代码137程序运行结果228编程中遇到的困难及解决方法259总结心得及良好建议2610致谢261 课程论文题目 学生信息管理系统2程序设计思路A、 从教师信息文件中读取已有的课程信息,并实现屏幕显示。B、 能通过教师工号对已有的教师信息进行修改,要求工号不能修改,其他信息内容都可改,修改的结果保存至教师信息文件。C、 实现对教师信息的统计(分学院统计教师数量)并排序显示。D、 实现对教师信息的查询显示(查询条件分为工号、出生年、学院)。E、 新教师信息的添加并保存至教师信息文件。F、 教师信息的删除,根据工号,删除指定教师生信息,并将结果写入文件。G、 每增加一条记录,记录编号自动加1。3 功能模块图4 数据结构设计struct student /*定义学生信息的结构体类型*/ char num15; /*学号*/ char name20; /*姓名*/char sex4; /*性别*/ int english; /*英语成绩*/ int math; /*数学成绩*/ int chinese; /*语文成绩*/ float aver; /*平均成绩*/ float sum; /*总成绩*/stu100;5 算法设计Main函数调用menu函数; STU * creat(void) 创建creat 函数,调用函数,在该函数中,依次输入各个学生的信息,按-1 结束,建立while循环,从而实现按-1结束; STU *delete_one_node(STU *head,int num) 创建一个删除一个学生信息的函数为delete_one_node,调用该函数,在该函数中先实现查找是否与所需消除的学号信息,若一致则进行删除,将节点删除。; STU *insert(STU *head,STU *p) 创建一个插入一个学生信息的函数为insert函数,调用该函数,将创建的新的空间的信息插入其中; void print(STU *head); 创建print函数,显示creat函数中输入的信息,指针指头结点,依次输出 STU *search(STU *head,int x); 创建search 函数 输入所需查找的学号,从头结点开始判断是否一致,一致则返回此时的指针 void menu(); 创建menu函数,调用该函数,在其中再次调用menu_select函数,再运用swtich语句依次用case进行菜单中的调用. int menu_select(a) 创建 menu_select函数,进行菜单中的选择调用,返回所需查找大的标号6 程序代码#includestdio.h#includeconio.h#includestring.h#includestdlib.hvoid look(); /*声明查看函数*/void save(); /*声明保存函数*/void search_name(); /*声明按姓名查看函数*/void search_number(); /*声明按学号查看函数*/void order(); /*声明排序函数*/void del(); /*声明删除函数*/int openl(); /*声明打开函数*/void welcome(); /*声明我的个人信息函数*/void type(); /*声明输入函数*/void see(); /*声明打开并查看文件函数*/struct student /*定义学生信息的结构体类型*/char num15; /*学号*/char name20; /*姓名*/char sex4; /*性别*/int english; /*英语成绩*/int math; /*数学成绩*/int chinese; /*语文成绩*/float aver; /*平均成绩*/float sum; /*总成绩*/stu100;int n; /*声明一个全局变量*/void main() /*主函数即用户的操作界面*/system(color 1E); /*设计文本颜色*/int b, flag = 0; /*声明局部变量*/while (1) /*循环输出以下信息*/printf(nttt欢迎来到学生成绩管理系统!n);printf(ntttt #制作n);printf(ttt-n);printf(ttt1.键入学生的信息nn); /*键入学生的信息*/printf(ttt2.查看录入的学生信息nn); /*查看录入的学生信息*/printf(ttt3.按姓名查看学生的信息nn); /*按姓名查看学生的信息*/printf(ttt4.按学号查看学生的信息nn); /*按学号查看学生的信息*/printf(ttt5.按平均成绩排序nn); /*排序*/printf(ttt6.删除学生信息nn); /*删除学生信息*/printf(ttt7.保存学生信息nn); /*保存*/printf(ttt8.打开文件nn); /*打开文件*/printf(ttt9.我的个人信息nn); /*我的个人信息*/printf(ttt0.退出nn); /*退出*/printf(ttt请输入你的选择:);scanf(%d, &b);switch (b)case 1:type(); break; /*调用键入学生信息函数*/case 2:look(); break; /*调用查看函数*/case 3:search_name(); break; /*调用姓名查看函数*/case 4:search_number(); break; /*调用学号查看函数*/case 5:order(); break; /*调用排序函数*/case 6:del(); break;/*调用删除函数*/case 7:save(); break;/*调用保存函数*/case 8:see(); break;/*调用打开文件函数*/case 9:welcome(); break;/*调用我的个人信息函数*/case 0:flag = 1; break;/*退出SWITCH语句*/default:printf(错误!);if (flag) break; /*如果选择0就退出循环*/void welcome() /*我的个人信息函数*/system(CLS);printf(nntt-个人信息-); /*在屏幕上输出一下信息*/printf(nnnntt姓名:#);printf(tttSex:#n);printf(tt年龄:#n);printf(nttt-学习经历-nnn);printf(tt小学:#nn);printf(tt初中:#nn);printf(ttS高中:#nn);printf(tt大学:#nn);printf(nntt按任意键返回欢迎屏幕!);getch(); /*按任意键返回主函数*/void type() /*定义键入学生信息函数*/system(CLS);int i; /*定义局部变量*/printf(tt输出你想输入的学生信息个数:);scanf(%d, &n);for (i = 0; in; i+) /*输入每个学生的信息*/printf(nttt-n);printf(ttt学号:);scanf(%s, &stui.num); /*输入学号*/printf(ttt姓名:);scanf(%s, &stui.name); /*输入姓名*/printf(ttt性别:);scanf(%S, &stui.sex); /*输入性别*/printf(ttt英语:);scanf(%d, &stui.english); /*输入英语成绩*/printf(ttt数学:);scanf(%d, &stui.math); /*输入数学成绩*/printf(ttt语文:);scanf(%d, &stui.chinese); /*输入语文成绩*/stui.aver = (float)stui.english + (float)stui.math + (float)stui.chinese) / 3;/*计算平均成绩*/stui.sum = (float)stui.english + (float)stui.math + (float)stui.chinese;/*计算总成绩*/printf(ttt平均成绩=%4.1fn, stui.aver); /*输出平均成绩*/printf(ttt总成绩=%4.1fn, stui.sum); /*输出总成绩*/printf(nnttt按任意键返回菜单!);getch();save();void save() /*建立保存文件函数*/system(CLS);FILE *fp; /*定义文件型指针*/int i;if (fp = fopen(student.txt, wb) = NULL) /*打开输出文件*/printf(不能打开文件!n);return; /*终止程序*/for (i = 0; in; i+) /*向student文件中写入信息*/if (fwrite(&stui, sizeof(struct student), 1, fp) != 1)printf(文件写入错误n);fclose(fp); /*关闭文件*/printf(nnnnttt学生信息保存成功!n);printf(nnnnttt按任意键返回菜单!);getch();void look() /*定义查看函数*/system(CLS);int i;/n=openl(); /*调用openl函数*/printf(t学号t姓名t性别t英语t数学t语文t平均成绩t总成绩n);for (i = 0; in; i+) /*输出所有的学生信息*/printf(%10st%st%2st%dt%dt%dt%3.1ftt%6.1fn, stui.num, stui.name,stui.sex, stui.english, stui.math, stui.chinese, stui.aver, stui.sum);printf(nnnttt按任意键返回菜单);getch();void search_name() /*按姓名查看函数*/system(CLS);int i;char name20; /*声明字符数组*/printf(ttt请输入学生姓名:n);scanf(%s, name);printf(t学号t姓名t性别t英语t数学t语文t平均成绩t总成绩n);for (i = 0; in; i+)if (strcmp(stui.name, name) = 0) /*将输入的姓名与结构体中的姓名进行比较*/printf(%10st%st%2st%dt%dt%dt%3.1ftt%6.1fn, stui.num, stui.name,stui.sex, stui.english, stui.math, stui.chinese, stui.aver, stui.sum);printf(nnnttt按任意键返回菜单);getch();void search_number() /*定义按学号查看函数*/system(CLS);int i;char number15; /*声明字符数组*/printf(ttt请输入学号:n);scanf(%s, number);printf(t学号t姓名t性别t英语t数学t语文t平均成绩t总成绩n);for (i = 0; in; i+)if (strcmp(stui.num, number) = 0) /*将输入的学号与结构体中的学号进行比较*/printf(%10st%st%2st%dt%dt%dt%3.1ftt%6.1fn, stui.num, stui.name,stui.sex, stui.english, stui.math, stui.chinese, stui.aver, stui.sum);printf(nnnttt按任意键返回菜单);getch();void order() /*定义排序函数*/system(CLS);int i, j;char a;struct student temp; /*声明结构体变量*/printf(t学号t姓名t性别t英语t数学t语文t平均成绩t总成绩n);for (i = 0; in; i+) /*对数据进行排序*/for (j = i + 1; jn; j+)if (stui.sumstuj.sum)temp = stui;stui = stuj;stuj = temp;printf(%10st%st%2st%dt%dt%dt%3.1ftt%6.1fn, stui.num, stui.name,stui.sex, stui.english, stui.math, stui.chinese, stui.aver, stui.sum);getch();printf(是否保存?(y or n);getchar();scanf(%c, &a);if (a = y) /*是否保存排序后的文件*/save();elseprintf(退出);getch();void del() /*定义删除学生信息函数*/int i;char a;char name20;system(CLS);printf(ttt输入学生名字:n);scanf(%s, name);system(CLS);printf(t学号t姓名t性别t英语t数学t语文t平均成绩t总成绩n);for (i = 0; in; i+)if (strcmp(stui.name, name) = 0)printf(%10st%st%2st%dt%dt%dt%3.1ftt%6.1fn, stui.num, stui.name,stui.sex, stui.english, stui.math, stui.chinese, stui.aver, stui.sum);getch();printf(真的删除?(y or n);getchar();scanf(%c, &a);if (a = y) /*是否删除该信息*/for (; in; i+)stui = stui + 1;n = n - 1;printf(你已经删除信息);elseprintf(退出);getch();save();int openl() /*定义打开文件函数*/system(CLS);int i;FILE *fp;if (fp = fopen(student.txt, rb) = NULL)printf(Cannot open file.n);exit(0);for (i = 0; !feof(fp); i+)fread(&stui, sizeof(struct student), 1, fp);fclose(fp);return(i - 1);void see() /*打开并查看文件*/system(CLS);int i;n = openl();printf(文件打开成功!n);printf(按任意键查看!n);getch();printf(t学号t姓名t性别t英语t数学t语文t平均成绩t总成绩n);for (i = 0; i n; i+) /*输出所有的学生信息*/printf(%10st%st%2st%dt%dt%dt%3.1ftt%6.1fn, stui.num, stui.name,stui.sex, stui.english, stui.math, stui.chinese, stui.aver, stui.sum);printf(nnnttt按任意键返回菜单);7程序运行结果8编程中遇到的困难及解决方法1.函数应该先定义再使用,若先使用再定义必须要进行函数声明; 2.在必要时为了使用方便明了,在合适的地方需要进行解释说明, 3在编写程序时,尽量使程序简洁明了,才可以使后续修改更加方便; 4.在编写程序是为了使最后的结果简介,可以使在合适的地方进行清屏的程序; 5.在输入学生信息时,为使输入的信息清晰,可以再适当的地方进行换行等程序 6.在插入学生信息时,必须要开辟新的空间存放,然后再进行插入; 7.当编程结束时,应该进行适当的后续细节调整,使程序输入时更加方便明了;9总结心得及良好建议通过此次为期一周的课程设计实训课,我更加了解了关于C语编程以及程序书写的更多的知识,虽然计算机二级已经成功考过,但是在当初的C语课时仍然留下了许多问题,比如结构体,以及连接,通过此次课程,我巩固了在C语课中遗留的问题,并且使当初遗忘了的知识点更加明了。这次课程设计,我成功的创建了一个信息管理的系统,在编写这个系统过程中,我遇见了颇多的问题,比如,无法显示出结果或者直接是无法运行,在经过严密的程序检查后,一般发现我的问题主要是细节上的问题,如scanf后没有加&,或者是在个别语句后面忘记加 ;,在此次设计过程中虽然遇见了一些问题,但总体还是成功的,在编写程序的过程中,细节明显更加重要,细节决定成败,通过此次课程也让我的链表知识更加的清晰明了。10致谢软件设计报告正文范例 1.题目描述题目:学生信息管理系统实习时间:2015.1【问题描述】 学生信息包括:记录编号、学号、姓名、出生日期(年、月)、学院、专业、年级、班级【基本要求】A、 从学生信息文件中读取已有的课程信息,并实现屏幕显示B、 能通过学号对已有的学生信息进行修改,要求学号不能修改,其他信息内容都可改,修改的结果保存至学生信息文件C、 实现对学生信息的统计(分学院统计各专业学生数量)并排序显示D、 实现对学生信息的查询显示(查询条件分为学号、专业、班级)E、 新学生信息的添加并保存至学生信息文件F、 学生信息的删除,根据学号,删除指定学生信息,并将结果写入文件。G、 每增加一条记录,记录编号自动加1。需求分析(1)xxxx(2)xxxx(3)测试数据:xxxxx,输出结果应为:xxxxxxxxxxxxxxxx。2设计思路2.1总体设计2.1.1设计思想(1)数据结构设计根据问题描述,可采用结构体。结点结构:定义如下:struct student /*定义学生信息的结构体类型*/char num15; /*学号*/char name20; /*姓名*/char sex4; /*性别*/int english; /*英语成绩*/int math; /*数学成绩*/int chinese; /*语文成绩*/float aver; /*平均成绩*/float sum; /*总成绩*/stu100;(2)文件结构设计总共有如下文件:xxxxxxxx,各个文件的定义是:xxxxxx(3)基本思想a. 主函数一直循环实现当前功能.。b. 利用函数调用来实现功能。2.2 模块设计(1)过程或函数调用关系图(流程图)附图(3)模块接口说明(解释所写函数的作用,写函数的声明原型及其注释。)xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2.3函数的功能实现(1) xxxxxxxxxxxxxxx(2) xxxxxxxxxxxxxxxxxxxx2.4 算法设计核心算法的实现(写代码段和注释)xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3运行结果输入测试数据,输出结果为xxxxxxxxxxxxxx,屏幕截图。3.1使用手册(1)如何输入数据xxxxxxxxxxx(2)各个功能键的用法等等。3.2结果分析(1)优点分析:xxxxxxxx(2)缺点分析:xxxxxxxxxxxxxxxxxxxxxxxxxxx(3)改进的方法:xxxxxxxxxxxx
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!