计算概率中c怎么计算系统的学c/c

如何成为一个牛逼的C/C++程序员?学习编程知识,虽九死而不悔!
这个题目的噱头太大,要真的写起来, 足够写一本书了。
本人是过来人, 结合自身的体会和大家交流一下,希望新人能少走弯路。
每个人的情况不一样,我下面的描述可能并不适合每一个看到这篇文章的人。
一、C/C++语言
如果你的基础很差, 建议不要一开始就学C++语言,从C开始学起,对程序有个初步的认识,循序渐进。C语言的书嘛,先买一本 300 页以内的,把书中的每一个例子都通过键盘敲打进去到 Visual studio里面去,然后单步执行,逐行调试去看各个变量的值。或者自行添加一些printf语句去输出变量的值。这样当你看完一本书后, 你就有编写小程序的感觉了。
记住,千万不要偷懒,不敲进去,自以为聪明, 能看懂, 或者直接从光盘复制。偷懒的代价是会花费更多的时间学习,最后还没有学会,给自己的自信心造成巨大打击,再也不想学程序了。
C语言看完一本书后,下来你就可以买一本C++的书看了。 C++的书也是一样, 必须300页以内的那种,不要一来就想学《C++ Primer中文版》这样的好书, 因为太厚了,怕你没有信心能够看完,即使你很有信心,花费一年的时间才看完,不值得。这种经典的厚的好书, 适合作为资料查阅,不适合挨个细节都看。
还是要提醒各位,一定要把书中的例子挨个敲打到电脑里面, 单步执行。一定不要从光盘复制, 一定要单步执行。
经过两本书的磨练, 估计你对C/C++肯定有比较深入的了解了, 下来应该可以进入实战了。
二、带界面的应用程序
学会了C/C++语言本身,可能还没有什么成就感,毕竟都是控制台的程序, 老是输出一串字符串, 整天面对各黑框框,成就感估计不是那么爽。要是能搞个带UI界面的程序就爽了。
下来就看个人的志向了, 如果走微软路线, 那你下来学MFC好了,如果要走开源路线, 那开源跨平台的界面库多得是。
通用的并且简单的就是QT了, 官方网站为你下载后看具体的例子, 把里面的例子程序敲到你的 visual studio 里面, 去调试, 看运行的结果, 你也可以试着去修改例子, 添加按钮,响应按钮事件等。UI这块C/C++都可以实现界面,如果缺乏资料,不妨来好玩,有趣,项目源码,零基础教程,尽在C/C++9群 。走到这一步, 恭喜你,可以照葫芦画瓢的搞个小应用程序了, 还带界面。
三、网络应用程序
语言搞懂了,UI程序也会了, 下来该学学网络咯, 现在那个程序不需要联网啊,懂网络对你理解很多程序非常有帮助。但是网络应用程序从哪里入手呢 ?
我来告诉你,从《UNIX网络编程》这本书入手吧,这本书可以教会你网络套接字的底层原理,把上面的例子好好学习,自己动手写一个回应服务器。写一个服务器端,在写一个客户端。服务器端请务必学会 select 这个简单的多路复用模型,这样你才能慢慢的深入里面 poll , epoll ,IOCP 之类的模型。
四、文件操作
所有的程序,基本都会用到文件的读写操作,windows系统有自己的文件操作API, 比如CreateFile, DeleteFile 等,请新手不要学windows的文件操作API, 新手请学标准C语言的文件操作函数,简单易学还跨平台。就那么几个函数,三下五除二你也就学会了, fopen, fclose, fread , fwrite, fseek, ftell 就这么几个而已。
五、深刻理解内存与指针的关系
作为一个C/C++程序员, 从学习程序的头一天开始,就要和内存的分配释放作斗争。你必须理解内存与指针的关系。怎么样才能理解呢, 请大家去看 《高质量C/C++编程》里面自带的几个经典例子吧。把那几个例子搞得清清楚楚, 基本能够理解其中的原理了。
六、仔细研究apache源码
好玩,有趣,项目源码,零基础教程尽在: C/C++9群
学程序非特别是C/C++程序,非3年之功可以出山,三年对一个C/C++程序来说是一个从量变到质变的过程,三年的项目实战经验,可以让你接触到一个完整的应用程序所需要具备的骨架。但是这个阶段你写的代码,可能充满BUG, 会宕机,运行效率很差,自己回头看看一年前写的代码,可能自己都感觉恶心, 看不下去。没有关系,这种感觉是每一个进步青年都会有的。要提高自己的代码水平, 还是要像高手学习。你可能要问,公司同事的水平一般, 水平好的人家也不愿意给我讲。没有关系,开源的代码就是你像高手学习的最佳途径,开源代码是高手留下的练功秘诀, 你看了后你会突然感觉茅塞顿开, 感觉自己的水平差人家太远了。我为何要推荐apache的源码呢?
apache的源码是高手中的高手写的,执行效率和程序架构堪称一绝。里面的很多思想是所有程序都通用的,搞懂了, 很多模块你也可以直接拿来使用。apache对内存池的使用, 对线程池的使用, 对模块结构的封装,非常具有实际意义。要是你能把apache的源码吃个透彻,每一个细节都搞明白了为何人家要这么实现,我可以给你说,“恭喜你 , 你离传说中的高手已经不远了。”
七、修炼C++
我上面说的基本都是修炼C的, 要修炼C++, 还得再花3年功夫, 才有可能练成C++高手。C++太博大精深了,其中最复杂的莫过于泛型编程思想,不要以为能写个模板类就认为泛型编程不过如此而已。仔细看看STL源码, Boost 源码, 你就知道泛型编程有多么的博大精深了。修炼C++, 可以从用C++封装的MFC, wxWidget入手, 看高手如何通过C++语言, 封装这样庞大的UI库,里面应用了很多的C++机制, 最典型的就是多态机制, 还有很多的设计模式应用可以研究。
八、深研设计模式
设计模式是程序设计的灵魂,是通用方法,当你面对一个大型项目的时候,如何设计一个有弹性的系统,是所有系统分析员应该掌握的技能。在设计模式的研究上,要结合实际的项目进行。
如果你正在学习C/C++这门语言,或者打算学习C/C++,不妨关注图片下方信息。每个人的情况不一样,我下面的描述可能并不适合每一个看到这篇文章的人。来群里互相学习,共同进步
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
学习资料,直播课程,群专业解答老师,群文件免费源码
学习资料,直播课程,群专业解答老师,群文件免费源码
今日搜狐热点求一个简单的能进行四则运算考虑优先级的计算器c语言程序,就学了半年c语言,谢谢_百度知道
求一个简单的能进行四则运算考虑优先级的计算器c语言程序,就学了半年c语言,谢谢
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
scanf(&%c&,&c[i]);}for(i=0;c[i]!='=';i++){if(c[i]=='*'||c[i]=='/'){switch(c[i]){case '*': a[i]=a[i]*a[i+1];a[i+1]=0;t=i;h=i;case '/': if(a[i+1]==0){printf(&error&);}else{a[i]=a[i]/a[i+1];a[i+1]=0;t=i;h=i;}}}}for(i=t+1;c[i]!='=';i++){if(c[i]=='*'||c[i]=='/'){if(i==h+1){switch(c[i]){case '*': a[t]=a[t]*a[i+1];a[i+1]=0;h++;case '/': if(a[i+1]==0){printf(&error&);}else{a[i]=a[i]/a[i+1];a[i+1]=0;t=i;h=i;}}}else{switch(c[i]){case '*': t=i;h=i;a[t]=a[t]*a[i+1];a[i+1]=0;case '/': if(a[i]==0){printf(&error&);}else{t=i;h=i;a[t]=a[t]/a[i+1];a[i+1]=0;}}}}}for(i=0;c[i]!='=';i++){switch(c[i]){case '+': a[i+1]=a[i]+a[i+1];case '-': a[i+1]=a[i]-a[i+1];default: a[i+1]=a[i]+a[i+1];}}printf(&%d&,a[i]);}
这是完整的
你就采纳我吧,像这种色情片,广电肯定会把一些片段阉割的
采纳率:40%
#include &stdio.h&main(){ int i=0,j,q=0; float n[10],m[10],s=0; char c[10],a; for (j=0;j&10;j++){ c[j]='\0';n[j]=0;} scanf(&%f&,&n[0]); for (;(c[i]=getchar())!='\n';i++)
scanf(&%f&,&n[i+1]);
c[i]='\0'; for (j=0,i=0;c[j]!='\0';j++) {
if (c[j]=='+'||c[j]=='-') { m[i]=n[j]; i++; if (c[j+1]=='\0') m[i]=n[j+1]; } if (c[j]=='*') { m[i]=n[j]*n[j+1]; n[j+1]=m[i]; if (c[j+1]=='+'||c[j+1]=='-')
i++; } if (c[j]=='/') { m[i]=n[j]/n[j+1]; n[j+1]=m[i];
if (c[j+1]=='+'||c[j+1]=='-')
i++; }}for (j=0;j&10;j++)if (c[j]=='+'||c[j]=='-')q++;for (j=0,i=1,s=m[0];j&10;j++,i++){ if (c[j]=='+'||q==0){s=s+m[i];if (q==0)} if (c[j]=='-'||q==0){s=s-m[i];if (q==0)}}printf(&%f&,s);}
#include&stdio.h&#include&stdlib.h&#define&N&10void&fun(){&&&&int&a,b,t;&&&&char&c;&&&&&scanf(&%d&,&a);&&&&scanf(&&%c&,&c);&&&&scanf(&%d&,&b);&&&&if(c=='+'||c=='-'||c=='*'||c=='/'||c=='%')&&&&&{&&&&&&&&if(c=='+')&t=a+b;&&&&&&&&if(c=='-')&t=a-b;&&&&&&&&if(c=='*')&t=a*b;&&&&&&&&if(c=='%')&t=a%b;&&&&&&&&if(c=='/')&&&&&&&&{&&&&&&&&&&&&if(b==0)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&printf(&0不能做除数\n&);&&&&&&&&&&&&}&&&&&&&&&&&&else&&&&&&&&&&&&&&&&t=a/b;&&&&&&&&}&&&&&&&&printf(&%d%c%d=%d\n&,a,c,b,t);&&&&}&&&&else&printf(&运算符号错误!\n&);}&&&&void&main(){&&&&int&i;&&&&char&&&&&for(i=0;i&N;i++)&&&&{&&&&&&&&fun();&&&&&&&&printf(&是否继续(y/n)?\n&);&&&&&&&&scanf(&&%c&,&&quit);&&&&&&&&if(quit=='Y'||quit=='y')&{&&&&&&&&&&&&system(&cls&);&&//清屏函数&头文件为stdlib.h&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&if(quit=='N'||quit=='n')&&&&&}}#include&&stdio.h&&int&jia(int&a,int&b){&&&&int&s;&&&&s=a+b;&&&&return&s;}int&jian(int&a,int&b){&&&&int&s;&&&&s=a-b;&&&&return&s;}int&cheng(int&a,int&b){&&&&int&s;&&&&s=a*b;&&&&return&s;}int&chu(int&a,int&b){&&&&int&s;&&&&s=a/b;&&&&return&s;}&&&void&main(){&&&&int&a,b,x,y,i;&&&&char&c;&&&&&printf(&请输入运算式:\n&);&&&&&scanf(&%d%c%d&,&a,&c,&b);&&&&x=a;&&&&y=b;&&&&for(i=0;;i++)&&&&{&&&&&&&&if(c=='+')x=jia(x,y);&&&&&&&&&else&if(c=='-')x=jian(x,y);&&&&&&&&&else&if(c=='*')x=cheng(x,y);&&&&&&&&&else&if(c=='/')x=chu(x,y);&&&&&&&&&c=getchar();&&&&&&&&if(c=='=')&&&&&&&&&{&&&&&&&&&&&&printf(&%d\n&,x);&&&&&&&&&&&&&&&&&&&&}&&&&&&&&scanf(&%d&,&y);&&&&}}
这是一个还是俩个程序啊?
两个,两个有点不同,一个可以多步连算
哦,有可以计算混合运算的吗?例如2+3*5这种的
嗯,有一个是
发给我吧,谢谢
这个就是可以计算混合运算的#include&&stdio.h&&int&jia(int&a,int&b){&&&&int&s;&&&&s=a+b;&&&&return&s;}int&jian(int&a,int&b){&&&&int&s;&&&&s=a-b;&&&&return&s;}int&cheng(int&a,int&b){&&&&int&s;&&&&s=a*b;&&&&return&s;}int&chu(int&a,int&b){&&&&int&s;&&&&s=a/b;&&&&return&s;}&&&&void&main(){&&&&int&a,b,x,y,i;&&&&char&c;&&&&&printf(&请输入运算式:\n&);&&&&&scanf(&%d%c%d&,&a,&c,&b);&&&&x=a;&&&&y=b;&&&&for(i=0;;i++)&&&&{&&&&&&&&if(c=='+')x=jia(x,y);&&&&&&&&&else&if(c=='-')x=jian(x,y);&&&&&&&&&else&if(c=='*')x=cheng(x,y);&&&&&&&&&else&if(c=='/')x=chu(x,y);&&&&&&&&&c=getchar();&&&&&&&&if(c=='=')&&&&&&&&&{&&&&&&&&&&&&printf(&%d\n&,x);&&&&&&&&&&&&&&&&&&&&}&&&&&&&&scanf(&%d&,&y);&&&&}}
这个没有优先级啊,按输入顺序算的吧
嗯,你也可以加入判断,可以有优先级
为您推荐:
其他类似问题
四则运算的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。建立一个学生信息系统C语言编程_百度知道
建立一个学生信息系统C语言编程
•建立一个学生信息系统(包含姓名、学号、四科功课成绩及加权平均成绩),采用带表头结点的单链表构建,要求有菜单系统,几个主要功能:
1)新建链表
2)添加学生信息
3)搜索学生信息
4)删除学生信息
5)显示所有学生信息
6)按输入公式实现所有学生加...
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
#include&stdio.h&
/*I/O函数*/#include&stdlib.h& /*其它说明*/#include&string.h& /*字符串函数*/#define BUFLEN 100 /* 缓冲区最大字符数 */#define LEN 15 /* 学号和姓名最大字符数,实际请更改 */#define N 100 /* 最大学生人数,实际请更改*/struct record /*结构体*/{char code[LEN+1]; /* 学号 */char name[LEN+1]; /* 姓名 */ /* 年龄 */char sex[3]; /* 性别 */char time[LEN+1]; /* 出生年月 */char add[30]; /* 家庭地址 */char tel[LEN+1]; /* 电话号码 */char mail[30]; /* 电子邮件地址 */}stu[N];int k=1,n,m; /* 定义全局变量 */ void readfile();/* 函数声明 */void seek();void modify();void insert();void del();void display();void save();void menu(); int main(){
while(k)menu();system(&pause&);return 0;} void help(){ printf(&\n0.欢迎使用系统帮助!\n&);printf(&\n1.进入系统后,先刷新学生信息,再查询;\n&);printf(&\n2.按照菜单提示键入数字代号;\n&);printf(&\n3.增加学生信息后,切记保存按7;\n&);printf(&\n4.谢谢您的使用!\n&);} void readfile()/* 建立信息 */{char *p=&student.txt&;FILE *int i=0;if ((fp=fopen(&student.txt&,&r&))==NULL){
printf(&Open file %s error! Strike any key to exit!&,p);system(&pause&);exit(0);}while(fscanf(fp,&%s %s%d%s %s %s %s %s&,stu[i].code,stu[i].name,&stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail)==8){i++;i=i;}fclose(fp);n=i;printf(&录入完毕!\n&);} void seek() /*查找*/{int i,item,char s1[21]; /* 以姓名和学号最长长度+1为准 */printf(&------------------\n&);printf(&-----1.按学号查询-----\n&);printf(&-----2.按姓名查询-----\n&);printf(&-----3.退出本菜单-----\n&);printf(&------------------\n&);while(1){printf(&请选择子菜单编号:&);scanf(&%d&,&item);flag=0;switch(item){case 1:printf(&请输入要查询的学生的学号:\n&);scanf(&%s&,s1);for(i=0;i&n;i++)if(strcmp(stu[i].code,s1)==0){flag=1;printf(&学生学号
E-mail\n&);printf(&--------------------------------------------------------------------\n&);printf(&%6s %7s %6d %5s %9s %8s %10s %14s\n&,stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);}if(flag==0)printf(&该学号不存在!\n&);case 2:printf(&请输入要查询的学生的姓名:\n&);scanf(&%s&,s1);for(i=0;i&n;i++)if(strcmp(stu[i].name,s1)==0){flag=1;printf(&学生学号
E-mail\n&);printf(&--------------------------------------------------------------------\n&);printf(&%6s %7s %6d %5s %9s %8s %10s %14s\n&,stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);}if(flag==0)printf(&该姓名不存在!\n&);case 3:default:printf(&请在1-3之间选择\n&);}}} void modify() /*修改信息*/{int i,item,char sex1[3],s1[LEN+1],s2[LEN+1]; /* 以姓名和学号最长长度+1为准 */printf(&请输入要要修改的学生的学号:\n&);scanf(&%s&,s1);for(i=0;i&n;i++)if(strcmp(stu[i].code,s1)==0) /*比较字符串是否相等*/num=i;printf(&------------------\n&);printf(&1.修改姓名\n&);printf(&2.修改年龄\n&);printf(&3.修改性别\n&);printf(&4.修改出生年月\n&);printf(&5.修改地址\n&);printf(&6.修改电话号码\n&);printf(&7.修改E-mail地址\n&);printf(&8.退出本菜单\n&);printf(&------------------\n&);while(1){printf(&请选择子菜单编号:&);scanf(&%d&,&item);switch(item){case 1:printf(&请输入新的姓名:\n&);scanf(&%s&,s2);strcpy(stu[num].name,s2);case 2:printf(&请输入新的年龄:\n&);scanf(&%d&,&stu[num].age);case 3:printf(&请输入新的性别:\n&);scanf(&%s&,sex1);strcpy(stu[num].sex,sex1);case 4:printf(&请输入新的出生年月:\n&);scanf(&%s&,s2);strcpy(stu[num].time,s2);case 5:printf(&请输入新的地址:\n&);scanf(&%s&,s2);strcpy(stu[num].add,s2);case 6:printf(&请输入新的电话号码:\n&);scanf(&%s&,s2);strcpy(stu[num].tel,s2);case 7:printf(&请输入新的E-mail地址:\n&);scanf(&%s&,s2);strcpy(stu[num].mail,s2);case 8:default:printf(&请在1-8之间选择\n&);}}}
void sort()/*按学号排序*/{int i,j,*p,*q,s;
char temp[10];for(i=0;i&n-1;i++){for(j=n-1;j&i;j--)if(strcmp(stu[j-1].code,stu[j].code)&0){strcpy(temp,stu[j-1].code);strcpy(stu[j-1].code,stu[j].code);strcpy(stu[j].code,temp);strcpy(temp,stu[j-1].name);strcpy(stu[j-1].name,stu[j].name);strcpy(stu[j].name,temp);strcpy(temp,stu[j-1].sex);strcpy(stu[j-1].sex,stu[j].sex);strcpy(stu[j].sex,temp);strcpy(temp,stu[j-1].time);strcpy(stu[j-1].time,stu[j].time);strcpy(stu[j].time,temp);strcpy(temp,stu[j-1].add);strcpy(stu[j-1].add,stu[j].add);strcpy(stu[j].add,temp);strcpy(temp,stu[j-1].tel);strcpy(stu[j-1].tel,stu[j].tel);strcpy(stu[j].tel,temp);strcpy(temp,stu[j-1].mail);strcpy(stu[j-1].mail,stu[j].mail);strcpy(stu[j].mail,temp); p=&stu[j-1]. q=&stu[j]. s=*q; *q=*p; *p=s;}}} void insert() /*插入函数*/{ int i=n,j,printf(&请输入待增加的学生数:\n&);scanf(&%d&,&m);do{ flag=1;while(flag){flag=0;printf(&请输入第 %d 个学生的学号:\n&,i+1);scanf(&%s&,stu[i].code);for(j=0;j&i;j++)if(strcmp(stu[i].code,stu[j].code)==0){printf(&已有该学号,请检查后重新录入!\n&);flag=1; /*如有重复立即退出该层循环,提高判断速度*/}}printf(&请输入第 %d 个学生的姓名:\n&,i+1);scanf(&%s&,stu[i].name);printf(&请输入第 %d 个学生的年龄:\n&,i+1);scanf(&%d&,&stu[i].age);printf(&请输入第 %d 个学生的性别:\n&,i+1);scanf(&%s&,stu[i].sex);printf(&请输入第 %d 个学生的出生年月:(格式:年.月)\n&,i+1);scanf(&%s&,stu[i].time);printf(&请输入第 %d 个学生的地址:\n&,i+1);scanf(&%s&,stu[i].add);printf(&请输入第 %d 个学生的电话:\n&,i+1);scanf(&%s&,stu[i].tel);printf(&请输入第 %d 个学生的E-mail:\n&,i+1);scanf(&%s&,stu[i].mail);if(flag==0){ i=i;i++;}}while(i&n+m);n+=m;printf(&录入完毕!\n\n&);sort();} void del(){int i,j,flag=0;char s1[LEN+1];printf(&请输入要删除学生的学号:\n&);scanf(&%s&,s1);for(i=0;i&n;i++)if(strcmp(stu[i].code,s1)==0){ flag=1;for(j=i;j&n-1;j++)stu[j]=stu[j+1];}if(flag==0)printf(&该学号不存在!\n&);if(flag==1){printf(&删除成功,显示结果请选择菜单6\n&);n--;}} void display(){printf(&所有学生的信息为:\n&);printf(&学生学号
E-mail\n&);printf(&--------------------------------------------------------------------\n&);for(i=0;i&n;i++){ printf(&%6s %7s %5d %5s %9s %8s %10s %14s\n&,stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);}} void save(){FILE *fp=fopen(&student.txt&,&w&); /*写入*/for(i=0;i&n;i++){fprintf(fp,&%s %s %d %s %s %s %s %s\n&,stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);}fclose(fp);} void menu()/* 界面 */{printf(&*********************系统功能菜单************************
\n&);printf(&友情提醒:查询前请先刷新系统!
\n&);printf(&
----------------------
----------------------
\n&);printf(&
*********************************************
\n&);printf(&
* 0.系统帮助及说明
1.刷新学生信息
\n&);printf(&
*********************************************
\n&); printf(&
* 2.查询学生信息
3.修改学生信息
\n&);printf(&
*********************************************
\n&);printf(&
* 4.增加学生信息
5.按学号删除信息
\n&);printf(&
*********************************************
\n&);printf(&
* 6.显示当前信息
7.保存当前学生信息*
\n&);printf(&
********************** **********************
\n&);printf(&
* 8.退出系统
\n&);printf(&
**********************
\n&);printf(&
----------------------
----------------------
\n&);printf(&请选择菜单编号:&);scanf(&%d&,&num);switch(num){ case 0:help();case 1:readfile();case 2:seek();case 3:modify();case 4:insert();case 5:del();case 6:display();case 7:save();case 8:k=0;default:printf(&请在0-8之间选择\n&);}
采纳率:65%
#include&stdio.h&#include&stdlib.h&#include&conio.h&#include&string.h&int&bExit&=&0;int&total&=&0;#define&Create(the_one)&the_one=(Stu&*)malloc(sizeof(Stu))typedefstruct&Student{ char&cnum[20]; //&字符串学号 int&
//&数字学号 char&name[20]; //&姓名 float& //&成绩 struct&Student&*}SStu&*the_one,&*h,&*pr,&*last,&*//1.添加学生函数void&ADD(){ int&Four&=&0; printf(&================================\n&); Create(the_one); the_one-&next&=&NULL; end&=&&&&&&&&&&&//end指向倒数第二个结点 last-&next&=&the_//将the_one放在链表的&最后 last&=&the_&&&&&&//last指向倒数第一个结点
//输入学号 printf(&输入学生信息:\n学号:&); while&(!Four) {
gets(the_one-&cnum);
if&(strlen(the_one-&cnum)&!=&4)
printf(&输入非法:学号必须是4位,请重新输入!\n学号:&);
Four&=&1; } the_one-&inum&=&atoi(the_one-&cnum); //int型学号 //输入姓名 printf(&学生姓名:&); gets(the_one-&name); //输入成绩 printf(&学生成绩:&); scanf(&%f&,&&the_one-&score); getchar();&&&&&&&//接收回车 //总数+1 total++; //排序 //pr从空head开始,last指向下一个(前趋pr,后趋last) for&(pr&=&h,&last&=&pr-&&last-&&pr&=&pr-&next,&last&=&pr-&next) {
if&(last-&inum&the_one-&inum)
//插入元素the_one
the_one-&next&=&
pr-&next&=&the_
last&=&&&&&&//插入完成,将last移到最后。
end-&next&=&NULL;//最后结点指针域置空,last-&next为NULL,跳出循环
} } printf(&================================\n&);}//2.查询学生函数void&CHECK(){ Stu&*target,&*p; int&fond&=&0; printf(&================================\n&); printf(&输入要查找学生的学号:\n学号:&); Create(target); gets(target-&cnum); for&(p&=&h-&&p;&p&=&p-&next) {
if&(!strcmp(p-&cnum,&target-&cnum))
printf(&学号为%s的学生信息:姓名(%s),分数(%.2f)\n&,&p-&cnum,&p-&name,&p-&score);
free(target);
} } if&(!fond)
printf(&Wrong&Student&NO.!\n&); printf(&================================\n&);}//3.编辑学生void&EDIT(){ Stu&*target,&*p; int&fond&=&0; printf(&================================\n&); printf(&输入要编辑学生的学号:\n学号:&); Create(target); gets(target-&cnum); for&(p&=&h-&&p;&p&=&p-&next) {
if&(!strcmp(p-&cnum,&target-&cnum))
printf(&学号为%s的学生信息:姓名(%s),分数(%.2f)\n&,&p-&cnum,&p-&name,&p-&score);
printf(&请选择修改项目:\n1:姓名\n2:分数\n&);
c&=&getch();
switch&(c)
case&'1':
printf(&输入正确的姓名:&);
gets(p-&name);
case&'2':
printf(&输入最新成绩:&);
scanf(&%f&,&&p-&score);
printf(&学号为%s的学生最新信息:姓名(%s),分数(%.2f)\n&,&p-&cnum,&p-&name,&p-&score);
free(target);
} } if&(!fond)
printf(&Not&Exit&This&NO.!\n&); printf(&================================\n&);}//4.删除学生void&DELETE1(){ void&PRINALL(); PRINALL(); Stu&*target,&*p,&* int&fond&=&0; printf(&================================\n&); printf(&输入要删除学生的学号:(如果删除所有学生信息,请输入0000)\n学号:&); Create(target); gets(target-&cnum); target-&inum&=&atoi(target-&cnum); // char&*zero=&&0000&; if&(!strcmp(target-&cnum,&&0000&)) {
h-&next&=&NULL;
total&=&0; } else {
for&(pr&=&h,&p&=&h-&&p;&pr&=&pr-&next,&p&=&p-&next)
if&(!strcmp(p-&cnum,&target-&cnum))
printf(&学号为%s的学生信息已删除\n&,&p-&cnum);
free(target);
pr-&next&=&p-&
p-&next&=&NULL;
&&&&&free(p);此句报错
if&(!fond)
printf(&没有找到学号为%s的学生,请确认学号输入是否正确\n&); } printf(&================================\n&);}//5.打印全部void&PRINALL(){ int&amounts&=&1; Stu&*Op; printf(&================================\n&); printf(&所有学生信息:\n&); for&(Op&=&h-&&Op;&Op&=&Op-&next)
printf(&%d.%s,%s,%.2f\n&,&amounts++,&Op-&cnum,&Op-&name,&Op-&score); printf(&================================\n&);}//6.总人数void&TOTAL(){ printf(&================================\n&); printf(&学生总人数:%d\n&,&total); printf(&================================\n&);}//菜单函数void&Menu(){ char& printf(&================================\n&); printf(&|&&&&&1.添加学生.&&&&&&&&&&&&&&|\n&); printf(&|&&&&&2.查询学生.&&&&&&&&&&&&&&|\n&); printf(&|&&&&&3.编辑学生.&&&&&&&&&&&&&&|\n&); printf(&|&&&&&4.删除学生.&&&&&&&&&&&&&&|\n&); printf(&|&&&&&5.打印全部.&&&&&&&&&&&&&&|\n&); printf(&|&&&&&6.总人数.&&&&&&&&&&&&&&&&|\n&); printf(&|&&&&&7.退出.&&&&&&&&&&&&&&&&&&|\n&); printf(&================================\n&); order&=&getch(); system(&cls&); switch&(order) { case&'1':
case&'2':
case&'3':
case&'4':
DELETE1();
case&'5':
PRINALL();
case&'6':
case&'7':
bExit&=&1;
} while&(!bExit) {
system(&cls&);
Menu(); }}void&main(){ //创建链表头 Create(h); pr&=&last&=&end&=&the_one&=&h; the_one-&next&=&NULL; Menu();}
本回答被网友采纳
为您推荐:
其他类似问题
您可能关注的内容
c语言编程的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 c计算 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信