刚开学,大二数据结构——用c语言描述课程,老师第一节课提的问题,不会,急求网上各位大神解答!

栏目:资讯发布:2023-10-17浏览:1收藏

刚开学,大二数据结构——用c语言描述课程,老师第一节课提的问题,不会,急求网上各位大神解答!,第1张

第一个是简单的表结构,可以使用数组或链表来实现。

节点数据:

struct student{

char number[13];

char name[20];

enum gender;

int age;

char address[200];

}

无论数组和链表都可以直接抄书;

第二个问题,是一个树结构

通常二叉树就可以实现该功能,有很多家谱二叉树的实现可以参考。

以下程序已在win-tc和tc20下运行通过,已加详细注释(本人所写)。

/ 数据安全实用程序,加密解密简单程序 /

#include<stdioh>

#include<stdlibh>

#include<conioh>

int flag;

char encrypt(char ch,int key)/加密函数,把字符循环移位/

{

if(ch>='a' && ch<='z') / 如果是小写字母 /

{

ch=(ch-'a'+key%26)%26+'a'; / 字母向后移key%26个位置,超过字母z则再从a开始向后移动 /

}

else if(ch>='A' && ch<='Z') / 如果是大写字母 /

{

ch=(ch-'A'+key%26)%26+'A'; / 字母向后移key%26个位置,超过字母Z则再从A开始向后移动 /

}

return ch;

}

char decrypt(char ch,int key)/解密函数,把字符循环移位/

{

if(ch>='a' && ch<='z') / 如果是小写字母 /

{

ch=(ch-'a'+26-key%26)%26+'a'; / 字母向后移26-key%26个位置,超过字母z则再从a开始向后移动 /

}

else if(ch>='A' && ch<='Z') / 如果是大写字母 /

{

ch=(ch-'A'+26-key%26)%26+'A'; / 字母向后移26-key%26个位置,超过字母Z则再从A开始向后移动 /

}

return ch;

}

void menu()/菜单,1加密,2解密,3显示文本文件内容/

{

clrscr();

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

printf("\n1Encrypt the text file"); / 加密文件 /

printf("\n2Decrypt the text file"); / 解密文件 /

printf("\n3Display text file contents");/ 显示加密或解密或未加密或解密的文件 /

printf("\n4Quit\n");

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

printf("Please select a item:"); / 选择一个菜单 /

}

void logo()/显示程序信息/

{

printf("\nwelcome to encrypt program \n ");

return;

}

void encrypt_decrypt_File(char infile,int key, char outfile) / 加密或解密函数 /

{

FILE in,out;

char ch;

clrscr(); / 清屏 /

if((in=fopen(infile,"r"))==NULL) / 打开欲加密或解密的文件/

{

printf("Can not open the infile!\n"); / 如果打开文件失败或文件不存在打印打开失败信息 /

printf("Press any key to exit!\n");

getch(); / 并等待任一按键然后退出程序 /

exit(0);

}

if((out=fopen(outfile,"w"))==NULL) / 打开文件保存加密或解密后的内容/

{

printf("Can not open the outfile!\n"); / 如果打开文件失败或文件不存在打印打开失败信息 /

printf("Press any key to exit!\n"); / 并等待任一按键然后退出程序 /

fclose(in); / 关闭输入文件 /

getch(); / 等待按键,按任一键退出程序 /

exit(0);

}

ch=fgetc(in); /从文本文件中读入字符/

while(ch!=EOF)/加密或解密/

{

/如果是英文字符,则进行加密或解密,否则,不进行加密或解密处理/

if((ch>='a' && ch<='z' ) || (ch>='A' && ch<='Z'))

{ if(flag==1)

fputc(encrypt(ch,key),out);

if(flag==2)

fputc(decrypt(ch,key),out);

}

else

fputc(ch,out);

ch=fgetc(in);

}

/关闭输入及输出文件/

fclose(in);

fclose(out);

}

void displayFile(char infile) /将文本文件的内容显示在屏幕上/

{

FILE fp;

char string[81];

if((fp=fopen(infile,"r"))==NULL) / 以只读方式打开文本文件 /

{

printf("cann't open file");exit(0); / 如果文件不存在或打开失败打印无法打开信息并退出程序 /

}

while(fgets(string,81,fp)!=NULL)

fputs(string,stdout); /把所取字符串送到屏幕显示/

fclose(fp); / 关闭文件 /

}

int main()

