欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    C语言课程设计 读者信息管理系统.doc

    • 资源ID:865383       资源大小:288.26KB        全文页数:24页
    • 资源格式: DOC        下载积分:10积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要10积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言课程设计 读者信息管理系统.doc

    1、通信工程C语言强化训练实验报告目录读者信息管理程序11、 强化训练目的12、 设计题目功能13、 设计题目要求14、 程序流程图25、主要代码106、 强化训练心得体会23读者信息管理程序1、 强化训练目的a) C语言基本知识的巩固和综合运用。基本数据类型、基本控制结构、数组、指针、函数、结构体和共用体。b) C语言高级编程。链表基本操作、文件的基本操作、图形和声音制作。c) 程序的结构化设计。d) 编辑、设置、编译、调试、执行。e) C语言结合实际问题的综合设计。2、 设计题目功能通过计算机对数据文件的存储和读取,实现对读者信息进行存储和管理,以及完成读者信息的增、删、改、查找等功能。3、

    2、设计题目要求 读者信息至少包括学号、姓名、读者等级、借阅书刊编号、到期日期等基本信息。要求: 1有主界面和主菜单 2用链表存放读者信息 3可以实现按学号、姓名查询和统计并在屏幕上输出查询结果 4友好的界面和操作提示A信息录入 D信息删除F信息查询Q退出4、 程序流程图传统流程图:菜单函数录入信息显示信息查找信息删除信息存储信息读取信息 录入信息 显示信息 查询信息 删除信息5、主要代码#include StdAfx.h#include /*头文件*/#include#include /*其它说明*/#include /*字符串函数*/#include /*内存操作函数*/#include /*

    3、字符操作函数*/#include /*动态地址分配函数*/#include #define LEN sizeof(STUDENT)FILE *fp;typedef struct Dayint year;int mon;int day; DAY;typedef struct stu /*定义结构体数组用于缓存数据*/ char num9; char name9; char sex3; char level2;char serialnum9; DAY lendnum; struct stu *next;STUDENT;STUDENT *p;STUDENT *init(); /*初始化函数*/int

    4、 menu_select(); /*菜单函数*/STUDENT *create(); /*创建链表*/void print(STUDENT *head); /* 显示全部记录*/void search(STUDENT *head); /*查找记录*/STUDENT *del(STUDENT *head); /*删除记录*/STUDENT *sort(STUDENT *head); /*排序*/void save(STUDENT *head); /*保存文件*/STUDENT *load(); /*读文件*/void main() STUDENT *head; head=init(); /*链表

    5、初始化,使head的值为NULL*/ for(;) /*循环无限次*/ switch(menu_select() case 1:head=create();break; case 2:print(head);break; case 3:search(head);break; case 4:head=del(head);break; case 5:save(head);break; case 6:head=load(); break; case 7:exit(0); /*如菜单返回值为7则程序结束*/ STUDENT *init() /*初始化函数*/ return NULL; /*返回空指针*

    6、/menu_select() /*菜单选择函数*/int n; printf(n); printf( n); printf( n); printf( * * 读 者 信 息 管 理 * * n); printf( n); printf( made by ChengTingTing n); printf( n); printf( n); printf( n); printf( 1、录入读者信息 2、显示读者信息 n); printf( n); printf( 3、查询读者信息 4、删除读者信息 n); printf( n); printf( 5、保存读者信息 6、读取读者信息 n); print

    7、f( n); printf( 7退出系统 n); printf( n); printf( n); /用户界面 printf(n); printf( 请选择您需要的操作序号(1-7)并按回车确认:); do scanf(%d,&n); while(n7); /*如果选择项不在17之间则重输*/ return(n); /*返回选择项,主函数根据该数调用相应的函数*/ STUDENT *create()STUDENT *head=NULL,*p; /* 定义函数.此函数带回一个指向链表头的指针*/ char ch; system(cls); for(;) p=(STUDENT *)malloc(LE

    8、N); /*开辟一个新的单元*/ fp=fopen(40906.dat,ab); fwrite(&p,sizeof(struct stu),1,fp); if(!p) /*如果指针p为空*/ printf(n内存溢出.); /*输出内存溢出*/ return (head); /*返回头指针,下同*/ printf(请输入学号(0:list end):); /*提示输入学号*/ scanf(%s,&p-num); printf(请输入姓名:); scanf(%s,&p-name); printf(请输入性别:); /*提示开始输入性别*/ scanf(%s,&p-sex); printf(请输入

    9、读者等级:); scanf(%s,&p-level); printf(请输入借阅书刊编号:); scanf(%s,&p-serialnum); printf(请输入借阅书刊到期时间(YYYY-MM-DD):); scanf(%d-%d-%d,&p-lendnum.year,&p-lendnum.mon,&p-lendnum.day); p-next=head; /*将头结点做为新输入结点的后继结点*/ head=p; /*新输入结点为新的头结点*/ printf(n是否继续输入?Y/Nn); scanf(%s,&ch); if(ch=N|ch=n) return(head); getchar(

    10、); fclose(fp);/*显示函数*/void print(STUDENT *head)fp=fopen(40906.dat,r);fread(&p,sizeof(struct stu),1,fp);int i=0; /* 统计记录条数*/ STUDENT *p; /*移动指针*/ system(cls); p=head; /*初值为头指针*/ printf(n*STUDENT*n); printf(-n); printf(| 序号 | 学号 | 姓名 | 性别 | 等级 | 书刊编号 | 到期日期|n); printf(-n); while(p!=NULL) i+; printf(|

    11、%3d | %4s | %-4s | %3s | %3s | %-4s | %4d-%2d-%2d|n, i, p-num,p-name,p-sex,p-level,p-serialnum,p-lendnum.year,p-lendnum.mon,p-lendnum.day); p=p-next; printf(-n); printf(*END*n); getchar();/*等待用户输入回车显示返回菜单命令*/printf(按回车键返回主菜单!);getchar();/*等待用户查看命令,按回车键返回*/fclose(fp);/*关闭文件*/void search(STUDENT *head

    12、) fp=fopen(40906.dat,r); fread(&p,sizeof(struct stu),1,fp);char type;char *no; char s9=0; system(cls); STUDENT *p; /* 移动指针*/ p=head;if (p=NULL)printf(请先录入学生信息n);return;printf(请选择查询方式(1、按学号n2、按姓名):);scanf(%d,&type);if (type=1)printf(请输入学号:); scanf(%s,&no);while (p)if (strcmp(p-num,no)=0)print(p);retu

    13、rn;p=p-next;printf(没有找到该学号学生信息n);return;else if (type=2)printf(请输入学生姓名:);fflush(stdin);gets(s);while (p)if (strcmp(p-name,s)=0)print(p);return;p=p-next;printf(没有找到该学生信息n);return;STUDENT *del(STUDENT *head) fp=fopen(40906.dat,r); fread(&p,sizeof(struct stu),1,fp); int n; STUDENT *p,*p2; /*p为查找到要删除的结点

    14、指针,p2为其前驱指针*/ char c,s9; /*s9用来存放学号*/p=head-next;/*给p和p2赋初值头指针*/p2=head; system(cls); printf(请输入要删除的学号: ); scanf(%s,s);while(p&p-num!=s) p2=p; p=p-next; if(p-num=s) /*学号找到了*/ printf(*FOUND*n); printf(-n); printf(| 学号 | 姓名 | 性别 | 等级 | 书刊编号 | 到期日期|n); printf(-n); printf(-n); printf(|%4s | %-4s | %3s |

    15、 %3s | %-4s | %4d-%2d-%2d|n, p-num,p-name,p-sex,p-level,p-serialnum,p-lendnum.year,p-lendnum.mon,p-lendnum.day); printf(-n); printf(确定删除该读者吗 Y/N ?); /*提示是否要删除,输入Y删除,N则退出*/ for(;) scanf(%c,&c); if(c=n|c=N) break; /*如果不删除,则跳出本循环*/ if(c=y|c=Y) if(p=head) /*若p=head,说明被删结点是首结点*/ head=p-next; /*把第二个结点地址赋予

    16、head*/ else p2-next=p-next; /*否则将一下结点地址赋给前一结点地址*/ n=n-1; printf(n该读者已被删除.n); printf(不要忘记储存.n);break; /*删除后就跳出循环*/ else printf(n信息表中没有该读者.n); /*找不到该结点*/ return(head); getchar(); printf(按回车键返回主菜单!); getchar(); fclose(fp);void save(STUDENT *head) FILE *fp; /*定义指向文件的指针*/ STUDENT *p; /* 定义移动指针*/ if(fp=fo

    17、pen(40906.dat,wb)=NULL) /*为输出打开一个二进制文件,为只写方式*/ printf(Cannot open the filen); return; /*若打不开则返回菜单*/ printf(nSaving the file.n); p=head; /*移动指针从头指针开始*/ while(p!=NULL) /*如p不为空*/ fwrite(&p,LEN,1,fp); /*写入一条记录*/ p=p-next; /*指针后移*/ fclose(fp); /*关闭文件*/ printf(Save the file successfully!n); getchar();/*等待

    18、用户输入回车显示返回菜单命令*/ printf(按回车键返回主菜单!); getchar();/*等待用户查看命令,按回车键返回*/STUDENT *load() STUDENT *p1,*p2,*head=NULL; /*定义记录指针变量*/ FILE *fp; /* 定义指向文件的指针*/ if(fp=fopen(40906.dat,rb)=NULL) /*打开一个二进制文件,为只读方式*/ printf(Can not open the file.n); return(head); printf(nLoading the file!n); p1=(STUDENT *)malloc(LEN

    19、); /*开辟一个新单元*/ if(!p1) printf(Out of memory!n); return(head); head=p1; /*申请到空间,将其作为头指针*/ while(!feof(fp) /*循环读数据直到文件尾结束*/ if(fread(p1,LEN,1,fp)!=1) break; /*如果没读到数据,跳出循环*/ p1-next=(STUDENT *)malloc(LEN); /*为下一个结点开辟空间*/ if(!p1-next) printf(Out of memory!n); return (head); p2=p1; /*使p2指向刚才p1指向的结点*/ p1

    20、=p1-next; /*指针后移,新读入数据链到当前表尾*/ p2-next=NULL; /*最后一个结点的后继指针为空*/ fclose(fp); printf(You have success to read data from the file!n); return (head); getchar(); printf(按回车键返回主菜单!); getchar();6、 强化训练心得体会 通过此次的课程设计,我对C语言又有了更加全面、更加系统、更加深刻的认识特别是对于链表,结构体,结构体数组,结构体数组指针,switch语句,strcmp函数,文件的创建,打开及使用,main函数对于其它函数的调用,main函数的主体作用以及统筹功能,都有了一个比较较直观,比较形象的认识,以前思维中的模糊地代码一下子变得清晰和形象了。并且我还充分体会到了从事软件的开发工作需要特别严谨认真的态度,一点都马虎不得。对待每一个细节都需高度的认真,否则会使后面的程序接连错误,对后面的工作影响很大,甚至可能会重新来做。在设计程序的工程中,还要能够解决一些问题,当我不能独自解决时,我会先寻找资料或与组员讨论,再向他人寻求解决方法。 系统的最终测试达到了良好的效果,编程思路清晰,界面操作简单,功能较为完善。这次的C语言的课程设计,是我能更好地运用自己已学过的知识,为我将来的学习打下了坚实的基础。 24


    注意事项

    本文(C语言课程设计 读者信息管理系统.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922