C语言程序设计_题库管理系统_第1页
C语言程序设计_题库管理系统_第2页
C语言程序设计_题库管理系统_第3页
C语言程序设计_题库管理系统_第4页
C语言程序设计_题库管理系统_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、程序设计基础课程设计报告班 级: 计算机科学与技术 1103 班 姓 名:杨广宇指导教师 :胡宏涛完成日期:2012年9 月6日题目)1 设计题目与要求(简要介绍课程设计题目内容与要求。 )1 设计内容 要求输入试题(仅限选择题和填空题)基本信息,实现试题浏览.,查询,修改功能,并将数据保存至文本文件。2 要求 功能完善,界面友好。2 算法设计与描述(要求有相关流程图)算法设计与描述 (描述算法设计、实现过程。 )1. 提供可操作的主菜单:输出主菜单,用户可根据菜单来选择操作。根据客户输入的 选项来运行不同的功能,运行不同的函数。2. 。试题信息的录入函数:按照提示输入题的题号,题目内容,并提

2、示用户是否继续 录入,每输入一个记录,全局变量 n 就自增,最后最为函数的返回值返回。3. 保存试题信息函数:将文件的所有数据通过fprintf 来写入指定文本文档,完成后关闭文件,没有返回值4. 载入试题信息函数: 通过 fopen 函数打开指定文件, 通过 fscanf 来读取文件里的数 据,最后返回记录数,避免了每次打开时都要输入数据的麻烦。5. 查询记录函数: 细分为按题号, 题目两种方式来进行查询记录, 并能对查询记录不 存在进行提示。遍历所有结构体找出符合的输出。6. 修改记录函数:首先判断用户要修改的试题序号是否存在,进行相应的系统提示, 然后遍历所有记录找出符合的,按照提示依次

3、进行修改项目,返回记录值不变(没增加也 没减少)。7. 删除记录函数:首先判断用户要删除的试题序号是否存在,进行相应的系统提示, 然后遍历所有记录找出符合的删除,冰讲后面的所有数据向前移动一个位置,记录数减一 并返回。主要流程图用 N S 图描述。)1,、输入函数2、保存函数3、载入函数4、查询函数5、修改函数6、删除函数3 设计软硬件环境硬件设备 系统: Microsoft Windows XP Professional 版本 2002 机型: Inter ? Core ? 2 Duo CPU E8400 , GB内存软件设备Microsoft Visual C+ 应用程序调试4 源程序代码

4、清单#include<>#include<>#include<>typedef struct char tihao10; printf("ttt printf("ttt 2.3.题目的浏览题目信息更改题目的输入 n"); n"); n");题目信息查询n");printf("ttt 5.题目文件操作 n");退出管理系统n");printf("ttt n");printf("ttt = n"); printf("ntt

5、请您选择 (0-5):");c=getchar();while(c<'0'|c>'5'); return(c-'0');void tihaosort(Data dat,int n) ihao,daj.tihao)>0) temp=dai;dai=daj;daj=temp; printf("tt= 排序成功 =n");void SaveText(Data dat,int n)fprintf(fp,"rn");fclose(fp);int LoadText(Data dat)录*/f

6、close(fp);return n;int Charu(Data dat,int n)printf("t 该记录已存在system("pause"); system("cls"); break;while(strcmp(datk.tihao,=0);printf("t 题目 :");scanf("t%s",;printf("t 请输入插入位置的题号 :"); scanf("t%s",s);while(strcmp(dati.tihao,s)!=0&&

7、;i<n) i+; if(i=n)ihao,dati.timu);/* 将换行符号写入文件 */ihao,dati.timu); /* 按格式读入记ihao,=0)请重新输入! n");/* 返回记录数 */* 输入插入位置的题号 */printf("t- return n;题库中没有记录,请查询后再操作!n");for(i=0;strcmp(dati.tihao,s)!=0;i+) ; printf("ntt* 插入成功! n");for(j=n-1;j>=i;j-)/* 从最后一个结点开始向后移动一条*/ strcpy(datj

8、+1.tihao,datj.tihao); /* 当前记录的题号拷贝到后一条 */ strcpy(datj+1.timu,datj.timu);strcpy(dati.tihao,; /* 将新插入记录的题号拷贝到第 i 个位置 */ strcpy(dati.timu,;n+; /* 记录数加 1*/ return n;int Shuru(Data dat,int n) ihao); printf("t 题目 :"); scanf("t%s",datn+i.timu); printf("nt 是否继续添加 (Y/N)"); scanf

9、("t%c",&ch);i+;return (n+i); ihao,dati.timu);/* 按格式输出 */printf(" n"); system("pause");int Shanchu(Data dat,int n)ihao,s)!=0&&i<n) i+; /* 查找要删除的记录题号 */if(i=n)printf("t 题库中没有此题 !n"); return(n);for(j=i;j<n-1;j+) imu,datj+1.timu); strcpy(datj.tih

10、ao,datj+1.tihao);printf("ttt 已经成功删除 !n");return(n-1);void Chazhao(Data dat,int n)ihao,s)!=0&&i<n) i+;if(i=n)printf("t 题库中没有此题 !n");return;printf("t 此题内容 n"); printf("t%5sn",dati.timu); ;void Biangeng(Data dat,int n) ihao,s)!=0&&i<n) i+;if

