㈠ c语言单链表实现消费历史记录
#include <stdio.h>
#include <malloc.h>
// 定义单链表数据结构
struct Node
{
int Data;
struct Node* next;
};
// 定义该单链表的类型名
typedef struct Node* pNodeList;
// 实现链表指定区间数据的反转操作
void ReverseList(pNodeList L, int iBegin, int iEnd, int iListlen)
{
// L为空链表或者只有一个节点时,直接返回
if(NULL == L ||
NULL == L->next)
{
return ;
}
// 反转区间开始和结束位置相同时,即:反转区间长度为0时,直接返回
if(iBegin >= iEnd || iBegin <=0 || iEnd > iListlen)
{
return ;
}
// 定义当前节点、下一结点、结尾节点
pNodeList pCurrentNode = NULL;
pNodeList pNextNode = NULL;
pNodeList pLastNode = NULL;
pNodeList pPreNode = NULL;
// 临时变量,用于判断节点位置
int i = 0;
int j = 0;
// 为开始和结尾节点赋值,得到需要反转区间
while(L->next != NULL)
{
if(i == iBegin-1)
pPreNode = L;
else if(i == iBegin)
pCurrentNode = L;
else if(i == iEnd+1)
{
pLastNode = L;
break;
}
L = L->next;
i++;
}
i = i-2;
// 对属于需要转置的区间结点进行转置操作
while(i>0)
{
pNextNode = pCurrentNode->next;
pCurrentNode->next = pLastNode;
pLastNode = pCurrentNode;
pCurrentNode = pNextNode;
i--;
}
// 前面结点指向调整
pPreNode->next = pLastNode;
return ;
}
void InsertItemIntoList(pNodeList L)
{
pNodeList pNode,temp;
int i;
if(NULL == L)
return;
pNode = L;
for(i=0;i<10;i++)
{
temp=(pNodeList)malloc(sizeof(struct Node));
temp->Data = i;
temp->next = NULL;
pNode->next = temp;
pNode = pNode->next;
}
return ;
}
void FreeListMemory(pNodeList L)
{
if(NULL == L)
return;
pNodeList pNode = L;
while(pNode->next != NULL)
{
pNodeList temp = pNode->next;
pNode->next = temp->next;
free(temp);
}
return;
}
void PrintListElement(pNodeList L)
{
if(NULL == L)
return;
pNodeList pNode = L->next;
while(pNode != NULL)
{
printf(" %d ", pNode->Data);
pNode = pNode->next;
}
printf("\n");
}
void main()
{
pNodeList pHead;
pHead = (pNodeList)malloc(sizeof(struct Node));
if(NULL == pHead)
return;
pHead->next = NULL;
pHead->Data = -1;
InsertItemIntoList(pHead);
PrintListElement(pHead);
ReverseList(pHead, 2, 4, 10);
PrintListElement(pHead);
FreeListMemory(pHead);
getchar();
}
㈡ 用C语言编写数据查询搜索程序
把数据保存在外盘,如txt文本、数据库等
㈢ 用C语言设计一个学生信息查询系统程序
1、首先创建一个c语言项目。然后右键头文件,创建一个Stu的头文件。
㈣ 用c语言实现查询功能的程序
这个用ACCESS数据库软件就能完成的啊。
㈤ 如何查找电脑中的历史记录
1.有时候前几天浏览过的网页忘记了地址,这时就可以通过查询历史记录来找到前几天浏览过的网页:
(1)在浏览器右上角找到“工具”并点击一下。
2.查看电脑运行记录,运行时间:
在桌面打开“我的电脑”,进入系统盘(注:系统盘都默认安装在c:盘),找到 “c:windowsSchedLgU.txt(文本文档)”文件,在该文本文档里面记录着自这个电脑产生以来(注:若电脑重装过,那就自重装之日起记录)曾经工作过的时间,包括哪天的开机时间和关机时间等。
3. 查看电脑最近运行过的程序记录:
在桌面打开“我的电脑”--“C:WINDOWSPrefetch(文件夹)”文件,在该文件夹里面记录着该电脑曾经运行过什么程序,每个文件最前面的(就是文件小数点·前面)文件名即为电脑所运行过的程序名,还有时间。后面的执行代码不用理,如果电脑没有被优化过的话,这里面保存的东西应该是非常有价值的!
4.查看电脑最近打开过的文件(非程序类)和文件夹记录:
在桌面的左下角点击:“开始”--“运行”--“recent”,即可看到。
5.查看最近上网记录:
在桌面打开“我的电脑”--“C:Documents and SettingsAdministratorLocal Settings(文件夹)”慢慢探索一下这个文件夹吧,如果电脑没有进行过磁盘清理或相关优化之类的,所有记录全在这个里面了,(包括上网干了什么事,进了什么网站,可能还能有视频,图片等等。)
6.查看最近电脑删除记录:
去下载个INDEX.DAT Files Viewer软件,安装好后,在桌面打开:“我的电脑”--“Documents and Settings<Username>Cookies”、“ Documents and Settings<Username>Local SettingsHistoryHistory.IE5”、“ Documents and Settings<Username>Local Internet FilesContent.IE5”等文件夹中都存在着的index.dat文件,有你想看的.(注,只在Windows XP系统中试过,别的系统暂时不知).或者用到系统还原工具,在桌面左下角点击:“开始”--“程序”--“装机人员工具”--“系统还原”--“启用系统还原并打开它”,(注:该操作步骤请慎重选用,如果电脑不熟练,请在专业人士指导下操作。)你可以从自己已成功创建过的还原点来进行系统还原,这样就可以把你曾经以为彻底删除掉的东西都给还原出来
㈥ c语言编写模拟ATM取款机查询历史交易纪录这给函数怎么写求赐教!
说到底还是用链表封装结构体,存储其历史交易信息。具体怎么写得看需求
㈦ 游戏中可以查询历史成绩功能如何用C语言编程实现
可以将成绩写入文件或数据库中,需要的时候读取出来
㈧ C语言如何实现数据库查询功能
这个你试一下C语言如何调用ADODB访问数据库
如果是mysql之类 只要找个mysql的例子来看就可以的 mysql有库和头文件可以用
㈨ 用C或C++编程实现数据库的查询,添加,删除,修改功能。
一个教材管理系统,给你参考下
void shumingsearch(struct book *head) /*按教材名称查找*/
{ struct book *p;
char name[20];
int c;
if(head==NULL) {printf("未打开任何文件");getchar();return;}
printf("1,查找专业 2,查找教材名称:");
scanf("%d",&c);
getchar();
if(c==2)
printf("请输入要查找的教材名称:");
else printf("请输入要查找的专业:");
gets(name);
p=head;
do{ if(c==2)
if(strcmp(p->shuming,name)==0)
{
printf("教材编号:%s\n教材名称:%s\n数量:%d\n价格:%d\n专业:%s\n作者:%s\n出版社:%s\n备注:%s\n",p->number,p->shuming,p->shuliang,p->jiage,p->zhuanye,p->zuozhe,p->chubanshe,p->beizhu);
}
if(c==1)
if(strcmp(p->zhuanye,name)==0)
{
printf("教材编号:%s\n教材名称:%s\n数量:%d\n价格:%d\n专业:%s\n作者:%s\n出版社:%s\n备注:%s\n",p->number,p->shuming,p->shuliang,p->jiage,p->zhuanye,p->zuozhe,p->chubanshe,p->beizhu);
}
p=p->next;
}while(p!=NULL);
printf("查找完成");
return;
}
struct book *add(struct book *head) /*增加记录*/
{ struct book *p,*e,*f,*h;
if(head==NULL) {printf("未打开任何文件");getchar(); return NULL;}
h=f=e=head;
p=(struct book *)malloc(sizeof(struct book));
printf("\n教材编号:");
gets(p->number);
printf("\n教材名称:");
gets(p->shuming);
printf("\n数量:");
scanf("%d",&p->shuliang);
printf("\n价格:");
scanf("%d",&p->jiage);
getchar();
printf("\n专业:");
gets(p->zhuanye);
printf("\n作者:");
gets(p->zuozhe);
printf("\n出版社:");
gets(p->chubanshe);
printf("\n备注:");
gets(p->beizhu);
if(strcmp(f->number,p->number)>0) { p->next=f;h=p;printf("\n添加成功");return h;}
if(f->next==NULL) { f->next=p;p->next=NULL;printf("\n添加成功");return h;}
do{
if(f->next!=NULL)
if(strcmp(f->number,p->number)>0)
{
e->next=p;p->next=f;printf("\n添加成功");return h;
}
if(f->next==NULL)
{
f->next=p;
p->next=NULL;
printf("\n添加成功");
return h;
}
f=f->next;
e=e->next;
}while(1);
}
struct book *delet(struct book *head) /*删除记录*/
{ struct book *p,*e;
char num[20];
if(head==NULL) {printf("未打开任何文件");getchar();return NULL;}
printf("请输入要删除的教材编号:");
scanf("%s",num);
p=e=head;
if(strcmp(p->number,num)==0) { head=head->next; print(head);return head;}
else p=p->next;
do{
if(strcmp(p->number,num)==0)
{
if(p->next!=NULL)
e->next=p->next;
if(p->next==NULL) e->next=NULL;
print(head);
return head;
}
p=p->next;
e=e->next;
}while(p!=NULL);
printf("搜索完毕,未找到该记录");
return head;
}
struct book *change(struct book *head) /*修改记录*/
{ struct book *p;
char num[20];
if(head==NULL) {printf("未打开任何文件");getchar();return NULL;}
printf("请输入要修改的教材编号:");
scanf("%s",num);
getchar();
p=head;
do{
if(strcmp(p->number,num)==0)
{
printf("教材编号:%s\n教材名称:%s\n数量:%d\n价格:%d\n专业:%s\n作者:%s\n出版社:%s\n备注:%s\n",p->number,p->shuming,p->shuliang,p->jiage,p->zhuanye,p->zuozhe,p->chubanshe,p->beizhu);
printf("\n教材编号:");
gets(p->number);
printf("\n教材名称:");
gets(p->shuming);
printf("\n数量:");
scanf("%d",&p->shuliang);
printf("\n价格:");
scanf("%d",&p->jiage);
getchar();
printf("\n专业:");
gets(p->zhuanye);
printf("\n作者:");
gets(p->zuozhe);
printf("\n出版社:");
gets(p->chubanshe);
printf("\n备注:");
gets(p->beizhu);
printf("修改成功");
return head;
}
p=p->next;
}while(p!=NULL);
printf("未找到要修改的记录");
return head;
}
int mima()
{ FILE *fp;
char mima1[20],mima2[20];
if((fp=fopen("mima","r"))==NULL)
{ printf("尚未设置密码请输入:");
scanf("%s",mima1);
printf("请再次输入密码:");
scanf("%s",mima2);
if(strcmp(mima1,mima2)!=0) { printf("两次密码不一样");return 0;}
else {
fp=fopen("mima","w");
fprintf(fp,"%s",mima1);
printf("密码设置成功");
return 1;
}
}
printf("请输入初始化密码:");
scanf("%s",mima1);
fscanf(fp,"%s",mima2);
if(strcmp(mima1,mima2)==0)
{
printf("密码正确");
printf("请输入要删除的文件名:");
scanf("%s",mima1);
if(remove(mima1)==0)
{
printf("删除成功");
getchar();
return 1;
}
else {
printf("删除失败,请检查是否存在该文件或路径是否正确");
getchar();
return 0;
}
}
else {
printf("密码错误");
getchar();
return 0;
}
}
void main()
{
struct book *head=NULL;
char i;
getch();
system("cls");
do{
printf(" ☆★☆★☆★ 教材管理系统 ☆★☆★☆★\n");
printf("m--菜单 h--帮助");
printf("\n请输入命令:");
i=getch();
if(i=='h')
{ printf("\n1,录入教材信息的时候,每一个项目都必须输入相应的内容。\n2,修改,增加,删除,查找记录前必须先打开一个文件,修改完后必须记得保存教材信息。\n3,必须使用正确的路径打开文件,建议保存文件时候不用输入路径(此时是默认路径,即保存在程序目录下。)");
getch();
break;
}
if(i=='m')
break;
system("cls");
}while(i!='m'||i!='h');
system("cls");
do{
printf(" ☆★☆★☆★ 教材管理系统 ☆★☆★☆★\n");
printf("┌————-———┐\n");
printf("│1,录入教材信息│\n│2,显示教材信息│\n│3,打开一个记录│\n│4,编辑一个记录│\n│5,保存教材信息│\n│6,查找记录 │\n│s,初始化系统 │\n│e,退出系统 │\n");
printf("└———————-┘\n");
printf("\n请输入功能编号:");
i=getch();
system("cls");
switch(i)
{
case '1': head=creat();save(head);break;
case '2': print(head);break;
case '3': head=openfile();break;
case '4': system("cls");
printf("┌————-———┐\n");
printf("│1,增加一个记录│\n");
printf("│2,删除一个记录│\n");
printf("│3,修改一个记录│\n");
printf("└———————-┘\n");
i=getch();
switch(i)
{
case '1':
head=add(head);break;
case '2':
head=delet(head);break;
case '3': head=change(head);break;
default: break;
}
break;
case '5': save(head);break;
case '6': shumingsearch(head);break;
case 's': mima();break;
case 'e': exit(0);
default :break;
}
system("cls");
}while(1);
}
㈩ 如何用c语言编一个成绩查询系统
如果你是要做一个非常专业的商业软件,这个其实不太适合用C语言来编写。你可以考虑其他高级语言如java,c#,etc.
如果你仅仅是想在功能上实现成绩查询,而且数据量不是那种特别大,比如千万,上亿级别的,用C语言以二进制文件读写的方式完全可以轻松实现。
下面说说大概的思路:
1.你可以定义一个结构体来描述成绩,结构体的变量包括比如姓名,学号,班级,语文成绩,数学成绩,etc。
2.所有学生的成绩,就是一个个的结构体 把所有结构体保存到二进制文件中。
3.如果需要查询成绩,就先从二进制文件把所有的成绩读取出来,保存到数组或者链表中。然后在数组或者链表中进行查询。
如果是要删除某一个学生的记录,就从数组或者链表中先找到该学生的记录,然后删掉该元素,再保存回二进制文件。
如果是要添加一个学生成绩信息,就是在数组或者链表中添加一个元素,然后保存为二进制文件。
用C语言以二进制文件的方式模拟数据库系统的操作,大体的思路就是这样的。
如果你非要以数据库的方式来存取数据,用C语言,也不是绝对不可以,那就比较繁琐了,自行查找C语言访问数据库相关的知识。