通用查询系统源码(如何正确地查看源代码)

本文目录
- 如何正确地查看源代码
- Java课程设计源代码 家族亲属关系查询系统
- linux系统怎么查询源码安装的软件
- 学生信息管理系统源代码
- C语言设计商品管理系统,可以实现商品的录入,查询,求源代码
- 别人用excel表格做的管理系统怎么查看此管理系统的源码
- 求一个asp+acc查询系统源码 要求一个数据库名funs,其中有几个表,里面有
- linux源码查看版本linux源码查看
- 求一个php,不需要数据库支持的成绩查询系统源码
如何正确地查看源代码
一。先把源代码安装起来编译起来,结合它的文档和手册,熟悉其功能和它的应用方式。如果遇到的是英文文档,那么首先恭喜你,如果硬着头皮看下来,不仅能在国内开此系统或框架的先河,而且能让你阅读英文的水平大幅提升。
二。浏览源代码的目录结构,了解各个目录的功能。从整体上观察这个工程是有哪些模块组成的,最好能画一画图。
三。经过以上两步后你对这份源代码有了一个初步的了解了,现在开始分析它的源码吧。这一步我们开始分析源代码框架。例如入口方式是单入口还是多入口,页面之间的调用规则,能根据规则找出某个功能用到的页面。
四。熟悉源代码的代码写作风格,例如缩进方式,排版格式,变量命名,函数命名等。
五。熟悉一下源代码用到的数据库和表,可以参考它的技术支持文档。
六。经过以上几步相信已经对源代码有了更深刻的了解,不过这种了解还只是表面的,下来我们从7个方面具体的去分析它吧:
1.入口构造以及页面调用方式的具体实现,如果阅读时看到工具类和工具函数,尽量去熟悉一下。这一步的分析可以学习到源代码的系统架构方式。
2.分析源代码用到的工具类和工具函数,这样可以学到很多程序编写技巧。可以提升自己编程功力。
3.结合一些安全规则,研究这个源代码是怎样实现安全方面的设计的。这样可以提高自己在安全方面的意识和功力。
4.如果有模板引擎的话,研究一下源代码的模板引擎。大致从实现方式,效率,易用性等几个方面去考虑。
5.研究系统的各个功能模块,这样既能学习编程技巧还能打开自己的编程思路,下次遇到类似的东东就心里有谱了。
6.研究系统所用到设计模式,一样的功能实现,用到的设计模式可能相差很多,对比我们之前所作的东东分析设计模式,是提升我们驾驭代码的不二法门。
7.研究源代码对访问压力,执行效率,系统效率,数据库查询的优化。
七。做笔记,把这个开源代码实现的功能,实现方式、设计框架、模块组织、以及代码技巧等记录下来。边记录边总结整理,对学习的东西更容易消化吸收。
八。实践是检验真理的唯一标准,修改一些比较简单地功能,或者写一些简单的sample,并且调试出来,这样才能做到更加理解代码。同时框架性的源代码里一般都有自带的实例,修改使用这些实例,可以快速了解框架的使用。
Java课程设计源代码 家族亲属关系查询系统
public class Beetle extends Insect {
private int k = printInit("Beetle.k initialized");
public Beetle(){
System.out.println("k = " +k);
System.out.println("j = " + j);
}
private static int x2 = printInit("static Beetle.x2 initialized");
public static void main(String args){
System.out.println("Beetle constructor");
Beetle b = new Beetle();
}
}
linux系统怎么查询源码安装的软件
一、平时下载linux的源码包,都是通过搜索,然后找到相关的下载网站进行下载。或者搜索网站进行下载,而且还要遍历查找安全的网站下载,这样有些浪费时间与精力.
二、下面举例介绍一种简单的方法下载软件的源码安装包
使用 yum info XXX 的命令得到软件的地址,然后复制即可浏览,这样即安全也省时间去查找,更加简单,如下图所示
使用yum info 命令进行查看软件的信息,里边包含了软件的网站,可以很方便得知源码下载地址了.
三、总结
无论使用哪一种方法来查询软件的源码包,但还是要验证一下它的安全性,避免出现故障,最好就是到软件的官方网站进行下载。
学生信息管理系统源代码
void Sort(student *&head, char type,char maxOrMin)
{
/*参数说明:
type==’1’ 按 语文 排列
type==’2’ 按 数学 排列
type==’3’ 按 英语 排列
type==’4’ 按 总分 排列
type==’5’ 按 平均分 排列
type==’6’ 按 座号 排列
*/
student *pHead,*pH;
pHead=pH=head;
int len=GetLength(head);
float *array=new float;
int i;
int x=0;
float num=0;
while(head)
{
Count(head);
if(type==’1’)
{
num=head-》chinaNum;
}
else if(type==’2’)
{
num=head-》mathNum;
}
else if(type==’3’)
{
num=head-》englishNum;
}
else if(type==’4’)
{
num=head-》result;
}
else if(type==’5’)
{
num=head-》average;
}
else if(type==’6’)
{
num=head-》num;
}
array=num;
x++;
head=head-》next;
}
head=pHead;
if(maxOrMin==’1’)
{
for( i=1; i《len; i++)
{
for(int j=0; j《len-i; j++)
{
if(array)
{
float num;
num=array;
array;
array=num;
}
}
}
}
else
{
for( i=1; i《len; i++)
{
for(int j=0; j《len-i; j++)
{
if(array)
{
float num;
num=array;
array;
array=num;
}
}
}
}
int pos=1;
for(i=0; i《len; i++)
{
head=pHead;
while(head)
{
if(type==’1’)
{
num=head-》chinaNum;
}
else if(type==’2’)
{
num=head-》mathNum;
}
else if(type==’3’)
{
num=head-》englishNum;
}
else if(type==’4’)
{
num=int(head-》result);
}
else if(type==’5’)
{
num=int(head-》average);
}
else if(type==’6’)
{
num=int(head-》num);
}
int n=0;
if(int(array)==int(num))
{
if(int(array))
{
if(n==0)
{
n=pos;
}
head-》pos=pos;
pos++;
}
else
{
head-》pos=n;
}
}
head=head-》next;
}
}
head=pH;
delete array;
}
void Count(student *&head)
{
head-》result=head-》chinaNum+head-》englishNum+head-》mathNum;
head-》average=head-》result/3;
}
void DeleteAll(student* &head)
{
student *cp,*np;
cp=head;
while(cp)
{
np=cp-》next;
delete cp;
cp=np;
}
head=NULL;
}
void ChaXun(string str,student *head)
{
Sort(head,’4’,’1’);
cout《《"欢迎使用查询功能"《《endl《《endl;
cout《《"请输入你要按什么查询 1-》一般查询 2-》查找最多 3-》查找最少"《《endl;
string s;
cin》》s;
while(s!=’3’)
{
cout《《"你输入错误,请重新输入."《《endl;
cin》》s;
}
if(s==’1’)
{
cout《《"按什么查询?"《《endl;
cout《《"1-》姓名 2-》座号 3-》语文成绩 4-》数学成绩 "
《《"5-》英语成绩 6-》总分 7-》平均分 8-》排名"《《endl;
cin》》str;
while(str!=’2’ &&
str!=’4’ &&
str!=’6’ &&
str!=’8’ )
{
cout《《"你输入错误,请重新输入."《《endl;
cin》》str;
}
char findStr;
cout《《"请输入要查找的关键字或关键数:"《《endl;
cin》》findStr;
switch(str)
{
case ’1’:
Find(head,findStr,’1’);
break;
case ’2’:
Find(head,findStr,’2’);
break;
case ’3’:
Find(head,findStr,’3’);
break;
case ’4’:
Find(head,findStr,’4’);
break;
case ’5’:
Find(head,findStr,’5’);
break;
case ’6’:
Find(head,findStr,’6’);
break;
case ’7’:
Find(head,findStr,’7’);
break;
case ’8’:
Find(head,findStr,’8’);
break;
}
}
else if(s==’2’)
{
cout《《"请输入要按什么查询?"《《endl;
cout《《"1-》语文成绩 2-》数学成绩 "
《《"3-》英语成绩 4-》总分 5-》平均分 6-》排名"《《endl;
string s;
cin》》s;
switch(s)
{
case ’1’:
FindMaxOrMin(head,’1’,’1’);
break;
case ’2’:
FindMaxOrMin(head,’2’,’1’);
break;
case ’3’:
FindMaxOrMin(head,’3’,’1’);
break;
case ’6’:
FindMaxOrMin(head,’6’,’1’);
break;
case ’5’:
FindMaxOrMin(head,’5’,’1’);
break;
default:
FindMaxOrMin(head,’4’,’1’);
break;
}
}
else if(s==’3’)
{
cout《《"请输入要按什么查询?"《《endl;
cout《《"1-》语文成绩 2-》数学成绩 "
《《"3-》英语成绩 4-》总分 5-》平均分 6-》排名"《《endl;
string s;
cin》》s;
switch(s)
{
case ’1’:
FindMaxOrMin(head,’1’,’2’);
break;
case ’2’:
FindMaxOrMin(head,’2’,’2’);
break;
case ’3’:
FindMaxOrMin(head,’3’,’2’);
break;
case ’6’:
FindMaxOrMin(head,’6’,’2’);
break;
case ’5’:
FindMaxOrMin(head,’5’,’2’);
break;
default:
FindMaxOrMin(head,’4’,’2’);
break;
}
}
}
void ZengJia(string str, student* &head)
{
student *pNew=new student;
cout《《"欢迎使用增加功能"《《endl《《endl;
cout《《"请输入新学生的名字 :"《《endl;
cin》》pNew-》name;
cout《《"请输入新学生的座号 :"《《endl;
cin》》pNew-》num;
cout《《"请输入他的语文分数 :"《《endl;
cin》》pNew-》chinaNum;
cout《《"请输入他的数学分数"《《endl;
cin》》pNew-》mathNum;
cout《《"请输入他的英语分数"《《endl;
cin》》pNew-》englishNum;
cout《《"插入记录的 (1-》最前面 2-》最后面)"《《endl;
cin》》str;
while(str!=’2’)
{
cout《《"你输入错误,请重新输入."《《endl;
cout《《"插入记录的 (1-》最前面 2-》最后面)"《《endl;
cin》》str;
}
if(str==’1’)
{
InsertFront(head,pNew);
}
else if(str==’2’)
{
InsertRear(head,pNew);
}
cout《《"新学生增加成功."《《endl;
}
void ShanChu(string str, student *&head)
{
char delStr;
cout《《"欢迎使用删除功能"《《endl《《endl;
cout《《"1-》查询删除 2-》全部删除"《《endl;
cin》》str;
while(str!=’2’)
{
cout《《"输入错误,请重新输入."《《endl;
cin》》str;
}
if(str==’1’)
{
cout《《"请输入要删除的关键字"《《endl;
cin》》delStr;
cout《《"1-》删除第一条找到的记录 2-》删除所有找到的记录"《《endl;
cin》》str;
while(str!=’2’)
{
cout《《"你输入错误,请重新输入."《《endl;
cin》》str;
}
cout《《"你真的要删除吗? 1-》删除 2-》取消"《《endl;
string s;
cin》》s;
if(str==’1’)
{
if(str==’1’)
{
Delete(head,delStr,1);
}
else
{
Delete(head,delStr,2);
}
}
else
{
cout《《"你已经取消删除了."《《endl;
}
}
else
{
cout《《"你真的要删除全部数据吗?这样会使你的数据全部丢失哦."《《endl;
cout《《"1-》全部删除 2-》取消删除"《《endl;
cin》》str;
if(str==’1’)
{
DeleteAll(head);
}
else
{
cout《《"你已经取消删除了."《《endl;
}
}
}
void PaiMing(string str, student* head)
{
string s;
cout《《"欢迎使用排名功能"《《endl《《endl;
cout《《"排名选择: 1-》升序 2-》降序"《《endl;
cin》》s;
cout《《"请输入要按什么排名?"《《endl;
cout《《"1-》语文成绩 2-》数学成绩 3-》英语成绩 "
《《"4-》总分 5-》平均分 6-》座号"《《endl;
cin》》str;
while(str!=’2’ &&
str!=’4’ &&
str!=’6’ )
{
cout《《"你输入错误,请重新输入."《《endl;
cin》》str;
}
cout《《"姓名:"《《setw(8)《《"座号:"《《setw(10)
《《"语文分数:"《《setw(10) 《《"数学分数:"
《《setw(10)《《"英语分数:"《《setw(8)《《"总分数:"
《《setw(8)《《"平均分:"《《setw(6)《《"名次:"《《endl《《endl;
if(s==’2’)
{
switch(str)
{
case ’1’:
Sort(head,’1’,’1’);
break;
case ’2’:
Sort(head,’2’,’1’);
break;
case ’3’:
Sort(head,’3’,’1’);
break;
case ’4’:
Sort(head,’4’,’1’);
break;
case ’5’:
Sort(head,’5’,’1’);
break;
case ’6’:
Sort(head,’6’,’1’);
break;
}
}
else
{
switch(str)
{
case ’1’:
Sort(head,’1’,’2’);
break;
case ’2’:
Sort(head,’2’,’2’);
break;
case ’3’:
Sort(head,’3’,’2’);
break;
case ’4’:
Sort(head,’4’,’2’);
break;
case ’5’:
Sort(head,’5’,’2’);
break;
case ’6’:
Sort(head,’6’,’2’);
break;
}
}
ShowList(head);
return ;
}
void XianShi(string str, student *head)
{
Sort(head,’4’,’1’);
string s;
cout《《"欢迎使用显示功能"《《endl;
cout《《"1-》显示全部记录 2-》显示记录数目"《《endl;
cin》》s;
if(s==’2’)
{
cout《《"记录的数目是:"《《GetLength(head)《《endl;
}
else
{
ShowList(head);
}
}
void XuiGai(string str, student *&head)
{
string s;
student *std;
cout《《"欢迎使用修改功能"《《endl;
cout《《"请输入你要按什么查询"《《endl;
cout《《"1-》姓名 2-》座号 3-》语文成绩 4-》数学成绩 "
《《"5-》英语成绩 "《《endl;
cin》》str;
while(str!=’2’ &&
str!=’4’ &&
str!=’5’ )
{
cout《《"你输入错误,请重新输入."《《endl;
cin》》str;
}
char findStr;
cout《《"请输入要查找的关键字或关键数:"《《endl;
cin》》findStr;
switch(str)
{
case ’1’:
std=Find(head,findStr,’1’);
Reword(std);
break;
case ’2’:
std=Find(head,findStr,’2’);
Reword(std);
break;
case ’3’:
std=Find(head,findStr,’3’);
Reword(std);
break;
case ’4’:
std=Find(head,findStr,’4’);
Reword(std);
break;
case ’5’:
std=Find(head,findStr,’5’);
Reword(std);
break;
}
Write(head);
if(std!=NULL)
{
cout《《"修改成功."《《endl;
}
}
int Run()
{
bool isLoad=false;
student* head=NULL;
student *pNew=new student;
head=Read();
SetTitle(false);
if(head!=NULL)
{ Sort(head,’5’,’1’);
Count(head);
}
string str;
SetTitle(false);
cout《《" 欢迎使用学生管理系统 "《《endl《《endl;
cout《《" 1-》用户登陆 2-》退出程序 "《《endl;
cin》》str;
if(str==’2’)
{
AboutMe();
return 0;
}
else
{
isLoad=Enter(’1’);
system("cls");
if(isLoad==true)
{
SetTitle(true);
cout《《" 恭喜,您输入的密码正确.可以对本系统的进行任何操作."《《endl;
}
else
{
cout《《" Sorry,您输入的密码错误.你不能修改本系统的任何内容."《《endl;
}
}
begin:
cout《《endl《《endl;
cout《《" 欢迎使用学生管理系统 "《《endl《《endl;
cout《《" 1-》增加功能 2-查询功能"《《endl;
cout《《" 3-》删除功能 4-排名功能"《《endl;
cout《《" 5-》显示功能 6-修改功能"《《endl;
cout《《" 7-》用户设置 8-退出程序"《《endl;
cout《《"请输入您的选择: "《《endl;
cin》》str;
while(str!=’8’)
{
if(isLoad==true && head!=NULL)
{
cout《《endl《《endl;
if(str==’1’)
{
ZengJia(str, head);
Sort(head,’4’,’1’);
Write(head);
}
else if(str==’2’)
{
ChaXun(str,head);
}
else if(str==’3’)
{
ShanChu(str,head);
Sort(head,’4’,’1’);
Write(head);
}
else if(str==’4’)
{
PaiMing(str,head);
}
else if(str==’5’)
{
XianShi(str,head);
}
else if(str==’6’)
{
XuiGai(str,head);
Write(head);
}
else if(str==’7’)
{
cout《《"欢迎使用用户修改功能"《《endl;
isLoad=Enter(’2’);
}
else if(str==’8’)
{
AboutMe();
return 0;
}
else
{
cout《《"你输入错误,请重新输入."《《endl;
goto begin;
}
}
else if(isLoad==false && head!=NULL)
{
if(str==’2’)
{
ChaXun(str,head);
}
else if(str==’4’)
{
PaiMing(str,head);
}
else if(str==’5’)
{
XianShi(str,head);
}
else
{
cout《《"你不是管理员,不能进行此项功能."《《endl;
cout《《"你只能进行 查询功能 显示功能 排名功能"《《endl;
}
}
else if( head==NULL && isLoad==true)
{
cout《《"系统检查到你没有任何记录,不能进行任何操作,只能增加记录."《《endl;
ZengJia(str, head);
Write(head);
head=Read();
}
else if( head==NULL && isLoad==false)
{
cout《《"因为你没有登陆,系统又检查到你没有任何记录,你不能进行任何操作."《《endl;
}
cout《《endl《《endl;
cout《《"按任何键继续进行操作."《《endl;
getchar();
getchar();
system("cls");
goto begin;
}
AboutMe();
return 0;
}
void SetTitle(bool isLoad)
{
HWND hwnd=GetForegroundWindow();
if(isLoad==false)
{
SetWindowText(hwnd," 学生管理系统(没有登陆)");
}
else
{
SetWindowText(hwnd," 学生管理系统(已经登陆)");
}
system("color a");
}
void AboutMe()
{
char*pStr= " ┃ \n"
" ┃ \n"
" ┏━━━━┻━━━━┓ \n"
" ┃ 关于作者 ┃ \n"
" ┏━━━━┻━━━━━━━━━┻━━━━┓\n"
" ┃ ┃\n"
" ┃ Aauthor:********** ┃\n"
" ┃ QQ: ********* ┃\n"
" ┃ E-mail:********@**.com ┃\n"
" ┃ ┃\n"
" ┗━━━━━━━━━━━━━━━━━━━┛\n";
system("cls");
srand(time(0));
for(int i=0; i《strlen(pStr); i++)
{
if(pStr!=’ ’)
{
Sleep(20);
}
cout《《pStr;
}
cout《《"Good-bye ."《《endl;
cout《《endl《《endl《《endl《《endl;
}
int main()
{
Run();
return 0;
}
C语言设计商品管理系统,可以实现商品的录入,查询,求源代码
#include 《stdio.h》
#include 《conio.h》
#include 《string.h》
#define SIZE 300
typedef struct
{
char name;
int num;
char shang;
float price;
}record;
void DataInput(record *com, int *nptr);
int DataRead(record *com,int *nptr) ;
void DataStorage(record *com, int n); /*信息保存到文件*/
void DataFind( );
void DataDisPlay( );
void DataAdd( );
void DataDel( );
void DataStatistic( );
int main( )
{
record shangpin;
int number=20; /*设商品数*/
char fn;
printf("\t~~~~~~商品管理系统~~~~~~");
while(1)
{
printf("\n\t\t1.商品信息录入\n"); /*显示主菜单*/
printf("\t\t2.商品信息显示\n");
printf("\t\t3.商品信息查找\n");
printf("\t\t4.商品信息添加\n");
printf("\t\t5.商品信息删除\n");
printf("\t\t6.商品信息统计\n");
printf("\t\t0.退出系统");
printf("\n\t~~~~~~~~~~~~~~~~\n");
printf("\t请输入你的一个选项(数字0-6): ");
fflush(stdin);
scanf("%c",&fn);
puts("\n");
switch(fn) /*切换到不同功能*/
{
case ’1’:
DataInput(shangpin, &number );
break; /*录入信息*/
case ’2’:DataDisPlay();
break; /*信息显示*/
case ’3’:
DataFind();
break; /*信息查找*/
case ’4’:
DataAdd( );
break; /*增加*/
case ’5’:
DataDel( );
break; /*删除*/
case ’6’:
DataStatistic();
break; /*信息统计*/
case ’0’:
return 0;
default:puts("\t\t没有这个项!返回主菜单!");
break;
}
printf("\n\t\t完毕!按任意键继续");
getch( );
puts("\n");
}
}
void DataInput(record *com, int *nptr) /*商品信息录入*/
{
int i = 0;
int n ; /*录入的总数*/
char YesOrNo; /*判断是否保存*/
char shangming; /*商名*/
int haoma; /*商品号*/
char shangjia; /*单价*/
float danjia;
printf("\t\t请输入商品个数:");
scanf("%d",&n);
*nptr = n; /*nptr返回商品个数*/
printf("\t\t现在开始录入这%d个商品信息:\n\n",n);
while(i《n)
{
printf("请输入商品的商品名:",i+1);
scanf("%s",&shangming);
printf("请输入商品的商品号:",i+1);
scanf("%d",&haoma);
printf("请输入商品的生产商:",i+1);
scanf("%s",&shangjia);
printf("请输入商品的单价 :",i+1);
scanf("%f",&danjia);
if(danjia》=0&&danjia《=1000) /*有效的单价才录入*/
{
strcpy(com.name,shangming);
com.num = haoma;
strcpy(com.shang,shangjia);
com.price = danjia;
i =i+1;
}
else
printf("输入的单价是一个无效的值!!!\n\n");
} /*结束while*/
printf("要保存您刚才录入的数据吗(Y/N)?"); /*选择保存*/
fflush(stdin);
scanf("%c",&YesOrNo);
if(YesOrNo==’y’||YesOrNo==’Y’)
DataStorage(com,n);
else if(YesOrNo==’n’||YesOrNo==’N’)
return;
else
printf("输入了不正确的选项\n");
return;
} /*结束函数*/
void DataFind( ) /*查找*/
{
void OnNumber(record *com,int n ); /*按商品号排序*/
int key; /*key为要查找的关键值*/
int low = 0; /*下限*/
int high ; /*上限*/
int mid ; /*中间值*/
char ans; /*选项*/
record com;
int n;
if(DataRead(com,&n)==1) /*从文件中读取信息*/
{
OnNumber(com,n); /*先按商品号排序*/
high = n;
do
{
printf("\n\n\t\t请输入你要查找的商品号:");
scanf("%d",&key);
low = 0;high = n;
while (low 《=high)
{
mid = (high + low)/2; /*折半查找法*/
if (key == com.num )
{
printf("\n\t\t你要找的是第%d个商品\n",mid + 1);
printf("\t\t结果如下:\n\n");
printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");
printf("%3d%17s%12d%12s%8.1f\n",mid+1,com.shang,
com.price);
break; /*如果找到则退出循环*/
}
if (key 》 com.num ) low = mid + 1;
else high = mid - 1;
}
if (low 》 high)
printf("\t\t,没有找到这个价格!\n");
printf("\n\t\t还要继续查询吗(Y/N)?");
ans = getch( );
}
while (ans ==’Y’||ans == ’y’); /*结束do....while*/
}
}
void DataStorage(record *com, int n) /*录入保存文件*/
{
int i;
FILE *comPtr;
char FileName;
printf("请输入您要保存的文件名:");
scanf("%s",FileName);
printf("正在将商品信息保存到文件,请稍候……\n");
if((comPtr=fopen(FileName,"w"))==NULL)
printf("没有该文件\n");
else
for(i=0 ; i《n ; i++)
fprintf(comPtr,"\n%17s%12d%12s%8.1f",com.price);
fclose(comPtr);
}
int DataRead(record *com,int *nptr) /*读取文件*/
{
int i=0;
char datafile;
FILE *comPtr;
*nptr = 0;
printf("请输入文件名:");
scanf("%s",datafile);
if((comPtr = fopen(datafile,"r")) == NULL) /*打开文件*/
{
printf("没有该文件,请重新输入!\n");
return 0;
}
else
{
printf("正在读取商品单价,请稍候……\n");
while (!feof(comPtr))
{
fscanf(comPtr,"%s%d%s%f",&com.price);
i++;
}
*nptr = i;
printf("\n");
fclose(comPtr);
return 1;
}
}
void DataDisPlay()
{
void OnPrice(record *com,int n ); /*按单价*/
void OnNumber(record *com,int n ); /*按商品号*/
int N;
int i;
record com;
char YesNo; /*是否按顺序显示*/
char tp;
if(DataRead(com,&N)==1) /*从文件读取数据*/
{
printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");
for(i=0;i《N;i++)
printf("%3d%17s%12d%12s%8.1f\n",i+1,com.price);
printf("要按顺序显示吗?(Y/N)?");
fflush(stdin);
scanf("%c",&YesNo);
if(YesNo==’y’||YesNo==’Y’)
{
printf("\t请输入排序方式:\n");
printf("\t(1.按价格排序从低到高;2.按商品号排序从低到高.)");
fflush(stdin);
scanf("%c",&tp);
if(tp==’1’)
OnPrice(com,N);
else if(tp ==’2’)
OnNumber(com,N);
else
printf("\t输入了不正确项!\n");
}
}
} /*结束显示成绩*/
void OnPrice(record *com,int n ) /*按单价顺序*/
{ int i,j;
record temp;
printf("\t\t按单价排序---\n\n");
printf("商品总数为%d:\n",n);
for(j=0 ; j《n-1 ; j++) /*冒泡排序*/
for(i=0 ; i《n-j-1 ; i++)
if(com.price)
{
temp=com;
com;
com=temp;
}
printf("\n\t\t按成绩排序的结果如下(按分数从低到高):\n\n");
printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");
for(i=0 ; i《n ; i++)
printf("%3d%17s%12d%12s%8.1f\n",i+1,com.shang,
com.price);
}
void OnNumber(record *com,int n ) /*按序号顺序*/
{
int i,j;
record temp;
printf("\t\t按商品号排序---\n\n");
printf("商品总数为%d:\n",n);
for(j=0 ; j《n-1 ; j++)
for(i=0 ; i《n-j-1 ; i++)
if(com.num)
{
temp=com;
com;
com=temp;
}
printf("\n\t按商品号排序的结果如下(按商品号从小到大):\n\n");
printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");
for(i=0 ; i《n ; i++)
printf("%3d%17s%12d%12s%8.1f\n",i+1,com.shang,
com.price);
}
void DataAdd( ) /*增加*/
{
int i=0,n,m; /*商品名称*/
char shangming;
int haoma; /*生产商*/
char shangjia;
float danjia;
char YesOrNo;
record com;
printf("\t\t读取原有数据信息---\n");
if(DataRead(com,&n)==1)
{
printf("\t\t信息读取完毕!\n\n");
printf("\t\t请输入要添加的商品总数:");
scanf("%d",&m);
printf("\t\t现在开始录入这%d个商品信息:\n\n",m);
while(i《m)
{
printf("第%d个商品的商品名:",i+1);
scanf("%s",&shangming);
printf("第%d个商品的商品号:",i+1);
scanf("%d",&haoma);
printf("第%d个商品的生产商:",i+1);
scanf("%s",&shangjia);
printf("第%d个商品的单价:",i+1);
scanf("%f",&danjia);
if(danjia》=0&&danjia《=1000) /*有效的单价才录入*/
{
strcpy(com.name,shangming);
com.num = haoma;
strcpy(com.shang,shangjia);
com.price = danjia;
i =i+1;
}
else
printf("输入的单价是一个无效的值,请重新输入!\n\n");
}
printf("要保存您刚才录入的数据吗(Y/N)?");
fflush(stdin);
scanf("%c",&YesOrNo);
if(YesOrNo==’y’||YesOrNo==’Y’)
DataStorage(com,n+m);
else if(YesOrNo==’n’||YesOrNo==’N’)
return;
else
printf("输入了不正确项,返回上一级\n");
return;
}
}
void DataDel( )//删除
{
void OnNumber(record *com,int n );
record com;
int i; /*总记录数*/
int n; /*要删除的记录号*/
int m;
printf("\t\t读取原有数据信息---\n");
if(DataRead(com,&n)==1)
{
printf("\t\t原始数据如下:\n\n");
OnNumber(com,n );
printf("请输入你要删除的记录的序号");
scanf("%d",&m);
if(m》=1 && m《=n)
{
for(i=m-1;i《n-1;i++)
com ;
DataStorage(com,n-1);
}
}
}
void DataStatistic( ) /*统计信息*/
{
int high=0,low=200,ave=0;
int n,i,sum=0;
int g,l;
record com;
printf("读取数据信息---\n");
if(DataRead(com,&n)==1)
{
printf("商品总数为%d\n\n",n);
for(i=0;i《n;i++)
{
if(com.price》high)
{
high = com.price;
g=i;
}
if(com.price《low)
{
low = com.price;
l=i;
}
sum += com.price;
}
ave=sum/n;
printf("\t\t最高\t最低\t平均\n"); /*计算值*/
printf("商品单价统计:\t%d\t%d\t%d\n\n",high,low,ave);
printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");
for(i=0 ; i《n ; i++)
printf("%3d%17s%12d%12s%8.1f\n",i+1,com.shang,
com.price);
printf("\t\t 序号\t\t 商品名\t 商品号\t 生产商 单价\n");
printf("单价最高的商品是:%3d%17s%12d%12s%8.1f\n\n",g+1,com.price);
printf("单价最低的商品是:%3d%17s%12d%12s%8.1f\n",l+1,com.price);
} /*结束统计*/
}
别人用excel表格做的管理系统怎么查看此管理系统的源码
新建excel文件,alt+F11进入VBA器,插入模块,输入以下代码:
Sub MoveProtect()
Dim FileName As String
FileName = Application.GetOpenFilename("Excel文件(*.xls & *.xla),*.xls;*.xla", , "VBA破解")
If FileName = CStr(False) Then
Exit Sub
Else
VBAPassword FileName, False ’ 引用下面的自定义函数
End If
End Sub
Private Function VBAPassword(FileName As String, Optional Protect As Boolean = False)
If Dir(FileName) = "" Then
Exit Function
Else
FileCopy FileName, FileName & ".bak"
End If
Dim GetData As String * 5
Open FileName For Binary As #1
Dim CMGs As Long
Dim DPBo As Long
For i = 1 To LOF(1)
Get #1, i, GetData
If GetData = "CMG=""" Then CMGs = i
If GetData = "[Host" Then DPBo = i - 2: Exit For
Next
If CMGs = 0 Then
MsgBox "请先对VBA编码设置一个保护密码...", 32, "提示"
Exit Function
End If
If Protect = False Then
Dim St As String * 2
Dim s20 As String * 1 ’取得一个0D0A十六进制字串
Get #1, CMGs - 2, St ’取得一个20十六制字串
Get #1, DPBo + 16, s20 ’替换加密部份机码
For i = CMGs To DPBo Step 2
Put #1, i, St
Next ’加入不配对符号
If (DPBo - CMGs) Mod 2 《》 0 Then
Put #1, DPBo + 1, s20
End If
MsgBox "文件解密成功......", 32, "提示"
Else
Dim MMs As String * 5
MMs = "DPB="""
Put #1, CMGs, MMs
MsgBox "对文件特殊加密成功......", 32, "提示"
End If
Close #1
End Function
2. 运行上面的代码,选择你的文件,移除密码成功后打开文件,按alt+F11查看源码:
求一个asp+acc查询系统源码 要求一个数据库名funs,其中有几个表,里面有
keyword=trim(request("keyword"))
Set rs= Server.CreateObject(FR_HR_RS)
sql="select hs,sm,cs,fhz,sl from funs where hs=’"&keyword&"’"
rs.open sql,conn,1,1
if not rs.eof and not rs.bof then
Response.Write ""&rs("sm")&"《br/》"
Response.Write ""&rs("cs")&"《br/》"
Response.Write ""&rs("fhz")&"《br/》"
Response.Write ""&rs("sl&")"《br/》"
end if
rs.close
Set rs=nothing
linux源码查看版本linux源码查看
如何获取linux下命令源码?
命令的源码是一个软件包为单元的,放在一个软件包的源码中。若要下载一个命令的源码,就要把这个命令所属的软件包的源码都下载下来。命令的源码就在下载的源码的相关文件夹内。一般是src文件夹,对应的主文件名称为cmd.c,当中cmd为详细的命令,如ls命令的主程序文件为ls.c。
因为在不同的Linux发行版上。源码的获取方法并不同样。所以以下以Ubuntu和CentOS这两种经常使用的Linux发行版为样例进行说明。
1、Ubuntu中系统命令源码的获取方法
以32位Ubuntu14.04下,获取ls命令的源码为例,能够使用例如以下的方法下载源码:
1)使用which命令查看ls命令的位置,例如以下:
whichls#输出:/bin/ls
2)使用dpkg命令查询ls命令所属的包。例如以下:
dpkg-S/bin/ls#输出:coreutils:/bin/ls
3)使用apt-get命令来下载ls命令所在的包的源码。例如以下:
apt-getsourcecoreutils
注:
1)在使用dpkg时。若出现错误。能够使用sudo命令使其以root权限运行。
2)使用apt-getsource下载的源码保存到当前文件夹下。
。此外,当我们知道了命令所属的包后,也能够到对应的官方站点下载。
2、CentOS中系统命令源码的获取方法
以32位CentOS6.6下,获取ls命令的源码为例,能够使用例如以下的方法下载源码:
1)配置源码的源
在CentOS中,源的配置文件为:/etc/yum.repos.d/CentOS-Base.repo,改动该文件须要root权限。
打开该文件,查看该文件的内容,在本人的机子上,该文件的内容例如以下:
#CentOS-Base.repo
#
#ThemirrorsystemusestheconnectingIPaddressoftheclientandthe
#updatestatusofeachmirrortopickmirrorsthatareupdatedtoand
#geographicallyclosetotheclient.YoushouldusethisforCentOSupdates
#unlessyouaremanuallypickingothermirrors.
#
#Ifthemirrorlist=doesnotworkforyou,asafallbackyoucantrythe
#remarkedoutbaseurl=lineinstead.
#
#
name=CentOS-$releasever-Base
***隐藏网址***
***隐藏网址***
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#releasedupdates
name=CentOS-$releasever-Updates
***隐藏网址***
***隐藏网址***
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#additionalpackagesthatmaybeuseful
name=CentOS-$releasever-Extras
***隐藏网址***
release=$releaseverarch=$basearchrepo=extras
***隐藏网址***
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#additionalpackagesthatextendfunctionalityofexistingpackages
name=CentOS-$releasever-Plus
***隐藏网址***
***隐藏网址***
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#contrib-packagesbyCentosUsers
name=CentOS-$releasever-Contrib
***隐藏网址***
***隐藏网址***
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
该文件里有两个变量:releasever和basearch。分别表示release版本号和分支,如本人的机子上,这两个值分别为6和i386。注意。releasever并不会细分为次级版本号。即不会是6.6之类的。
从该文件的内容能够知道,该文件共同拥有5个节。也就是说本人的机子的软件来源有5处,分别为base、updates、extras、centosplus和contrib。所以仅仅须要为例如以下的5处软件源指定其源码的源就可以。在文件的末尾加上例如以下的内容:
name=CentOS-$releasever-Basesrc
***隐藏网址***
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
name=CentOS-$releasever-Updatessrc-centos
***隐藏网址***
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
name=CentOS-$releasever-Extrassrc-centos
***隐藏网址***
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
name=CentOS-$releasever-Plussrc-centos
***隐藏网址***
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
name=CentOS-$releasever-Contribsrc-centos
***隐藏网址***
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
因为不同的版本号设置会有所不同,所以其设置会有所不同,方法可总结为例如以下:
(1)gpgkey与该文件里已有的节的gpgkey同样
***隐藏网址***
***隐藏网址***
该文件的作用是为yum其及相关工作的下载提供一个源。如在使用yumdownloader(以下会讲到)下载源码时。会发生例如以下动作:
(1)下载$baseurl/repodata/repomd.xml文件。若该repomd.xml文件比系统中的新。更新系统中的对应的repomd.xml
(2)下载$baseurl/SPackages/中的对应的源码rpm包。
2)使用which命令查看ls命令的位置,例如以下:
whichls
#输出:/bin/ls
3)使用rpm命令查询ls命令所属的包,例如以下:
rpm-qf/bin/ls
#输出:coreutils-8.4-37.el6.i686
4)yumdownloader是一个从RPM源下载RPM的程序,能够使用yumdownloader命令安装源码。例如以下:
yumdownloader--sourcecoreutils-8.4-37.el6.i686
注:
(1)若yumdownloader命令没有安装,则能够使用此命令安装:yuminstallyum-utils。
(2)下载的文件在当前文件夹下。能够使用_数--destdir指定下载到哪一个文件夹。
5)使用yumdownloader下载到的是一个安装包文件rpm,能够使用例如以下的命令查询rpm中的tar文件:
rpm-qplcoreutils-8.4-37.el6.src.rpm|greptar
#输出:coreutils-8.4.tar.xz
6)使用rpm2cpio命令将rpm包文件转换成cpio归档文件,再使用cpio命令,从cpio归档文件复制提取出一个归档文件。出例如以下:
rpm2cpiocoreutils-8.4-37.el6.src.rpm|cpio-idvcoreutils-8.4.tar.xz
#输出:
#coreutils-8.4.tar.xz
#9561blocks
cpio的man解释为:cpiocopiesfilesintoanarchive
-i:与--extract等同。提取之意
-d:与--make-directories等同,当有须要时创建一个载入文件夹
-v:列出文件的处理过程
7)使用tar命令对coreutils-8.4.tar.xz压缩包进行解压缩,例如以下:
tar-xvf./coreutils-8.4.tar.xz
至此,命令的源码获取完毕。
linux下如何查询一个函数或结构的原代码?
使用ctags最方便1、安装ctags2、在内核源码目录中执行ctags-R*生成tags数据库3、vim-t你要查找的数据结构的定义例如:vim-tflock网络上有详细的说明,你可以搜索以下
如何查看linux内核源代码?
***隐藏网址***
代码目录结构
在阅读源码之前,还应知道Linux内核源码的整体分布情况。现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序和网络等组成。Linux内核源码的各个目录大致与此相对应,其组成如下(假设相对于Linux-2.4.23目录):
1.arch目录包括了所有和体系结构相关的核心代码。它下面的每一个子目录都代表一种Linux支持的体系结构,例如i386就是IntelCPU及与之相兼容体系结构的子目录。PC机一般都基于此目录。
2.include目录包括编译核心所需要的大部分头文件,例如与平台无关的头文件在include/linux子目录下。
3.init目录包含核心的初始化代码(不是系统的引导代码),有main.c和Version.c两个文件。这是研究核心如何工作的好起点。
4.mm目录包含了所有的内存管理代码。与具体硬件体系结构相关的内存管理代码位于arch/*/mm目录下。
5.drivers目录中是系统中所有的设备驱动程序。它又进一步划分成几类设备驱动,每一种有对应的子目录,如声卡的驱动对应于drivers/sound。
6.ipc目录包含了核心进程间的通信代码。
7.modules目录存放了已建好的、可动态加载的模块。
8.fs目录存放Linux支持的文件系统代码。不同的文件系统有不同的子目录对应,如ext3文件系统对应的就是ext3子目录。
Kernel内核管理的核心代码放在这里。同时与处理器结构相关代码都放在arch/*/kernel目录下。
9.net目录里是核心的网络部分代码,其每个子目录对应于网络的一个方面。
10.lib目录包含了核心的库代码,不过与处理器结构相关的库代码被放在arch/*/lib/目录下。
11.scripts目录包含用于配置核心的脚本文件。
12.documentation目录下是一些文档,是对每个目录作用的具体说明。
一般在每个目录下都有一个.depend文件和一个Makefile文件。这两个文件都是编译时使用的辅助文件。仔细阅读这两个文件对弄清各个文件之间的联系和依托关系很有帮助。另外有的目录下还有Readme文件,它是对该目录下文件的一些说明,同样有利于对内核源码的理解。
在阅读方法或顺序上,有纵向与横向之分。所谓纵向就是顺着程序的执行顺序逐步进行;所谓横向,就是按模块进行。它们经常结合在一起进行。对于Linux启动的代码可顺着Linux的启动顺序一步步来阅读;对于像内存管理部分,可以单独拿出来进行阅读分析。实际上这是一个反复的过程,不可能读一遍就理解。
Linux是开源的,那么如何查看源代码?
Linux的内核源代码可以从很多途径得到。一般来讲,在安装的linux系统下,/usr/src/linux目录下的东西就是内核源代码。
求一个php,不需要数据库支持的成绩查询系统源码
比如格式是这样的文本 文件名称是db.txt
姓名#语文#数学#英语
张三#87#91#75
李四#88#95#69
王五#78#68#72
《?
seachName("张三");
function seachName($name){
$ishave=0;
$fp=fopen(’db.txt’,"r");
$str=fread($fp,filesize("db.txt"));
fclose($fp);
$arr=explode(chr(10),str_replace(array("\n\r","\n","\r"),chr(10),$str));
foreach($arr as $r){
$rr=explode("#",$r);
if($rr==$name){
echo $name."的语文的分数是.".$rr;
$ishave=1;
break;
}
}
if($ishave==0){
echo "不好意思 未找到{$name}";
}
}
?》
随手打的 没测试 不过应该没有问题

更多文章:
get云主机(如何优雅的在一台vps(云主机)上面部署vue+mongodb+express项目)
2026年9月22日 21:10
amazons第一季在线(假面骑士amazons第一季男主死了吗)
2026年9月22日 21:00
苏珊米勒2023年1月份运势(苏珊米勒天蝎座2023年3月份运势)
2026年9月22日 19:10







