谭浩强第五版《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语言程序设计是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)