C语言程序设计题库管理系统_第1页
C语言程序设计题库管理系统_第2页
C语言程序设计题库管理系统_第3页
C语言程序设计题库管理系统_第4页
C语言程序设计题库管理系统_第5页
免费预览已结束,剩余21页可下载查看

下载本文档

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

文档简介

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

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

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

4、软件设备 Microsoft Visual C+ 6.0 应用程序调试4 源程序代码清单 #include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct/题号/题目char tihao10;char timu15;Data;Data da80;int menu_select()char c;dosystem("cls");printf("ttt =题库管理系统 = n");printf("tttn");printf(&qu

5、ot;ttt 1.题目的输入 n");printf("ttt 2.题目的浏览 n");printf("ttt 3.题目信息更改 n");/包括删除,插入和更改printf("ttt 4.题目信息查询 n");printf("ttt 5.题目文件操作 n");/包括保存,读取和复制printf("ttt 0.退出管理系统 n");printf("tttn");printf("ttt = n"); printf("ntt 请您选择 (0-5

6、):"); c=getchar();while(c<'0'|c>'5'); return(c-'0');void tihaosort(Data dat,int n)/题号排序int i,j;Data temp;for(i=0;i<n;+i)dai=dati;for(i=0;i<n-1;+i) for(j=i+1;j<n;+j) if(strcmp(dai.tihao,daj.tihao)>0) temp=dai;dai=daj;daj=temp; printf("tt= 排序成功 =n&qu

7、ot;); void SaveText(Data dat,int n)int i;FILE *fp;if(fp=fopen("txl.txt","wb")=NULL) printf("t 不能打开文件 n"); exit(1);fprintf(fp,"%d",n);/保存函数/* 指向文件的指针 */* 打开文件,并判断打开是否正常 */*没打开 */* 退出 */* 将记录数写入文件 */fprintf(fp,"rn");for(i=0;i<n;i+)fprintf(fp,"%

8、-8s%-6s",dati.tihao,dati.timu);fprintf(fp,"rn"); /* 将换行符号写入文件 */ fclose(fp);int LoadText(Data dat)/ 载入函数int i,n;FILE *fp;if(fp=fopen("txl.txt","r")=NULL) printf(" 不能打开文件 n"); exit(1);fscanf(fp,"%d",&n);for(i=0;i<n;i+)fscanf(fp,"%s%sn

9、",dati.tihao,dati.timu);fclose(fp); return n;int Charu(Data dat,int n)Data temp; int i=0,j,k; char s20; do printf("t 请插入您的数据 n"); printf("t 题号 :");/* 读入记录数 */* 按格式读入记录 */* 返回记录数 */插入函数/* 新插入记录信息 */scanf("t%s",temp.tihao);for(k=0;k<n;k+)/ 判断插入数据是否存在if(strcmp(datk

10、.tihao,temp.tihao)=0)printf("t 该记录已存在 , 请重新输入! n");system("pause");system("cls");break; while(strcmp(datk.tihao,temp.tihao)=0);printf("t 题目 :"); scanf("t%s",temp.timu);printf("t 请输入插入位置的题号 :"); scanf("t%s",s);/* 输入插入位置的题号 */while(

11、strcmp(dati.tihao,s)!=0&&i<n) i+;if(i=n) printf("t 题库中没有记录,请查询后再操作! n");return n;*n");/* 从最后一个结点开始向后移动一条 */* 当前记录的题号拷贝到后一条 */for(i=0;strcmp(dati.tihao,s)!=0;i+) ; printf("ntt* 插入成功! for(j=n-1;j>=i;j-)strcpy(datj+1.tihao,datj.tihao); strcpy(datj+1.timu,datj.timu);str

12、cpy(dati.tihao,temp.tihao); strcpy(dati.timu,temp.timu);n+;return n;int Shuru(Data dat,int n)int i=0;char ch;while(ch!='n'&&ch!='N')/*将新插入记录的题号拷贝到第 i个位置 */* 记录数加 1*/输入函数/用来判断是否继续输入 system("cls"); printf("t 题号 :"); scanf("t%s",datn+i.tihao); print

13、f("t 题目 :"); scanf("t%s",datn+i.timu); printf("nt 是否继续添加 ?(Y/N)"); scanf("t%c",&ch); i+;return (n+i); /其实输入除了 N 和 n 的任意键均能实现继续 添加的功能void List(Data dat,int n)/显示函数int i;printf("= 共 %d 条 记 录 =n",n);printf(" n"); /*格式 */printf(" 题号 题目

14、 n"); printf(" n"); for(i=0;i<n;i+)printf("%2st%3sn",dati.tihao,dati.timu);/* 按格式输出 */printf(" n"); system("pause");int Shanchu(Data dat,int n)/删除函数char s20;/* 要删除记录的题号 */int i=0,j;printf("t 请输入想删除记录中的题号 :");scanf("%s",s);while(strc

15、mp(dati.tihao,s)!=0&&i<n) i+; /* 查找要删除的记录题号 */ if(i=n)printf("t 题库中没有此题 !n");return(n);for(j=i;j<n-1;j+) / 数据交换strcpy(datj.timu,datj+1.timu);strcpy(datj.tihao,datj+1.tihao);printf("ttt 已经成功删除 !n");return(n-1);void Chazhao(Data dat,int n)/查询函数int j;printf("tn 请选

16、择查询方式 :n");printf("t n");printf("t 1 题号 n");printf("t 0 返回 n");printf("t n");printf(" 请选择 :");scanf("%d",&j);if(j=1)char s20;int i=0;printf("t 请输入想查询的题号 :"); scanf("t%s",s);while(strcmp(dati.tihao,s)!=0&&

17、;i<n) i+; if(i=n)printf("t 题库中没有此题 !n");return;printf("t 此题内容 n");printf("t%5sn",dati.timu); ;void Biangeng(Data dat,int n)/修改函数char s20;int i=0;printf("t 请输入想修改的试题的题号 :"); scanf("%s",s);while(strcmp(dati.tihao,s)!=0&&i<n) i+;if(i=n)pri

