《C语言集中上机》报告..doc_第1页
《C语言集中上机》报告..doc_第2页
《C语言集中上机》报告..doc_第3页
《C语言集中上机》报告..doc_第4页
《C语言集中上机》报告..doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言集中上机报告学生记录管理系统 院 系: 通信与信息工程学院 班 级: 0101110 姓 名: 黄滟洪 合 作 者: 无 指导教师: 冯潇 2011 年 12 月 18 日目 录一概述2二总体方案设计3三详细设计4四程序的调试与运行结果说明4五课程设计总结4六后记5七附录5参考文献10一 概述1. 课程设计的目的学会运用C语言的知识,实现学生记录管理。检验我们是否学会运用所学知识,解决实际问题。巩固C语言知识。为综合应用C语言程序设计理论知识、进一步提高学生综合解决问题、协调工作的能力和良好的软件开发习惯,特安排本实验内容。希望通过该实习能够进一步激发学生的学习热情,培养学生初步编程的能力,为后续的学习和发展奠定基础。2. 课程设计的要求(1)题目要求:a、设一个通信录由以下几项数据信息构成: 数据项 类型 姓名 字符串 地址 字符串 邮政编码 字符串 电话号码 字符串试为通信录数据定义类型和定义通信录变量, 实现功能:存取、显示、删除记录、查询记录等功能。b、要求:界面友好,易于操作 (2)知识和技能的要求:A.能熟练运用结构体和指针B.掌握函数调用的知识C.能灵活使用输入输出函数课程设计的主要设计思想 运用所学的C语言知识,查阅书籍,询问老师同学等方式编写代码实现“学生记录存取”、“学生记录显示”、“学生记录删除”、“学生记录查询”等功能。二 总体方案设计运用所学C语言知识实现“学生记录存取”、“学生记录显示”、“学生记录删除”、“学生记录查询”的功能。编写输入函数input、输出函数output、删除函数delete、查找函数search,在主函数中通过对编写函数的调用实现实验要求功能。 在本次设计工程中我所承担的设计工作是,编写代码实现实现“学生记录存取”、“学生记录显示”、“学生记录删除”、“学生记录查询”功能、编写完成后进行调试、调试后出现错误就进行修改错误、最后运行整个程序。三 详细设计1、 功能一:学生记录存取 主要用到函数input,还有for循环,最后用到函数调用。2、 功能二:学生记录显示和功能一相似此功能主要用到函数output,还有for循环,最后用到函数调用。3、 功能三:学生记录删除该功能主要函数delete,找到学生记录并完成删除。在delete函数中有主要用到for循环和if语句。当然在主函数中依然要用到函数调用。4、 功能四:学生记录查询此功能主要用到函数sort按学生的姓名对学生进行升序排列,在函数sort中也有for循环和if语句的使用;除此之外还有search函数按姓名进行查找;最后在主函数中用到函数调用。程序流程图: 编辑input、output、delete、sort函数,主函数,主函数进行函数调用。四 程序的调试与运行结果说明程序运行之后显示出,要求的几大功能。即:“学生记录存取”、“学生记录显示”、“学生记录删除”、“学生记录查询”。根据提示步骤,可以实现以上几大功能。1.学生记录存取:2.学生记录显示:3.学生记录删除:4.学生记录查询:五 课程设计总结经过努力我的“学生记录管理”总算编写完成。基本达到了实验要求,只是“学生记录存取”这个功能还有待提高,录入记录后不知怎么进行下一步。我进一步设想,精简程序源代码,使其更简洁,完善“学生记录存取功能”。当然,在编写程序的过程中遇到了很多困难。在编写“学生记录删除”部分时,遇到此程序中最困难的问题:不管怎么写总是有错,调试以后也不知错误具体是什么,怎么改?无奈之下,我只好先把此功能放在一边,编写其他部分,在回过头来,研究这部分经过翻书问同学,终于把“学生记录删除”部分编写完成。 除次之外,由于程序代码太多,显得很混乱。经过梳理终于把它理清。六 后记通过这次编写代码实现学生记录的管理,我更加深刻的理解到了结构体的重要性,体会到使用指针带来的便利。整个编写过程并不是一帆风顺的,调试过程总是有错,改了很多次才改正确,特别是“学生记录删除”函数delete,怎么改都有错,通过翻书不断的更改最后终于把它该正确了。在老师同学的帮助下,以及自己的不懈努力下,终于完成了对程序代码的编写,我从中也学到了大量的知识,算法,在以后的学习过程中,我会多加深自己对写程序的动手能力,以及培养自己相处算法的能力,让自己的C语言有更大得进步。这次完成对通讯录的设计,我主要运用到了C语言中结构体部分的知识,以及指针的部分知识,同时运用了模块化设计的思想,让整个程序的逻辑性与可读性大大提高。链表同时,对结构体语句的把握以及运用也是完成这一程序的难点之一。这次自己动手写程序让我收获颇多,我也意识到了C语言学习对我以后工作的重要性。以后我会积极培养自己对写程序的兴趣程度,让自己驾驭C语言的能力得到提高.感谢老师与同学的帮助!七 附录全部代码及注释#include#include#include#include#define N 3struct studentchar name20;char phonenumber20;char adress20;char youbian20;typedef struct student student;void Add() student *p,*q; int i; if(q=(student *)malloc(sizeof(student)=NULL) exit(1); printf(请输入要添加的信息!n); printf(姓名:n); /添加信息 scanf(%s,&); printf(电话:n); scanf(%s,qi.phonenumber); printf(通讯地址:n); scanf(%s,qi.adress); printf(邮编:n); scanf(%s,qi.youbian); printf(此信息已添加!); return;void output(student *p,int n)/输出函数int i; puts(n学生记录如下:);for(i = 0;i n;i+)printf(%20s%20s%20s%20sn,,pi.phonenumberi,pi.adress,pi.youbian);void sort(student *p,int n)/按学生姓名升序排列int i,j,k;student temp;for(i = 0;i n - 1;i+)k = i;for(j = i + 1;j n;j+)if(strcmp( ,) 0)k = j;if(k != i)temp = pi;pi = pk;pk = temp;student * search(student *p,int n)/按学生姓名进行查找char name20;puts(请输入查询学生姓名:);fflush(stdin);gets(name);int i, flag = 0;for(i = 0;i n & !flag;i+)if(strcmp(name,) = 0)flag = 1;return p + i;return NULL; int Delete(student *p,int n,char *pn)/删除学生记录int i,pos,flag = 0;for(i = 0;i n & !flag;i+)if(strcmp(,pn) = 0)pos = i;flag = 1;for(i = pos;i n - 1;i+)pi = pi + 1;return flag; void Menu()puts(*学生记录管理*);puts(请选择功能:);puts(1.学生记录存取);puts(2.学生记录显示);puts(3.学生记录删除);puts(4.学生记录查询); puts(0.退出);int choice()int key;printf(请选择功能:);scanf(%d,&key);return key;int main()student uN,*p = NULL;int key,n;char temp20; doMenu();key = choice();fflush(stdin);switch(key)case 1:printf(请输入你想录入的学生人数:);scanf(%d,&n);n = (n = N) ? n : N;Add();sort(u,n);break; case 2:output(u,n);break; case 3:printf(请输入要删除学生的姓名:);gets(temp);if(!Delete(u,n,temp)printf(未找到该学生!n);elsesort(u,n -= 1);output(u,n);break;case 4:p = search(u,n);if(!p)printf(该学生不存在!);elseoutput(p,1);break; case 0:exit(EXIT_SUCCESS);break;de

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论