{

int i,n;

char ch0,ch1;

char infile[40],outfile[40];

textbackground(LIGHTGRAY); /设置背景颜色为浅灰色/

textcolor(BLACK); /设置文字颜色为黑色/

clrscr();/清除屏幕显示/

logo(); /显示程序信息/

sleep(2); / 延时2秒 /

menu(); /显示屏幕菜单/

ch0=getche();/等待用户从键盘输入,并把输入显示在屏幕上/

while(ch0!='4')

{

clrscr();

if(ch0=='1') /选择加密功能/

{

flag=1;

printf("\nPlease input the infile to be encrypted:"); / 输入要加密的文件名 /

scanf("%s",infile); / 该文件要和本程序放在同一个目录下 /

printf("Please input the encrypt key:");

scanf("%d",&n);/输入加密密码/

printf("Please input the outfile:"); /输入存放加密内容的文件名/

scanf("%s",outfile); / 该文件可以自动创建 /

encrypt_decrypt_File(infile,n,outfile);

printf("\nEncrypt is over!\n");/ 加密成功 /

sleep(1); / 延时1秒 /

}

else if(ch0=='2') /选择解密功能/

{

flag=2;

printf("\nPlease input the infile to be decrypted:"); / 输入要解密的文件名 /

scanf("%s",infile); / 该文件要和本程序放在同一个目录下 /

printf("Please input the decrypt key:");

scanf("%d",&n);/输入解密密码,加密和解密密码应相同/

printf("Please input the outfile:"); /输入存放解密内容的文件名/

scanf("%s",outfile); / 该文件可以自动创建 /

encrypt_decrypt_File(infile,n,outfile);

printf("\nDecrypt is over!\n");

sleep(1); / 延时1秒 /

}

else if(ch0=='3') /选择显示文本文件功能/

{

printf("\nPlease input the infile to be displayed:"); / 输入要显示的文件名 /

scanf("%s",infile);

displayFile(infile);/ 显示文件 /

getch();

}

else

{ /不合法输入/

printf("\nplease input a valid number(1-4)\n");

sleep(1); / 延时1秒 /

}

menu();/显示程序菜单/

ch0=getche(); /等待用户下一次的功能选择/

}

system("cls");/清除屏幕/

logo(); /显示程序信息/

printf("\nGood Bye!\n");

sleep(2);/ 延时2秒 /

system("pause"); / 暂停,按任一键退出程序 /

return 0;

}

传承家谱程序是专门做树形家谱的程序,而且输出为WORD文档,也可以图形输出。 输出树形谱系为TXT文件,可以输出任意大小的树形谱系,避免了版面上的限制。 可以在百度搜索,最新版本为520

写家谱族谱的方法如下:把知道的都写下来、采访家人、寻找实物线索、绘制家族树、制定研究计划等。

1 把知道的都写下来

关于家里,你记得什么,就都写下来,特别是出生、结婚、死亡的日期和地点,后者将在未来的实地调研中发挥重要作用。你或许还可以绘制简单的家族树。这将提醒你已经知道了什么,还想知道什么。

2 采访家人

现存的家族成员是知识的宝库。从父母以及他们的兄弟姐妹开始,然后如果可以,就再采访祖辈。如果祖辈还能记起他们的祖辈,那么你就有机会接触百年以上的家族历史了。在采访的时候,如果方便,你可以录音。

这份资料,既有利于你未来的调研,也可以作为遗产传至后人。但要记着贴上标签,以便寻找。要注意名字。还要记下别名、绰号,等等。一个故事,可能有不同的说法,要进行比较。要注意搜集“谣言”或者“模糊的回忆”。

3 寻找实物线索

翻翻抽屉和箱子,你可能会为自己的发现而感到惊奇。显而易见,诸如证书、表格之类的文件,可能会成为家族历史的砖石。这有可能了解到一段不为人所知的往事。

留意其他家族遗物,例如日记本、信函。照片也是非常重要的道具。跟亲戚聊聊,看看他们能否辨认照片上的人物。记下名字,扫描照片,贴上标签。最后,也是最重要的,打听一下家人、亲戚和族人,是否有家谱。

4 绘制家族树

家族树是描绘祖先关系的地图。它可能花费时间,所以要肯付出才能有结果。拿出一张白纸,在页底写下你自己的名字,在上面为先辈们留出空白。你也可以使用电脑。如果你是已婚,配偶列在你的旁边。然后在你们下面添加孩子,并填上出生日期。

上面是父母,再上面是祖辈,并且填上出生日期。你追溯的时候,直系祖辈的数量会翻倍——四位祖辈,八位曾祖辈,等等,加上他们的出生日期、结婚日期和死亡日期。

5 制定研究计划

记忆因时光变得模糊,所以验证非常重要。跟官方记录核对姓名和日期,常常都是不错的主意。现在可以查阅许多出生、结婚和死亡证书。你可以试着去本地档案馆、图书馆查询。

户籍档案也是查询数据或者未知亲戚的方式。民国时期的户籍资料,一般存放在档案馆里。另外,在地方志馆,也可以通过查阅地方志和文史资料,了解祖辈的生活环境和可能经历的大事,运气好的话,还可以找到他们的名字和事迹。

