学生借阅系统课程设计.doc_第1页
学生借阅系统课程设计.doc_第2页
学生借阅系统课程设计.doc_第3页
学生借阅系统课程设计.doc_第4页
学生借阅系统课程设计.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

课程设计(大作业)报告课程名称:程序设计语言 设计题目: 学生借阅系统 院 系: 自动化控制与机械工程学院 班 级: 机制(2)班 设 计 者: 迟宽广 龚正雄 谭小春 学 号: 201204100203201204100207201204100228指导教师: 赵卿 设计时间: 2013-7-12013-7-12昆明学院课程设计(大作业)任务书姓 名:迟宽广 龚正雄 谭小春院(系):自机学院专 业:机械设计制造及其自动化学 号:201204100203 、201204100207、201204100228任务起止日期:2013-7-12013-7-12课程设计题目:学生借阅系统课程设计要求: 设计一个学生借阅系统,功能包括:学生管理子系统,由管理员负责录入信息(包括学号、姓名、学院名、图书名等信息),删除学生信息等功能;学生借阅子系统(保存用户名、借阅书的编号、书名等信息),负责学生借阅、归还、续借、超期罚款等功能;查询子系统,包括可以查询学生库中的借阅图书、学生借阅情况等,信息保存到文件中。工作计划及安排:第十八周:问题分析,方案设计,软件编码和调试;第19周: 软件测试,书写课程实验设计报告,答辩。指导教师签字 2013年 7 月 9 日 课程设计(大作业)成绩学号:201204100203 姓名:迟宽广 指导教师:赵卿课程设计题目:学生借阅系统总结:通过一段时间的编程实践,使我c语言的知识了解的更加深刻,知识面更加宽广。同时,在编程实践中遇到了很多困难,明显的了解到自己知识运用能力的不足,通过查书和与同学交流,使我取得了很大的进步。指导教师评语:成绩:123456填表时间:指导教师签名:课程设计(大作业)报告一、 题目分析设计一个学生借阅系统,功能包括:学生管理子系统,由管理员负责录入信息(包括学号、姓名、学院名、图书名等信息),删除学生信息等功能;学生借阅子系统(保存用户名、借阅书的编号、书名等信息),负责图书的借阅、归还、续借、超期罚款等功能;查询子系统,包括可以查询学生库中的书、学生借阅情况等;信息保存到文件中。二、 基本理论1, 建立一个关于图书的结构体,内含ISBN号,书名,作者,出版社和价格。2, InsertDoc函数,负责新书信息的插入。3, void sort_maopao函数,用冒泡法将图书的ISBN号以由小到大的顺序进行排列。 4, void DeleteDoc函数,将废旧图书信息进行删除。5, void Print_Book_Doc函数,输出图书的信息,方便读者选书。6, void search_book函数,进行图书的查询。7, void info_change函数,将图书信息进行修改。8, 主函数,用switch-case结构进行函数的调用。三、 总体设计1、 软件模块设计学生借阅系统学生排序学生借阅学生信息删除学生信息查询学生信息修改学生信息浏览学生信息录入 图2-2-12、软件界面设计 图2-3-1四、 实验器材开发工具:Visual C+ 6.0, CodeBlock10.05,等环境:Windows 7操作系统。五、 方法步骤(程序调试)1 调试方案选择1,输入201204100203 迟宽广 自机学院 钢铁事怎样炼成的 001 201204100207 龚正雄 自机学院 成功的男人 002 201204100228 谭小春 自机学院 爱情三十六计 003选择2,输出图3-2-1选择7,输出图3-2-2 2. 调试结果 图3-2-1图3-2-2六、 成效分析在编程实践中,我才知道自己基础知识的不足,通过一段时间的努力学习,我的基础知识更加牢固,尤其是后面指针,结构体,链表,文件的知识了解的更加深入。其次是知识的运用,以前学到的知识都是片面的了解,一到编程序时就无从下手,现在能熟练的应用各种知识,使知识得到应用。最后是编程的技巧,从整体构型到各个函数的应用都有了很大的进步。七、 参考文献1c语言程序设计,马秀丽,李筠著。清华大学出版社.2008.12c程序设计(第三版),谭浩强著,清华大学出版社.2005.73面向对象程序设计(c+语言),李爱华,程磊著,清华大学出版社.2010,2八、 源代码#includestdio.h#includemath.h#includestring.h#includestdlib.hstruct books_list char writer20; /*学院名*/ char title20; char ISBN20; /*姓名*/ char publishinghouse20; /*图书名*/ int price,borrowed; /*图书编号*/ struct books_list * next; /*链表的指针域*/; struct books_list * Create_Books_Doc(); /*新建链表*/void InsertDoc(struct books_list * head); /*插入*/void sort_maopao(struct books_list * head ); / 排序void DeleteDoc(struct books_list * head , int num); /*删除*/void Print_Book_Doc(struct books_list * head); /*浏览*/void search_book(struct books_list * head); /*查询*/void info_change(struct books_list * head); /*修改*/void save(struct books_list * head); /*保存数据至文件*/ /*新建链表头节点*/struct books_list * Create_Books_Doc() struct books_list * head; head=(struct books_list *)malloc(sizeof(struct books_list); /*分配头节点空间*/ head-next=NULL; /*头节点指针域初始化,定为空*/ return head; /*保存数据至文件*/void save(struct books_list * head) struct books_list *p; FILE *fp; p=head; fp=fopen(data.txt,w+); /*以写方式新建并打开 data.txt文件*/ fprintf(fp, -学 号-姓 名-学 院 名-图 书 名-借 阅 图 书 编 号 n); /*指针从头节点开始移动,遍历至尾结点,依次输出学生借阅信息*/ while(p-next!= NULL) p=p-next; fprintf(fp,%-6.6s %-15.10s %-10.10s %-10.10s %-10.10dn,p-ISBN,p-title,p-writer,p-publishinghouse,p-price); fprintf(fp,n); fclose(fp); printf( 已将学生数据保存到 data.txt 文件n);void sort_maopao(struct books_list * head ) struct books_list *tail,*p,*q,*p1,*t; /p1等于head t等于head q保存p的next节点 p1=(struct books_list *)malloc(sizeof (struct books_list); for(t=head-next;t!=NULL;t=t-next) for(p=head-next,p1=head;p-next!=NULL;p=p-next,p1=p1-next) if(strcmp(p-ISBN,p-next-ISBN)0) q=p-next-next; tail=p-next; tail-next=NULL; p-next=q; p1-next=tail; tail-next=p; p=p1; save(head); /保存文件 /*插入*/void InsertDoc(struct books_list *head) /*定义结构体指针变量 s指向开辟的新结点首地址 p为中间变量*/ struct books_list *s, *p; char flag=Y; /*定义flag,方便用户选择重复输入*/ p=head; /*遍历到尾结点,p指向尾结点*/ while(p-next!= NULL) p=p-next; /*开辟新空间,存入数据,添加进链表*/ while(flag=Y|flag=y) system(cls); p-borrowed=0; s=(struct books_list *)malloc(sizeof(struct books_list); printf(n 请输入学生学号:); fflush(stdin); scanf(%s,s-ISBN); printf(n 请输入学生姓名:); fflush(stdin); scanf(%s,s-title); printf(n 请输入学生学院名:); fflush(stdin); scanf(%s,s-writer); printf(n 请输入借阅图书名:); fflush(stdin); scanf(%s,s-publishinghouse); printf(n 请输入借阅图书编号:); fflush(stdin); scanf(%d,s-price); printf(n); p-next=s; /*将新增加的节点添加进链表*/ p=s; /*p指向尾节点,向后移*/ s-next=NULL; printf( 添加成功!); printf(n 继续添加?(Y/N):); fflush(stdin); scanf(%c,flag); printf(n); if(flag=N|flag=n) break; else if(flag=Y|flag=y) continue; save(head); /*保存数据至文件*/ system(cls); return;/*查询操作*/void search_book(struct books_list *head) struct books_list * p; char temp20; p=head; if(head=NULL | head-next=NULL) /*判断数据库是否为空*/ printf( 学生库为空!n); else printf(请输入您要查找的书名: ); fflush(stdin); scanf(%s,temp); /*指针从头节点开始移动,遍历至尾结点,查找学生借阅信息*/ while(p-next!= NULL) p=p-next; if(strcmp(p-title,temp)=0) printf(n学生信息已找到!n); printf(n); printf(学号: %stn,p-ISBN); printf(姓名: %stn,p-writer); printf(学院名: %stn,p-writer); printf(图书名: %stn,p-publishinghouse); printf(图书编号: %.2dtn,p-price); if(p-next=NULL) printf(n查询完毕!n); return; /*浏览操作*/ void Print_Book_Doc(struct books_list * head) struct books_list * p; if(head=NULL | head-next=NULL) /*判断数据库是否为空*/ printf(n 没有学生借阅记录! nn); return; p=head; printf(nnntt学号 姓名 学院名 图书名 图书编号 n); /*指针从头节点开始移动,遍历至尾结点,依次输出学生借阅信息*/ while(p-next!= NULL) p=p-next; printf(tt%-7.6s %-13.10s %-10.10s %-10.10s %d n,p-ISBN,p-title,p-writer,p-publishinghouse,p-price); printf(n); /*修改操作*/void info_change(struct books_list * head) struct books_list * p; int panduan=0; /*此变量用于判断是否找到学生信息*/ char temp20; p=head; printf(请输入要修改的姓名:); scanf(%s,temp); while(p-next!= NULL) p=p-next; if(strcmp(p-title,temp)=0) printf(n 请输入学生学号:); fflush(stdin); scanf(%d,p-ISBN); printf(n 请输入学生姓名:); fflush(stdin); scanf(%s,p-title); printf(n 请输入学生学院名:); fflush(stdin); scanf(%s,p-writer); printf(n 请输入图书名:); fflush(stdin); scanf(%s,p-publishinghouse); printf(n 请输入借阅图书编号:); fflush(stdin); scanf(%d,p-price); printf(n); panduan=1; if(panduan=0) printf(n 没有学生借阅记录! nn); return;void book_borrow(struct books_list * head) struct books_list * p; int panduan=0; /*此变量用于判断是否找到学生信息*/ char temp20; p=head; printf(请输入姓名:); scanf(%s,temp); while(p-next!= NULL) p=p-next; if(strcmp(p-title,temp)=0)(p-borrowed=0) p-borrowed=1; panduan=1; printf(借阅成功 n); if(panduan=0) printf(n 没有该学生信息! nn); return;/*删除操作*/void DeleteDoc(struct books_list * head) struct books_list *s,*p; /*s为中间变量,p为遍历时使用的指针*/ char temp20; int panduan; /*此变量用于判断是否找到了学生信息*/ panduan=0; p=s=head; printf( 请输入您要删除的姓名:); scanf(%s,temp); /*遍历到尾结点*/ while(p!= NULL) if(strcmp(p-title,temp)=0) panduan+; break; p=p-next; if(panduan=1) for(;s-next!=p;) /*找到所需删除卡号结点的上一个结点*/ s=s-next; s-next=p-next; /*将后一节点地址赋值给前一节点的指针域*/ free(p); printf(n 删除成功! n); else /*未找到相应学生姓名*/ printf( 您输入的姓名不存在,请确认后输入!n)

温馨提示

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

评论

0/150

提交评论