[关闭]
@chawuciren 2019-03-28T12:15:44.000000Z 字数 2866 阅读 901

第7章作业

未分类


1、采用单向链表建立一个学生信息表,每个节点包括学号sno(int型),姓名sname(字符型20位),成绩sscore(int型),并输出。

  1. #include<iostream>
  2. #include <stdio.h>
  3. #include<stdlib.h>
  4. using namespace std;
  5. struct ListNode{
  6. int sno;
  7. char sname[20];
  8. int sscore;
  9. struct ListNode* next;
  10. };
  11. struct ListNode* newnode(int n);
  12. //void deletenode(struct LinkNode* node);
  13. //struct LinkNode* searchnode(struct LinkNode *node);
  14. //struct LinkNode* insertnode(struct LinkNode* node);
  15. void printnode(struct ListNode* head);
  16. int main(){
  17. ListNode* head;
  18. head=newnode(3);
  19. printnode(head);
  20. return 0;
  21. }
  22. struct ListNode* newnode(int n){
  23. ListNode* temp;
  24. ListNode* head;
  25. for(int i=1;i<n;i++){//从一开始是因为第一次循环为头结点和下一个节点赋值了
  26. if(i==1){
  27. head=new ListNode;
  28. temp=head;
  29. cin>>head->sno>>head->sname>>head->sscore;
  30. }
  31. temp->next=new ListNode;
  32. temp=temp->next;
  33. cin>>temp->sno>>temp->sname>>temp->sscore;
  34. }
  35. temp->next=NULL;//如果为节点分配了空间再让他等于NULL好像不可以
  36. return head;
  37. }
  38. //void deletenode(struct ListNode* node){}
  39. //struct ListNode* searchnode(struct ListNode *node){}
  40. //struct ListNode* insertnode(struct ListNode* node){}
  41. void printnode(struct ListNode* head){
  42. while(head!=NULL){
  43. cout<<head->sno<<" "<<head->sname<<" "<<head->sscore;
  44. head=head->next;
  45. }
  46. }

2、P211 第11题

  1. #include<iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. enum weekday{sun,mon,tus,wed,thu,fri,sat};
  6. enum weekday day;
  7. int a,b,c,d,e,f,g,loop;
  8. char ch='A';
  9. f=thu;
  10. for(a=sun;a<=sat;a++)
  11. if(a!=f)
  12. for(b=sun;b<=sat;b++)
  13. if((a!=b)&&(f>b))
  14. for(c=sun;c<=sat;c++)
  15. if((c!=a)&&(c!=b)&&(c!=f)&&(a==c+1)&&(f<c))
  16. for(d=sun;d<=sat;d++)
  17. if((d!=a)&&(d!=b)&&(d!=c)&&(d!=f)&&(c==d+3))
  18. for(e=sun;e<=sat;e++)
  19. if((e!=a)&&(e!=b)&&(e!=c)&&(e!=d)&&(e!=f)&&(d==e+2))
  20. for(g=sun;g<=sat;g++)
  21. if((g!=a)&&(g!=b)&&(g!=c)&&(g!=d)&&(g!=e)&&(g!=f)&&(g==b+2))
  22. for(loop=0;loop<7;loop++)
  23. { cout<<"Doctor"<<char(ch+loop)<<":";
  24. switch(loop+1)
  25. {
  26. case 1:day=weekday(a);break;
  27. case 2:day=weekday(b);break;
  28. case 3:day=weekday(c);break;
  29. case 4:day=weekday(d);break;
  30. case 5:day=weekday(e);break;
  31. case 6:day=weekday(f);break;
  32. case 7:day=weekday(g);break;
  33. }
  34. switch(day)
  35. {
  36. case sun:cout<<"Sunday"<<endl;break;
  37. case mon:cout<<"Monday"<<endl;break;
  38. case tus:cout<<"Thusday"<<endl;break;
  39. case wed:cout<<"Wednesday"<<endl;break;
  40. case thu:cout<<"Thurday"<<endl;break;
  41. case fri:cout<<"Friday"<<endl;break;
  42. case sat:cout<<"Saturday"<<endl;break;
  43. }
  44. }
  45. return 0;
  46. }

3、(选做)模拟一个用于显示时间的电子时钟。该时钟以时、分、秒的形式记录时间。试编写三个函数:setTime函数用于设置时钟的时间。increase函数模拟时间过去了1秒。showTime 显示当前时间,显示格式为HH:MM:SS。

  1. #include<iostream>
  2. #include<ctime>
  3. #include<stdlib.h>
  4. using namespace std;
  5. struct clock{
  6. int hour;
  7. int minute;
  8. int second;
  9. };
  10. class clock_time{
  11. public:
  12. void setTime();
  13. void increase();
  14. void showTime();
  15. private:
  16. struct clock current_time;
  17. };
  18. void clock_time::setTime(){
  19. time_t rawtime;
  20. struct tm *info;
  21. time( &rawtime );
  22. info = localtime( &rawtime );
  23. current_time.hour=info->tm_hour;
  24. current_time.minute=info->tm_min;
  25. current_time.second=info->tm_sec;
  26. }
  27. void clock_time::increase(){
  28. setTime();
  29. }
  30. void clock_time:: showTime(){
  31. while(1){
  32. increase();
  33. system("clear");
  34. cout<<current_time.hour<<":"<<current_time.minute<<":"<<current_time.second<<endl;
  35. }
  36. }
  37. int main(){
  38. clock_time MyClock;
  39. MyClock.showTime();
  40. return 0;
  41. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注