c语言程序设计考研听谁的课

c语言程序设计考研听谁的课,第1张

谭浩强第五版《C程序设计》和《同步学习辅导》。

推荐在中国大学mooc上看浙江大学翁凯教授所讲的c语言课程。老师讲的很好,可我把听了一遍后,发现自己还是不懂代码,看见c语言的大题和一些基础知识还是很懵,这和我听课的效率和第一次学习有很大关系。

新东方的赵海英博士讲的C语言课程,课程比较老,不过真的是干货满满,全是和考研有关的知识,我认真的没有开倍速并且每章节都记笔记,把课程听一遍后,发现做考研的选择题和小题类,都不成问题了。

收先建立一个TXT文件,储存以下资料:姓名 学号 语文 数学 英语

张明明 01 67 78 82

李成友 02 78 91 88

张辉灿 03 68 82 56

王露 04 56 45 77陈东明 05 67 38 4---------------------------------------------------------------------------代码如下,本人亲自写的,不会有什么错误#include <iostream>

#include <fstream>

#include <string>

#include <iomanip>

using namespace std;void add_information(string str);

void delete_information(string str);

void edit_information(string str);

void score_count(string str,string name,int low,int high);

void name_Inquiry(string str);

void ID_Inquiry(string str);main()

{

cout<<"本程序完成学生信息管理"<<endl;

cout<<endl;

string str;

cout<<"请输入一个学生信息文件名: ";

getline(cin,str);

char ch;

cinget(ch);

cout<<"(1)信息维护 (2)信息查询 (3)成绩统计"<<endl;

cout<<"请输入你所要选择的功能编号: ";

int number;

cin>>number;

string name;//统计用的科目名

switch(number)

{

case 1:

cout<<"(1)增加学生信息 (2)删除学生信息 (3)修改学生信息"<<endl;

cout<<"请输入你所要选择的功能编号: ";

cin>>number;

switch(number)

{

case 1:

add_information(str);

break;

case 2:

delete_information(str);

break;

case 3:

edit_information(str);

break;

default:

cout<<"对不起,你的输入错误!";

break;

}

break;

case 2:

cout<<"(1)按姓名查询 (2)按学号查询"<<endl;

cout<<"请输入你所要选择的功能编号: ";

cin>>number;

switch(number)

{

case 1:

name_Inquiry(str);

break;

case 2:

ID_Inquiry(str);

break;

default:

cout<<"对不起,你的输入错误!";

break;

}

break;

case 3:

cout<<"请输入科目名:";

cin>>name;

cout<<"请输入分数段:(最低分和最高分)";

int score_low,score_high;

cin>>score_low>>score_high;

score_count(str,name,score_low,score_high);

break;

default:

cout<<"对不起,你的输入错误!";

break;

} cout<<endl;

return 0;

}

void add_information(string str)

{

ofstream outstream;

outstreamopen(strdata(),ios::ate|ios::app);

outstream<<endl;

string name;

cout<<"请输入新增人的姓名: ";

cin>>name;

cout<<"请输入学号 语文 数学 英语,用空格分开 :";

string a,b,c,d;

cin>>a>>b>>c>>d;

outstreamprecision(6);//显示精度

outstream<<name<<" "<<a<<" "<<b<<" "<<c<<" "<<d;//写入文件末尾

outstreamclose();

}

void delete_information(string str)

{

ifstream instream;

instreamopen(strdata());

string name_1,name_2;

cout<<"请输入需要删除人的姓名: ";

cin>>name_1;

string ID,chinese,math,english;

ofstream outstream;

//暂存的中间文件

outstreamopen("temptxt");

bool flag=0;//是否查找到

while(1)

{

//删除 *** 作,自己感觉都有点麻烦

instream>>name_2>>ID>>chinese>>math>>english;

if(name_1!=name_2)

{

outstreamprecision(6);

outstream<<name_2<<" "<<ID<<" "<<chinese<<" "<<math<<" "<<english;

outstream<<endl;

}

else if (name_1==name_2) flag=1;//查找到

if(instreameof()) break;

}

if(!flag) cout<<"没有找到该记录"<<endl;

instreamclose();

outstreamclose();

//将暂存的文件写回到原文件中

ifstream in;

ofstream out;

inopen("temptxt");

outopen(strdata());

string line;

while(1)

{

getline(in,line);

out<<line;

out<<endl;

if(ineof()) break;

}

inclose();

outclose();

}

void edit_information(string str)

