剑之荣耀要多少仙剑奇侠传3好感度度

程序思维导图
代码表示(代码参考:长春大学-牛言涛老师)
如有错误请指出欢迎交流
1 #include&stdio.h&
2 #include&malloc.h&//动态存储分配函数头文件
3 #include&math.h&//包含数学函数的文件
4 #include&string.h&//一个和字符串处理相关的头文件
5 #include&process.h&//包含用于和宏指令的作用声明与螺纹和过程一起使用的C标头文件
6 #define ERROR 0 //宏定义
7 #define OK 1
8 #define over -2
9 #define ListInitSize 20
10 #define ListIncrement 5
11 #define Namelen 8
12 #define Majorlen 20
13 #define INIT_N 3
14 typedef int S
//自定义类型语句 Status i 等价于 int i
15 typedef char StatusC;
17 typedef struct{
StatusC number[<span style="color: #];
StatusC name[Namelen+<span style="color: #];
//姓名:郭靖
//性别:男
StatusC telephone[<span style="color: #];
StatusC qqNumber[<span style="color: #];
StatusC major[Majorlen+<span style="color: #];//专业:计算机科学与技术
25 }S//类型为学生
typedef struct{
//存储空间的基址
//当前长度
S //当前分配的存储容量(以sizeof(Studnet)为单位)
//信息初始化,构造一个空的线性表
Status InitList(Sqlist &l){
l.elem=(Student *)malloc(ListInitSize*sizeof(Student));
//申请LIST_INIT_SIZE个大小为整型(Student)字节的空间,
//把空间指针给L.elem
if(!l.elem)exit(over);
//判断l中的数据成员elem是否为0,为0即执行if下面语句
l.length=<span style="color: #;
l.listsize=ListInitS
return OK;
48 //插入记录
49 Status ListInsert(Sqlist &l,Status i,Student s){
if(i&<span style="color: #||i&l.length+<span style="color: #)
return ERROR;//i值不合法
if(l.length&=l.listsize)//当前存储空间已经满了,增加分配空间
newbase=(Student*)realloc(l.elem,(
ListInitSize+ListIncrement)*(sizeof(Student)));
先释放原来L.elem所指内存区域,并按照
(LIST_INIT_SIZE+ListIncrement)*sizeof(Student)
的大小重新分配空间其中ListIncrement为20,
同时将原有数据从头到尾拷贝到新分配的内存区域,
并返回该内存区域的首地址。即重新分配存储器块。
if(!newbase)exit(over);
// 判断newbase是否为0,为0即执行if下面语句
l.listsize+=ListI
for(Status j=l.j&=i;j--)
l.elem[j]=l.elem[j-<span style="color: #];
l.elem[i-<span style="color: #]=s;
l.length++;
return OK;
79 //打印输出线性表中的信息
80 void print(Sqlist &l){
if(l.length==<span style="color: #)
printf("空表,无任何记录!\n\n");
printf("学号
printf("******************************\n");
for(Status i=<span style="color: #;i&l.i++){
printf("%-10s
%-8s",l.elem[i].number,l.elem[i].name);
//输出学好 姓名
if(l.elem[i].gender=='m')printf("男");
//判断语句
else printf("女");
printf("%14s
%10s",l.elem[i].telephone,l.elem[i].qqNumber,l.elem[i].major);
//输出电话号码 qq号码
printf("\n");
printf("------------------------------\n");
<span style="color: #0
<span style="color: #1 //打印输出线性表中指定学生的信息
<span style="color: #2 void print_single(Student s){
<span style="color: #3
<span style="color: #4
printf("学号
<span style="color: #5
printf("******************************\n");
<span style="color: #6
printf("%-10s
%-8s",s.number,s.name);
<span style="color: #7
//输出学好 姓名
<span style="color: #8
if(s.gender=='m')printf("男");
<span style="color: #9
else printf("女");
<span style="color: #0
printf("%14s
%10s",s.telephone,s.qqNumber,s.major);
<span style="color: #1
//输出电话号码
<span style="color: #2
printf("\n");
<span style="color: #3
printf("------------------------------\n");
<span style="color: #4 }
<span style="color: #5
<span style="color: #6 //接受键盘输入信息
<span style="color: #7 void ScanIn(Sqlist &l){
<span style="color: #8
<span style="color: #9
StatusC a[<span style="color: #];
<span style="color: #0
<span style="color: #1
printf("\t 您选择插入一条学生记录\n");
<span style="color: #2
<span style="color: #3
<span style="color: #4
printf("\t 请输入学号:");
<span style="color: #5
scanf("%s",s.number);
<span style="color: #6
printf("\t 请输入姓名(&=%d个字符):",Namelen);
<span style="color: #7
scanf("%s",s.name);
<span style="color: #8
<span style="color: #9
printf("\t 请输入电话号码:");
<span style="color: #0
scanf("%s",s.telephone);
<span style="color: #1
printf("\t 请输入QQ号:");
<span style="color: #2
scanf("%s",s.qqNumber);
<span style="color: #3
printf("\t 请输入专业:");
<span style="color: #4
scanf("%s",s.major);
<span style="color: #5
printf("\t 请输入性别:(m:男,f:女)");
<span style="color: #6
scanf("%*c%c",&s.gender);
<span style="color: #7
printf("\t 请输入你要插入的位置(1&=i&=%d):",l.length+<span style="color: #);
<span style="color: #8
scanf("%d",&i);
<span style="color: #9
ListInsert(l,i,s);
<span style="color: #0
printf("\t 您想继续插入记录吗?(y/n)\t");
<span style="color: #1
scanf("%s",a);
<span style="color: #2
<span style="color: #3
}while(strcmp(a,"y")==<span style="color: #||strcmp(a,"Y")==<span style="color: #);
<span style="color: #4
//调用strcmp函数
<span style="color: #5 }
<span style="color: #6
<span style="color: #7 //删除通讯中第i条记录
<span style="color: #8 Status ListDelete(Sqlist &l,int i,Student s){
<span style="color: #9
<span style="color: #0
<span style="color: #1
if(i&<span style="color: #||i&l.length)return ERROR;
<span style="color: #2
<span style="color: #3
<span style="color: #4
<span style="color: #5
s=l.elem[i-<span style="color: #];
<span style="color: #6
for(j=i;j&=l.j++)l.elem[j-<span style="color: #]=l.elem[j];
<span style="color: #7
l.length--;
<span style="color: #8
return OK;
<span style="color: #9
<span style="color: #0 }
<span style="color: #1
<span style="color: #2 //按照升序排列
<span style="color: #3 void SortorderAscend(Sqlist &l){
<span style="color: #4
<span style="color: #5
system("cls");//清空前面的信息之输出下面信息
<span style="color: #6
<span style="color: #7
for(Status i=<span style="color: #;i&l.length-<span style="color: #;i++)
<span style="color: #8
for(Status j=<span style="color: #;j&l.length-i-<span style="color: #;j++){
<span style="color: #9
//循环比较大小 ,排列顺序
<span style="color: #0
if(strcmp(l.elem[j].number,l.elem[j+<span style="color: #].number)&<span style="color: #){
<span style="color: #1
//strcmp() 以二进制的方式进行比较,不会考虑多字节或宽字节字符;
<span style="color: #2
//用来比较字符串(区分大小写)
<span style="color: #3
s=l.elem[j];
<span style="color: #4
l.elem[j]=l.elem[j+<span style="color: #];
<span style="color: #5
l.elem[j+<span style="color: #]=s;
<span style="color: #6
<span style="color: #7
<span style="color: #8
printf("*****按照升序排序成功!******\n\n");
<span style="color: #9 }
<span style="color: #0
<span style="color: #1 //判断姓名是否相同
<span style="color: #2 Status EqualName(Student s1,Student s2){
<span style="color: #3
<span style="color: #4
if(strcmp(s1.name,s2.name))return ERROR;
<span style="color: #5
//比较两个字符串是否相同
<span style="color: #6
else return OK;
<span style="color: #7 }
<span style="color: #8
<span style="color: #9 //定位某个元素
<span style="color: #0 int LocateElem(Sqlist l,Student s,Status(*compare)(Student,Student)) {
<span style="color: #1
<span style="color: #2
Status i=<span style="color: #;
<span style="color: #3
Student *p=l.
<span style="color: #4
while(i&=l.length&&!compare(*p++,s))i++;
<span style="color: #5
if(i&=l.length)
<span style="color: #6
<span style="color: #7
//定位元素的位置
<span style="color: #8
<span style="color: #9
return <span style="color: #;
<span style="color: #0 }
<span style="color: #1
<span style="color: #2 //按照姓名查找
<span style="color: #3 void searchName(Sqlist l,Status(*equal)(Student,Student)){
<span style="color: #4
<span style="color: #5
system("cls");//清空前面的信息之输出下面信息
<span style="color: #6
<span style="color: #7
<span style="color: #8
StatusC a[<span style="color: #];
<span style="color: #9
<span style="color: #0
printf("\t 请输入你要查找的学生的姓名:");
<span style="color: #1
scanf("%s",s.name);
<span style="color: #2
j=LocateElem(l,s,equal);
<span style="color: #3
if(!j)printf("没有查找到你所要查找的学生记录!\n");
<span style="color: #4
else print_single(l.elem[j-<span style="color: #]);
<span style="color: #5
printf("\t 您想继续查找吗?(y/n)\t");
<span style="color: #6
scanf("%s",a);
<span style="color: #7
<span style="color: #8
}while(strcmp(a,"y")==<span style="color: #||strcmp(a,"Y")==<span style="color: #);
<span style="color: #9 }
<span style="color: #0
<span style="color: #1 //修改姓名
<span style="color: #2 void ModifyName(Sqlist &l,Status(*equal)(Student,Student)){
<span style="color: #3
<span style="color: #4
system("cls");//清空前面的信息之输出下面信息
<span style="color: #5
<span style="color: #6
<span style="color: #7
StatusC number_new[<span style="color: #],name_new[Namelen+<span style="color: #],gender_new,
<span style="color: #8
telephone_new[<span style="color: #],qqNumber_new[<span style="color: #],major_new[Majorlen+<span style="color: #];
<span style="color: #9
StatusC a[<span style="color: #];
<span style="color: #0
<span style="color: #1
printf("\t 请输入你要更改的学生的姓名:");
<span style="color: #2
scanf("%s",s.name);
<span style="color: #3
j=LocateElem(l,s,equal);
<span style="color: #4
if(!j)printf("没有查找到你所要查找的学生记录!\n");
<span style="color: #5
<span style="color: #6
<span style="color: #7
print_single(l.elem[j-<span style="color: #]);
<span style="color: #8
isOrNo=<span style="color: #;
<span style="color: #9
printf("\n修改通讯录:1 学号,2 姓名,3 性别,4 电话,5 QQ号,6 专业,
0 取消\n") ;
<span style="color: #0
while(isOrNo){
<span style="color: #1
<span style="color: #2
printf("--------------------------\n");
<span style="color: #3
printf("请选择需要修改的属性序号:");
<span style="color: #4
scanf("%d",&isOrNo);
<span style="color: #5
switch(isOrNo){
<span style="color: #6
<span style="color: #7
case <span style="color: #:
<span style="color: #8
printf("请输入更改后的学号:");
<span style="color: #9
scanf("%s",number_new);
<span style="color: #0
strcpy(l.elem[j-<span style="color: #].number,number_new);
<span style="color: #1
<span style="color: #2
case <span style="color: #:
<span style="color: #3
printf("请输入更改后的姓名:");
<span style="color: #4
scanf("%s",name_new);
<span style="color: #5
strcpy(l.elem[j-<span style="color: #].name,name_new);
<span style="color: #6
<span style="color: #7
case <span style="color: #:
<span style="color: #8
printf("请输入更改后的性别:");
<span style="color: #9
scanf("%*c%c",&l.elem[j-<span style="color: #].gender);
<span style="color: #0
<span style="color: #1
case <span style="color: #:
<span style="color: #2
printf("请输入更改后的电话:");
<span style="color: #3
scanf("%s",telephone_new);
<span style="color: #4
strcpy(l.elem[j-<span style="color: #].telephone,telephone_new);
<span style="color: #5
<span style="color: #6
case <span style="color: #:
<span style="color: #7
printf("请输入更改后的QQ号:");
<span style="color: #8
scanf("%s",qqNumber_new);
<span style="color: #9
strcpy(l.elem[j-<span style="color: #].qqNumber,qqNumber_new);
<span style="color: #0
<span style="color: #1
case <span style="color: #:
<span style="color: #2
printf("请输入更改后的专业:");
<span style="color: #3
scanf("%s",major_new);
<span style="color: #4
strcpy(l.elem[j-<span style="color: #].major,major_new);
<span style="color: #5
<span style="color: #6
<span style="color: #7
<span style="color: #8
<span style="color: #9
printf("\n****更改后该条记录变为****\n\n");
<span style="color: #0
print_single(l.elem[j-<span style="color: #]);
<span style="color: #1
<span style="color: #2
printf("您想继续修改吗?(y/n)\t");
<span style="color: #3
scanf("%s",a);
<span style="color: #4
}while(strcmp(a,"y")==<span style="color: #||strcmp(a,"Y")==<span style="color: #);
<span style="color: #5 }
<span style="color: #6
<span style="color: #7 //主菜单
<span style="color: #8 void menu(){
<span style="color: #9
<span style="color: #0
system("cls");//清空前面的信息之输出下面信息
<span style="color: #1
printf("\t*********************\n");
<span style="color: #2
printf("\t**欢迎使用学生通讯录管理系统**\n");
<span style="color: #3
printf("\t*********************\n");
<span style="color: #4
printf("\t**请选择如下操作,输入序号**\n");
<span style="color: #5
printf("\t
0:退出系统\n");
<span style="color: #6
printf("\t
1:将初始学生记录插入线性表\n");
<span style="color: #7
printf("\t
2:显示线性表中所有内容\n");
<span style="color: #8
printf("\t
3:向线性表中增加一条记录\n");
<span style="color: #9
printf("\t
4:从线性表中删除一条记录\n");
<span style="color: #0
printf("\t
5:按照姓名修改一条记录\n");
<span style="color: #1
printf("\t
6:按照姓名查找一条记录\n");
<span style="color: #2
printf("\t
7:按照学号升序排列通讯录\n");
<span style="color: #3
printf("\t*********************\n");
<span style="color: #4
printf("\t
您想进行什么操作,请选择\n");
<span style="color: #5
<span style="color: #6 }
<span style="color: #7
<span style="color: #8 //主函数
<span style="color: #9 int main(){
<span style="color: #0
<span style="color: #1
<span style="color: #2
Status i,select; //select 变量标记用户的选择
<span style="color: #3
if(InitList(l)!=OK)printf("\n\t线性表初始化失败!\n");
<span style="color: #4
Student s[INIT_N]={{"<span style="color: #1404327","马东",'m',"<span style="color: #","<span style="color: #384747" ,"机械工程"},
<span style="color: #5
{"<span style="color: #1404527","李东",'m',"<span style="color: #","<span style="color: #786747" ,"软件工程"},
<span style="color: #6
{"<span style="color: #1435797","马西",'f',"<span style="color: #","<span style="color: #735777" ,"通讯工程"}};
<span style="color: #7
<span style="color: #8
scanf("%d",&select);
<span style="color: #9
while(select){
<span style="color: #0
switch(select){
<span style="color: #1
case <span style="color: #: //初始化数据
<span style="color: #2
system("cls");//清空前面的信息之输出下面信息
<span style="color: #3
for(i=<span style="color: #;i&INIT_N;i++){
<span style="color: #4
<span style="color: #5
if(ListInsert(l,i+<span style="color: #,s[i])!=OK)
<span style="color: #6
printf("\t初始化数据失败!\n");
<span style="color: #7
<span style="color: #8
<span style="color: #9
if(i==INIT_N)printf("\t初始化数据成功\n\n");
<span style="color: #0
<span style="color: #1
printf("\n输入0:退出,输入11:返回主菜单\t");
<span style="color: #2
<span style="color: #3
case <span style="color: #://显示线性表中的记录
<span style="color: #4
system("cls");//清空前面的信息之输出下面信息
<span style="color: #5
<span style="color: #6
printf("\n输入0:退出,输入11:返回主菜单\t");
<span style="color: #7
<span style="color: #8
case <span style="color: #://接受键盘输入,并把记录插入到线性表中
<span style="color: #9
system("cls");//清空前面的信息之输出下面信息
<span style="color: #0
ScanIn(l);
<span style="color: #1
system("cls");//清空前面的信息之输出下面信息
<span style="color: #2
<span style="color: #3
printf("\n输入0:退出,输入11:返回主菜单\t");
<span style="color: #4
<span style="color: #5
case <span style="color: #://删除通讯录中某条信息
<span style="color: #6
system("cls");//清空前面的信息之输出下面信息
<span style="color: #7
Student *s2=l.
<span style="color: #8
<span style="color: #9
printf("您想删除第几条通讯录1~%d:\n",l.length);
<span style="color: #0
<span style="color: #1
scanf("%d",&k);
<span style="color: #2
Student de_s;
<span style="color: #3
system("cls");//清空前面的信息之输出下面信息
<span style="color: #4
if(ListDelete(l,k,de_s)==OK){
<span style="color: #5
<span style="color: #6
printf("\t%-6s 已经删除成功!\n",de_s.name);
<span style="color: #7
<span style="color: #8
printf("\n输入0:退出,输入11:返回主菜单\t");
<span style="color: #9
<span style="color: #0
case <span style="color: #://按照姓名修改一条记录
<span style="color: #1
ModifyName(l,EqualName);
<span style="color: #2
printf("\n输入0:退出,输入11:返回主菜单\t");
<span style="color: #3
<span style="color: #4
case <span style="color: #://按照姓名查找记录
<span style="color: #5
searchName(l,EqualName);
<span style="color: #6
printf("\n输入0:退出,输入11:返回主菜单\t");
<span style="color: #7
<span style="color: #8
case <span style="color: #://按照学好升序排列
<span style="color: #9
system("cls");//清空前面的信息之输出下面信息
<span style="color: #0
SortorderAscend(l);
<span style="color: #1
<span style="color: #2
printf("\n输入0:退出,输入11:返回主菜单\t");
<span style="color: #3
<span style="color: #4
case <span style="color: #://返回主菜单
<span style="color: #5
<span style="color: #6
<span style="color: #7
<span style="color: #8
scanf("%d",&select);
<span style="color: #9
<span style="color: #0
return <span style="color: #;
<span style="color: #1
<span style="color: #2
<span style="color: #3 }
将初始学生信息插入线性表中
读取线性表中信息
插入一条学生信息
删除一条学生信息
更改学生信息
查找学生信息
将学生信息排序
阅读(...) 评论()用链表做一个成绩管理系统,记录写在student.txt中,有些问题。望回答。#include""stdio.h""#include""io.h""#include""malloc.h""#defin
用链表做一个成绩管理系统,记录写在student.txt中,有些问题。望回答。
#include ""stdio.h""#include ""io.h""#include ""malloc.h""#define MAXSIZE 100#define LEN 5typedef char DataTtypedef struct student{
DataType num[LEN]score[LEN];
DataType name[LEN];
}typedef struct listnode{
struct listnode }//获得第n个节点listnode getnode(listnode qint n){
listnode *s=q;
if(nq-&len)
return NULL;
while(m!=n&&s-&next)
return NULL;
}//按位置插入并写入文件void insert(listnode *qint nFILE *fp){
listnode *s*r;
s=(listnode)malloc(sizeof(listnode));
printf(""输入姓名n"");
fflush(stdin);
gets(s-&data.name);
printf(""输入学号n"");
fflush(stdin);
gets(s-&data.num);
printf(""输入分数n"");
fflush(stdin);
gets(s-&data.score);
r=getnode(qn-1);
s-&next=r-&
r-&next=r;
fseek(fp(n-1)*sizeof(struct student)0);
fprintf(fpn%stt%stt%sn""s-&data.nums-&data.names-&data.score);}//删除记录void del(int nFILE *fp){
listnode *head*s*r;
FILE *fp1;
head=ennc(fp);
s=getnode(headn-1);
s-&next=r-&
fp1=enfile(head);
return fp1;}//调入内存listnode* ennc(FILE fp){listnode *head*s*r;head=(listnode)malloc(sizeof(listnode));head-&next=NULL;r=ch=fgetc(fp);if(ch==EOF){printf(""文件为空按任意键退出n"");getch();exit(1);}fseek(fp00);while(ch!=EOF){
s=(listnode*)malloc(sizeof(listnode));
r-&next=s;
r-&next=NULL;
fscanf(fp%s%s%sn""s-&data.nums-&data.names-&data.score);
printf(""当前调用的内容是:n"");
printf(""%stt%stt%sttn""s-&data.nums-&data.names-&data.score);
ch=fgetc(fp);}}//将内存中的内容写入文件FILE* enfile(listnode *head){
listnode *s;
if((fp=fopen(""student.txt""wt+""))==NULL)
printf(""cannot open student.txt press any key exitn"");
getchar();
}s=head-&while(s){
fprintf(fp%stt%stt%sn""s-&data.nums-&data.names-&data.score);
s=s-&}} void main(){
student *pp*
listnode *head*s*r;
head=(listnode)malloc(sizeof(listnode));
head-&next=NULL;
//检查文件是否存在存在则打开不存在则创建
if((_access(""student.txt""0))!=-1)
if((fp=fopen(""student.txt""at+""))==NULL)
printf(""cannot open student.txtpress any key exitn"");
ch=getchar();
if((fp=fopen(""student.txt""wt+""))==NULL)
printf(""cannot open student.txt press any key exitn"");
ch=getchar();
ch=fgetc(fp);
if(ch!=EOF)
printf(""文件不为空现在将文件中内容调入内存n"");
while(ch!=EOF)
s=(listnode*)malloc(sizeof(listnode));
r-&next=s;
r-&next=NULL;
fseek(fp00);
fscanf(fp%s%s%sn""s-&data.nums-&data.names-&data.score);
printf(""%stt%stt%sn""s-&data.nums-&data.names-&data.score);
ch=fgetc(fp);
//fputs(""学号""fp);
fputs(""tt""fp);fputs(""姓名""fp);fputs(""tt""fp);fputs(""成绩""fp);
//创建记录并写入记录到文件
printf(""文件为空现在录入记录输入你想建立的学生信息记录条数n"");
scanf(""%d""&num);
head-&len=
s=(listnode*)malloc(sizeof(listnode));
r-&next=s;
r-&next=NULL;
printf(""现在录入第%d个学生的信息输入姓名n""i+1);
fflush(stdin);
gets(s-&data.name);
printf(""输入学号n"");
fflush(stdin);
scanf(""%s""&s-&data.num);
printf(""输入成绩n"");
fflush(stdin);
scanf(""%s""&s-&data.score);
fprintf(fp%stt%stt%sn""s-&data.nums-&data.names-&data.score);
fseek(fp02);
ch=fgetc(fp);
if(ch==EOF)
printf(""kongn"");
printf(""此位置以后为空n"");
r=(listnode*)malloc(sizeof(listnode));
r-&next=NULL;
qq=&(r-&data);
fseek(fp2*sizeof(struct student)+40);
fscanf(fp%stt%stt%sn""qq-&numqq-&nameqq-&score);
printf(""%stt%stt%sn""qq-&numqq-&nameqq-&score);/
//fwrite(ppsizeof(struct student)1fp);
fputs("" n
fputs(pp-&numfp);
fputs(""tt""fp);
fputs(pp-&namefp);
fputs(""tt""fp);
fputs(pp-&scorefp);
fputs("" n
fseek(fp02);
printf(""输入你要删除的数的序号第几个n"");
scanf(""%d""&num);
//del(fpnum);//rewind(fp);}
【云栖快讯】首届阿里巴巴中间件技术峰会,揭秘阿里10年分布式技术沉淀!阿里高可用体系核心缔造者、全链路压测创始人,DRDS与TDDL负责人等大咖出场,干货分享,不可错过!&&
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...
RDS是一种稳定可靠、可弹性伸缩的在线数据库服务。支持MySQL、SQL Server、PostgreSQL、高...

我要回帖

更多关于 古剑奇谭好感度 的文章

 

随机推荐