Ⅰ 求软件工程作业!
《东北大学软件工程冲刺网课资料》网络网盘资源免费下载
链接:https://pan..com/s/1rmkScW9bYw00GG4qK_PAiQ
Ⅱ 求C语言学生档案管理界面的源代码
简短的代码 原创 花了2小时搞的#include "stdafx.h"
#include "stdio.h"
#include "string.h"int main(int argc, char* argv[])
{
struct days
{
int year;
int mon;
int day;
};
struct max
{
int num;
char name[20];
float cpp;
float data;
float english;
struct days mon;
}stu[100]={0,"",0,0,0,0,0,0};
int a,b,c,yanz=0;
char name[50];
FILE *fp;
printf("****************************ZX学生管理系统1.0测试版*****************************\n");
loop:printf("1.通过学号查找信息\n2.通过姓名查找信息\n3.添加学生信息\n4.删除学生信息\n5.文件操作\n请输入操作代码(1~6):");
scanf("%d",&a);
switch(a)
{
case 1:
printf("请输入学生学号:");
scanf("%d",&c);
for(b=0;b<100;b++)
if(stu[b].num==c)
printf("学号:%d\n姓名:%s\nC++:%f分\n数据结构:%f分\n英语:%f分\n平均分%f\n出生日期:%d年%d月%d日\n\n",stu[b].num,stu[b].name,stu[b].cpp,stu[b].data,stu[b].english,(stu[b].cpp+stu[b].data+stu[b].english)/3,stu[b].mon.year,stu[b].mon.mon,stu[b].mon.day);
break;
case 2:
printf("请输入学生姓名:");
scanf("%s",&name);
for(b=0;b<100;b++)
if((strcmp(stu[b].name,name))==0 && stu[b].num!=0)
printf("学号:%d\n姓名:%s\nC++:%f分\n数据结构:%f分\n英语:%f分\n平均分%f\n出生日期:%d年%d月%d日\n\n",stu[b].num,stu[b].name,stu[b].cpp,stu[b].data,stu[b].english,(stu[b].cpp+stu[b].data+stu[b].english)/3,stu[b].mon.year,stu[b].mon.mon,stu[b].mon.day);
break;
case 3:
for(b=0;b<100;b++)
{
if(stu[b].num==0)
{printf("请输入新学生的学号:");<br> scanf("%d",&stu[b].num);<br> printf("请输入新学生的姓名:");<br> scanf("%s",&stu[b].name);<br> printf("请输入新学生的C++分:");<br> scanf("%f",&stu[b].cpp);<br> printf("请输入新学生的数据结构分:");<br> scanf("%f",&stu[b].data);<br> printf("请输入新学生的英语分数:");<br> scanf("%f",&stu[b].english);<br> printf("请输入新学生的出生日期(****,**,**):");<br> scanf("%d,%d,%d",&stu[b].mon.year,&stu[b].mon.mon,&stu[b].mon.day);<br> break;}
}
if(b>=99) printf("空间已满!\n");
break;
case 4:
printf("请输入要删除的那个学生学号:");
scanf("%d",&c);
for(b=0;b<100;b++)
if(stu[b].num==c)
{
stu[b].num=NULL;
printf("删除成功!\n");
yanz=1;
}
if(yanz==0) printf("找不到学号为%d学生的信息!",c);
break;
case 5:
printf("1.保存信息文件\n2.新建文件\n3.读取文件\n请输入操作代码:");
scanf("%d",&c);
if(c==1)
{
printf("请输入输入文件路径:");
scanf("%s",&name);
if((fp=fopen(name,"ab"))!=0)
{
for(b=0;b<100;b++)
if(stu[b].num!=0)fwrite(&stu[b],sizeof(struct max),1,fp);
fclose(fp);
}
else printf("保存文件失败,可能文件被保护或磁盘写满!\n");
}
else if(c==2)
{
printf("请输入输入文件名:");
scanf("%s",&name);
fp=fopen(name,"wb");
fclose(fp);
}
else if(c==3)
{
printf("请输入输入文件路径:");
scanf("%s",&name);
if((fp=fopen(name,"rb"))!=0)
{
for(b=0;b<100;b++)
fread(&stu[b],sizeof(struct max),1,fp);
fclose(fp);
}
else printf("读取文件失败,可能文件不存在或被保护!\n");
}
else printf("输入错误!\n");
}
goto loop;
return 0;
}
Ⅲ 想制作电子书,求软件
一、EXE输出格式类制作工具
这是目前比较流行也是被许多人青睐的一种电子读物档案格式。这种格式的相关制作工具也是最多的。它最大的特点就是阅读方便、制作简单且制作出来的电子读物相当精美而且无需专门的阅读器支援就可以阅读。这种格式的电子读物对执行环境并无很高的要求。但是这种格式的电子图书也有一些不足之处,如多数相关制作软件制作出来的EXE档都不支援Flash和java及常见的音频视频档,需要IE浏览器支援等。常见EXE输出格式类制作工具:
1、ActivE-BookCompiler4.22
软件大小:2.14MB
软件类型:共享软件
公司网站:http://www.ebookcompiler.com
执行平台:Windows9X/NT/2000
下载地址:http://www.answers2000.freeserve.co.uk/422/aeb422a.exe该软件是同类产品中比较出色的一款。它支援基本的HTML元素、图片、音频、表格、框架、CSS、javascript、Add-Ins等。软件的操作接口从左到右共分为9个选择标签,即电子图书资讯、加密、过期、安装、开始执行资讯、用户接口、输入档案资讯、Add-Ins和输出档案资讯,所有选项一目了然,为我们提供了强大的编辑功能并且使用起来也十分的方便。另外,该软件对中文的支援也很好。
注意事项:在操作过程中,如果需要修改某一项的属性值,选中那一项并双击鼠标,软件会自动弹出该选项相应的编辑视窗,修改完毕后软件会自动纪录您的操作。由于该软件的未注册版本对使用者的操作做了很大程度上的限制,强烈建议您注册该产品。
2、ePublisherGold1.5
软件大小:559KB
软件类型:共享软件
公司网站:http://www.inzonesoftware.com
执行平台:Windows9X/NT/2000
下载地址:http://www.inzonesoftware.com/epublish.zip该软件是使用向导的方式引导用户制作出版电子图书。软件支援基本HTML元素、CSS、javascript等相关技术。软件要求制作者和读者的电脑上安装有IE4.0或以上版本。软件除基本功能以外还具有以下特色:可以加入作者版权资讯;支援自己编写电子图书资讯(即"关于"对话方块);可以对全部档案或者单个档案进行存取许可权限制;软件制作的EXE档压缩率高于同类产品,这也是软件的一个优点。
制作步骤:单击Next按钮略过欢迎面板,加入制作者、网址和版本资讯。接下来的页面中我们需要加入待组建的档案(注意最好将图片档和页面档放置在同一个目录下面)。然后设置执行时出现的图片、起始页面、首页、关于对话方块文本等,可以对页面进行保护,可以是单个页面也可以是多个页面。最后一步就可以组建输出EXE档了。
3、E-BookHTMLCompilerPro2.12
软件大小:1.62MB
软件类型:共享软件
公司网站:http://www.bigwig.net
执行平台:Windows9X/NT/2000
下载地址:http://www.win2000.com.cn/down/ebook.zip该软件提供了最基本的制作选项,软件的操作接口如图所示。软件支援最基本的HTML元素,如框架、图片、表格等,支援使用48*36图元的动态图片作为产品的标识。但不可以直接换掉EXE档案图示,不支援CSS、javascript等技术。与其他软件不同的是,该软件可以按照用户显示器的分辨率来随意调整执行的默认视窗大小。另外软件还支援点击音效,并且在安装档中有一个名为E-BookCompilerEncryption的工具,可以使用该工具来对档案进行加密。在E-BookHTMLCompilerPro+版本中,软件还给我们提供了设置产品存取权的面板。软件的使用方法与其他软件类似。在使用该软件的过程中要注意以下两点:
1.单击打开档案以后,您选择的目录下面的所有档案将会被加入到档案列表框中。但是请您注意,如果您制作完一个产品之后,请务必将档案列表清空!否则下一次软件还会将上一次的档案捆绑到当前的EXE档案当中。
2.软件在组建HTML档以前,要求用户输入EXE档执行的起始页面,否则将会提示找不到页面,请注意一定要保证档案名的尾码也一定要正确。
4、HTML2EXE2.2
软件大小:1.28MB
软件类型:共享软件
公司网站:http://www.html2exe.com
执行平台:Windows9X/NT/2000
下载地址:http://www.html2exe.com/dl/h2e22d.zip
该软件支援常见HTML基本元素,包括表格、表单、图片、背景音乐等,但不支援Java、javascript、CSS等相关技术。软件的操作接口很美观并采用了IE风格的浮动图片变色按钮。虽然软件的操作比较简单,但是软件在作品的版权保护方面还需加强。另外,我们可以指定当前默认的HTML编辑器对页面进行编辑。但是需要向大家说明一点:不要使用中文作为组建的档案和资料夹名。软件提供给我们两种储存格式:EXE和H2E。如果储存成后者,则只能使用该软件的Viewer进行存取。在读者的电脑没有安装浏览器的情况下,这种方式便显得十分有用了。软件还会对输出的档案进行LZH压缩,而且还可以更换成品的标识(bmp或ico格式)。
5、InfoCourier1.38(该软件不再更新)
软件大小:617KB
软件类型:共享软件
公司网站:http://www.smartcode.com
执行平台:Windows9X
下载地址:ftp://ftp.smartcode.com/icour.zip
该软件与Webcompiler2000都是一个公司的产品。但是由于InfoCourier是一个16位元的软件,所以它不能正常工作在WindowsNT或Windows2000下。软件的操作接口十分简单。组建档案时提供的选项很少,只能设置常用的工具是否可用、视窗状态、过期时间等。另外,软件只支援基本的HTML标识,不支援框架、CSS、动态GIF图片、javascript等。要说明一点,由于在InfoCourier中浏览的页面效果和IE以及Netscape稍有不同,所以请在组建前仔细检查每一个页面以保证读者看到相同的效果。
6、MediaPacker2.0
软件大小:1.93MB
软件类型:共享软件
公司网站:http://www.microdream.com
执行平台:Windows9X/NT/2000
下载地址:http://www.newhua.com.cn/down/mediapacker20.zip该软件组建生成的档案接口与其他软件风格不同,翻页、打印、关闭等按钮均在视窗的右上方并且阅读接口近乎全萤幕。软件要求读者的电脑上安装有IE4.0或以上版本。该软件支援图片、表格、框架、CSS等HTML基本元素。软件以向导的方式一步一步引导用户制作电子读物。整个制作过程明朗、简单,提供了相当多的选项给用户来设置最后EXE档的格式。而且对电子读物的安全性和版权等相关问题都作了相当多的考虑。另外值得一提的是,软件安装后带有一个提供给用户的KeyGenerator,这个工具是用来设置出版的电子读物的使用权限的。它较好的保护了作者和出版商的利益。这也是该软件最有特点的地方。
注意事项:在汇入组建出版档的时候,由于软件不能自动搜寻放置在其他目录下的档案,请注意把图片等与页面相关的档案和页面档案放置于同一目录下,否则将会出现组建后的EXE档无法显示图片等相关档案的现象。
7、WebExe1.4
软件大小:1.6MB
软件类型:共享软件
公司网站:http://www.aw-soft.com
执行平台:Windows9X/NT/2000
下载地址:http://www.aw-soft.com/wexsetup.exe
该软件是专门用来制作HTML档转化成EXE档的。软件的优点在于它使用了智慧的向导来引导使用者一步一步完成整个制作过程。所以,我们不用担心制作的时候忘记什么,按照软件提供的向导我们可以轻松制作出精美的电子图书来。另外,软件的操作接口简洁、明了,使用起来很方便。但是不足之处是,软件不支援Java,javascript、DHTML、Flash等技术,不可以直接换掉输出档的图示,必须借助于相关的工具来制作。该软件到目前为止还没有Linux以及Mac版本。
8、WebCompiler20001.5
软件大小:2138KB
软件类型:共享软件
公司网站:http://www.webcompiler.com
执行平台:Windows9X/NT/2000
下载地址:ftp://ftp.webcompiler.com/wc2k.zip
该软件是德国WebCompiler公司出品的用于将多个HTML页面(包括图像档)组建成可执行性档案的软件,目前是同类产品中比较出色的一款软件。其最大的特点就是软件本身相当于一个小型的Web浏览器,对原来的HTML档不会产生任何的损伤。软件支援CSS,javascript等常见Web技术。但是不支援Java和Flash,而软件对是否支援Plugin和ActivX的回答是"也许\",因为这要看Plugin和ActivX的安全程度等相关问题。另外,WebCompiler2000不支援ActiveServerPages。软件需要制作者的电脑上面装有IE4.0或以上版本,并且该软件没有Unix,Mac版本,也没有基于Natscape浏览器的版本。但是软件由于是32Bit,所以基于微软Windows平台的作业系统均可以执行。
注意事项:在制作的过程中,请不要使用中文名作为需要组建的档案或者资料夹名称,否则软件将会弹出视窗提示找不到页面的资讯。另外,您可以制作自己的标识和图示来作为您作品的标志。但是您必须拥有注册版的Webcompiler2000。
9、WebCompiler981.14汉化版
软件大小:356KB
软件类型:免费软件
作者网站:http://lytes.home.chinaren.com
执行平台:Windows9X/NT/2000
下载地址:http://www.guxiang.com/epubcn/so ... er.exeWebCompiler98是WebCompiler2000的前身,具有WebCompiler2000的几乎所有功能。由于该汉化版本非常成功,几乎所有的地方都作了详细的汉化,所以现在很多朋友都在使用该软件。但是由于该汉化版是在解密WebCompiler98的基础之上才汉化的,所以软件目前还具有某些缺憾:即作品的标志和图示不可以换。
10、EbookBuilder4.0
软件大小:615KB
软件类型:免费软件
作者网站:http://members.xoom.com/JanVee/freeware.htm执行平台:Windows9X/NT/2000
下载地址:http://www.newhua.com.cn/down/ebookbuilder4.zip该软件最大的特点就是它的拖拽操作,即当我们打开一个目录时,软件将会将目录中的所有档案显示在档案列表中,我们可以从列表中选中一个或者多个档案通过拖拽的方法将档案加入待组建档案列表中。而我们可以在待组建档案列表中控制档案的排序和执行顺序。另外在制作过程中我们可以任意并且最好指定整个档案执行的开始和结尾。软件支援HTML基本元素以及CSS,但是不支援javascript、Java等技术。另外,软件在组建输出的EXE档执行过程中可以直接跳到指定的页面,这是很方便的一项功能。但是软件没有对组建档作任何的版权限制,所以这不利于作者以及出版商的权利和利益。
软件以档案总管的样式设计。在左上角选择需要组建的档案所在路径,则选中的资料夹中的所有档案将会出现在左下方的档案列表当中。然后从这些档案中选择全部或者部分档案(可以多选),然后使用鼠标将这些档案拖拽到右边的待组建档案列表当中即可。在最后组建输出以前,请读者最好加入整个档案执行的开始和结尾标识,即单击软件功能表Insert下的BookBegin和BookEnd来指明执行的开始和结尾之处。当然,我们需要将右边待组建的档案进行排序,否则很可能最后的执行顺序不对。另外,如果您首次执行组建后的EXE档,您会发现当前页面会以分屏的方式显示,选中功能表Options>SinglePage选项即可。
11、HyperMakerHTML2002.06
软件大小:2.5MB
软件类型:共享软件
公司网站:http://bersoft.com
执行平台:Windows9X/NT/2000
下载地址:http://bersoft.com/hmhtml/hypermaker.exeHyperMakerHTML2000是同类产品中支援档案格式和效果最多的软件,性能相当出色。该软件支援HTML3.0及以后版本大部分的识别字;支援Flash、Acrobat、AVI和MPEG;可以嵌入Word、PowerPoint、Zip格式的档案;支援动态标识的使用;使用HyperMakerViewer存取支援点击音效。值的一提的是,软件自身带有阅读器,虽然我们在输出档案以后不需要专门的阅读器就可以进行存取,但是软件自身的阅读器方便我们在制作过程当中察看页面的浏览效果是否符合要求。另外,该阅读器可以播放MIDI、WAV、MP3、AVI和MPG格式的音频视频档,可以存取PDF和Flash档案,可以存取Word、Excel等档案,这些特性都是同类产品所无法比拟的。所以通过上面可以看出,软件在同类产品中的确具备相当专业的水准。
不足之处是,HyperMakerHTML2000软件的制作过程相对于其他软件来说较复杂,并且软件没有给我们提供向导功能,所以整个制作步骤需要我们手动完成。另外,软件不支援CSS,输出档案的大小在同样的条件下比别的要大一些。
12、WebPaker1.29
软件大小:1.26MB
软件类型:共享软件
公司网站:http://bersoft.com
执行平台:Windows9X/NT/2000
下载地址:http://bersoft.com/webpacker/webpacker.exe该软件与HyperMakerHTML2000是同一个公司的产品。从操作接口上来看,该软件更像是HyperMakerHTML2000的简化版本。软件依然保持了HyperMaker的操作风格,并且支援基本HTML元素、CSS、Flash、javascript、Java、AVI、各种音频档等等。所以,该软件也是同类产品当中支援的档案格式比较多的一款。与HyperMaker相比,该软件去掉了Interface、Options、External、Setup、Viewer五个选项标签,而把Interface和Options两个标签合为一个名为MainOptions的选项标签。另外,软件不像HyperMaker那样,需要先生成Publication档然后才能生成EXE档,软件可以直接将所有档案组建输出成EXE档。另外建议读者注册该软件,否则组建的EXE档只能存活7天,并且软件的某些功能不可以使用。
13、WinEBookCompiler2.3
软件大小:2.42MB
软件类型:共享软件
公司网站:http://superwin.com
执行平台:Windows9X/NT/2000
下载地址:http://regvac.com/wnebookc.exe
SWB档案格式是该软件专有的档案格式。这种格式的档案需要WinEbookCompilerViewer来阅读。软件支援TXT、RTF两种档案格式,而且软件可以对页面进行编辑,如插入图片、超连结等。值得一提的是,软件支援播放背景音乐。这是一个非常好的功能,读者可以设想边看书边听音乐的感觉,而且可以根据书中不同的情节设置不同的音乐。软件的其他显着的特性:档案的页面切换效果独一无二,翻页的时候,下一页会从萤幕右方"滚动"出来并带有音效,还可以控制翻页速度;支援人声朗读文本,但目前还不支援中文朗读;无需返回目录即可通向任意页面(通过下拉功能表实现);支援放大缩小文本;支援档案加密功能。
由此可以看出,软件具备其他很多软件没有的优点,但是由于所支援的档案格式只限于TXT和RTF,所以很多目前基于Web的技术都不能够实现。另外对软件的局限提出以下三点,希望读者注意:1.不可以超过100个Chapter;2.每一个Chapter的大小最好不要超过312KB,否则打开时将会等待很长时间;3.最好不要打开超过5个阅读视窗,否则将会出现某些问题。
14、NeoBook4.0.9
软件大小:3.8MB
软件类型:共享软件(30天使用限制)
公司网站:http://www.neosoftware.com
执行平台:Windows9X/NT/2000
下载地址:http://www.neosoftware.com/software/nbw40.exe该软件是同类产品中比较"另类"的一款。我们习惯于将多个Web页面以及图片等其他档案汇入软件中,然后通过编辑直接输出EXE档。但是该软件完全不是这样。可以这样说,制作一本电子图书的所有过程需要作者手动完成,包括文字编辑、图片音频档案的插入、颜色的搭配、文字图片定位,甚至翻页按钮都得由作者来制作。所以,该软件的优点在于制作电子图书从始至终完全由作者一手来完成,而我们完全不可以将已经编辑好的HTML档插入到软件中,否则只会出现HTML档的源代码。软件默认识别的档案格式是TXT。另外,软件带有一个浮动的编辑面板,可以帮助作者编辑文字、插入图片、制作按钮等等。当然,用户也可以自己来指定编辑各种格式的档案的编辑器。汇出的EXE档在执行的时候将以全萤幕的方式来显示。
软件还有一个显着的特点,那就是允许用户自己编写Action。例如,如果你想实现翻页按钮的功能,那么你必须加入例如GotoPrevPage这样的Action。在页面切换的时候也可以加入相应的Action。软件在编辑使用的灵活度上给我们留下了极大的余地,而且我们可以根据自己的喜好创建很多动态的效果。但是软件抛开了传统的插入HTML档汇出EXE档的模式,这对于初学者来说不是很好的一件事情。
15、EasyBook2.5
软件大小:1.34MB
软件类型:共享软件(30次使用限制)
公司网站:http://www.easyteach.com
执行平台:Windows9X/NT/2000
下载地址:http://www.easyteach.com/download/ezbook1.exe该软件只能汇入TXT、RTF和EZF格式的档案,不支援使用图片等其他与Web相关的元素。就是说,它只能将纯文本形式的档案组建成EXE档。软件的易用性做的不是很好,而且选项比较复杂而且层层嵌套,对初学者来说不是一个最好的选择。软件需要先建立一个工程档,然后在此工程档的基础之上一篇一篇地加入文本,最后将所有文本组建成EXE档。软件每一步的设计几乎都可以预览当前编辑的状态。这里要说明一点,如果您使用的是非注册版本,那么将会有30次使用限制,而且不可以输出EXE档。所以建议您注册该软件。
16、BoxBuilder
软件大小:476KB
软件类型:免费软件(需要执行密码)
执行平台:Windows9X/NT/2000
下载地址:http://download2.ccidnet.com/school0622/boxbuilder.zip该软件是我见过的同类软件当中最简单的一个。我没有抓取该软件的接口图是因为根本没有必要抓。执行软件以后(如果是首次执行,软件将会提示输入密码,这个密码在软件的打包档中有),视窗上面只有三个按钮:SelectSourceFiles(选择原始档案)、CreateTarget(创建目标)、Help(帮助文档)。软件几乎不支援所有的Web技术,而且你需要将图片档放置在和html档相同的目录下面,否则软件是不会自动找到图片的正确位置的。软件的操作步骤极其简单(两步):选择html档(多选);输出成exe档。软件无任何输出档设置选项,没有防止拷贝等相关的保护措施,就连最后输出的exe档的工具列也只有一个---Home按钮。根据以上我们可以看出,如果你想偷懒的话,这个软件是再适合不过了,两步就搞定!
17、SbookBuilder7
软件大小:575KB
软件类型:免费软件
公司网站:http://jansfreeware.com
执行平台:Windows9X/NT/2000
下载地址:http://jansfreeware.com/sbookbuilder7.zip该软件可以称的上是“傻瓜式”的EXE文档制作软件。软件组建输出档案后还会报告最后的压缩率是多少,但是经过我的测试,呵呵,这个所谓的“压缩率”是有点儿骗人的:我使用200KB(包括HTML和几张图片)的档案组建输出后有900多KB!输出文档的接口也过于简单,总之,我认为使用该软件来发行正式的EXE电子文档不是一个好的选择。但是,软件非常适合初学者使用,对于私下里的文档传送也很方便。
18、E-ditor2.01
软件大小:1613KB
软件类型:共享软件
公司网站:http://www.e-ditorial.com
执行平台:Windows9X/NT/2000
下载地址:http://www.e-ditorial.com/editor201.exe
该软件的前身是“E-ditorPro”。它是EXE类电子文档制作软件中又一个佼佼者。该软件制作出的电子文档,其最大的特点就是可以加入一个“SplashScreen”。其他方面和我们常见的制作工具类似。软件采用了向导的方式来引导使用者。软件支援使用用户自己的ico和bmp档作为图示和标志。软件可以说是继承了当前各大流行制作软件的优点于一身。从设置视窗大小(提出了一种新的概念:DirectXResolutions)、电子文档资讯、密码、Icon置换(32*32)、工具条外观选择、SplashScreen、加密页面和拷贝限制、标志选择等等常见的功能它都具有。其中,SplashScreen是我们常见的在执行软件装载时出现的停留画面,用以转移用户的视线。这将使你的作品更酷!
噢,对了,还有一种翻页的电子书
需要的话教程和软件这里倒是有一套
呵呵
Ⅳ 80分奖励给一个C语言源代码“档案管理系统的设计”
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
/*********************** 字定义函数声明 ********************************/
void Add(); //增加记录
void Delete(); //删除记录
void Search(); //查找记录
void Alter(); //修改记录
void Views(); //查看所有记录
void delete_all(); //清除所有记录
int check(char strID[]); //查找文件记录中已经存在的学生ID
/********************* 定义学生信息结构体 **********/
struct student
{
//学生信息(学号,姓名,性别,籍贯,电话,住址,民族);
char ID[10];
char name[10];
char sex[4];
char nativePlace[10];
char phone[13];
char nation[6];
};
struct student stu;
FILE *fp;//定义文件指针
/********************* main() 主函数 *************************************/
void main()
{
int flag;
while(flag!=7)
{
printf("\n\t\t 【 请选择您所要的操作 】 \n");
printf("\t\t‖****************************************‖\n");
printf("\t\t‖ 1、增加记录 4、修改记录 ‖\n");
printf("\t\t‖ 2、删除记录 5、清除所有记录 ‖\n");
printf("\t\t‖ 3、查询记录 6、所有记录列表 ‖\n");
printf("\t\t‖ 〖 按任意键退出 〗 ‖\n");
printf("\t\t‖****************************************‖\n");
scanf("%d",&flag);
switch(flag)
{
case 1:
Add(); //增加记录
getch();
system("cls");
break;
case 2:
Delete(); //删除记录
getch();
system("cls");
break;
case 3:
Search(); //查找记录
getch();
system("cls");
break;
case 4:
Alter(); //修改记录
getch();
system("cls");
break;
case 5:
delete_all(); //清空所有记录
getch();
system("cls");
break;
case 6:
Views(); //查看所有记录
getch();
system("cls");
break;
default:
exit(0);
}
}
}
/***************** 插入新记录 *******************************/
void Add()
{
if((fp=fopen("StudentMessage","ab+"))==NULL)
{
printf("学生信息文件打开失败!");
exit(1);
}
else
{
int check_add(char stuID[]);
long flength,offset;
int k=0,t; //t用来接收check()函数的传值
char str[53];
fseek(fp,0,SEEK_END);
flength=ftell(fp)/sizeof(stu); //统计文件中有多少条记录
printf("\t请输入要插入的学生的信息:\n");
input_message:
printf("\t学号:");
scanf("%s",&stu.ID);
t=check_add(stu.ID);
if(t==1)
{
printf("\t》 该学号已经存在,不允许重复插入!请重新输入一个学号。《\n");
goto input_message; //跳转到“input_message”标记处继续执行
}
printf("\t姓名:");
scanf("%s",&stu.name);
printf("\t性别:");
scanf("%s",&stu.sex);
printf("\t籍贯:");
scanf("%s",&stu.nation);
printf("\t电话:");
scanf("%s",&stu.phone);
printf("\t名族:");
scanf("%s",&stu.nativePlace);
rewind(fp);
//检测文件中是否有空字符串,如果有则在此处插入新记录,如果没有则插入到文件尾
while(!feof(fp))
{
fread(&str,sizeof(stu),1,fp);
//检测到空字符串,则将fp所指向的文件关闭,以读写方式重新打开
if(strcmp(str,"")==0)
{
fclose(fp);
fp=fopen("StudentMessage","rb+");
break;
}
k++;
}
offset=sizeof(stu)*k;
fseek(fp,offset,SEEK_SET);
fwrite(&stu,sizeof(stu),1,fp);
fclose(fp);
printf("插入数据成功!\n");
}
}
/****************** 检测将要插入的学号是否已存在文件记录中 **************************/
int check(char stuID[10])
{
int id=0,k=1;
FILE *fpp;
struct student checkID;
if((fpp=fopen("StudentMessage","rb"))==NULL) //以只读方式打开一个二进制文件StudentMessage
{
printf("文件打开失败!\n");
exit(1);//打开失败,返回系统
}
while(!feof(fpp))
{
fread(&checkID,sizeof(stu),1,fpp);
//检测用户输入的学号是否已经存在,若存在则终止程序的执行
if(strcmp(checkID.ID,stuID)==0)
{
break;
}
id++;
}
fclose(fpp);
return id*k;
}
/******************** 检测输入的学号是否能插入 *****************************************/
int check_add(char stuID[10])
{
int id;
FILE *fpp;
struct student checkID;
if((fpp=fopen("StudentMessage","rb"))==NULL) //以只读方式打开一个二进制文件StudentMessage
{
printf("文件打开失败!\n");
exit(1);//打开失败,返回系统
}
while(!feof(fpp))
{
fread(&checkID,sizeof(stu),1,fpp);
//检测用户输入的学号是否已经存在,若存在则终止程序的执行
if(strcmp(checkID.ID,stuID)==0)
{
id=1;
break;
}
else
{
id=0;
}
}
fclose(fpp);
return id;
}
/******************* 根据用户输入的学号删除记录 ************/
void Delete()
{
printf("删除相应记录!\n");
if((fp=fopen("StudentMessage","rb+"))==NULL) //以可读可写方式打开一个二进制文件
{
printf("文件打开失败!\n");
return;
}
else
{
char message[10]; //接收用户需要删除的学号
int i;
long flength;
fseek(fp,0,SEEK_END); //把文件指针移到文件尾
flength=ftell(fp)/sizeof(struct student); //计算文件中有多少条记录
printf("\t请输入您要删除的学号:");
scanf("%s",message);
i=check(message);
long offset=sizeof(stu)*i; //记录要删除的学号的位置
if(flength==0)
{
printf("文件记录为空!\n");
return;
}
else if(i>flength)
{
printf("没有该学生信息!\n");
return;
}
else
{
//将要删除的字符串全部置为空
strcpy(stu.ID,"");
strcpy(stu.name,"");
strcpy(stu.sex,"");
strcpy(stu.nation,"");
strcpy(stu.phone,"");
strcpy(stu.nativePlace,"");
fseek(fp,offset,SEEK_SET); //移动指针到要删除的学号的位置
fwrite(&stu,sizeof(stu),1,fp); //将置空的信息重新写回到文件中
printf("\t\t数据删除成功!\n");
}
fclose(fp);
}
}
/****************** 查找数据 ***************************************/
void Search()
{
if((fp=fopen("StudentMessage","rb"))==NULL) //以只读方式打开StudentMessage文件
{
printf("\t文件打开失败!\n");
return;
}
else
{
char message[10]; //接收用户需要查找的信息
int i;
long flength,offset;
fseek(fp,0,SEEK_END); //将文件指针移文件尾
flength=ftell(fp)/sizeof(struct student); //得到文件中有多少条记录
printf("\t请输入您要查找的学号:");
scanf("%s",message);
i=check(message);
offset=sizeof(struct student)*i;
if(flength==0)
{
printf("\t文件记录为空!\n");
return;
}
else if(i>flength)
{
printf("\t\t查找失败,没有找到相应信息!\n");
return;
}
else
{
//输出查找到的内容
rewind(fp);
fseek(fp,offset,SEEK_SET);
fread(&stu,sizeof(struct student),1,fp);
printf("学号:%s ",stu.ID);
printf("姓名:%s ",stu.name);
printf("性别:%s ",stu.sex);
printf("籍贯:%s ",stu.nation);
printf("电话:%s ",stu.phone);
printf("民族:%s\n",stu.nativePlace);
}
fclose(fp);
}
}
/****************** 修改记录 ********************************/
void Alter()
{
printf("修改相应记录!\n");
if((fp=fopen("StudentMessage","rb+"))==NULL)
{
printf("文件打开失败!\n");
exit(1);
}
else
{
char message[10]; //存储用户要修改的学号
int i;
long flength,offset;
fseek(fp,0,SEEK_END); //移动文件指针到文件尾
flength=ftell(fp)/sizeof(struct student); //得到文件中有多少条记录
printf("\t请输入您要修改的学号:");
scanf("%s",message);
i=check(message);
offset=sizeof(struct student)*i; //记录要修改的记录在文件中的位置
if(flength==0)
{
printf("文件记录为空!\n");
return;
}
else if(i>flength)
{
printf("没有该学生信息!\n");
return;
}
else
{
rewind(fp);
fseek(fp,offset,SEEK_SET);
fread(&stu,sizeof(struct student),1,fp);
printf("该学生原来的信息:\n");
printf("\t学号:%s ",stu.ID);
printf("姓名:%s ",stu.name);
printf("性别:%s ",stu.sex);
printf("籍贯:%s ",stu.nation);
printf("电话:%s ",stu.phone);
printf("名族:%s\n\n",stu.nativePlace);
printf("请更新该学生的信息:\n");
strcpy(stu.ID,message);
printf("\t姓名:");
scanf("%s",&stu.name);
printf("\t性别:");
scanf("%s",&stu.sex);
printf("\t籍贯:");
scanf("%s",&stu.nation);
printf("\t电话:");
scanf("%s",&stu.phone);
printf("\t名族:");
scanf("%s",&stu.nativePlace);
fseek(fp,offset,SEEK_SET); //将文件指针指向要修改的地方
fwrite(&stu,sizeof(stu),1,fp); //将修改后的内容重新写回到原来的地方
printf("\t数据更新成功!\n");
}
fclose(fp);
}
}
/************** 查看所有记录 ************************************/
void Views()
{
long flength;
if((fp=fopen("StudentMessage","rb"))==NULL)
{
printf("文件打开失败!\n");
exit(1);
}
fseek(fp,0,SEEK_END); //移动文件指针到文件尾
flength=ftell(fp)/sizeof(struct student); //得到文件中有多少条记录
if(flength==0)
{
printf("文件中没有记录!");
return;
}
rewind(fp); //将文件指针移动到文件头
printf("\t\t\t所有记录列表\n\n");
while(!feof(fp))
{
fread(&stu,sizeof(stu),1,fp);
if(strcmp(stu.ID,"")!=0) //检测文件中的空字符串,如果不是空字符串则输出
{
printf("学号:%s ",stu.ID);
printf("姓名:%s ",stu.name);
printf("性别:%s ",stu.sex);
printf("籍贯:%s ",stu.nation);
printf("电话:%s ",stu.phone);
printf("民族:%s\n",stu.nativePlace);
}
}
fclose(fp);
}
/******************** 删除所有记录 ********************************/
void delete_all()
{
int ch;
printf("该操作将删除所有记录,按“0”退出,按“1”继续。\n");
scanf("%d",&ch);
switch(ch)
{
case 0:
break;
case 1:
printf("将删除所有记录,继续请按“1”,退出请按“0”。\n");
scanf("%d",&ch);
switch(ch)
{
case 0:
break;
case 1:
if (remove("StudentMessage") == 0) //删除StudentMessage文件
{
printf("操作成功,所有记录已经删除!");
}
else
{
perror("remove"); //如果删除不成功则输出系统出错的信息
}
break;
}
}
}
Ⅳ 濡备綍鍒朵綔phpcms妯℃澘phpcms妯℃澘鍒朵綔鏁欑▼
鐢≒HPCMS锅氢竴涓缃戠珯镄勮︾粏姝ラゆ槸浠涔堬纻
1phpcms鐢ㄤ簬浜屾″紑鍙戯纴阃熷害蹇銆傞栧厛浣犵啛鎭夊畠镄勬嗘灦镎崭綔娴佺▼锛岃兘鐪嬫哕镓嫔唽銆2.涓鑸鎴戜滑鐢ㄥ畠寮鍙戜慨鏀规渶澶х殑鍦版柟鏄/phpcms/template/default/content涓镄勮剼链銆备緥濡傦纴index.html鍙浠ュ厛鏀瑰彉杩欎竴椤点
3.濡傛灉浣犳兂鍒涘缓涓涓镙忕洰锛屼綘闇瑕佷慨鏀筩ategory.html(棰戦亾椤)list.html(鍒楄〃椤)show.html(鍐呭归〉)銆备粬浠鏄涓瀵逛竴镄勪翰鎴氥傚彲浠ュ弬钥冩簮浠g爜杩涜屽垎鏋愩
4.cssjs锲惧儚鏂囦欢鍙浠ヤ竴涓瀵瑰簲鏀惧湪镙圭洰褰/statics涓銆备笉寤鸿绉佽嚜镟存敼浣岖疆锛屽洜涓轰竴镞︾郴缁熷崌绾ф洿鏂帮纴浣犵殑浠g爜鍙鑳戒细涔便傛寜榛樿ゆ嗘灦灏辫屼简銆备粬鍦ㄥ悗鍙扮殑璁剧疆瑙佷笅锲俱
5.js鐭ラ亾浜嗭纴涓昏佸彲浠ユ妸涓婇溃鎻愬埌镄/phpcms/template/default/content閲岄溃镄勬枃浠舵敼涓涓嬨傝佷笅锲俱
6.濡傛灉链夎嚜宸卞啓镄勬爮鐩鍒楄〃锛屽备綍鍦ㄥ悗鍙版煡鐪嬶纻鐪嬩笅锲俱
镓揿紑鍐呭癸纴璇诲彇镙忕洰镄勫叿浣撴暟鎹锛岀偣鍑诲唴瀹广
7.浜呜В浠ヤ笂娴佺▼锛屽氨鑳藉揩阃熷紑鍙戙
寮婧怌MS鑳戒笉鑳藉仛灏忚寸绣绔欙纻
寮婧怌MS鏄鍙浠ュ仛灏忚寸珯镄勶纴渚嫔傦纴缁囨ⅵ锛孭HPCMS绛夈傚皬璇寸珯瀵瑰唴瀹归渶姹傞噺姣旇缉澶э纴濡傛灉娌℃湁铡熷垱鑳藉姏锛屽彧鑳借繘琛屽唴瀹归噰闆嗕简锛
phpcmsh5镄勪慨鏀规柟娉曪纻
淇鏀硅偗瀹氶渶瑕佹簮鏂囦欢浜嗭纴涓嶈繃涔熸湁渚嫔栨湁浜汬5鏄鐢ㄤ竴浜涘湪绾垮钩鍙板仛镄勬瘆濡侷H5链ㄧ枡鐦〆pub360涔嬬被镄勶纴闾d簺鍙闇瑕佷笅涓妯℃澘灏辫兘鍦ㄥ悗鍙伴噷闅忎究鏀瑰浘鐗囧拰鍐呭逛简銆
cms鏄浠涔堬纴甯歌佺殑cms绋嫔簭链夊摢浜涳纻
CMS锛屽嵆ContentManagementSystem锛岃嫳鏂囩缉鍐欐槸CMS锛屼腑鏂囧叏绉版槸钬灭绣绔椤唴瀹圭$悊绯荤粺钬濄傜绣绔椤唴瀹圭$悊绯荤粺鍏锋湁璁稿氩熀浜庢ā𨱒跨殑浼樼璁捐★纴鍙浠ュ姞蹇缃戠珯寮鍙戠殑阃熷害鍜屽噺灏戝紑鍙戠殑鎴愭湰銆傜绣绔椤唴瀹圭$悊绯荤粺镄勫姛鑳藉苟涓嶅彧闄愪簬鏂囨湰澶勭悊锛屽畠涔熷彲浠ュ勭悊锲剧墖銆丗lash锷ㄧ敾銆佸0镀忔祦銆佸浘镀忕敋镊崇数瀛愰偖浠舵。妗堛傜绣绔椤唴瀹圭$悊绯荤粺鍏跺疄鏄涓涓寰埚箍娉涚殑绉板懠锛屼粠涓鑸镄勫崥瀹㈢▼搴忥纴鏂伴椈鍙戝竷绋嫔簭锛屽埌缁煎悎镐х殑缃戠珯绠$悊绋嫔簭閮藉彲浠ヨ绉颁负鍐呭圭$悊绯荤粺銆傚父瑙佺殑cms绯荤粺锛歱hp绫籧ms绯荤粺锛歞edecms銆佸笣锲絚ms銆乸hp168銆乸hpcms銆乧mstop銆乨iscuz銆乸hpwind绛塧sp绫籧ms绯荤粺锛歾blog銆并ingCMS绛.net绫籧ms绯荤粺锛欵oyooCMS绛夊浗澶栫殑镢楀悕cms绯荤粺锛歫oomla銆乄ordPress銆乵agento銆乨rupal銆乵ambo銆