18、ntf("t 题库中没有此题 !n");return;printf("t 题号 :"); scanf("t%s",dati.tihao);printf("t 题目 :");scanf("t%s",dati.timu);printf("nt 修改成功! ");# / 2110 / 21void CopyText()/复制文件函数# / 2112 / 21char out;int i,n;Data temp80;FILE *fp,*fc;if(fp=fopen("txl

19、.txt","rb")=NULL)printf("tt 不能打开文件 n"); exit(1);printf("tt 输入目标文件名(例如 scanf("%s",outfile);if(fc=fopen(outfile,"wb")=NULL)printf("tt 不能打开文件 n");exit(1);fscanf(fp,"%d",&n);fprintf(fc,"%d",n);fprintf(fc,"rn");

20、for(i=0;i<n;i+)/* 目标文件名 */* 打开记录文件 */* 显示不能打开文件信息 */ /*退出 */c:out ): ");/* 打开目标文件 */* 显示不能打开文件信息 */*退出 */* 读出文件记录数 */* 写入目标文件数 */* 写入换行符 */fscanf(fp,"%s%sn",tempi.tihao,tempi.timu);fprintf(fc,"%-8s%-6s",tempi.tihao,tempi.timu);fprintf(fc,"rn"); /* 写入换行符 */fclose

21、(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("tttn");printf("ttt

22、 1.显示全部题目n");printf("ttt 2.按题号排序信息n");printf("ttt 0.返回上一级菜单n");printf("tttn");printf("ttt = n"); printf("ntt 请选择: ");scanf("%d",&k);switch(k)case 1:/显示信息system("cls");List(da,n);break;case 2:/ 题号排序tihaosort(da,n);system(&

23、quot;pause");break;case 0: break;case 3: system("cls");int m;printf("ttt = 题库信息管理系统 = nprintf("tttn");printf("ttt 1.题库信息的修改 n");printf("ttt 2.题库信息的删除 n");printf("ttt 3.题库信息的插入 n");printf("ttt0.返回 n");printf("tttn");print

24、f("ttt = n") printf("ntt 请选择: ");scanf("%d",&m);switch(m)case 1: system("cls");Biangeng(da,n);printf("t"); system("pause"); break;case 2: system("cls");/* 删除记录 */插入函数n=Shanchu(da,n);printf("t"); system("pause&qu

25、ot;); break;case 3:system("cls");n=Charu(da,n);printf("t"); system("pause"); break;case 0: break;case 4: system("cls");printf("nt* 在题库中查找记录 *n");Chazhao(da,n);printf("t"); system("pause"); break;case 5:system("cls");int

26、x;printf("ttt = 题库信息管理系统 = n"); printf("ttt n");printf("ttt 1.题库信息的载入 n");printf("ttt 2.题库信息的保存 n");printf("ttt 3.题库信息的复制 n");printf("ttt 0.返回 n");printf("ttt n"); printf("ttt = n");printf("ntt 请选择: "); scanf(&

27、quot;%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("t"); system("pause"); break;case 3:/

28、* 保存数据 */CopyText(); printf("t"); system("pause");break;case 0:break;case 0:printf("nttt 感谢您的使用,再见 !n"); exit(0);# / 2114 / 215 程序运行结果 (可截屏程序运行界面。 ) 1、主界面显示2、试题的输入15 / 2115 / 213、函数的保存4、试题库的载入17 / 2116 / 215,、试题的浏览与查询19 / 2117 / 216、函数的修改与删除21 / 2118 / 2123 / 2119 / 216

29、 设计总结)(重点从设计方法、实现技术、功能等几方面总结。通过此次的程序设计课学到了很多,对 C语言也有了更好的了解,同时也对 C 程序的 操作和调试也有了进一步的掌握。 尽管程序中的一部分是从网上复制过来的, 但其中都加入 了自己手动修改的元素, 并且把一些以前不懂的弄懂了, 总之经过了几天的奋斗我们都掌握 了很多知识,收获了很多。开学的第一天, 老师们就让我们分组进行程序设计, 题目发下来顿时怵了, 只是几个人 在一起商量了一下把程序的大致框架熟悉了一下, 但由于是头一次搞, 根本不知道从哪些地 方着手, 原本学到的只是到真正运用的时候才显得那么的苍白, 就这样整整一个上午的时间 什么进展都没有,我们只是在那里看书,熟悉知识。下午有网了,我们便取巧百度了一个程序进行调试,目的是熟悉分析程序的运转效果, 查询整理我们所需要的应用函数,于是才渐渐摸清了我们要进行的方向。首先, 我们要进行的是主体框架的设置, 为了节省时间, 我们拟在一个运行程序里进行

温馨提示

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

评论

0/150

提交评论