{

ifstream instream;

instreamopen(strdata());

string name_1,name_2;

cout<<"请输入需要修改人的姓名: ";

cin>>name_1;

string ID,chinese,math,english;

ofstream outstream;

//暂存的中间文件

outstreamopen("temptxt");

bool flag=0;//是否查找到

while(1)

{

//删除 *** 作,自己感觉都有点麻烦

instream>>name_2>>ID>>chinese>>math>>english;

if(name_1==name_2)

{

//找到修改的记录

flag=1;

cout<<"请输入新的学号,语文,数学,英语成绩,用空格分开:";

cin>>ID>>chinese>>math>>english;

}

outstreamprecision(6);

outstream<<name_2<<" "<<ID<<" "<<chinese<<" "<<math<<" "<<english;

outstream<<endl;

if(instreameof()) break;

}

if(!flag) cout<<"没有找到该记录"<<endl;

instreamclose();

outstreamclose();

//将暂存的文件写回到原文件中

ifstream in;

ofstream out;

inopen("temptxt");

outopen(strdata());

string line;

while(1)

{

getline(in,line);

out<<line;

out<<endl;

if(ineof()) break;

}

inclose();

outclose();}

void score_count(string str,string name,int low,int high)

{

ifstream instream;

instreamopen(strdata());

const int max=1000;//假设最多有1000条记录

int score[max];

string name_file,ID;

int chinese,math,english;

int temp=0;//统计实际文件中记录的个数;

string line;

getline(instream,line);//第一行不算入

while(1)

{

instream>>name_file>>ID>>chinese>>math>>english;

if(name=="语文") score[temp++]=chinese;

else if(name=="数学") score[temp++]=math;

else if(name=="英语") score[temp++]=english;

if(instreameof()) break;

}

int total=0;//分数段内的统计个数

for(int i=0;i<temp;i++)

if(score[i]>=low && score[i]<=high) total++;

cout<<"分数段在"<<low<<"和"<<high<<"的总个数为: "<<total<<endl;

instreamclose();

}

void name_Inquiry(string str)

{

ifstream instream;

instreamopen(strdata());

string name_1,name_2;

cout<<"请输入需要查询人的姓名: ";

cin>>name_1;

string ID,chinese,math,english;

bool flag=0;

while(1)

{

instream>>name_2>>ID>>chinese>>math>>english;

if(name_1==name_2)

{

//找到姓名一样的的记录

flag=1;

cout<<name_2<<"的学号 : "<<ID<<" 语文 : "<<chinese<<" 数学 : "<<math<<" 英语 : "<<english;

cout<<endl;

}

if(instreameof()) break;

}

if(!flag)

cout<<"没有找到该记录"<<endl; instreamclose();}

void ID_Inquiry(string str)

{

ifstream instream;

instreamopen(strdata());

string ID_1;

cout<<"请输入需要查询人的ID: ";

cin>>ID_1;

string ID_2,name,chinese,math,english;

bool flag=0;

while(1)

{

instream>>name>>ID_2>>chinese>>math>>english;

if(ID_1==ID_2)

{

//找到ID一样的的记录

flag=1;

cout<<"学号为 : "<<ID_2<<"的姓名为:"<<name<<" 语文 : "<<chinese<<" 数学 : "<<math<<" 英语 : "<<english;

cout<<endl;

}

if(instreameof()) break;

}

if(!flag)

cout<<"没有找到该记录"<<endl; instreamclose();}----------------------------------------------------------其实主要还是对数据文件的 *** 作,理解了难度也不是很大

C语言是古老而长青的编程语言,它具备了现代程序设计的基础要求,它的语法是很多其他编程语言的基础,在系统程序、嵌入式系统等领域依然是无可替代的编程语言,在各类编程语言排行榜上常年占据前两名的位置。

程序设计是一门基础课程。对于计算机相关专业而言,程序设计是专业基础知识,是进一步学习其他专业知识的第一步阶梯;对于非计算机专业而言,程序设计的学习有助于理解计算机的能力所在,理解哪些是计算机擅长解决的问题,怎样的方式方法是计算机擅长的手段,从而能更好地利用计算机来解决本专业领域内的问题。

C是一种计算机编程语言。就是说可以用C编写指令清单交给计算机去执行。C是当前正在使用的成千上万种编程语言之一。它已经有几十年的历史了。因为它功能强大而且效率很高,所以受到了程序员们广泛的欢迎。