除了本地资源,网络资源、图书、杂志或者报纸,也可能提供实际的帮助。需要特别指出的是,图书馆里也收藏了大量的家谱和地方志。图书馆领导曾经讲过,有1/5的中国人其实是可以找到自己的家谱。

制作家谱图表的方法如下所示:

操作环境:DELLXPS13-9305、WIN10、WPS1110。

1、首先,打开一个空白excel文档。点击上方菜单栏中的“文件”选项。

2、此时文档出现新界面,点击当中“更多模板”一栏,文档即出现一些excel模板。

3、接着,在搜索栏中输入“家谱”二字,点击“搜索”,页面出现相关搜索结果。

4、选择合适的模板。

5、然后点击“创建”。此时,模板即应用在文档中,即可制作家谱图表。

问题一:目前,最好的家谱制作软件是哪个? 家谱先生61是单机版的,功能挺全的。只能个人用用,无法跟同宗分享。

问题二:我想制作个家谱,可是不知道在电脑上用什么软件好,最好是简单容易操作的 onlinedown/soft/39407

家谱先生(FamilyKeeper) 61

一款国产的具有很高实用价值的专用家谱制作软件。无论您是新修、续修、还是改修老式家谱、或者是抢救复制私藏老谱,该软件都将成为您家谱管理的强有力工具。 该家谱软件的突出特点如下: ・面向大型家谱管理:成功的实现了家谱的分卷管理技术,卷与卷之间有机结合,上下卷之间跳转自如,随意漫游;续卷灵活,纵横方向均可自由续卷,同一部家谱内续卷数量不限,续卷的世代宽度自由安排,从而有效的实现了对大型家谱的管理。 ・多族谱管理:可以同时对多部(任意姓氏的)族谱管理。 ・强劲的族谱维护技术:族谱连接、族谱拆分、更改族谱起始世代数,还可在卷内对节点(子树)任意精确移动。 ・家族成员信息完备:家谱记录内容丰富,资料显示图文并茂,家族成员的数据参数定义完备。 ・检索结果形象丰富:资料检索结果直观形象,配以“寻根链”视图可以一览查询成员的传承脉系。 ・目录、文件管理隐含化:将家谱编写中可能遇到的目录、文件管理工作完全隐含到软件内部,即使电脑知识很少的网友也能轻松上手。 ・家谱打印:该功能是本软件的核心亮点之一,可以将您录入好的家谱资料打印成册,便于分发给家族的各个成员。目前提供四种打印家谱方案: ①方案一:打印家谱内容包括(家族梗概、目录树、父子图、个人资料)等几大部分。 ②方案二:打印家谱内容包括(家族梗概、目录树、阶梯图、个人资料)等几大部分。 ③方案三:打印家谱内容包括(家族梗概、目录树、宝塔图、个人资料)等几大部分。 ④方案四:打印家谱内容包括(家族梗概、目录树、传承图、个人资料)等几大部分。[分横排、竖排两种版式] ・真人肖像模式:使用该显示模式,在世系图上您可以为每个节点上的成员定义制作成员本人的真人肖像,从而使得世系图更加生动、形象。 ・多媒体资料信息管理:软件为每个成员定义了一个相册、影像集和录音集(不加入资料不占空间),您可以将成员精彩的照片、视频及音频资料加入到家谱中,制成一个图、文、像、声并茂的现代数字家谱,软件内置媒体播放器。

downloadenet/page=1

问题三:做族谱用什么软件方便? 看你需要什么类型的家谱:1、纸质家谱:书籍形式,正式规范,需要采集资料、编辑排版、印刷装订,过程较繁琐,成 本 较高。2、网络家谱:通过网站或APP修谱,过程简单,甚至不用钱,操作简单或有使用说明。

家谱是记载家族人文的核心载体,写家谱要明确采用哪种格式。

比如欧阳修式、苏洵式、宝塔式、牒记式、图文对照式、横排图表式、竖排图文式、表记式、图记式等。示例:使用 找你家谱 编修 宝塔式 家谱,形象直观,简洁易用。

手机修谱・网络寻根tiebabaidu/p/4865322667蒲千寻家谱展示tiebabaidu/p/4865510206――找你家谱 FindU

问题四:制作家谱用什么软件好 要求高的话用方正书版、indesign,没什么特别要求的用word就行。

问题五:家谱软件哪个好 coreldraw 差不多

或者Adobe InDesign 也不错

主要得看你会什么软件

