自C语言程序设计 题库管理系统.docx

上传人:b****3 文档编号:1360747 上传时间:2022-10-21 格式:DOCX 页数:25 大小:559.01KB
下载 相关 举报
自C语言程序设计 题库管理系统.docx_第1页
第1页 / 共25页
自C语言程序设计 题库管理系统.docx_第2页
第2页 / 共25页
自C语言程序设计 题库管理系统.docx_第3页
第3页 / 共25页
自C语言程序设计 题库管理系统.docx_第4页
第4页 / 共25页
自C语言程序设计 题库管理系统.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

自C语言程序设计 题库管理系统.docx

《自C语言程序设计 题库管理系统.docx》由会员分享,可在线阅读,更多相关《自C语言程序设计 题库管理系统.docx(25页珍藏版)》请在冰豆网上搜索。

自C语言程序设计 题库管理系统.docx

自C语言程序设计题库管理系统

 

程序设计基础课程设计报告

 

班 级:

 计算机科学与技术1103班

姓 名:

   杨广宇  

指导教师:

       胡宏涛

完成日期:

 2012年9月6日   

(题目)

1.设计题目与要求

(简要介绍课程设计题目内容与要求。

1设计内容

要求输入试题(仅限选择题和填空题)基本信息,实现试题浏览.,查询,修改功能,并将数据保存至文本文件。

2要求ﻩ

功能完善,界面友好。

2. 算法设计与描述(要求有相关流程图)

 2.1 算法设计与描述

(描述算法设计、实现过程。

1.提供可操作的主菜单:

输出主菜单,用户可根据菜单来选择操作。

根据客户输入的选项来运行不同的功能,运行不同的函数。

2.。

试题信息的录入函数:

按照提示输入题的题号,题目内容,并提示用户是否继续录入,每输入一个记录,全局变量n就自增,最后最为函数的返回值返回。

3.保存试题信息函数:

将文件的所有数据通过fprintf来写入指定文本文档,完成后关闭文件,没有返回值

4.载入试题信息函数:

通过fopen函数打开指定文件,通过fscanf来读取文件里的数据,最后返回记录数,避免了每次打开时都要输入数据的麻烦。

5.查询记录函数:

细分为按题号,题目两种方式来进行查询记录,并能对查询记录不存在进行提示。

遍历所有结构体找出符合的输出。

6.修改记录函数:

首先判断用户要修改的试题序号是否存在,进行相应的系统提示,然后遍历所有记录找出符合的,按照提示依次进行修改项目,返回记录值不变(没增加也没减少)。

7.删除记录函数:

首先判断用户要删除的试题序号是否存在,进行相应的系统提示,然后遍历所有记录找出符合的删除,冰讲后面的所有数据向前移动一个位置,记录数减一并返回。

 

2.2主要流程图

(用N—S图描述。

1,、输入函数

2、保存函数

3、载入函数

4、查询函数

5、修改函数

6、删除函数

 

3.设计软硬件环境

  硬件设备 系统:

MicrosoftWindows XPProfessional版本2002

   机型:

Inter®Core™2DuoCPUE8400 @3.00GHz2.99GHz,2.00GB内存

 软件设备  MicrosoftVisualC++ 6.0应用程序调试

4.源程序代码清单

#include<stdio.h>

#include<stdlib.h>

#include

typedefstruct

ﻩ{

ﻩﻩchartihao[10];ﻩ   //题号

ﻩchartimu[15];ﻩ   //题目

}Data; 

Datada[80];          

intmenu_select()

ﻩ{

ﻩcharc; 

ﻩﻩdo{

ﻩﻩsystem("cls");

ﻩﻩprintf("\t\t\t========题库管理系统========\n");        

ﻩprintf("\t\t\t┌───────────┐ \n");      

printf("\t\t\t│ 1.题目的输入    │\n"); 

ﻩﻩprintf("\t\t\t│2.题目的浏览 │\n");

ﻩﻩprintf("\t\t\t│3.题目信息更改│ \n"); //包括删除,插入和更改

ﻩprintf("\t\t\t│4.题目信息查询  │\n");

ﻩﻩprintf("\t\t\t│5.题目文件操作│ \n");  //包括保存,读取和复制

ﻩﻩprintf("\t\t\t │ 0. 退出管理系统 │ \n");

printf("\t\t\t└───────────┘\n");

ﻩﻩprintf("\t\t\t============================\n");

printf("\n\t\t请您选择(0-5):

");

ﻩc=getchar(); 

}while(c<'0'||c>'5'); 

ﻩﻩreturn(c-'0');

}

voidtihaosort(Datadat[],intn)    //题号排序

{

inti,j;

Datatemp;

ﻩfor(i=0;i

da[i]=dat[i];

ﻩfor(i=0;i<n-1;++i)

for(j=i+1;j

ﻩﻩif(strcmp(da[i].tihao,da[j].tihao)>0)

ﻩ{

ﻩﻩﻩtemp=da[i];da[i]=da[j];da[j]=temp;

ﻩ}

ﻩprintf("\t\t========排序成功========\n");

voidSaveText(Data dat[],int n)     //保存函数

inti;

  FILE*fp;          /*指向文件的指针*/

if((fp=fopen("txl.txt","wb"))==NULL)  /*打开文件,并判断打开是否正常*/

 {

printf("\t不能打开文件\n");   /*没打开*/

 exit

(1);        /*退出*/

fprintf(fp,"%d",n);        /*将记录数写入文件*/

ﻩfprintf(fp,"\r\n");

for(i=0;i

  {

ﻩfprintf(fp,"%-8s%-6s",dat[i].tihao,dat[i].timu);

fprintf(fp,"\r\n");  /*将换行符号写入文件*/

 }

ﻩfclose(fp);

}

intLoadText(Datadat[])      //载入函数

{

inti,n;

ﻩFILE*fp;

if((fp=fopen("txl.txt","r"))==NULL)

{

ﻩﻩprintf("不能打开文件\n");

ﻩexit

(1);

ﻩ}

ﻩfscanf(fp,"%d",&n);ﻩ      /*读入记录数*/

for(i=0;i

ﻩﻩfscanf(fp,"%s%s\n",dat[i].tihao,dat[i].timu);ﻩ/*按格式读入记录*/

fclose(fp);

ﻩreturn n;ﻩﻩ            /*返回记录数*/

intCharu(Datadat[],intn)    //插入函数

{

Datatemp;ﻩ            /*新插入记录信息*/

ﻩint i=0,j,k;

ﻩchars[20];

ﻩdo

ﻩ{

ﻩprintf("\t请插入您的数据\n");

ﻩﻩprintf("\t题号:

");

ﻩscanf("\t%s",temp.tihao);

for(k=0;k

ﻩﻩ{

ﻩif(strcmp(dat[k].tihao,temp.tihao)==0)

ﻩ{

ﻩﻩﻩprintf("\t-------该记录已存在,请重新输入!

-------\n");

ﻩﻩﻩsystem("pause");

ﻩﻩsystem("cls");

ﻩﻩbreak;

ﻩﻩ}

ﻩ}while(strcmp(dat[k].tihao,temp.tihao)==0);

ﻩprintf("\t题目:

");

ﻩscanf("\t%s",temp.timu); 

printf("\t请输入插入位置的题号:

");

ﻩscanf("\t%s",s);ﻩ       /*输入插入位置的题号*/

while(strcmp(dat[i].tihao,s)!

=0&&i<n)  i++;

if(i==n)

{

printf("\t------------题库中没有记录,请查询后再操作!

-------------\n");

ﻩreturn n;

ﻩ}

for(i=0;strcmp(dat[i].tihao,s)!

=0;i++);ﻩ

ﻩprintf("\n\t\t***********插入成功!

************\n");

ﻩfor(j=n-1;j>=i;j--)ﻩ    /*从最后一个结点开始向后移动一条*/

ﻩstrcpy(dat[j+1].tihao,dat[j].tihao);  /*当前记录的题号拷贝到后一条*/

ﻩstrcpy(dat[j+1].timu,dat[j].timu);

}

ﻩstrcpy(dat[i].tihao,temp.tihao);ﻩ  /*将新插入记录的题号拷贝到第i个位置*/

ﻩstrcpy(dat[i].timu,temp.timu);

n++;ﻩ ﻩ       /*记录数加1*/

ﻩreturn n;

int Shuru(Datadat[],intn)  //输入函数

{

inti=0;

ﻩchar ch; 

ﻩwhile(ch!

='n'&&ch!

='N')    //用来判断是否继续输入

ﻩsystem("cls");

printf("\t题号:

"); 

ﻩscanf("\t%s",dat[n+i].tihao);

ﻩprintf("\t题目:

");

ﻩﻩscanf("\t%s",dat[n+i].timu); 

ﻩprintf("\n\t是否继续添加?

(Y/N)");

ﻩscanf("\t%c",&ch);

ﻩi++;

ﻩ} 

return (n+i);  //其实输入除了N和n的任意键均能实现继续添加的功能

voidList(Datadat[],int n)  //显示函数   

{

int i;

ﻩprintf("========================共%d条记录============================\n",n);

printf("┌─────────────────────────────┐\n");  /*格式*/

printf("│题号│     题目     │\n");

printf("└─────────────────────────────┘\n"); 

ﻩfor(i=0;i

{

ﻩﻩprintf("%2s\t%3s\n",dat[i].tihao,dat[i].timu);    /*按格式输出*/

ﻩprintf("───────────────────────────────\n");

system("pause");

}

intShanchu(Data dat[],intn)      //删除函数

{

chars[20];ﻩ 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1