C是所谓的编译型语言,意思是说您写好的源程序必须通过C编译器来运行,使它变成可以在计算机上运行(执行)的可执行文件。C源程序是供人阅读的,而编译器产生的可执行程序是供计算机读入和执行的。也就是说,要编写并运行一个C程序,您必须借助于C编译器。如果使用UNIX系统(例如,您在UNIX主机上用C编写CGI脚本,或者您是学生,在实验室的UNIX机器上工作),C编译器是免费提供的。它的名字是cc或者gcc,可以通过命令行调用。

第一题:

#include <iostream>

using namespace std;

void main()

{ int i, j, k, count=0;

for( i=1; i<=9; i++)

for( j=0; j<=9; j++)

if ( i==j )

continue;

else

for( k=0; k<=9; k++)

if ( k!=i&&k!=j)

{count++;

cout<<i<<j<<k<<ends;

}

cout<<endl;

cout<<"所有这样的三位数个数有:"<<count<<" 个"<<endl;

}

第二题

#include <iostream>

using namespace std;

int fun(chars,int n)

{

int flag=1;

for(int i=0;i<n;i++)//比较前n个字符是否为

if(s[i]!='')

{

flag=0;

break;

}

if(flag==0)

return 0;

else

{

int k=n;

while(s[k]!='\0')//移动到非字符

{

if(s[k]=='')

k++;

else

break;

}

int j=0;

while(s[k]!='\0')//向前复制

{

s[n+j]=s[k];

k++;

j++;

}

s[n+j]='\0';

}

return 1;

}

void main()

{

static char str[15];

int m;

cout<<"请输入一个只含和字母的字符串:"<<endl;

cin>>str;

cout<<"请输入n值:"<<endl;

cin>>m;

fun(str,m);

cout<<str<<endl;

}

第三题

#include "iostream"

#include "string"

#include "list"

#include "cassert"

using namespace std;

/

编号、姓名、部门、应付工资、保险、税金、实付工资。

其中实付工资由公式计算得到:实付工资=应付工资 - 保险- 税金

/

struct employee{

string m_num;//编号

string m_name;//姓名

string m_dep;//部门

double m_salary;//应付工资

double m_insurance;//保险

double m_tax;//税金

};

/

(1)录入:输入职工数据,其中“实付工资”通过计算得到;

(2)删除:删除指定的职工信息(输入姓名,若找到则删除该信息)

(3) 修改:允许对已经录入的数据重新进行编辑、修改;

(4) 显示:显示全体职工数据;

(5)查询:

a 输入职工姓名,显示该职工的全部数据;

b 输入某部门值,显示该部门职工的数据、工资总额、平均工资。

(6) 退出程序。

/

list<employee> emps;

int main(int argc, char argv[])

{

void print(const employee &e);

void input();

void del();

void mod();

void show_all();

void show_name();

void show_dep();

cout<<"请选择 *** 作:1录入 2删除 3修改 4查询 5显示所有员工 6退出 :"<<endl;

int choose=0;

cin>>choose;

assert(!cinfail());

while (choose!=6)

{

if (choose==1) input();

if (choose==2) del();

if (choose==3) mod();

if (choose==4)

{

int choice=0;

cout<<"请选择 *** 作 1按姓名查询 2按部门查询 3退出:"<<endl;

cin>>choice;

if (choice==1) show_name();

if (choice==2) show_dep();

if (choice==3)

{

cout<<"请选择 *** 作:1录入 2删除 3修改 4查询 5显示所有员工 6退出 :"<<endl;

cin>>choose;

assert(!cinfail());

continue;

}

}

if (choose==5) show_all();

cout<<"请选择 *** 作:1录入 2删除 3修改 4查询 5显示所有员工 6退出 :";

cin>>choose;

assert(!cinfail());

}

return 0;

}

void print(const employee &e)

{

cout<<"编号:"<<em_num<<endl;

cout<<"姓名:"<<em_name<<endl;

cout<<"部门:"<<em_dep<<endl;

cout<<"保险:"<<em_insurance<<endl;

cout<<"税金:"<<em_tax<<endl;

cout<<"应付工资:"<<em_salary<<endl;

cout<<"实付工资:"<<em_salary-em_insurance-em_tax<<endl;

}

void input()

{

string num,name,dep;

double salary,ins,tax;

cout<<"请输入员工编号:"<<endl;

cin>>num;

cout<<"请输入员工姓名:"<<endl;

cin>>name;

cout<<"请输入员工部门:"<<endl;

cin>>dep;

cout<<"请输入员工保险:"<<endl;

cin>>ins;

assert(!cinfail());

cout<<"请输入员工税金:"<<endl;

cin>>tax;

assert(!cinfail());

cout<<"请输入员工应付工资:"<<endl;

cin>>salary;

assert(!cinfail());

employee temp;

tempm_dep=dep;

tempm_insurance=ins;

tempm_name=name;

tempm_num=num;

tempm_salary=salary;

tempm_tax=tax;

empspush_back(temp);

cout<<"员工录入 *** 作完毕"<<endl;

}