问题六:想制作个家谱,有哪些比较实用好用的软件? 那就看看流行的互联网同心圆家谱咯。利用互联网络技术,把传统的纸质家谱转化为数码的、 电子版的数字家谱,清晰明了的展示家谱中的内容,把家族中的每个人都有效的连接起来,形 成一个动态的的家族部落群,共同构成互联网家谱。家谱中的成员可以在互联网家谱中寻找祖 先的足迹、家族历史起源和历程,家族成员信息可以随时查阅和增加,这就是互联网家谱。

问题七:想制作一本家谱,用什么软件好 常见的传统家谱都是纸质的,方便就数电子版本的家谱了。(百姓通谱网)

优势:

1、经济、准确。传统修缮家谱耗时耗力。

2、便于携带、传递、保存。互联网家谱的问世让家谱更容易携带,只需一张U盘,复制,粘贴即可。互联网家谱不怕潮湿不发霉。不怕虫蛀不少页,让家谱保存更加方便。

3、超大容量。在这个信息时代,文字。声音。。视频等媒体信息,也可以存放于互联网家谱中。让家谱内容更充实。互联网家谱的超大容量可录入更多的个人信息和媒体资料。

4、查看方便。便于修改。有续传承。互联网家谱真正实现查看方便,不必再为了查找祖源时亲自到当地看家谱。互联网家谱结合传统的修谱模式与现代人的现实需求,可以不受时间和空间的限制。让身在不同地域的家族人都可以共同管理。真正实现有续传承。

5、隐私保护,授权浏览。

问题八:家谱软件哪个好 国产的亿图不错,操作方便,图形、线条、添加这些添加都很方便,还可以直接使用模板、一键从数据库快速的创建家谱、族谱,下面是亿图里边的一个例子,你可以参考一下:

问题九:制作家谱用什么软件好 传承家谱程序是专门做树形家谱的程序,而且输出为WORD文档,也可以图形输出。 输出树形谱系为TXT文件,可以输出任意大小的树形谱系,避免了版面上的限制。 可以在百度搜索,最新版本为520

问题十:想制作一本族谱,用什么软件好? 天下家谱 V6112下载多特软件站OKOKOKOK

求采纳为满意回答。

http://wwwonlinedownnet/soft/39407htm

家谱先生(FamilyKeeper) 61

一款国产的具有很高实用价值的专用家谱制作软件。无论您是新修、续修、还是改修老式家谱、或者是抢救复制私藏老谱,该软件都将成为您家谱管理的强有力工具。 该家谱软件的突出特点如下: ·面向大型家谱管理:成功的实现了家谱的分卷管理技术,卷与卷之间有机结合,上下卷之间跳转自如,随意漫游;续卷灵活,纵横方向均可自由续卷,同一部家谱内续卷数量不限,续卷的世代宽度自由安排,从而有效的实现了对大型家谱的管理。 ·多族谱管理:可以同时对多部(任意姓氏的)族谱管理。 ·强劲的族谱维护技术:族谱连接、族谱拆分、更改族谱起始世代数,还可在卷内对节点(子树)任意精确移动。 ·家族成员信息完备:家谱记录内容丰富,资料显示图文并茂,家族成员的数据参数定义完备。 ·检索结果形象丰富:资料检索结果直观形象,配以“寻根链”视图可以一览查询成员的传承脉系。 ·目录、文件管理隐含化:将家谱编写中可能遇到的目录、文件管理工作完全隐含到软件内部,即使电脑知识很少的网友也能轻松上手。 ·家谱打印:该功能是本软件的核心亮点之一,可以将您录入好的家谱资料打印成册,便于分发给家族的各个成员。目前提供四种打印家谱方案: ①方案一:打印家谱内容包括(家族梗概、目录树、父子图、个人资料)等几大部分。 ②方案二:打印家谱内容包括(家族梗概、目录树、阶梯图、个人资料)等几大部分。 ③方案三:打印家谱内容包括(家族梗概、目录树、宝塔图、个人资料)等几大部分。 ④方案四:打印家谱内容包括(家族梗概、目录树、传承图、个人资料)等几大部分。[分横排、竖排两种版式] ·真人肖像模式:使用该显示模式,在世系图上您可以为每个节点上的成员定义制作成员本人的真人肖像,从而使得世系图更加生动、形象。 ·多媒体资料信息管理:软件为每个成员定义了一个相册、影像集和录音集(不加入资料不占空间),您可以将成员精彩的照片、视频及音频资料加入到家谱中,制成一个图、文、像、声并茂的现代数字家谱,软件内置媒体播放器。

http://downloadenetcomcn/subcategoryphpscid=581&page=1

刚开学,大二数据结构——用c语言描述课程,老师第一节课提的问题,不会,急求网上各位大神解答!

第一个是简单的表结构,可以使用数组或链表来实现。节点数据:struct student{ char number[13]; char name[20]; enum gender...
点击下载
热门文章
    确认删除?
    回到顶部