11、(i=n)printf("t 题库中没有此题 !n");return;printf("t 题号 :");scanf("t%s",dati.tihao);printf("t 题目 :");scanf("t%s",dati.timu);printf("nt 修改成功! ");void CopyText() ihao,tempi.timu); fprintf(fc,"%-8s%-6s",tempi.tihao,tempi.timu); fprintf(fc,&q

12、uot;rn"); /* 写入换行符 */fclose(fp);/* 关闭源文件 */fclose(fc);/* 关闭目标文件 */printf("tt 您已成功复制文件 !n");/* 主函数 */void main()int n=0;for(;)switch(menu_select()case 1:system("cls");n=Shuru(da,n);break;case 2: system("cls");int k;printf("ttt = 题库信息管理系统 = n");printf("

13、;tttn");printf("ttt1.显示全部题目 n");printf("ttt 2.按题号排序信息 n");printf("ttt0.返回上一级菜单 n");printf("tttn");printf("ttt = n"); printf("ntt 请选择: ");scanf("%d",&k);switch(k)case 1:库信息的修改n");printf("ttt 2.题库信息的删除n");pri

14、ntf("ttt 3.题库信息的插入n");printf("ttt 0.返回n");printf("ttt n");printf("ttt = n");printf("ntt 请选择: "); scanf("%d",&m);switch(m)case 1: system("cls");Biangeng(da,n);printf("t"); system("pause");break;case 2:system

15、("cls");n=Shanchu(da,n); /* 删除记录 */ printf("t");system("pause");break;case 3: system("cls");n=Charu(da,n);库信息的载入n");printf("ttt 2.题库信息的保存n");printf("ttt 3.题库信息的复制n");printf("ttt 0.返回n");printf("ttt printf("ttt = n&q

16、uot;); = n");printf("ntt 请选择: "); scanf("%d",&x);switch(x)case 1: n=LoadText(da);printf("tt 您已经成功的将题目导入到题库 !n");printf("t");system("pause");break;case 2:printf("tt= 题库的保存 =n"); SaveText(da,n);printf("ntt 保存成功 n");printf(&

17、quot;t");system("pause");break;case 3:CopyText(); /* 保存数据 */ printf("t");system("pause");break;case 0:break;case 0:printf("nttt 感谢您的使用,再见 !n"); exit(0);5 程序运行结果 (可截屏程序运行界面。 ) 1、主界面显示2、试题的输入3、函数的保存4、试题库的载入5,、试题的浏览与查询6、函数的修改与删除6 设计总结)(重点从设计方法、实现技术、功能等几方面总结。

18、通过此次的程序设计课学到了很多,对 C语言也有了更好的了解,同时也对C 程序的操作和调试也有了进一步的掌握。 尽管程序中的一部分是从网上复制过来的, 但其中都加入 了自己手动修改的元素, 并且把一些以前不懂的弄懂了, 总之经过了几天的奋斗我们都掌握 了很多知识,收获了很多。开学的第一天, 老师们就让我们分组进行程序设计, 题目发下来顿时怵了, 只是几个人 在一起商量了一下把程序的大致框架熟悉了一下, 但由于是头一次搞, 根本不知道从哪些地 方着手, 原本学到的只是到真正运用的时候才显得那么的苍白, 就这样整整一个上午的时间 什么进展都没有,我们只是在那里看书,熟悉知识。下午有网了,我们便取巧百

19、度了一个程序进行调试,目的是熟悉分析程序的运转效果, 查询整理我们所需要的应用函数,于是才渐渐摸清了我们要进行的方向。首先, 我们要进行的是主体框架的设置, 为了节省时间, 我们拟在一个运行程序里进行 删减,从整体中将“肉”剔除,然后得到我们的主体,刚开始不懂得,只知道将哪来的代码 胡乱的删去了事,后来发现程序虽然没错了,但只剩下了一副空壳,原有的功能都没有了。 然后,我们商议给这副“骨架”填“肉” ,因为这我们也吃了不少口头,拼命看书了解掌握 相应函数如 save& load 的相关函数, 网上查找相应函数的用法以及问题解决办法, 再不行的 我们就请教老师,也因此吃够了 BUG 的苦头。终于,经历了九九八十一难,我们提前完成 了程序的调试,欢呼声 我们从中遇到的问题有 N+个,我们也学到了很多知识。其一、 我们刚开始进行试题输入的时候, 总是输入后杳无音讯,查无所踪, 无法进行浏 览和查询,我们网上查询才知道是出在了文件的

温馨提示

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

评论

0/150

提交评论