void del()

{

if (empssize()==0)

{

cout<<"没有员工记录"<<endl;

return;

}

string name;

bool isfind=false;

cout<<"请输入要删除的员工姓名:"<<endl;

cin>>name;

list<employee>::iterator iter;

for (iter=empsbegin();iter!=empsend();iter++)

{

if (iter->m_name==name)

{

isfind=true;

empserase(iter);

cout<<"姓名为"<<name<<"的员工记录已删除"<<endl;

return;

}

}

if (!isfind)

{

cout<<"没有找到姓名为"<<name<<"的员工"<<endl;

return;

}

}

void mod()

{

if (empssize()==0)

{

cout<<"员工记录为空"<<endl;

return;

}

bool isfind=false;

string name;

cout<<"请输入要修改的员工姓名:"<<endl;

cin>>name;

list<employee>::iterator iter;

for (iter=empsbegin();iter!=empsend();iter++)

{

if (iter->m_name==name)

{

isfind=true;

cout<<"姓名为"<<name<<"的员工记录已找到"<<endl;

break;

}

}

if (isfind)

{

string num,name,dep;

double tax,ins,salary;

print(iter);

cout<<endl;

cout<<"请输入新的员工编号:"<<endl;

cin>>num;

cout<<"请输入新的员工姓名:"<<endl;

cin>>name;

cout<<"请输入新的员工部门:"<<endl;

cin>>dep;

cout<<"请输入新的员工保险:"<<endl;

cin>>ins;

assert(!cinfail());

cout<<"请输入新的员工税金:"<<endl;

cin>>tax;

assert(!cinfail());

cout<<"请输入新的员工工资:"<<endl;

cin>>salary;

assert(!cinfail());

iter->m_dep=dep;

iter->m_insurance=ins;

iter->m_name=name;

iter->m_num=num;

iter->m_salary=salary;

iter->m_tax=tax;

cout<<"1 员工记录被成功修改"<<endl;

}

else

{

cout<<"没有找到姓名为"<<name<<"的员工记录"<<endl;

}

}

void show_all()

{

if (empssize()==0)

{

cout<<"员工记录为空"<<endl;

return;

}

cout<<"显示全体员工数据:"<<endl;

cout<<"--------------------"<<endl;

list<employee>::iterator iter;

for(iter=empsbegin();iter!=empsend();iter++)

{

cout<<endl;

print(iter);

cout<<endl;

}

cout<<"--------------------"<<endl;

}

void show_name()

{

if (empssize()==0)

{

cout<<"员工记录为空"<<endl;

return;

}

bool isfind=false;

string name;

cout<<"请输入要查询的员工姓名:"<<endl;

cin>>name;

list<employee>::iterator iter;

for(iter=empsbegin();iter!=empsend();iter++)

{

if (iter->m_name==name)

{

isfind=true;

cout<<"姓名为"<<name<<"的员工记录已找到"<<endl;

print(iter);

break;

}

}

if (!isfind)

{

cout<<"没有找到姓名为"<<name<<"的员工"<<endl;

return;

}

}

void show_dep()

{

if (empssize()==0)

{

cout<<"员工记录为空"<<endl;

return;

}

double isfind=000;

double total_salary=000;

string dep;

cout<<"请输入要查询的部门名称:"<<endl;

cin>>dep;

cout<<"部门["<<dep<<"]的员工信息:"<<endl;

cout<<"--------------------"<<endl;

list<employee>::iterator iter;

for(iter=empsbegin();iter!=empsend();iter++)

{

if (iter->m_dep==dep)

{

isfind++;

total_salary+=iter->m_salary;

print(iter);

cout<<endl;

continue;

}

}

cout<<"--------------------"<<endl;

if (isfind==0)

{

cout<<"没有找到名称为["<<dep<<"]的部门"<<endl;

}

else

{

cout<<"部门["<<dep<<"]工资统计:"<<endl;

cout<<"工资总额:"<<total_salary<<endl;

cout<<"平均工资:"<<total_salary/isfind<<endl;

}

}

好了 我都运行过的

以上就是关于c语言程序设计考研听谁的课全部的内容,包括:c语言程序设计考研听谁的课、c语言程序设计课程(百分悬赏)、C语言程序设计是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9480983.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存